在 CentOS(或一般 Linux 网络排查)语境里,“dropped” 和“丢包”经常一起出现,但二者不完全等同,需要看是在哪一层、哪个工具里看到的。
下面分层说明它们的关系。
dropped 是什么dropped 通常表示:
内核或网络设备接收/发送时,因为某种原因把包丢弃了
它属于“丢包”的一种,但不是所有“丢包”都叫 dropped。
dropped 的地方ifconfig / ip -s linkRX packets 100000 bytes 10000000
RX errors 0 dropped 123 overruns 0
dropped:接收到的包被内核丢弃✅ 这里的 dropped = 接收侧丢包
ethtool -S eth0rx_dropped: 123
tx_dropped: 0
✅ 这是硬件/驱动层丢包
netstat -s / nstatTcpExt: ListenDrops
TcpExt: TCPBacklogDrop
ListenDrops:半连接队列/全连接队列满TCPBacklogDrop:socket 接收队列满✅ 这是TCP 协议栈丢包
tc(流量控制)tc -s qdisc show
dropped 由 qdisc(如 pfifo_fast、htb)产生✅ 这是发送侧主动丢包
**丢包(packet loss)**包括:
| 类型 | 是否叫 dropped |
|---|---|
| 网卡 dropped | ✅ |
| 内核协议栈 dropped | ✅ |
| 防火墙 DROP | ✅ |
| TCP 重传 | ❌(不算 dropped,但是“丢”了) |
| 网络链路丢包 | ❌(对主机不可见) |
| 应用没读 socket | ❌(可能 backlog drop) |
dropped ⊆ 丢包
dropped:主机可见、可统计的丢包ip -s linkethtool -S eth0netstat -s | grep -i dropdmesg | grep -i ethiptables -L -v -n如果你有具体命令输出,我可以帮你判断是哪一层的 dropped。