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

 

posted on 2024-12-16 18:58  toong  阅读(121)  评论(0)    收藏  举报