首先,在服务器和客户端上都打开TCPfastopen。 net.IPv4.TCP_fastopen=3
使用curl打开tfo测试。 curl---- TCP-fast open https://www.haiyun.me /
#httping -F https://www.haiyun.me/
nginx开启tfo:listen 80 fastopen=256
使用tcpdump侦听数据发现:
第一次请求时,客户端syn携带cookiereq,服务器如果支持tfo,则为tfo cookie:Flags [S],options [mss 1460,sackOK,TS val 4250936141 ecr 0,nop
Flags [S.],options [mss 1460,sackOK,TS val 2764503812 ecr 4250936141,nop,wscale 11,exp-tfo cookie f6aecea49990ea33]
之后再次请求时,syn会携带tfo cookie和请求数据。 Flags [S],options [mss 1460,sackOK,TS val 4250944477 ecr 0,nop,wscale 6,exp-TFOcookief6aeccokie
如果客户端syn包都没有tfo cookiereq,则可能由于丢包或防火墙而返回正常模式。 更改为net.IP v4.TCP _ fast open _ black hole _ time out _ sec=0并重新测试
标签: none