天不再蓝 发表于 2013-07-01 15:33

UDP端收包问题

我如果建了个UDP并绑在特定的端口上后就一直sleep不收包,然后在另外一台电脑一直往这个端口发包,
这个接收端会有溢出么?还是无影响?

myworkstation 发表于 2013-07-01 22:53

当到达的UDP数据包塞满接收缓冲区之后,再到达的包将被内核丢弃,不会存在溢出的问题。

天不再蓝 发表于 2013-07-02 09:19

myworkstation 发表于 2013-07-01 22:53 static/image/common/back.gif
当到达的UDP数据包塞满接收缓冲区之后,再到达的包将被内核丢弃,不会存在溢出的问题。

这个在ifconfig上看到会显示为 dropped么?

myworkstation 发表于 2013-07-02 10:34

造成包dropped的原因不会只有buffer fully这一种,无论哪种原因产生的dropped都会显示在那里。
查看dropped的方式有
1. ifconfig
2. cat /proc/net/dev
3. cat /proc/net/udp

也可以使用netstat 查看,但在linux下不能正常标识丢包只是报告出错,在freebsd下可以标识出因缓冲区满导致丢包

天不再蓝 发表于 2013-07-02 10:54

myworkstation 发表于 2013-07-02 10:34 static/image/common/back.gif
造成包dropped的原因不会只有buffer fully这一种,无论哪种原因产生的dropped都会显示在那里。
查看droppe ...

最近在用SIPP软件,比较疑惑的就是SIPP的RTP用户面接收其从代码上看是不进行recv或者recvfrom操作的(仅仅是在开始
bind了特定端口的socket),但实际上执行的时候,通过ifconfig看其并没有dropped这个统计啊,所以感觉很奇怪.

公司不能上传图片,大致统计就是如下:
RX packets:10272638 errors:0 dropped:0 overruns:962184 frame:0

overrruns是因为内核来不及软中断而导致的丢包(看top的时候 %si 是100%的,而且出现了 ksoftirqd进程).
页: [1]
查看完整版本: UDP端收包问题