← 网络基础学习第 54 / 55 章速查随时查阅

附录 · 速查与术语

网络基础速查表

原理懂了,但具体数字记不住 —— /20 的掩码是多少?Windows 的默认 TTL 是几?TCP 有哪些状态?这一章只放查得到的硬数据,不重复讲原理,每个主题都标了去哪个模块看细节。

本章要解决的问题:原理懂了,但具体数字记不住 —— /20 的掩码是多少?Windows 的默认 TTL 是几?TCP 有哪些状态?这一章只放查得到的硬数据,不重复讲原理,每个主题都标了去哪个模块看细节。

本章的证据来源:全部来自前面各章的实测与标准引用,逐条标明了性质。

先从一个例子理解概念

这章用于已经理解概念后的查阅,不替代第一次学习。看到一行数字时,先确认它的单位、适用范围和例外。

先看单位:bit、Byte与每秒

bit是比特,Byte是字节,8比特=1字节;每秒表示速率。Mbps与MB/s差8倍,理论换算不等于实际下载速度。

先看范围:前缀与字段长度

/24表示网络前缀长度,不是24个主机;“20字节起”表示最短头部长度,不意味着任何包都只有该长度。表中的条件不可省略。

先看性质:规则、记录与判断

规范规则描述约束;历史记录描述某次结果;判断是尚需验证的解释。复习时也要保留这种区别,不能把记录值背成通用默认值。

下面再用这些概念看原理、命令和结果。规范与官方资料列在本章末尾,类比只帮助理解,不代替协议规则。

一、掩码 / 前缀 / 主机数

前缀子网掩码总地址数可用主机数第三段块大小
/32255.255.255.25511(主机路由)—
/31255.255.255.25422(RFC 3021 特例)—
/30255.255.255.25242—
/29255.255.255.24886—
/28255.255.255.2401614—
/27255.255.255.2243230—
/26255.255.255.1926462—
/25255.255.255.128128126—
/24255.255.255.0256254—
/23255.255.254.0512510—
/22255.255.252.0102410224
/21255.255.248.0204820468
/20255.255.240.04096409416
/19255.255.224.08192819032
/18255.255.192.0163841638264
/17255.255.128.03276832766128
/16255.255.0.06553665534256
/12255.240.0.010485761048574—
/8255.0.0.01677721616777214—

心算法

块大小 = 256 - (掩码中"关键段"的值)         关键段 = 既不是 255 也不是 0 的那一段
网络号 = IP 对应段的值 - (该值 mod 块大小)
广播   = 网络号 + 块大小 - 1

验证过的例子(《IP 地址与子网划分》):

192.168.31.215/24  块=256  网络 192.168.31.0    广播 192.168.31.255
172.30.0.1/20      块=16   网络 172.30.0.0      广播 172.30.15.255
198.18.0.1/30      块=4    网络 198.18.0.0      广播 198.18.0.3

快速判断同网段

(IP1 AND 掩码) == (IP2 AND 掩码)   →  同网段

注意:双方各自用自己的掩码算。掩码不一致 → 可能单向不通。

二、特殊地址段

网段用途本机是否出现来源
0.0.0.0/8本网络(this network)—RFC 1122
10.0.0.0/8私有—RFC 1918
100.64.0.0/10运营商级 NAT(CGNAT)—RFC 6598
127.0.0.0/8回环是RFC 1122
169.254.0.0/16链路本地 / APIPA是(6 个接口)RFC 3927
172.16.0.0/12私有是(WSL 172.30/20)RFC 1918
192.0.2.0/24TEST-NET-1(文档用)实验中用到RFC 5737
192.168.0.0/16私有是(WLAN)RFC 1918
198.18.0.0/15基准测试 / fake-IP 常用是RFC 2544
198.51.100.0/24TEST-NET-2—RFC 5737
203.0.113.0/24TEST-NET-3(文档用)实验中用到RFC 5737
224.0.0.0/4多播是RFC 5771
240.0.0.0/4保留(原 E 类)—RFC 1112
255.255.255.255/32受限广播是RFC 919

实用记忆点:

  • 看到169.254/16 → 链路本地地址;启用DHCP的活动接口上常提示未获租约,仍需核查
  • 看到 198.18.x.x / 198.19.x.x → 大概率被 fake-IP 接管(《DNS 与 Fake-IP》)
  • 看到 127.x.x.x → 本机,包不出网卡

三、TCP 状态

