1

我正在Linux中对路径MTU发现进行一些实验-TCP连接,客户端和服务器配置了不同的MTU。(分别为MTU 1500和1000)。

在服务器和客户端之间的 TCP_CONNECT 之后,我使用以下命令观察客户端中配置的 MTU,如下所示。

  getsockopt(iSocketId,IPPROTO_IP,IP_MTU,(char *)&socket_mtu, &size);
  printf("MTU --> %d\n",socket_mtu); 

我相信 getsocketopt 返回“路径 MTU”而不是客户端的 MTU。

但我收到 MTU - 1500(客户端 MTU)而不是路径 MTU:1000。

请给出一些想法以使用 getsockopt 获取 PATH MTU。非常感谢示例。

提前致谢。

4

1 回答 1

3

您可能想了解Path MTU Discovery的工作原理。

路径 MTU 可以是不对称的,在不同方向具有不同的 MTU 值。

您在客户端上设置低 MTU 的事实并不意味着它无法接收更大尺寸的数据报,它仅意味着它无法发送它。

于 2015-03-16T08:34:56.747 回答