java - UDP 多播丢包率高

标签 java udp multicast

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

我使用数据包的最大实用大小,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/

相关文章:

java - 将自定义文件扩展名与我在 Windows 上的 java 程序相关联

Java8 vs Go 执行速度

iphone - iOS 4 后台模式下的 NSTimer 或 NSThread

c - sendto() - C 中的 UDP 单播

c++ - ZeroMQ:使用 EPGM 传输

java - MulticastSocket 加入/离开组、发送、接收线程安全

java - 质数算法不起作用

c++ - 可靠的 UDP 实现

C 在所有接口(interface)上监听多播,响应与接收到的相同

Java : use Streams to convert List<Object> to another List<anotherObject>