如何包含TCP选项 MSS(最大段大小), WS(窗口比例), 允许SACK的。 c raw socket中的选项
我们可以在TCP中包含其他选项,例如source,destination,syn,ack
tcp->src
,
tcp->dst
,
tcp->syn
,
tcp->ack
。
.........
但当我包括tcp reserverd特殊选项mss,ws
tcp->mss
,tcp->ws
。
它显示MSS,WS不在tcp标头中的错误
任何人都可以告诉我如何在tcp原始套接字中包含这些选项
谢谢
答案 0 :(得分:1)
假设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窗口缩放。
再一次,我相信这只能在内核级别实现。您可以使用man tcp
内核模块覆盖MSS的默认计算(基于跳距离动态计算)。具体来说,使用iptables
选项。
请参阅:http://lartc.org/howto/lartc.cookbook.mtu-mss.html
如果我错了,请纠正我。