当前位置: 技术问答>linux和unix
高分求教:linux下百兆网卡跑多大的UDP数据会丢包,请指点
来源: 互联网 发布时间:2016-05-11
本文导语: 本人正在做一个视频存储转发的程序,需要接收大量的UDP数据。 环境:suselinux10 SP2系统,集成网卡(RTL8100C),CPU应该足够强 测试:跑24Mbps的时候出现丢包的情况,socket接受缓冲区设置的足够大了18M。 请问为什么局...
本人正在做一个视频存储转发的程序,需要接收大量的UDP数据。
环境:suselinux10 SP2系统,集成网卡(RTL8100C),CPU应该足够强
测试:跑24Mbps的时候出现丢包的情况,socket接受缓冲区设置的足够大了18M。
请问为什么局域网还会丢包,一般百兆网卡跑多大的UDP数据会丢包?
环境:suselinux10 SP2系统,集成网卡(RTL8100C),CPU应该足够强
测试:跑24Mbps的时候出现丢包的情况,socket接受缓冲区设置的足够大了18M。
请问为什么局域网还会丢包,一般百兆网卡跑多大的UDP数据会丢包?
|
没有:(
看看有没有升级版,或者有没有其他人报这个BUG,有没有规避措施。
看看有没有升级版,或者有没有其他人报这个BUG,有没有规避措施。
|
在硬件层,如果发包负荷过重有可能也会导致丢包。因为,DMA环是大小是有限制的。可以在内核中打开NAPI选项,情况会好些
|
我觉得应该是接收端的处理能力不够,导致接收缓冲区满了导致丢包,增大接收端的接收缓冲区试一试。
|
UDP 的 send 发送数据时, 最大长度是有限制的, 超过这个限制,可能会丢包.
这个问题和你的接收缓冲区多大没有关系.
这个问题和你的接收缓冲区多大没有关系.
|
你指的丢包是指?你要先确定在那个环节丢的。是在发送端还是接收端。还是在当中的网络中。
|
接分,UDP的包大小和MTU值有关。MTU值一般都在1500以内,你的结果1024+IP报头小于你们网络的MTU值,所以没有问题
|
哪果只使用UDP协义无法保证不丢包,多媒体传输好像都是用基于UDP协义的RTP协义。
|
不太清楚你的18M缓冲区是指什么?DMA缓存区么? 还是Socket的receive_queue长度?
丢包在很多情况下都可能发生,局域网情况下网络丢包的可能性不大,应该是报文到了
协议栈以后处理不及时导致某个缓存区满了以后丢包的。因为Linux毕竟不是实时操作系统。
看看你的应用程序是否是实时进程?如果不是可以改为实时进程看看效果。
最好能用tcpdump抓包看看
|
为啥一定要用linux下的ethereal,windows下的一样可以抓呀。还方便点吧
|
ethreal本身都带很多的过滤方法啊,区分源IP just a piece of cake
|
关注。。。。