gpt4 book ai didi

linux - 如何用 C 代码强制设置 MTU?

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:54 28 4
gpt4 key购买 nike

当我通过 TCP 套接字连接时,我的设备出现问题,因为客户端在 SYN 连接中发送 MSS,并且服务器(我的设备)使用相同的 MSS 设置,但我不想在我的设备中设置此 MSS。

那么我怎样才能在MSS中强制设置这个值呢?

我尝试使用 IP_DONTFRAG 的 setsockopt 函数设置 MTU

最佳答案

您应该能够使用 TCP_MAXSEG 选项调用 setsockopt 来设置 TCP 最大段大小。看看tcp(4)了解可用选项。您可能必须在 connectlisten 之前设置该选项。

对于设置 IP MTU,如果某个网段的 MTU 较小,IP_DONTFRAG 选项将导致数据包被丢弃。 IP 层应在收到“需要分段”响应后通过重新传输较小的数据包来协商合理的 MTU 值。 TCP 段和 IP 数据包位于协议(protocol)栈的不同层 - 换句话说,单个 TCP 段可以跨越多个 IP 数据包。更改 IP 数据包的大小不会影响 TCP 段的大小。

关于linux - 如何用 C 代码强制设置 MTU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52010734/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com