linux接收数据包流程图如下:
排查思路如下:
1,服务器查看网口是否up:
Ip link show
如果down
Ethtool <网卡名称>查看speed和duplex是否协商正确
2,查看直连交换机arp是否正确(vlan配置不对无法学到arp,只有mac-address):
ifconfig查看服务器mac地址
3,查看直连交换机是否有过滤和接口input和output packet,有没有crc
4,服务器ifconfig <网卡名称>:从/proc/net/dev中取的数据
RX packets:
RX errors:表示总的收包的错误数量,包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等
RX dropped:表示已进入ring buffer,但是由于内存不足等系统原因,导致在拷贝到内存的过程中丢失。
RX overruns:表示数据包未到ring buffer就被丢弃,主要原因是CPU处理速度慢
RX frame:
TX:发送出,其他同上
5,ethtool -S <网卡名称>查看drop,errors,fifo是否不为0。
6,如怀疑驱动有问题,尝试bios配置网卡地址跳过内核测试。
参考命令:
Netstat -I查看信息统计,类似ifconfig
Netstat -s查看上层协议统计信息
参考资料:
https://www.cnblogs.com/morse/p/13427503.html
网卡收发包流程浅析(一)(转) - Albert的博客 | Albert's Blog
https://www.cnblogs.com/edisonfish/p/17637507.html
ethtool 原理介绍和解决网卡丢包排查思路-腾讯云开发者社区-腾讯云