Proc
是否有 /proc/net/netstat 和 /proc/net/snmp 的文件?
/proc/net/netstat
和中有很長的統計數據列表/proc/net/snmp
,我認為這兩個數據都來自 net-tools 項目。是否有關於這些領域的任何官方或非官方文件?或者甚至是有助於辨識它們的網路術語的良好來源?有些看起來很清楚:
SyncookiesSent SyncookieFailed TCPTimeouts TCPKeepalive
其他不太清楚:
ActiveOpens PassiveOpens
一些對我來說完全神秘的:
EmbryonicRsts RcvPruned ... many more ...
**更新:**我在原始碼中找到了定義,但仍然想知道這些描述的去向。它們是否在任何地方編譯和發布?
這些
/proc/net/*
文件由核心生成:條目位於net/ipv4/proc.c
核心原始碼中,條目列表位於include/uapi/linux/snmp.h
. 它從核心保存的各種 MIB 數據庫中獲取值。根據
snmp.h
標頭檔,MIB定義來自以下文件:
- RFC 1213:MIB-II
- RFC 2011(更新 1213):SNMPv2-MIB-IP
- RFC 2863:介面組 MIB
- RFC 2465:IPv6 MIB:通用組
draft-ietf-ipv6-rfc2011-update-10.txt
: 用於 IP 的 MIB:IP 統計表
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 氾濫中,否則這可能不會發生。