/ proc / net / dev中字段的含义是什么?

时间:2010-08-19 12:22:09

标签: linux tcp

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 是什么意思?

drop 数据包中是否还计入了一些 errs 数据包?

为什么数据包被认为是 errs ,是因为它遭受校验和错误?

为什么丢包?是因为系统没有足够的缓冲区,因为NIC上有一些突发?

这两个字段是否会将发往其他主机的数据包(例如,当NIC在混杂模式下工作时)考虑进去?

3 个答案:

答案 0 :(得分:18)

您可以查看源代码树中的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);

所以:

  • 接收错误表示任何类型的无效数据包,例如无效长度或无效校验和
  • 传输错误
    • 运营商错误
    • 中止错误
    • 窗口错误
    • 心跳错误
      (无论他们都是什么意思)

是的,我认为drop意味着当设备因为缓冲区空间不足而丢弃数据包时。

答案 1 :(得分:7)

根据http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html,每列的含义是:

  

bytes 接口发送或接收的数据的总字节数。

     

数据包接口发送或接收的数据包总数。

     

错误设备检测到的传输或接收错误总数   驱动程序。

     

drop 设备驱动程序丢弃的数据包总数。

     

fifo FIFO缓冲区错误的数量。

     

frame 数据包帧错误的数量。

     

colls 在界面上检测到的碰撞次数。

     

压缩设备发送或接收的压缩包数   驱动程序。 (这似乎在2.2.15内核中未使用。)

     

运营商设备驱动程序检测到的运营商丢失数量。

     

多播设备发送或接收的组播帧数   驱动程序。

答案 2 :(得分:-1)

由于近六个月没有人回答,我可以自由推测:

我不认为 errs drop 重叠。我还认为 errs 收到的数据包中的校验和或其他不良数据(即没有足够的数据构成整个数据包)。此外,我认为 drop 仅适用于传出包 - 系统如何知道其他地方的丢包?