Net5

tcp fast open

This project is maintained by wangfakang

TFO(Tcp Fast Open)的简单解析:

今天简单看了些TFO相关的内容,下面作为记录:

TFO出现的背景:


    相信TCP三次握手的细节知识大家应该都很了解了.在说这个之前先说一下RTT的概念:     
即一个数据包从发送到收到确认的这个时间就是一个RTT(即网络传输延时).            

    当我们在发送http请求的时候就会先进行TCP的三次握手所以无法避免RTT.         

    TFO说直白了就是在三次握手的过程中发送数据(在发送SYN包的时候携带应用层数据). 

    虽然在http层面上有http keepalive,但是也会有35%的请求是重新发起一条连接[来自网络数据].    
所以TFO在某些场景下还是很有必要的(如RTT很大的情况下).         

  有个疑问为啥在http keepalive的情况下,还是会有请求重新进行发起连接,不知原因,希望各位解说.      

TFO的实现原理:

  TFO是在建立三次握手的过程中进行数据的发送,那是如何做的恩?其实是这样的:

TFO带来的好处:

   TFO带来的好处是不容置疑的:首先就是减少了RTT,尤其是在RTT比较大的场景下带来的性能提高是很大的.

TFO的不足之什么场景下使用:

TFO的就是在三次握手过程中就在syn包中携带数据进行数据的传输.那么就会有个问题:

Communite

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

Thx

Author