c TCP 原始套接字选项

c TCP rawsocket options

如何包含 TCP 选项 MSS(最大段大小), WS(window比例), sack-permitted。 c 原始套接字中的选项

我们可以在 TCP 中包含其他选项,如源、目标、syn、ack tcp->src, tcp->dst, tcp->syn, tcp->ack。 ………… 但是当我包括 tcp reserverd 特殊选项 mss,ws tcp->mss,tcp->ws.
它显示 MSS、WS 不在 tcp header 中的错误 谁能告诉我如何在 tcp raw socket

中包含这些选项

谢谢

Linux

中的 TCP WS

假设Linux,我相信你不能直接改变C中的TCPwindow大小。这是因为这是由内核直接处理的。

修改 TCP WS 的一种方法是混合使用以下 sysctl 变量(在 man tcp 中阅读有关它们的更多信息):

  • tcp_wmem
  • tcp_rmem
  • tcp_window_scaling

根据 RFC 1323 (https://www.ietf.org/rfc/rfc1323.txt),TCP window 缩放允许最大 WS 为 65K。 Linux 内核中默认的最大 TCP WS 是 32K。根据 man tcp,您将增加套接字缓冲区的大小,此时将使用 TCP Window 缩放。

Linux

中的 TCP MSS

再一次,我相信这只能在内核级别实现。您可以使用 iptables 内核模块覆盖 MSS 的默认计算(基于跳跃距离动态计算)。具体来说,使用 --set-mss 选项。

参见:http://lartc.org/howto/lartc.cookbook.mtu-mss.html

如有错误请指正