日期:2014-05-16  浏览次数:20969 次

如何降低UDP的丢帧率
传输视频码流,250路,2Mbit/s,运行1天左右。有时某些时段会有大量丢帧(10%左右),有时则连续不到1%的丢帧。
传输层协议用的是UDP。

把sysctl配置改了。
net.core.rmem_default = 256000
net.core.wmem_default = 256000
net.core.rmem_max = 1024000
net.core.wmem_max = 1024000
丢帧率没有明显改善。

目标:避免连续丢帧和偶尔3%以下的丢帧。
请教各位,有没有其他办法呀?

------解决方案--------------------
换用 TCP 来保证可靠传输;否则自己实现一个可靠 UDP 传输协议
------解决方案--------------------
QOS开了没?
------解决方案--------------------
SCTP
------解决方案--------------------
我只知道UDT这个开源库是可靠的UDP,做视频传输刚刚的。
------解决方案--------------------
探讨

引用:
QOS开了没?


这个不是很懂啊。
find / -name *qos*一下,只找到了几个头文件。
/usr/src/kernels/***/include/net/irda/qos.h
/usr/src/kernels/***/include/config/ipw2200/qos.h
/usr/src/kernels/***/include/linu……

------解决方案--------------------
把缓冲区调大一点试试。250路,你用250个线程来接收吧!
------解决方案--------------------
实在是极限的话,试试更新下网卡的驱动,或者加强CPU。
------解决方案--------------------
一般丢包都不会发生在发送端,很有可能是接收端来不及处理
------解决方案--------------------
UDP丢包无解,可靠UDP,性能比TCP还要差吧?
------解决方案--------------------
希望楼主 有时间把这个写成博客 然后详细分享下你的经验 把链接放在这里 麻烦了!
------解决方案--------------------
探讨

网络条件差的话,udp丢包率根本无法通过软件优化解决,增加超时重发机制,效果往往比tcp更差