0

当发送大于 MTU 大小的 UDP 数据报时,只有 UDP 数据报的最后一个片段被发送到目的地。其余的片段被默默地丢弃。Sendto() 返回发送长度(无错误)。环境:操作系统:vxWorks6.8 CPU:ARM9 MTU:1500 vxWorks板通过以太网电缆直接连接到Win7 PC(使用wireshark)。未设置 DF 标志。

示例 1:使用 1400 字节的 sendto wireshark 显示:使用 1400 字节的 udp4

示例 2:发送到 1800 字节的wireshark 显示:分段 IP 协议 (proto=udp 0x11, off=1496, id0a00) -> Data (312 bytes)

示例 3:发送到 4000 字节的wireshark 显示:分段 IP 协议 (proto=udp 0x11, off=1496, id0a00) -> Data (1016 bytes)

示例 4:发送到 7800 字节的 Wireshark 显示:分段 IP 协议(​​proto=udp 0x11,off=1496,id0a00)-> 数据(328 字节)

我在第二块带有 CPU PPC 的 vxworks 板上使用了相同的测试,这工作正常,ip-fragmentation 工作正常。

为什么 udp 数据包的第一个片段总是被丢弃?非常感谢

4

0 回答 0