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

标签 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

字段 droperrs 是什么意思?

是否有一些错误数据包也算在丢弃数据包中?

为什么一个数据包被认为是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/

相关文章:

linux - SGE Cluster - 提交后脚本失败 - 在终端中工作

linux - 如何启用linux支持双反斜杠 "\\"作为路径分隔符

mysql - 为已安装的 rpm 添加别名

VB.NET如何连续读取TCP流

linux - 根据内容将文件分类到文件夹的 Bash 脚本;如何解决变量中的通配符?

c - 使用 system tap 时如何避免 "probe overhead exceeded threshold"错误?

java - 什么是 STUN,它是否需要端口转发服务器?

我可以调用recv()来返回最多一行吗?

tcp - 使用 ZeroMQ ZMQ_STREAM 作为 tcp 客户端。为什么我会收到额外的信息?

.net - 发起TCP连接关闭后如何接收数据?