状态含义调查时注意
LISTEN被动等待建立监听不证明应用健康
SYN_SENT主动建立中的状态未完成的原因需要路径与两端证据
SYN_RCVD等待建立确认数量多不单独证明SYN攻击
ESTABLISHEDTCP已建立不保证TLS或业务成功
FIN_WAIT_1本端关闭发送后等待确认等事件实际报文可重传或合并
FIN_WAIT_2FIN被确认,等待对端FIN持续异常与资源压力值得调查
CLOSE_WAIT已收对端FIN,本应用尚未关闭发送短暂合法;长期异常堆积查应用
LAST_ACK等本端FIN的确认最后ACK可能丢失
TIME_WAIT关闭后保留状态常见主动关闭端;同时关闭可两端进入
CLOSED无连接状态—

阻塞connect成功仅说明本端完成TCP建立;非阻塞、错误返回和应用响应要分开。TIME_WAIT具体时长依系统配置与实现,原日志约116秒的轮询观察不是严格的完整寿命测量。RFC 9293 §3.3、§3.6

四、命令速查

PowerShell

示例powershell
# ---------- 地址与接口 ----------
ipconfig /all                          # 全部接口详情
Get-NetIPAddress -AddressFamily IPv4   # 结构化地址
Get-NetIPInterface -AddressFamily IPv4 | Sort-Object InterfaceMetric   # 接口度量

# ---------- 路由 ----------
route print                                     # 传统完整路由表
Get-NetRoute -DestinationPrefix '0.0.0.0/0'     # 只看默认路由
Find-NetRoute -RemoteIPAddress 1.1.1.1          # 【最好用】实际走哪条

# ---------- ARP ----------
arp -a
netsh interface ip delete arpcache              # 清 ARP 缓存

# ---------- TCP ----------
Get-NetTCPConnection | Group-Object State | Sort-Object Count -Descending
Get-NetTCPConnection -State CloseWait |
    Select-Object LocalPort,RemoteAddress,RemotePort,OwningProcess
netstat -ano -p TCP | findstr CLOSE_WAIT
netstat -ano -p TCP | findstr TIME_WAIT

# ---------- DNS ----------
Resolve-DnsName example.com -Type A
Resolve-DnsName example.com -Type A -Server 8.8.8.8 -DnsOnly
ipconfig /displaydns
Clear-DnsClientCache                            # 或 ipconfig /flushdns

# ---------- 连通性 ----------
Test-NetConnection 1.1.1.1 -Port 443 -InformationLevel Detailed
tracert 1.1.1.1

Python

示例python
import ipaddress, socket, subprocess, time

# 子网计算
iface = ipaddress.ip_interface('192.168.31.215/24')
net = iface.network
net.network_address      # 网络号
net.broadcast_address    # 广播地址
net.netmask              # 掩码
net.num_addresses - 2    # 可用主机数
ipaddress.ip_address('192.168.31.51') in net    # 是否同网段

# 阻塞connect成功仅表示本端TCP建立;不证明TLS/业务可用
s = socket.socket(); s.settimeout(5); s.connect(('1.1.1.1', 443))

# 半关闭(只关发送方向,仍可接收)
s.shutdown(socket.SHUT_WR)

# 调 netstat 抓状态(注意编码,中文环境用 gbk)
out = subprocess.run(['netstat','-ano','-p','TCP'],
                     capture_output=True, text=True,
                     encoding='gbk', errors='replace').stdout

五、本机基线数据(2026-10-12 采集)

改过网络配置后,拿这份对照。

接口

接口地址/前缀掩码接口度量MTU状态
WLAN192.168.31.215/24255.255.255.0301500Connected
FlClash198.18.0.1/30255.255.255.252未设置9000Connected
vEthernet (WSL)172.30.0.1/20255.255.240.050001500Connected
以太网169.254.163.90/16255.255.0.051500Disconnected
本地连接169.254.114.105/16255.255.0.0251500Disconnected
本地连接* 9169.254.177.27/16255.255.0.0251500Disconnected
本地连接* 10169.254.119.78/16255.255.0.0251500Disconnected
Heysocks169.254.37.161/16255.255.0.0251500Disconnected
以太网 3——251200Disconnected
蓝牙网络连接169.254.215.100/16255.255.0.0651500Disconnected
Loopback127.0.0.1—754294967295Connected

默认路由

接口下一跳路由度量接口度量有效度量自动度量
FlClash198.18.0.20原输出为空不能由空值断定0Disabled
WLAN192.168.31.103030Enabled

胜出者:FlClash(Find-NetRoute 实测确认,源地址取 198.18.0.1)

