当前位置: 首页 > 知识库问答 >
问题:

UDP数据包丢弃-INErrors Vs.rcvbuferrors

刘瑞
2023-03-14

我编写了一个简单的UDP服务器程序来了解更多可能的网络瓶颈。

UDP客户端:我使用hping如下所示:

HPING 3 192.168.1.2-UDP-P 9996--洪水-D 100

当我以每秒100个数据包的速度发送udp数据包时,我没有发现任何udp数据包丢失。但是当我泛洪udp数据包时(如上面的命令所示),我会看到大量的数据包丢失。

因此,为了减少数据包丢失,我尝试了以下操作:
-使用renice命令增加示例程序的优先级。
-增加接收缓冲区大小(在系统级和进程级)

将优先级提高到-20:

renice-20 202 2
2022(进程ID)旧优先级0,新优先级-20

cat/proc/net/snmp grep udp:
udp:InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors sndbuferrors
udp:1849064 0 136 286 236 0 0

对于Test2,数据包丢失百分比为6%。

数据包丢失显著减少。但我有以下几个问题:

    null

共有1个答案

史良哲
2023-03-14

对Linux内核的网络堆栈进行调优以减少数据包丢弃是一件有点复杂的事情,因为从驱动程序一直到网络堆栈都有很多调优选项。

我写了一篇长长的博客文章,从上到下解释了所有的调优参数,并解释了/proc/net/snmp中每个字段的含义,这样您就可以弄清楚为什么会出现这些错误。看看吧,我想它应该能帮你把你的网络降至0。

 类似资料:
  • 我一直在写一个程序,它使用UDP上的停止和等待协议通过局域网和广域网发送数据包。我最近一直在测试我的程序,并注意到较大的数据包(接近64k字节)的丢包率更高。直觉上这是有道理的,但实际原因是什么?

  • 问题内容: 我正在发送非常大的数据报(64000字节)。我意识到MTU远小于64000字节(根据我的阅读,典型值约为1500字节),但我怀疑会发生以下两种情况之一- 要么没有数据报都能通过(所有大于1500字节)会被静默丢弃或导致引发错误/异常),否则64000字节数据报将被分拆成大约43 1500字节消息并透明地传输。 从长远来看(2000+ 64000字节数据报),约有1%的数据报(甚至对于L

  • 好的,我正在为我的网络课程编程,我必须使用UDP在Java中实现一个项目。我们正在实现一个HTTP服务器和客户端以及一个“gremlin”函数,该函数以指定的概率破坏数据包。HTTP服务器必须在应用层将一个大文件分成多个段,然后通过UDP发送到客户端。客户端必须在应用层重新组装接收到的段。然而,我想知道的是,如果UDP根据定义是不可靠的,为什么我必须在这里模拟不可靠? 我的第一个想法是,也许这仅仅

  • 除了前一节介绍的权重衰减以外,深度学习模型常常使用丢弃法(dropout)[1] 来应对过拟合问题。丢弃法有一些不同的变体。本节中提到的丢弃法特指倒置丢弃法(inverted dropout)。 方法 回忆一下,“多层感知机”一节的图3.3描述了一个单隐藏层的多层感知机。其中输入个数为4,隐藏单元个数为5,且隐藏单元$h_i$($i=1, \ldots, 5$)的计算表达式为 $$h_i = \p

  • 我检查了Wireshark中未显示的UDP数据包和Wireshark未捕获的UDP数据包,但UDP应用程序捕获了该数据包,但无法解决我的问题。 我正在使用Wireshark观察我连接到某个网络设备的适配器上的通信量-除了我发出的通信量之外,没有其他通信量。 然后我正在使用Packet Sender应用程序将UDP数据包发送到我知道在适配器另一端的IP地址(即我是10.10.10.34,另一个设备是

  • 我不知道是网络配置还是我的软件出了问题。 这是监听代码: 奇怪的是,在wireshark上,我可以看到:数据包已从发送到,并且设备已对此数据包作出响应--来自的数据包已发送到。使用bind(0.0.0.0,端口)似乎不能涵盖。我迷路了,一点主意都没有。 ifconfig为: