跳到主要内容

网络协议速查表

本文档提供网络协议的核心概念、关键指标和常用命令的快速参考。

1. OSI 七层模型与 TCP/IP 对比

OSI(Open Systems Interconnection)模型是 ISO 制定的网络通信参考模型,将网络通信分为七个抽象层次。TCP/IP 是互联网实际使用的协议栈,结构与 OSI 模型有所不同。

层级OSI 模型TCP/IP 模型数据单位典型协议核心功能
7应用层 (Application)应用层报文HTTP, FTP, DNS, SMTP, SSH为应用程序提供网络服务接口
6表示层 (Presentation)应用层报文SSL/TLS, JPEG, MPEG数据格式转换、加密解密、压缩解压
5会话层 (Session)应用层报文NetBIOS, RPC建立、管理和终止会话
4传输层 (Transport)传输层段 (Segment)TCP, UDP, QUIC端到端可靠或不可靠传输
3网络层 (Network)网络层包 (Packet)IP, ICMP, ARP, OSPF路由选择、逻辑寻址
2数据链路层 (Data Link)链路层帧 (Frame)Ethernet, Wi-Fi, PPP物理寻址、差错检测
1物理层 (Physical)链路层比特 (Bit)RJ45, 光纤, 无线电比特流传输

2. TCP 连接状态机

TCP 连接从建立到关闭会经历一系列状态转换。理解这些状态对于网络故障排查至关重要。

状态说明触发条件
CLOSED初始状态,连接关闭无连接时的默认状态
LISTEN服务器等待连接服务端调用 listen()
SYN_SENT已发送 SYN,等待响应客户端调用 connect()
SYN_RCVD已收到 SYN,等待 ACK服务端收到 SYN 后发送 SYN+ACK
ESTABLISHED连接已建立三次握手完成
FIN_WAIT_1主动关闭,已发 FIN主动方调用 close()
FIN_WAIT_2主动关闭,等待对方 FIN收到对方 ACK
CLOSE_WAIT被动关闭,等待应用关闭收到对方 FIN,发送 ACK
LAST_ACK被动关闭,等待最终 ACK发送 FIN 后
CLOSING同时关闭,等待 ACK发 FIN 后收到 FIN 而非 ACK
TIME_WAIT主动关闭,等待 2MSL发送最终 ACK 后

状态转换要点

  • TIME_WAIT 持续 2MSL(通常 60 秒),确保最后的 ACK 到达对方
  • CLOSE_WAIT 过多通常意味着应用程序没有正确关闭连接
  • SYN_SENT 持续存在可能是网络不通或防火墙阻止

3. TCP 标志位详解

TCP 首部包含 9 个标志位(RFC 9293),控制连接的建立、数据传输和关闭。

标志名称说明典型场景
SYNSynchronize同步序列号,建立连接三次握手的第 1、2 步
ACKAcknowledgment确认号有效连接建立后所有报文必设
FINFinish结束连接四次挥手
RSTReset重置连接连接异常、拒绝连接
PSHPush推送,立即交付应用交互式数据传输
URGUrgent紧急指针有效带外数据(极少使用)
ECEECN-EchoECN 回显拥塞通知
CWRCongestion Window Reduced拥塞窗口减少拥塞通知响应
NSNonce Sum随机数和ECN 扩展

常见标志位组合

组合含义场景
SYN连接请求客户端发起连接
SYN+ACK连接请求确认服务端响应连接
ACK确认数据传输、握手完成
FIN+ACK关闭请求主动关闭连接
RST重置连接异常终止连接
PSH+ACK数据推送携带数据的正常传输

4. HTTP 状态码分类

HTTP 状态码分为五大类,每类代表不同类型的响应状态。

按类别速查

类别范围含义常见场景
1xx100-199信息性响应协议切换、继续发送
2xx200-299成功请求正常处理完成
3xx300-399重定向需要进一步操作
4xx400-499客户端错误请求语法错误或无法完成
5xx500-599服务端错误服务器处理请求失败

常用状态码详解

状态码含义使用场景
200OK请求成功,返回响应体
201Created资源创建成功(POST 请求)
204No Content成功但无返回内容(DELETE 请求)
301Moved Permanently永久重定向,SEO 权重转移
302Found临时重定向
304Not Modified缓存有效,使用本地副本
307Temporary Redirect临时重定向,保持请求方法
308Permanent Redirect永久重定向,保持请求方法
400Bad Request请求语法错误
401Unauthorized需要身份认证
403Forbidden已认证但权限不足
404Not Found资源不存在
405Method Not Allowed请求方法不被允许
408Request Timeout请求超时
429Too Many Requests请求过于频繁,被限流
500Internal Server Error服务器内部错误
502Bad Gateway网关/代理收到无效响应
503Service Unavailable服务暂时不可用
504Gateway Timeout网关/代理超时

