在Linux C程序中的非特权套接字(非原始)上设置TCP选项

时间:2015-11-03 14:27:14

标签: c linux sockets tcp setsockopt

我可以在Linux C程序中为非特权套接字(非原始)上的传出TCP数据包设置哪些TCP选项?我在TCP标头中引用TCP选项。

我已经检查了http://linux.die.net/man/7/tcp,所以现在我可以添加/编辑:

MSS,Tim​​estamp,Window Scale,Sack,Fast Open(见下面的答案)

有没有办法添加其他选项?我对Multipath特别感兴趣,但任何选项都会有所帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

TCP Fast Open可以与MSG_FASTOPEN标志一起使用,例如:

sendto(fd, data, len, MSG_FASTOPEN, ...

请注意,它必须得到服务器端的支持 - 在Linux上,这可以通过以下方式完成:

echo 2 > /proc/sys/net/ipv4/tcp_fastopen

有一个方便的参考here