TCP 相关

这里会持续记录并归档有关TCP相关的知识。

致谢

把这篇博客献给我大学计网的任课教授。

希望她能够把更多的时间留给教学。

正文

TCP 快启(TCP Fast Open,TFO)

TFO 是 TCP 连接的一种简化握手手续的拓展,用于提高两端点间连接的打开速度。

它通过握手开始时的 SYN 包中的 TFO cookie(一个TCP选项)来验证一个之前连接过的客户端。

  1. 请求Fast Open Cookie

    1. 客户端发送 SYN 包,并附带 Fast Open 选项。

    2. 服务端若支持 TCP Fast Open ,则会加密 Client 的源 IP 产生16字节长度的 Cookie(通过AES-128算法)并将其置于 SYN-ACK 数据包中的Fast Open选项以发回客户端。

    3. 客户端收到SYN-ACK后,缓存Fast Open选项中的Cookie。

  2. 使用 Fast Open Cookie

    1. 客户端发送 SYN 数据包,该数据包包含数据以及此前记录的 Cookie 。

    2. 服务端确认该 Cookie ,如果 Cookie 有效,服务器将在 SYN-ACK 数据包中对 SYN 和数据进行确认,服务器随后将数据递送至相应的应用程序;否则,服务器将丢弃 SYN 数据包中包含的数据,且其随后发出的 SYN-ACK 数据包将仅确认 SYN 的对应序列号,如果客户端在初始的SYN数据包中发送的数据未被确认,则客户端将重新发送数据。

引用

本作品采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0)进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,可适当缩放并在引用处附上图片所在的文章链接。

最后更新于

这有帮助吗?