我正在通过多播套接字发送数据包。
我正在使用max pratical 大小的数据包,65 507字节(65,535 - 8字节UDP标头 - 20字节IP标头)。
但是,即使服务器和客户端位于同一台计算机上,也会导致40-50%的数据包丢失。
在测试了一些值之后,我注意到如果数据包大小小于10 000字节,我只能获得0%的数据包丢失。
为什么?是我的笔记本电脑的网卡限制?或者这本身就是UDP本身的问题?
答案 0 :(得分:3)
我正在使用数据包的最大实际大小,65 507字节
不,你不是。 65,507是最大理论大小。比这更大的尺寸在IPv4中不可能。
最大实际大小为534左右,无论是什么都不需要分段。一旦发生碎片,就会增加数据报丢失的可能性与产生的碎片数量相同的因素,因为UDP中没有任何东西可以恢复丢失的碎片。