c TCP rawsocket选项

时间:2015-01-29 02:33:26

标签: c sockets tcp

如何包含TCP选项 MSS(最大段大小), WS(窗口比例), 允许SACK的。 c raw socket中的选项

我们可以在TCP中包含其他选项,例如source,destination,syn,ack tcp->srctcp->dsttcp->syntcp->ack。 ......... 但当我包括tcp reserverd特殊选项mss,ws tcp->msstcp->ws
它显示MSS,WS不在tcp标头中的错误 任何人都可以告诉我如何在tcp原始套接字中包含这些选项

谢谢

1 个答案:

答案 0 :(得分:1)

Linux中的TCP WS

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

修改TCP WS的一种方法是使用以下sysctl变量的混合(在man tcp中详细了解它们):

  • tcp_wmem
  • tcp_rmem
  • tcp_window_scaling

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

Linux中的TCP MSS

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

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

如果我错了,请纠正我。