Java UDP多播数据包丢失率高

Java UDP多播数据包丢失率高,java,udp,multicast,Java,Udp,Multicast,我正在通过多播套接字发送数据包 我使用数据包的最大实际大小,65507字节(65535− 8字节UDP报头− 20字节IP报头) 然而,这会导致40-50%的数据包丢失,即使服务器和客户端在同一台计算机上 在测试了一些值之后,我注意到如果数据包大小小于10000字节,我只能得到0%的数据包丢失 为什么呢?我的笔记本电脑的网卡有限制吗?还是UDP本身有问题 我使用的是数据包的最大实际大小,65507字节 不,你不是。65507是最大理论尺寸。在IPv4中不可能有比这更大的大小 最大实际尺寸为534

我正在通过多播套接字发送数据包

我使用数据包的最大实际大小,65507字节(65535− 8字节UDP报头− 20字节IP报头)

然而,这会导致40-50%的数据包丢失,即使服务器和客户端在同一台计算机上

在测试了一些值之后,我注意到如果数据包大小小于10000字节,我只能得到0%的数据包丢失

为什么呢?我的笔记本电脑的网卡有限制吗?还是UDP本身有问题

我使用的是数据包的最大实际大小,65507字节

不,你不是。65507是最大理论尺寸。在IPv4中不可能有比这更大的大小


最大实际尺寸为534左右,任何需要的尺寸都不会被分割。一旦出现碎片,数据报丢失的概率就会增加,增加的因素与产生的碎片数量相同,因为UDP中没有任何东西可以恢复丢失的碎片。

“基础IPv4协议对数据长度施加的实际限制是65507字节”。无论如何,我明白拥有如此大的数据包会增加数据包丢失的机会。但是50%?对于这么大的数据包,这是一个正常值吗?实际上,实际限制仍然是我所说的,或者最多是路径MTU。如果没有关于你的网络、网络饱和、传输或接收速率的任何数据,你就不可能回答你的最后一个问题。注:我更正了维基百科,这让你知道你可以在多大程度上依赖它。