当我通过TCP套接字进行连接时,我的设备上有一个issu,因为客户端在SYN连接中发送了MSS,并且服务器(我的设备)使用相同的MSS进行设置,但我不想设置此MSS在我的设备中。
那么如何在MSS中强制设置此值?
我尝试通过IP_DONTFRAG的 setsockopt 函数设置 MTU 值
答案 0 :(得分:1)
您应该可以使用setsockopt
选项调用TCP_MAXSEG
来设置TCP最大段大小。查看tcp(4)中的可用选项。您可能必须在connect
或listen
之前设置该选项。
关于设置IP MTU,如果段的MTU较小,则IP_DONTFRAG
选项将导致丢包。 IP层应在收到“需要分段”响应后,通过重传较小的数据包来协商合理的MTU值。 TCP段和IP数据包位于协议堆栈的不同层上-换句话说,单个TCP段可以跨越多个IP数据包。更改IP数据包的大小不会影响TCP段的大小。