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

标签 c linux sockets tcp setsockopt

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

我检查过 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

有一个方便的引用 here

关于c - 在 Linux C 程序中的非特权套接字(非原始套接字)上设置 TCP 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33501576/

相关文章:

c - 在使用 execve() 时寻找匹配的 `' 时出现意外的 EOF

c - 从文件中拆分文本

c - c程序编译生成的.exe文件和vb程序编译生成的.exe文件有什么区别

Java 调度执行器线程进入等待状态

c - 如何在 Netbeans 中获取 C 文档?

linux - 如何使用 shell 脚本重新格式化 csv 文件中的数据

java - 强制 Java2D 子像素抗锯齿

python - 如何从/dev/input/mice 读出滚轮信息?

java - 尝试连接到 TCP 服务器时出现套接字异常

Java NIO 服务器/客户端聊天应用程序 - 仅通过关闭套接字发送数据