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
如有错误请指正
如何包含 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
如有错误请指正