使用套接字选项的路径 MTU 发现 - IP_MTU & IP_MTU_DISCOVER
Path MTU Discovery using Socket option - IP_MTU & IP_MTU_DISCOVER
我正在 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 return "Path MTU" 而不是客户端的 MTU。
但我收到 MTU - 1500(客户端 MTU)而不是路径 MTU:1000。
请给出一些使用 getsockopt.Examples 获取 PATH MTU 的想法,非常感谢。
提前致谢。
您可能想阅读 Path MTU Discovery 的工作原理。
路径 MTU 可以不对称,不同方向的 MTU 值不同。
您在客户端上设置较低的 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 return "Path MTU" 而不是客户端的 MTU。
但我收到 MTU - 1500(客户端 MTU)而不是路径 MTU:1000。
请给出一些使用 getsockopt.Examples 获取 PATH MTU 的想法,非常感谢。
提前致谢。
您可能想阅读 Path MTU Discovery 的工作原理。
路径 MTU 可以不对称,不同方向的 MTU 值不同。
您在客户端上设置较低的 MTU 并不意味着它不能接收 更大的数据报,它只意味着它不能发送 它。