使用套接字选项的路径MTU发现 - IP_MTU& IP_MTU_DISCOVER

时间:2015-03-12 12:48:18

标签: c sockets tcp mtu

我在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)而不是Path MTU:1000。

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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

在客户端设置低MTU并不意味着它不能接收更大尺寸的数据报,这只意味着它不能发送它。