前置知识: Networking

OSI与TCP-IP模型

4 minIntermediate2026/6/14

OSI与TCP-IP模型深度:协议层次、数据封装、PDU与协议数据单元分析

1. OSI 七层模型详解

1.1 各层功能

层级名称功能PDU设备
7应用层网络服务接口数据网关
6表示层数据格式转换数据-
5会话层会话管理数据-
4传输层端到端通信段(Segment)防火墙
3网络层路由寻址包(Packet)路由器
2数据链路层帧传输帧(Frame)交换机
1物理层比特传输比特(Bit)集线器

1.2 数据封装过程

应用数据
    ↓ + 应用层头
表示层PDU
    ↓ + 表示层头
会话层PDU
    ↓ + TCP/UDP头
传输层段(Segment)
    ↓ + IP头
网络层包(Packet)
    ↓ + 帧头+帧尾
数据链路层帧(Frame)

物理层比特流(Bit)

2. TCP/IP 模型

2.1 四层结构

TCP/IP 层对应 OSI 层协议
应用层5/6/7HTTP, DNS, SMTP, FTP
传输层4TCP, UDP, SCTP
网际层3IP, ICMP, ARP
网络接口1/2Ethernet, Wi-Fi

2.2 TCP vs OSI

特性OSITCP/IP
层数74
先有模型
实用性理论参考实际标准
严格分层较灵活

3. TCP 协议深度

3.1 TCP 首部格式

0                   15 16                 31
┌──────────┬──────────┬─────────────────────┐
│ 源端口(16) │ 目标端口(16)│                    │
├──────────────────────┤                     │
│        序列号(32)     │                     │
├──────────────────────┤                     │
│       确认号(32)      │                     │
├───┬───┬──────┬───────┤                     │
│HL │Rsv│Flags │窗口大小 │                    │
├──────────┬──────────┤                     │
│ 校验和(16)│紧急指针(16)│                    │
└──────────┴──────────┴─────────────────────┘

标志位

标志含义
URG紧急指针有效
ACK确认号有效
PSH接收方应尽快交付
RST重置连接
SYN同步序列号
FIN释放连接

3.2 三次握手

客户端                    服务器
  │── SYN, seq=x ────────→│
  │←─ SYN+ACK, seq=y,    │
  │   ack=x+1 ───────────│
  │── ACK, seq=x+1,      │
  │   ack=y+1 ──────────→│

为什么三次:防止已失效的连接请求到达服务器。

3.3 四次挥手

客户端                    服务器
  │── FIN, seq=u ────────→│  (客户端关闭发送)
  │←─ ACK, ack=u+1 ──────│  (服务器确认)
  │                       │  (服务器继续发送)
  │←─ FIN, seq=w ────────│  (服务器关闭发送)
  │── ACK, ack=w+1 ─────→│  (客户端确认)
  │  [TIME_WAIT 2MSL]    │

TIME_WAIT:等待 2MSL(最大报文段生存时间),确保最后一个 ACK 到达。

3.4 滑动窗口

发送窗口=min(rwnd,cwnd)\text{发送窗口} = \min(\text{rwnd}, \text{cwnd})

  • rwnd:接收方通告窗口
  • cwnd:拥塞窗口

3.5 TCP 状态机

CLOSED → SYN_SENT → ESTABLISHED

CLOSED → LISTEN → SYN_RCVD → ESTABLISHED

ESTABLISHED → FIN_WAIT_1 → FIN_WAIT_2 → TIME_WAIT → CLOSED
ESTABLISHED → CLOSE_WAIT → LAST_ACK → CLOSED

4. UDP 协议

4.1 UDP 首部

┌──────────┬──────────┐
│ 源端口(16)│目标端口(16)│
├──────────┬──────────┤
│ 长度(16)  │校验和(16) │
└──────────┴──────────┘

仅 8 字节首部,无连接、无确认、无重传。

4.2 TCP vs UDP

特性TCPUDP
连接面向连接无连接
可靠性可靠不可靠
顺序有序无序
流控
拥塞控制
速度较慢
首部20~60字节8字节
适用文件传输实时音视频

5. IP 协议

5.1 IPv4 首部

┌───┬───┬──────┬──────────┐
│VER│IHL│TOS   │总长度(16) │
├───┴───┼──────┼──────────┤
│标识(16)│Flags │片偏移(13) │
├───────┼──────┼──────────┤
│TTL(8) │协议(8)│校验和(16) │
├───────┴──────┴──────────┤
│源IP地址(32)              │
├─────────────────────────┤
│目标IP地址(32)            │
└─────────────────────────┘

5.2 IPv6 改进

特性IPv4IPv6
地址长度32位128位
首部可变固定40字节
分片路由器可分片仅源端分片
安全可选内置IPsec
配置手动/DHCP自动配置

5.3 子网划分

子网数=2n\text{子网数} = 2^n

每子网主机数=2m2\text{每子网主机数} = 2^m - 2

其中 nn 为借用的位数,mm 为剩余主机位。

示例:192.168.1.0/24 划分为4个子网:

子网网络地址可用范围广播地址
1192.168.1.0/26.1~.62.63
2192.168.1.64/26.65~.126.127
3192.168.1.128/26.129~.190.191
4192.168.1.192/26.193~.254.255

6. ARP 与 ICMP

6.1 ARP 协议

将 IP 地址解析为 MAC 地址:

主机A: 谁有 192.168.1.1?告诉 192.168.1.100(广播)
主机B: 192.168.1.1 的 MAC 是 aa:bb:cc:dd:ee:ff(单播)

ARP 缓存

arp -a
ip neigh show

6.2 ICMP 协议

代码含义
00Echo Reply
30~15目标不可达
50~3重定向
80Echo Request
110~1超时

Ping 原理:发送 ICMP Echo Request,等待 Echo Reply。

Traceroute 原理:发送 TTL 递增的 IP 包,通过 ICMP 超时消息确定路径。