TCP/IP学习笔记6-tcp快速打开原理

背景

TCP/IP协议是当前网络时代的基础,所有的网络产品,或者是开发语言、开发框架都是基于tcp/ip协议的,所以说,学好tcp/ip对个人以后从事互联网行业会有巨大的帮助。

但是这是一个基础理论课程,就像操作系统这门课一样,学完之后可能不会对你产生太大的影响,不会让你立马拥有能够投入工作中的技能。但正是因为这是一个基础理论课,所有的互联网技术都是基于它的。所以如果你了解tcp/ip协议,将会对你未来发展或者在工作中排查问题产生积极的作用。

tcp快速打开——TFO

tcp快速打开(tcp fast open)简称TFOTFO是对tcp的一种简化握手过程的拓展,用于提高C-S的打开速度。其原理是使用SYN Cookie实现。

具体的细节如下:
TFO首轮3次握手

  1. C向S发送SYN请求,S接收到
  2. S不是立即回复SYN + ACK,而是S通过计算得到一个SYN Cookie,将这个Cookie放在tcp报文的Fast Open选项中,然后发送给C
  3. C拿到Cookie后缓存下来。后面就是正常完成三次握手

首轮3次握手就是这样,但是后面的流程就不一样了!!

TFO后面的3次握手

  1. C向S发送Cookie、SYN、HTTP请求。(没错,就是发送这么多)
  2. S验证C的Cookie是否合法,如果合法,则正常返回SYN + ACK。否则直接丢请请求数据
  3. S向C发送HTTP响应。(这一步是优化的重点
  4. C还是需要回复SACK

注意:

  • 第三步和第四步是可以同时执行的
  • 重点优化在第一步和第三步,第一步发送了HTTP请求,第三步可以直接回复数据了。相对于优化前,这可节省了不少时间。以前是必须先完成3次握手,然后才能发送HTTP请求

TFO优势
TFO的优势并不在首轮的3次握手,而在于后面的握手,在S拿到C的Cookie并验证通过后,便可以直接返回HTTP响应,充分利用了1RTT(Round Trip Time)的时间提前进行数据传输。虽然一个来回没有什么太大的提升,但是如果数据发送的越多,这优势也就越大了。

总结

这是tcp/ip系列的第六篇,主要详细介绍了tfo的实现原理。后面还有更深入、更多使用的场景讲解,这个系列的文章会很长。
开始下一篇吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值