我有一个监听多播(由java服务器发送)的java客户端。我将接收端的套接字缓冲区设置为大约10兆字节。目前,接收器既在linux系统上又在windows系统上。我遇到了在操作系统级别丢弃数据包的问题,但我意识到接收缓冲区太小。在linux上,我可以很容易地修复这个问题,方法是在
sysctl net.core.rmem_max
sysctl net.core.rmem_default
然而,我似乎不能得到与windows相同的结果。我尝试在注册表项的ADP/Parameters
中设置DefaultReceiveWindow
,并尝试最大限度地设置网卡上的缓冲区设置。这两种设置都不起作用,我仍然在windows的客户端上丢弃了很多数据包。
我已经通过pcap捕获确认了丢弃数据包的不是我的应用程序,因为pcap文件也不产生数据包。是否有其他设置我没有在windows中正确设置?我应该检查的其他东西,以验证windows实际上正在丢弃数据包?
发布于 2021-08-11 16:10:09
你检查过windows任务管理器上的CPU/网络/内存使用情况了吗?另外,您能否估计接收方接收到的数据包的百分比?例如,接收方收到30%的数据包?
https://stackoverflow.com/questions/68151990
复制相似问题