5. TCP vs UDP vs QUIC 对比

特性TCPUDPQUIC
连接性面向连接无连接面向连接
可靠性可靠传输(确认、重传)不可靠可靠传输
顺序保证有序无序有序(流级别)
队头阻塞有(整个连接阻塞)无(流级别独立)
流量控制
拥塞控制
加密需额外 TLS内置 TLS 1.3
连接建立3 次握手 (1.5 RTT)1-RTT / 0-RTT
连接迁移不支持不适用支持(Connection ID)
头部开销20 字节(最小)8 字节变长(通常 20-40 字节)
典型应用HTTP/1.1、HTTP/2、FTP、邮件DNS、直播、游戏、VoIPHTTP/3

6. HTTP 版本演进

版本年代传输层核心特性主要改进
HTTP/0.91991TCP单行协议仅 GET,无头部
HTTP/1.01996TCP头部、状态码支持多种内容类型
HTTP/1.11997TCP持久连接、管道化连接复用、Host 头部
HTTP/22015TCP二进制分帧、多路复用头部压缩、服务器推送
HTTP/32022QUIC基于 UDP、无队头阻塞0-RTT、连接迁移

各版本连接开销

版本首次连接复用连接
HTTP/1.1TCP (1.5 RTT) + TLS (2 RTT) = 3.5 RTTTCP (1.5 RTT) + TLS (1 RTT) = 2.5 RTT
HTTP/2TCP (1.5 RTT) + TLS (2 RTT) = 3.5 RTTTCP (1.5 RTT) + TLS (1 RTT) = 2.5 RTT
HTTP/3QUIC (1 RTT) = 1 RTT0-RTT

7. IP 地址分类(IPv4)

传统分类(已废弃,仅供参考)

类别地址范围默认子网掩码私有地址范围
A1.0.0.0 ~ 126.255.255.255255.0.0.010.0.0.0 ~ 10.255.255.255
B128.0.0.0 ~ 191.255.255.255255.255.0.0172.16.0.0 ~ 172.31.255.255
C192.0.0.0 ~ 223.255.255.255255.255.255.0192.168.0.0 ~ 192.168.255.255
D224.0.0.0 ~ 239.255.255.255-组播地址
E240.0.0.0 ~ 255.255.255.255-保留地址

特殊 IP 地址

地址说明
0.0.0.0当前主机,默认路由
127.0.0.0/8本地回环地址
169.254.0.0/16链路本地地址(DHCP 失败时自动分配)
224.0.0.0/4组播地址
255.255.255.255本地广播地址

8. 常见端口号

端口协议服务说明
20TCPFTP DataFTP 数据传输
21TCPFTP ControlFTP 控制连接
22TCPSSH安全远程登录
23TCPTelnet不安全的远程登录(已淘汰)
25TCPSMTP邮件发送
53TCP/UDPDNS域名解析
67/68UDPDHCP动态主机配置
80TCPHTTP网页浏览
110TCPPOP3邮件接收
143TCPIMAP邮件接收
443TCPHTTPS安全网页浏览
465TCPSMTPS安全邮件发送
587TCPSMTP Submission邮件提交端口
993TCPIMAPS安全 IMAP
995TCPPOP3S安全 POP3
1433TCPMSSQLSQL Server
1521TCPOracleOracle 数据库
3306TCPMySQLMySQL 数据库
3389TCPRDPWindows 远程桌面
5432TCPPostgreSQLPostgreSQL 数据库
6379TCPRedisRedis 缓存
8080TCPHTTP Proxy常用 Web 代理端口
8443TCPHTTPS AltHTTPS 备用端口
27017TCPMongoDBMongoDB 数据库

9. DNS 记录类型

类型名称说明
AAddressIPv4 地址记录
AAAAIPv6 AddressIPv6 地址记录
CNAMECanonical Name别名记录,指向另一个域名
MXMail Exchange邮件服务器记录
NSName Server域名服务器记录
PTRPointer反向 DNS 记录(IP 到域名)
SOAStart of Authority授权起始记录,包含区域信息
SRVService服务记录,指定服务的服务器和端口
TXTText文本记录,用于 SPF、DKIM 等
CAACertificate Authority Authorization指定可以颁发证书的 CA

