java - 为什么数据报套接字缓冲区大时,丢弃率高

标签 java networking network-programming udp

我正在编写基于 UDP 的网络协议(protocol)。我遇到了 DatagramSocket 的奇怪行为。当我设置大发送缓冲区时,丢弃率很高,但应该相反。

知道为什么会这样吗?

提前致谢!

大缓冲区大小”是指 16-32 Mb

我的测试环境是 1Gbit 网络,具有高延迟(240 毫秒往返)

最佳答案

网络适配器和路由器中的缓冲区是有限的。如果你填充它们,即使有很多小消息,数据包也会被丢弃。某些路由器的每个连接的缓冲区大小为 1 MB(因此,如果连接到路由器,则缓冲区大小是该连接上所有内容的总和)

关于java - 为什么数据报套接字缓冲区大时,丢弃率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14125354/

相关文章:

java - Struts2 在得到结果后是否关闭 "InputStream"?

c - recv()对于大量数据不起作用

objective-c - 如何使用 Cocoa 或 Foundation 获取当前连接的网络接口(interface)名称?

c# - 使用C#中的蓝牙在2台计算机上的2个应用程序之间创建基本文件传输

c++ - 回声服务器示例

java - 如何从响应中提取文档 ID - ElasticSearch Java Low Level Rest Client

java - 在 onOptionsItemSelected 中选择第二个项目会导致应用程序崩溃

java - 如何在响应正文中返回 WireMock 服务器端口

linux - 两个linux嵌入式设备如何在以太网上通信

python - PySocks代理功能可以与praw API一起使用吗?