我正在编写基于 UDP 的网络协议(protocol)。我遇到了 DatagramSocket 的奇怪行为。当我设置大发送缓冲区时,丢弃率很高,但应该相反。
知道为什么会这样吗?
提前致谢!
“大缓冲区大小”是指 16-32 Mb
我的测试环境是 1Gbit 网络,具有高延迟(240 毫秒往返)
最佳答案
网络适配器和路由器中的缓冲区是有限的。如果你填充它们,即使有很多小消息,数据包也会被丢弃。某些路由器的每个连接的缓冲区大小为 1 MB(因此,如果连接到路由器,则缓冲区大小是该连接上所有内容的总和)
关于java - 为什么数据报套接字缓冲区大时,丢弃率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14125354/