首页 > 代码库 > linux系统内核UDP丢包原因分析
linux系统内核UDP丢包原因分析
linux系统内核UDP丢包原因分析
1、UDP校验和错误
现象:可以用netstat -su 查看到有UDP错包。
tcpdump捕包,在wireshark打开捕获的udp报文,开启校验和选项,有错包。
方案:查找链路故障 www.ahlinux.com
2、防火墙开启
现象:特定端口的包收不到
方案:使用service iptables stop关闭。
3、rp_filter开启
现象:tcpdump有包,协议栈收不到。某个地址发送的包一个包都收不到,而另一地只发过来的没问题。
方案:将/etc/sysctl.conf中rp_filter设为0。
参见:http://serverfault.com/questions/163244/linux-kernel-not-passing-through-multicast-udp-packets
校验包的源地址与其网卡地址的开关,防止IP欺骗,linux 2.6.32默认开启。
4、应用程序性能问题,缓冲区满。
现象:应用断断续续能收到UDP包。
方案:使用vmstat和top命令发现cpu或IO过载。增大缓冲区,优化程序。
- 本文来自:Linux教程网
linux系统内核UDP丢包原因分析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。