在Ubuntu中,“Dropped”通常指网络数据包丢失,与内核的网络子系统密切相关,以下是其技术细节:
- 统计方式:从Linux 2.6.37内核起,“dropped”包统计方式改变,不仅包含传统错误导致的丢包,还涵盖Softnet backlog满、错误VLAN标签、未知协议等情况。
- 常见原因:
- 内存不足:系统内存不够,导致数据包进入Ring Buffer后无法拷贝到内存而被丢弃。
- CPU处理能力不足:CPU繁忙,无法及时处理网卡中断,使Ring Buffer满,新数据包无法进入。
- 协议不支持:收到主机未注册或不支持的协议数据包会被丢弃。
- 排查方法:
- 使用命令查看:通过
ifconfig
查看RX dropped
等统计信息;用ethtool -S
查看网卡详细丢包统计;借助netstat -s
查看网络层统计信息。 - 抓包分析:使用
tcpdump
或Wireshark
抓包,判断是否因异常流量或协议问题导致丢包。