wol*_*tle 14 linux networking udp
我试图理解我在发送UDP数据包的上下文中看到的一些行为.
我有两个小Java程序:一个传输UDP数据包,另一个接收它们.我在两台通过单个交换机连接的计算机之间的网络上运行它们.
两个网络适配器上的MTU设置(由/ sbin/ifconfig报告)为1500.
我能够看到ping -s的类似行为.
ping -s 24258 hostA 工作,但
ping -s 24259 hostA 失败.
有没有人理解可能发生的事情,或者对我应该寻找什么有所了解?
两台计算机都运行CentOS 5 64位.我使用的是1.6 JDK,但我并不认为这是一个编程问题,它是一个网络或操作系统问题.
Dan*_*ing 10
IP协议的实现不需要能够处理任意大的分组.理论上,最大可能的IP数据包大小为65,535个八位字节,但标准仅要求实现支持至少576个八位字节.
看起来您的主机实现支持的最大大小远大于576,但仍远小于最大理论大小65,535.(我不认为交换机应该是一个问题,因为它不需要进行任何碎片整理 - 它甚至不在IP层运行).
IP标准进一步建议主机不发送大于576字节的数据包,除非他们确定接收主机可以处理更大的数据包大小.你应该考虑一下你的程序发送更小的数据包大小是否会更好.24,529对我来说似乎非常大.我认为很多主机可能不会处理大的数据包.
请注意,这些数据包大小限制完全独立于MTU(数据链路层协议支持的最大帧大小).
我发现了以下可能感兴趣的内容:
Dan的答案很有用,但请注意,在标题之后,你真的限制在65507字节.