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