10. 网络诊断命令速查

连通性测试

# 测试主机连通性
ping -c 4 google.com # Linux: 发送 4 个包
ping -n 4 google.com # Windows: 发送 4 个包

# 追踪路由路径
traceroute google.com # Linux
tracert google.com # Windows

# 使用 ICMP 探测路径 MTU
ping -s 1472 -M do google.com # Linux: 发送 1472 字节(不含头部)

DNS 查询

# 基本查询
nslookup google.com

# 详细查询
dig google.com # Linux
dig @8.8.8.8 google.com # 指定 DNS 服务器

# 查询特定记录
dig google.com MX # 查询 MX 记录
dig -x 8.8.8.8 # 反向查询

端口与连接

# 查看网络连接状态
netstat -tunlp # Linux: 显示监听端口
netstat -an | grep ESTAB # 查看已建立连接

# 更现代的替代命令
ss -tunlp # 显示 TCP/UDP 监听端口
ss -t state established # 查看已建立的 TCP 连接

# 测试端口连通性
telnet 192.168.1.1 80
nc -zv 192.168.1.1 80 # 更推荐的方式

抓包分析

# 抓取特定端口的流量
tcpdump -i eth0 port 80

# 抓取 TCP SYN 包(新建连接)
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'

# 保存到文件
tcpdump -i eth0 -w capture.pcap

# 读取抓包文件
tcpdump -r capture.pcap

# 显示详细信息
tcpdump -i eth0 -nn -vvv port 443

Linux 网络配置

# 查看网络接口
ip addr show
ip link show

# 查看路由表
ip route show

# 查看邻居表(ARP)
ip neigh show

# 添加临时 IP
ip addr add 192.168.1.100/24 dev eth0

# 添加路由
ip route add 10.0.0.0/8 via 192.168.1.1

11. TLS/SSL 配置要点

推荐配置

项目推荐值
协议版本TLS 1.3(首选)、TLS 1.2
禁用版本SSLv2、SSLv3、TLS 1.0、TLS 1.1
证书类型ECC(ECDSA)优先,RSA 兼容
密钥交换ECDHE(前向保密)
对称加密AES-256-GCM、ChaCha20-Poly1305
HSTS启用,max-age ≥ 31536000

Nginx HTTPS 配置示例

server {
listen 443 ssl http2;
server_name example.com;

# 证书配置
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;

# 协议和加密套件
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;

# 会话缓存
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

# HSTS
add_header Strict-Transport-Security "max-age=31536000" always;
}

12. 网络性能关键指标

指标全称说明
RTTRound Trip Time往返时延,数据包往返所需时间
带宽Bandwidth链路最大传输速率(理论值)
吞吐量Throughput实际数据传输速率
丢包率Packet Loss Rate丢失数据包占比
延迟Latency数据从源到目的的单向传输时间
抖动Jitter延迟的变化程度

性能测试命令

# 测试带宽
iperf3 -c server_ip # 客户端
iperf3 -s # 服务端

# 测试延迟
ping -c 10 google.com | tail -1

# 使用 MTR 综合诊断
mtr google.com

13. NAT 类型速查

类型映射规则入站限制穿透难度
Full Cone固定映射无限制
Restricted Cone固定映射IP 白名单
Port Restricted Cone固定映射IP:端口 白名单
Symmetric随目标变化严格匹配

14. 常见错误码速查

TCP/Socket 错误

错误码含义可能原因
ECONNREFUSED连接被拒绝目标端口无服务监听
ETIMEDOUT连接超时网络不通、防火墙阻止
ECONNRESET连接重置对方发送 RST,可能是服务崩溃
EPIPE管道断裂向已关闭的连接写数据
ENOTCONN未连接在未连接的 socket 上操作
EADDRINUSE地址已使用端口被占用
ENETUNREACH网络不可达路由问题

DNS 错误

RCODE含义说明
0NOERROR查询成功
1FORMERR格式错误
2SERVFAIL服务器错误
3NXDOMAIN域名不存在
4NOTIMP未实现该查询类型
5REFUSED拒绝查询

[!TIP] 本速查表提供快速参考,详细信息请参阅对应章节的完整教程。遇到网络问题时,建议使用 tcpdump 或 Wireshark 进行深入分析。