TCP Fast Open说明

阅读更多
相关介绍
https://lwn.net/Articles/508865/
http://www.oschina.net/question/12_137950
https://bg2bkk.github.io/post/tcp_fast_open%E7%9A%84%E6%A6%82%E5%BF%B5%20%E4%BD%9C%E7%94%A8%E4%BB%A5%E5%8F%8A%E5%AE%9E%E7%8E%B0/
 
 
加速原理
大致意思就是第一次经过三次握手建立TCP连接以后就会获得一个TFO cookie,在TFO cookie超时之前再建立到同一个IP的TCP连接不需要再经过TCP握手过程,可以直接传输数据。不清楚具体超时时间是怎么规定的,反正我重复打开关闭浏览器TFO cookie是一直存在的
 
 
Linux开启TFO选项
vi /etc/sysctl.conf
加入
net.ipv4.tcp_fastopen = 3
 
其中1表示客户端开启,2表示服务端开启,3是1和2的与运算,表示客户端和服务器同时开启
apache尚不支持TFO功能
nginx在listen后加入fastopen开启,数字表示队列长度
listen 80 fastopen=100 default_server;
chrome打开tfo选项可以支持
firefox据说要55版本以后才支持
 
Windows 10开启TFO选项
windows10上IIS默认支持tcp fast open不需要开启
edge浏览器有TCP快速打开选项,但是我用wireshark抓包,实际上并没有真正启用TFO功能,这个原因就不知道了
chrome在windows上尚不支持TFO
firefox55版本以后才支持
IOS开启TFO选项
ios9以后支持,但是限于开发app时可以用,safari到版本11beta仍不支持
android开启TFO选项
手上没有安卓手机,但是安卓上的chrome是支持的,不确定是否默认开启的。
 
 
总结起来就是浏览器只有linux和android上的chrome可以用
服务器只有windows 10上的IIS和linux上的nginx可以用

你可能感兴趣的:(TCP Fast Open说明)