附录 · 速查与术语
网络基础速查表
原理懂了,但具体数字记不住 —— /20 的掩码是多少?Windows 的默认 TTL 是几?TCP 有哪些状态?这一章只放查得到的硬数据,不重复讲原理,每个主题都标了去哪个模块看细节。
本章要解决的问题:原理懂了,但具体数字记不住 —— /20 的掩码是多少?Windows 的默认 TTL 是几?TCP 有哪些状态?这一章只放查得到的硬数据,不重复讲原理,每个主题都标了去哪个模块看细节。
本章的证据来源:全部来自前面各章的实测与标准引用,逐条标明了性质。
先从一个例子理解概念
这章用于已经理解概念后的查阅,不替代第一次学习。看到一行数字时,先确认它的单位、适用范围和例外。
先看单位:bit、Byte与每秒
bit是比特,Byte是字节,8比特=1字节;每秒表示速率。Mbps与MB/s差8倍,理论换算不等于实际下载速度。
先看范围:前缀与字段长度
/24表示网络前缀长度,不是24个主机;“20字节起”表示最短头部长度,不意味着任何包都只有该长度。表中的条件不可省略。
先看性质:规则、记录与判断
规范规则描述约束;历史记录描述某次结果;判断是尚需验证的解释。复习时也要保留这种区别,不能把记录值背成通用默认值。
下面再用这些概念看原理、命令和结果。规范与官方资料列在本章末尾,类比只帮助理解,不代替协议规则。
一、掩码 / 前缀 / 主机数
| 前缀 | 子网掩码 | 总地址数 | 可用主机数 | 第三段块大小 |
|---|---|---|---|---|
| /32 | 255.255.255.255 | 1 | 1(主机路由) | — |
| /31 | 255.255.255.254 | 2 | 2(RFC 3021 特例) | — |
| /30 | 255.255.255.252 | 4 | 2 | — |
| /29 | 255.255.255.248 | 8 | 6 | — |
| /28 | 255.255.255.240 | 16 | 14 | — |
| /27 | 255.255.255.224 | 32 | 30 | — |
| /26 | 255.255.255.192 | 64 | 62 | — |
| /25 | 255.255.255.128 | 128 | 126 | — |
| /24 | 255.255.255.0 | 256 | 254 | — |
| /23 | 255.255.254.0 | 512 | 510 | — |
| /22 | 255.255.252.0 | 1024 | 1022 | 4 |
| /21 | 255.255.248.0 | 2048 | 2046 | 8 |
| /20 | 255.255.240.0 | 4096 | 4094 | 16 |
| /19 | 255.255.224.0 | 8192 | 8190 | 32 |
| /18 | 255.255.192.0 | 16384 | 16382 | 64 |
| /17 | 255.255.128.0 | 32768 | 32766 | 128 |
| /16 | 255.255.0.0 | 65536 | 65534 | 256 |
| /12 | 255.240.0.0 | 1048576 | 1048574 | — |
| /8 | 255.0.0.0 | 16777216 | 16777214 | — |
心算法
块大小 = 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/24 | TEST-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/24 | TEST-NET-2 | — | RFC 5737 |
203.0.113.0/24 | TEST-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攻击 |
| ESTABLISHED | TCP已建立 | 不保证TLS或业务成功 |
| FIN_WAIT_1 | 本端关闭发送后等待确认等事件 | 实际报文可重传或合并 |
| FIN_WAIT_2 | FIN被确认,等待对端FIN | 持续异常与资源压力值得调查 |
| CLOSE_WAIT | 已收对端FIN,本应用尚未关闭发送 | 短暂合法;长期异常堆积查应用 |
| LAST_ACK | 等本端FIN的确认 | 最后ACK可能丢失 |
| TIME_WAIT | 关闭后保留状态 | 常见主动关闭端;同时关闭可两端进入 |
| CLOSED | 无连接状态 | — |
阻塞connect成功仅说明本端完成TCP建立;非阻塞、错误返回和应用响应要分开。TIME_WAIT具体时长依系统配置与实现,原日志约116秒的轮询观察不是严格的完整寿命测量。RFC 9293 §3.3、§3.6
四、命令速查
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.1Python
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 | 状态 |
|---|---|---|---|---|---|
| WLAN | 192.168.31.215/24 | 255.255.255.0 | 30 | 1500 | Connected |
| FlClash | 198.18.0.1/30 | 255.255.255.252 | 未设置 | 9000 | Connected |
| vEthernet (WSL) | 172.30.0.1/20 | 255.255.240.0 | 5000 | 1500 | Connected |
| 以太网 | 169.254.163.90/16 | 255.255.0.0 | 5 | 1500 | Disconnected |
| 本地连接 | 169.254.114.105/16 | 255.255.0.0 | 25 | 1500 | Disconnected |
| 本地连接* 9 | 169.254.177.27/16 | 255.255.0.0 | 25 | 1500 | Disconnected |
| 本地连接* 10 | 169.254.119.78/16 | 255.255.0.0 | 25 | 1500 | Disconnected |
| Heysocks | 169.254.37.161/16 | 255.255.0.0 | 25 | 1500 | Disconnected |
| 以太网 3 | — | — | 25 | 1200 | Disconnected |
| 蓝牙网络连接 | 169.254.215.100/16 | 255.255.0.0 | 65 | 1500 | Disconnected |
| Loopback | 127.0.0.1 | — | 75 | 4294967295 | Connected |
默认路由
| 接口 | 下一跳 | 路由度量 | 接口度量 | 有效度量 | 自动度量 |
|---|---|---|---|---|---|
| FlClash | 198.18.0.2 | 0 | 原输出为空 | 不能由空值断定0 | Disabled |
| WLAN | 192.168.31.1 | 0 | 30 | 30 | Enabled |
胜出者:FlClash(Find-NetRoute 实测确认,源地址取 198.18.0.1)
DNS
| 接口 | DNS 服务器 |
|---|---|
| FlClash | 198.18.0.2 |
| WLAN | 192.168.31.1 |
解析行为
| 域名 | 结果 | 性质 |
|---|---|---|
| example.com | 198.18.0.205 | fake-IP |
| www.baidu.com | 198.18.0.207 | fake-IP |
| github.com | 20.205.243.166 | 真实 IP |
ARP
| IP | MAC | 判断 |
|---|---|---|
| 192.168.31.1 | a4-39-b3-0b-ab-19 | 网关,厂商 OUI |
| 192.168.31.51 | e8-51-77-27-5a-9a | 厂商 OUI |
| 192.168.31.248 | fa-aa-ff-92-e6-3f | U/L=1 → 本地管理;是否随机化未由此证明 |
| 172.30.14.213 | 00-15-5d-fb-2f-0a | 疑似 Hyper-V(判断) |
| 192.168.31.255 | ff-ff-ff-ff-ff-ff | 广播 |
| 224.0.0.251 | 01-00-5e-00-00-fb | mDNS 多播 |
监听端口(部分)
| 地址 | 端口 | 进程 |
|---|---|---|
| 127.0.0.1 | 7890 | FlClashCore |
| 127.0.0.1 | 7897 | verge-mihomo |
| 127.0.0.1 | 1053 | verge-mihomo |
| 0.0.0.0 | 135 / 445 | svchost / 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 题 · 先自己答,再展开对照
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。你在抓包时看到 TTL=57。对方大概经过了几跳?可能是什么系统?
大约 7 跳(64 − 57),可能是 Linux 系系统或网络设备。
查"初始 TTL 约定":Linux/macOS/多数路由器/Android 是 64,Windows 是 128。但要注意表格下面那句提醒 —— 初始 TTL 可以被改,所以这只是推断,不是结论。一条连接显示 CLOSE_WAIT。这是协议的正常行为,还是程序的问题?
CLOSE_WAIT是合法的半关闭相关状态。只有持续时间、增长趋势或应用行为异常时,才调查未关闭socket与资源泄漏。1000 Mbps 的宽带,理论下载速度上限是多少 MB/s?
125 MB/s。 查"单位换算":1 字节 = 8 比特,所以 1000 ÷ 8 = 125。198.18.0.205 这个地址属于哪个特殊网段?看到它说明什么?
属于 198.18.0.0/15 —— RFC 2544 定义的基准测试保留段。查"特殊地址段"表,看到它说明大概率被 fake-IP 接管了(代理把域名解析成了假地址)。本机 TCP 的临时端口范围是多少?一共多少个端口?
49152 ~ 65535,共 16384 个。 在本机基线数据那一节。
参考资料与适用范围
- RFC 3021:点到点IPv4链路使用31位前缀
- RFC 3927:IPv4链路本地地址和转发限制
- RFC 1918:私有IPv4地址与路由边界
- RFC 9293 §3.3–3.10:TCP状态、建立关闭、字节流与接口
- Microsoft:IPv4路由自动度量
- RFC 1112 §6.4:IPv4多播到以太网MAC的映射
修订核对日期:2026-10-13。规则按所列协议与实现范围理解;文中的原始命令输出是历史观察,不表示本次重新实测。跨版本、代理/隧道及不同捕获位置需要另行核对。