标签: java networking network-programming udp
我正在编写基于UDP的网络协议。我遇到了DatagramSocket的奇怪行为。当我设置大的发送缓冲区时,丢弃率很高,但它应该是相反的。
为什么会这样做?
非常感谢!
“大缓冲区大小”是指16-32 Mb
我的测试环境是1Gbit网络,具有高延迟(240 ms往返)
答案 0 :(得分:4)
网络适配器和路由器中的缓冲区有限。如果你填充它们,即使有很多小消息,也可以丢弃数据包。有些路由器的每个连接的缓冲区大小为1 MB(因此,如果它连接到路由器,那就是通过该连接的所有内容的总数)