【发布时间】:2021-09-10 02:05:57
【问题描述】:
我有一个 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 是否确实丢弃了数据包?
【问题讨论】:
标签: java windows networking buffer multicast