TCP Fast Open

  |   0 评论   |   0 浏览

背景

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代表缓存的地址数。

参考