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

vir*_*ius 5 documentation proc netstat

还有很长的统计名单/proc/net/netstat/proc/net/snmp,这两个我认为来自网络工具项目。是否有关于这些领域的官方或非官方文档?或者甚至是有助于识别它们的网络术语的良好来源?

有些似乎很清楚:

SyncookiesSent
SyncookieFailed
TCPTimeouts
TCPKeepalive
Run Code Online (Sandbox Code Playgroud)

其他不太清楚:

ActiveOpens
PassiveOpens
Run Code Online (Sandbox Code Playgroud)

一些对我来说完全神秘的:

EmbryonicRsts
RcvPruned 
... many more ...
Run Code Online (Sandbox Code Playgroud)

更新:我在源代码中找到了定义,但仍然想知道这些描述在哪里。它们是否在任何地方编译和发布?

Eri*_*ikF 10

/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 }
Run Code Online (Sandbox Code Playgroud)

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

EmbryonicRstsnet/ipv4/tcp_minisocks.c(4.16.0中的第 796 行)中进行了修改,并且似乎计算了非快速打开的连接上的无效 SYN 重置。除非您处于 SYN cookie 泛滥中,否则这可能不太可能发生。