nginx的fastopen是怎么回事
介绍
fastopen就是tcp 0rtt发包的方法,在syn里就带上data数据。
见:https://datatracker.ietf.org/doc/html/rfc7413
ngnix
nginx有这个选项,如下这样配

配完之后会走一个setsockopt的代码

改option TCP_FASTOPEN,有两点需要注意
1. 全局变量/proc/sys/net/ipv4/tcp_fastopen 需要设置mask 2。
2. option的value是类似backlog的队列长队。我们这里的例子里,是1024.
参考手册man tcp

系统配置
sysctl -a |grep fastopen

cat /proc/sys/net/ipv4/tcp_fastopen
参考内核文档:/Source/linux/linux-5.4/Documentation/networking/ip-sysctl.txt

client
要想用fastopen,client需要用sendto(),sendmsg()接口,
而不是tcp常用的connect()和write()/send()
参考man 7 tcp

浙公网安备 33010602011771号