DNS

接口DNS 服务器
FlClash198.18.0.2
WLAN192.168.31.1

解析行为

域名结果性质
example.com198.18.0.205fake-IP
www.baidu.com198.18.0.207fake-IP
github.com20.205.243.166真实 IP

ARP

IPMAC判断
192.168.31.1a4-39-b3-0b-ab-19网关,厂商 OUI
192.168.31.51e8-51-77-27-5a-9a厂商 OUI
192.168.31.248fa-aa-ff-92-e6-3fU/L=1 → 本地管理;是否随机化未由此证明
172.30.14.21300-15-5d-fb-2f-0a疑似 Hyper-V(判断)
192.168.31.255ff-ff-ff-ff-ff-ff广播
224.0.0.25101-00-5e-00-00-fbmDNS 多播

监听端口(部分)

地址端口进程
127.0.0.17890FlClashCore
127.0.0.17897verge-mihomo
127.0.0.11053verge-mihomo
0.0.0.0135 / 445svchost / System

六、环保守则(本教程反复强调的)

1. 核对测量方法与系统文档;历史116秒轮询不是严格完整寿命,不能据此推翻120秒配置。
2. 指定了服务器 ≠ 查询到了那台服务器。
3. connect() 成功 ≠ 对端存在。(TUN/代理会替你对端握手)
4. 连接数、成功率在代理环境下不能证明对端可用,要看有没有数据回来。
5. 度量小者赢 —— 只在两条路由前缀长度相同时才成立。
6. 抄来的结论一定要标注来源;自己推的结论要标注「判断」。

七、Windows 上的几个坑(都实测踩过)

坑现象解法
.ps1 无 BOM中文乱码、语法错乱存成 UTF-8 with BOM
[IPAddress]$数值/30 算成 252.255.255.255先转 byte[] 再 [array]::Reverse
> / Tee-Object输出文件变 UTF-16,读成二进制用 Out-File -Encoding utf8
python -c 中文输出乱码设 $env:PYTHONIOENCODING='utf-8'
Python 子进程输出顺序插到前面调用前 sys.stdout.flush()
Python 读 powershell 输出UnicodeDecodeError: gbk子进程加 [Console]::OutputEncoding=[Text.Encoding]::UTF8,Python 侧 encoding='utf-8'

自测:用速查表回答

6 题 · 先自己答,再展开对照

  1. 172.20.5.30/21 的网络号和广播地址分别是什么?能放多少台主机?
    网络号 172.20.0.0,广播 172.20.7.255,可用主机 2046 台。
    查"掩码 / 前缀 / 主机数"表:/21 → 掩码 255.255.248.0,第三段块大小 = 256−248 = 8。5 − (5 mod 8) = 5 − 5 = 0 → 第三段是 0;广播的第三段 = 0 + 8 − 1 = 7,第四段全 255。
    总地址数 2048,减去网络号和广播 → 2046。
  2. 你在抓包时看到 TTL=57。对方大概经过了几跳?可能是什么系统?
    大约 7 跳(64 − 57),可能是 Linux 系系统或网络设备。
    查"初始 TTL 约定":Linux/macOS/多数路由器/Android 是 64,Windows 是 128。但要注意表格下面那句提醒 —— 初始 TTL 可以被改,所以这只是推断,不是结论。
  3. 一条连接显示 CLOSE_WAIT。这是协议的正常行为,还是程序的问题?
    CLOSE_WAIT是合法的半关闭相关状态。只有持续时间、增长趋势或应用行为异常时,才调查未关闭socket与资源泄漏。
  4. 1000 Mbps 的宽带,理论下载速度上限是多少 MB/s?
    125 MB/s。 查"单位换算":1 字节 = 8 比特,所以 1000 ÷ 8 = 125。
  5. 198.18.0.205 这个地址属于哪个特殊网段?看到它说明什么?
    属于 198.18.0.0/15 —— RFC 2544 定义的基准测试保留段。查"特殊地址段"表,看到它说明大概率被 fake-IP 接管了(代理把域名解析成了假地址)。
  6. 本机 TCP 的临时端口范围是多少?一共多少个端口?
    49152 ~ 65535,共 16384 个。 在本机基线数据那一节。

参考资料与适用范围

修订核对日期:2026-10-13。规则按所列协议与实现范围理解;文中的原始命令输出是历史观察,不表示本次重新实测。跨版本、代理/隧道及不同捕获位置需要另行核对。

正文源自 m9-01-速查表.md · 共 10 节 · 6 道自测题