是否有 /proc/net/netstat 和 /proc/net/snmp 的文档?

是否有 /proc/net/netstat 和 /proc/net/snmp 的文档?

/proc/net/netstat和中有一长串统计数据/proc/net/snmp,我认为它们都来自 net-tools 项目。有关于这些字段的官方或非官方文档吗?或者甚至是有助于识别它们的网络术语的良好来源?

有些看起来很清楚:

SyncookiesSent
SyncookieFailed
TCPTimeouts
TCPKeepalive

其他不太清楚的:

ActiveOpens
PassiveOpens

有些对我来说完全神秘:

EmbryonicRsts
RcvPruned 
... many more ...

更新:我在中找到了定义来源但仍然想知道这些描述去哪里了。它们在任何地方编译和出版吗?

答案1

这些/proc/net/*文件由内核生成:条目位于net/ipv4/proc.c内核源代码中,条目列表位于include/uapi/linux/snmp.h.它从内核保存的各种 MIB 数据库中获取值。

根据snmp.h头文件,MIB定义来自以下文档:

ActiveOpens来自 RFC 1213(第 47 页):

tcpActiveOpens OBJECT-TYPE
          SYNTAX  Counter
          ACCESS  read-only
          STATUS  mandatory
          DESCRIPTION
                  "The number of times TCP connections have made a
                  direct transition to the SYN-SENT state from the
                  CLOSED state."
          ::= { tcp 5 }

如果您在 RFC 中找不到该netstat条目,则必须四处搜索。这些文件中并没有详细列出相当多的项目。如果您想要的不仅仅是简短的摘要,您必须在内核源代码中搜索您所描述的一些条目。

EmbryonicRsts被修改为net/ipv4/tcp_minisocks.c,至少在 Linux 4.16 中的第 796 行,并且似乎计数无效 SYN 重置非快速打开的连接。除非您处于 SYN cookie 泛滥之中,否则这种情况不太可能发生。

答案2

netstat -s每行都有注释

相关内容