Linux 文件/proc/net/dev 是这样写的:
[me@host ~]$ cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
字段 drop 和 errs 是什么意思?
是否有一些错误数据包也算在丢弃数据包中?
为什么一个数据包被认为是errs,是因为它有校验和错误吗?
为什么丢包?是系统缓冲不够还是网卡突然爆了?
这两个字段是否考虑了发往另一台主机的数据包(例如,当 NIC 在混杂模式下工作时)?
最佳答案
你可以查看源代码树中的 net/core/dev.c
来了解它的含义:
seq_printf(seq, "%6s:%8lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu "
"%8lu %7lu %4lu %4lu %4lu %5lu %7lu %10lu\n",
dev->name,
stats->rx_bytes,
stats->rx_packets,
stats->rx_errors,
stats->rx_dropped + stats->rx_missed_errors,
stats->rx_fifo_errors,
stats->rx_length_errors + stats->rx_over_errors +
stats->rx_crc_errors + stats->rx_frame_errors,
stats->rx_compressed,
stats->multicast,
stats->tx_bytes,
stats->tx_packets,
stats->tx_errors,
stats->tx_dropped,
stats->tx_fifo_errors,
stats->collisions,
stats->tx_carrier_errors + stats->tx_aborted_errors +
stats->tx_window_errors + stats->tx_heartbeat_errors,
stats->tx_compressed);
所以:
- 接收错误是指任何类型的无效数据包,例如无效长度或无效校验和
- 传输错误是
- 运营商错误
- 中止错误
- 窗口错误
- 心跳错误
(不管它们是什么意思)
是的,我认为丢弃意味着设备因缓冲区空间不足而丢弃数据包。
关于linux -/proc/net/dev 中字段的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3521678/