Skip to content

计算机网络-FastOpen如何解决三次握手的延迟问题

1. 什么是 TFOTCP Fast Open

  • TFO 是一种提高 TCP 传输效率的办法。
  • 其技术方案依然建立在标准的三次握手的基础上,只是在第三次握手之前就开始数据传输,因此能够提高效率
  • 常常用于频繁建立短连接的场景当中,用以提升连接阶段的数据传输效率。

2. TFO 的原理

  • 客户端和服务端建立连接之后,客户端会存放服务端的 TCP Cookie,是一种看上去很像 Cookie 的凭证。
  • 借助 TCP Cookie, 客户端再次和服务端建立连接之后,在第一次握手的阶段,就能够通过 TCP Cookie 确定客户端身份,因此,可以在第一次握手之后就进行数据传输,不必等待三次握手全部结束。
  • TCP CookieTFO 技术中的一个核心概念
  • 首次连接:在客户端首次与服务端建立标准的 TCP 连接时,服务端生成一个 TCP Cookie 发送给客户端。这个 Cookie 是基于一系列参数(如服务端的密钥、客户端IP地址等)计算得出的,确保了每个 Cookie 的唯一性和安全性。
  • 存储 Cookie:客户端收到 TCP Cookie 后将其存储起来,用于后续的连接请求。
  • 再次连接:当客户端需要再次与服务端建立连接时,它会在发送的SYN包中携带之前存储的 TCP Cookie
  • 身份验证:服务端接收到带有 TCP CookieSYN 包后,会验证这个 Cookie 的有效性。服务端通过比较客户端发送的 Cookie 与自己根据相同算法和密钥计算出的 Cookie 是否一致,来确认客户端的身份。这个过程不需要额外的往返通信,因此大大减少了连接建立的时间。
  • 数据传输:一旦 TCP Cookie 验证通过,服务端就认为这个连接是可信的,第一次握手的时候就可以携带数据