2011-11-28 26 views
2

我想知道MSS如何在SYN数据包中设置?在一个操作系统中它是固定值还是可以在同一操作系统中更改该值?我知道不同操作系统的价值是不同的。 SYN中的MSS值与硬件配置有关吗? 谢谢。MSS值是否固定在SYN数据包中?

回答

0

RFC 879描述如何使用和指定MSS。

简而言之,MSS是通过SYN数据包在TCP握手期间指定的。但是,此值可以稍后由操作系统本身或通过设置协议选项进行更改。

您可以通过setsockopt设置选项TCP_MAXSEG。

+0

感谢您的回答。在当前的现有操作系统(例如Windows,Linux)中,MSS如何在SYN数据包中设置?在一个操作系统中,MSS是否设置为固定值或不在其SYN包中? – ginny

+0

MSS被设置为SYN数据包中的一个选项。在不同的操作系统中,MSS的值设置不同。例如,在Windows中,可以通过系统注册表全局设置:http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html寻找TcpWindowSize参数。在Linux上,可以通过TCP_MAXSEG参数(http://linux.die.net/man/7/tcp) –

+0

为每个连接设置此参数感谢您的回答。现在,我正在使用TCP指纹进行操作系统检测。它分析来自远程操作系统的SYN数据包中的一些字段。所以从你的回答中,SYN数据包中所有字段的值都是固定在一个OS中的(他们已经注意到了硬件?)。他们不会改变,除非后来确定,对吧? – ginny

0

我们可以通过设置套接字选项TCP_MAXSEG来设置tcp会话期间的MSS值吗? 我的要求是在正在进行的tcp数据会话期间编辑MSS值。

相关问题