Vxworks使用UDP发送大数据包

 问题:使用Vxworks发送数据包(20476 Byte)到Windows XP,当程序工作一段时间20分钟左右再也接收不到数据。但是如果使用 windows与windows之间,vxworks与vxworks之间数据一直接收良好。

原因: VxWorks5.5与Windows的IP分片算法不一致。 VxWorks 5.5 底层IP分片时把数据包分为了两个包(共14片:一个包为13片,共计20402个字节;一个包为1片,344字节)发送,这就导致我windows端在接收时把其当成两个包来处理,这样windows的IP层就没法把接收到的两个UDP包组合成一个UDP包上传给上层。 所以当vxworks拆分后的两个包中的任意一个丢失时,window端相当与只接收到的一个数据包一部分,就会导致数据一直错位。

你可能感兴趣的:(Working)