在 Linux C 程序中,我可以为非特权套接字(非原始)上的传出 TCP 数据包设置哪些 TCP 选项?我指的是 TCP Header 中的 TCP Options。
我已经检查了http://linux.die.net/man/7/tcp所以现在我可以添加/编辑:
MSS、时间戳、窗口比例、Sack、快速打开(见下面的答案)
有没有办法添加其他选项?我对多路径特别感兴趣,但任何选项都会有所帮助。
谢谢!
在 Linux C 程序中,我可以为非特权套接字(非原始)上的传出 TCP 数据包设置哪些 TCP 选项?我指的是 TCP Header 中的 TCP Options。
我已经检查了http://linux.die.net/man/7/tcp所以现在我可以添加/编辑:
MSS、时间戳、窗口比例、Sack、快速打开(见下面的答案)
有没有办法添加其他选项?我对多路径特别感兴趣,但任何选项都会有所帮助。
谢谢!
TCP 快速打开可以与 MSG_FASTOPEN 标志一起使用,例如:
sendto(fd, data, len, MSG_FASTOPEN, ...
请注意,服务器端必须支持它 - 在 Linux 上,这可以通过以下方式完成:
echo 2 > /proc/sys/net/ipv4/tcp_fastopen
这里有一个方便的参考