TCP Fast Open
背景
TCP Fast Open (TFO),通过在TCP建立连接时,增加一个TCP cookie选项,来避免了之后重连时的三次握手过程,来提高传输效率。
性能提升程度
数据来源于参考[2]
-
RTT低时:加载时间提升 4 ~5%
-
RTT高时:提升效果更好
-
实时互联网环境下测试结果:平均性能提升:25%, 节省处理器资源后,服务器处理事务数由 2876.4上升到 3548.7。
支持程度
- Linux kernel: >=3.6 (client), >= 3.7(server)
- FreeBSD: >= 10.3 (server), >= 12.0 (client)
- Mozilla Firefox: >= 58
- Google Chrome (Linux, Chrome OS, Android):
- Apple's OS X: 10.11
设置方法
服务端打开
设置
/proc/sys/net/ipv4/tcp_fastopen=3
其中
- 1表示客户端开启
- 2表示服务端开启
- 3表示客户端和服务器同时开启
服务端测试是否打开
查看服务端上,是否开启了FTO
grep '^TcpExt:' /proc/net/netstat | cut -d ' ' -f 90-95 | column -t
结果
TCPFastOpenActive TCPFastOpenActiveFail TCPFastOpenPassive TCPFastOpenPassiveFail TCPFastOpenListenOverflow TCPFastOpenCookieReqd
0 0 0 0 0 132
- TCPFastOpenPassive 数量增长代表成功开启TFO功能
- TCPFastOpenCookieReqd代表缓存的地址数。