我想了解一些行为,我看到在发送UDP数据包的情况下。UDP IP分段和MTU
我有两个小Java程序:一个传输UDP数据包,另一个接收它们。我在两台通过一台交换机连接的计算机之间的网络上本地运行它们。
两个网络适配器上的MTU设置(由/ sbin/ifconfig报告)均为1500。
- 如果我发送大小为< 1500的数据包,我会收到它们。预期。
- 如果我有1500 <大小< 24258我收到他们发送数据包。预期。我已经通过wireshark证实IP层将它们分解。
- 如果我发送的数据包大小为> 24258,他们都将丢失。没有预期的是。当我在接收端运行wireshark时,我没有看到任何这些数据包。
我能够看到与ping -s类似的行为。
ping -s 24258 hostA
的作品,但
ping -s 24259 hostA
失败。
有谁了解可能发生的情况,或者有什么我应该寻找的想法?
两台计算机正在运行CentOS 5的64位。我使用1.6 JDK,但我并不认为这是一个编程问题,它是一个网络或操作系统问题。 IP协议的
你可能有更好的运气问这在serverfault.com。 – 2010-09-14 19:27:27
wireshark在连接的发送端显示“size> 24258”的数据包是什么? – 2010-09-14 19:31:01
@Kaleb我不是wireshark专家,但发送端的捕获看起来是相同的,无论数据包大小是>还是<24258.我看到分段的IP数据包,但我只看到UDP数据包的小数据包(我有非常小和非常大的数据包的组合)。我发送的数据是二进制数据,因此很难弄清楚哪些IP数据包属于哪个UDP数据包。我可能会尝试使用更可预测的数据进行更简单的测试,并查看wireshark演示。但是直到明天我才会明白。 @ire_and_curses,谢谢我不确定什么serverfault完全包含。我可能会在那里尝试。 – wolfcastle 2010-09-14 20:42:58