我正在通过多播套接字发送数据包。
我使用数据包的最大实用大小,65 507 字节(65,535 - 8 字节 UDP header - 20 字节 IP header )。
但是,即使服务器和客户端位于同一台计算机上,这也会导致 40-50% 的数据包丢失。
测试了一些值后,我注意到如果数据包大小小于 10 000 字节,我只能得到 0% 的数据包丢失率。
这是为什么呢?我的笔记本电脑的网卡有限制吗?还是UDP本身的问题?
最佳答案
I'm using the max pratical size for the packets, 65 507 bytes
不,你不是。 65,507 是最大的理论大小。在 IPv4 中,大于此大小是不可能的。
最大实际大小为 534 或左右,只要不被碎片化即可。一旦发生碎片,数据报丢失的可能性就会增加,其增加的因素与产生的碎片数量相同,因为 UDP 中没有任何东西可以恢复丢失的碎片。
关于java - UDP 多播丢包率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43275148/