14. 网络模型与协议

系统理解 OSI 七层模型与 TCP/IP 四层模型,掌握各层核心协议、PDU 结构、数据封装与解封装流程。

1. 为什么需要分层模型

网络通信涉及硬件、软件、协议等复杂环节,分层可以将庞大问题拆解为多个可管理的子问题,每层只负责特定功能。

分层的优点

  • 各层独立:层内修改不影响其他层
  • 标准化:统一接口,不同厂商设备可互通
  • 可复用:下层服务可为多种上层协议共用

2. OSI 七层模型

┌─────────────┬──────────────┬────────────────────────────────┐
│  OSI 层     │     PDU      │           典型协议/设备          │
├─────────────┼──────────────┼────────────────────────────────┤
│ 7 应用层     │    数据       │ HTTP、FTP、SMTP、DNS、SSH      │
│ 6 表示层     │    数据       │ TLS/SSL、JPEG、ASCII、MPEG     │
│ 5 会话层     │    数据       │ NetBIOS、RPC、PPTP             │
│ 4 传输层     │  段/数据报    │ TCP、UDP、SCTP                 │
│ 3 网络层     │    分组       │ IP、ICMP、ARP、OSPF、BGP       │
│ 2 数据链路层  │    帧        │ Ethernet、PPP、Wi-Fi、交换机    │
│ 1 物理层     │    比特       │ 网线、光纤、集线器、中继器       │
└─────────────┴──────────────┴────────────────────────────────┘

记忆口诀:All People Seem To Need Data Processing(每层首字母)

2.1 各层职责详解

第七层:应用层

  • 直接为用户应用程序提供服务
  • 定义了应用间通信的协议和数据格式

第六层:表示层

  • 数据格式转换(如加密解密、压缩解压)
  • 编码协商(如 UTF-8 vs ASCII)

第五层:会话层

  • 建立、管理和终止会话
  • 会话恢复(断线重连)

第四层:传输层

  • 端到端的可靠/不可靠数据传输
  • 端口寻址、流量控制、差错恢复

第三层:网络层

  • 逻辑寻址(IP 地址)
  • 路由选择与分组转发

第二层:数据链路层

  • 物理寻址(MAC 地址)
  • 帧的封装、差错检测、介质访问控制

第一层:物理层

  • 比特流的电气/光学/无线传输
  • 定义电压、线序、速率等物理特性

3. TCP/IP 四层模型

TCP/IP 是实际互联网采用的标准,将 OSI 的上三层合并为应用层。

┌───────────────┬────────────────────────────────┐
│   TCP/IP 层    │           OSI 对应层            │
├───────────────┼────────────────────────────────┤
│  应用层        │ 应用层 + 表示层 + 会话层        │
│  传输层        │ 传输层                         │
│  网络层        │ 网络层                         │
│  链路层        │ 数据链路层 + 物理层             │
└───────────────┴────────────────────────────────┘

3.1 TCP/IP 协议栈

应用层      HTTP    FTP    DNS    SSH    SMTP
           │       │      │      │      │
           └───────┴──────┴──────┴──────┘
           ┌────────────────────────────────┐
传输层      │     TCP        │      UDP      │
           └────────────────┴───────────────┘
           ┌────────────────────────────────┐
网络层      │       IP   │  ICMP  │  ARP     │
           └────────────┴────────┴──────────┘
           ┌────────────────────────────────┐
链路层      │  Ethernet  │  Wi-Fi  │  PPP    │
           └────────────┴─────────┴─────────┘

4. 数据封装与解封装

4.1 封装过程

发送方(从上到下):

应用层数据
    ↓ + TCP/UDP 头部
传输层段(Segment)
    ↓ + IP 头部
网络层分组(Packet)
    ↓ + Ethernet 头部 + FCS
数据链路层帧(Frame)
    ↓ 转为比特流
物理层比特(Bit)

每经过一层,添加该层协议头部(尾部)

4.2 解封装过程

接收方(从下到上):

物理层:比特 → 识别帧边界
    ↓
链路层:移除 Ethernet 头部/FCS,提取 IP 分组
    ↓
网络层:移除 IP 头部,提取 TCP/UDP 段
    ↓
传输层:移除 TCP/UDP 头部,提取应用数据
    ↓
应用层:解析数据

4.3 实际数据包示例

Frame 1: 74 bytes on wire
├── Ethernet II, Src: aa:bb:cc..., Dst: 11:22:33...
│   ├── Destination MAC: 11:22:33:44:55:66
│   ├── Source MAC: aa:bb:cc:dd:ee:ff
│   └── Type: IPv4 (0x0800)
│
├── Internet Protocol Version 4
│   ├── Version: 4
│   ├── Header Length: 20 bytes
│   ├── Total Length: 60
│   ├── Source IP: 192.168.1.100
│   ├── Destination IP: 142.250.190.78
│   └── Protocol: TCP (6)
│
├── Transmission Control Protocol
│   ├── Source Port: 54321
│   ├── Destination Port: 443 (HTTPS)
│   ├── Sequence Number: 0
│   ├── Flags: SYN
│   └── Window Size: 64240
│
└── [TCP Segment Len: 0]  ← 应用层数据在此之后

5. 层间服务与接口

5.1 服务原语

原语含义例子
Request上层请求下层服务应用请求建立 TCP 连接
Indication下层通知上层事件收到 SYN 报文通知应用
Response上层响应下层指示同意建立连接
Confirm下层确认请求完成TCP 握手完成确认

5.2 服务访问点(SAP)

层 N+1        层 N
   │            │
   │ 数据      │
   ↓          ↓
  SAP ──────→ 接口
   ↑          ↑
   │ (端口号)  │

传输层 SAP = 端口号(Port)
网络层 SAP = IP 地址
链路层 SAP = MAC 地址

6. 常见设备工作层级

设备工作层级功能寻址依据
中继器物理层信号放大,延长传输距离
集线器物理层多端口中继器,广播所有端口
网桥数据链路层连接两个局域网,基于 MAC 转发MAC 地址
交换机数据链路层多端口网桥,学习 MAC 表转发MAC 地址
路由器网络层基于 IP 路由表选择路径IP 地址
三层交换机数据链路层+网络层兼具交换和路由功能MAC + IP
网关传输层及以上协议转换应用层信息
防火墙网络层-应用层访问控制、NATIP、端口、内容

7. 互联网核心思想

1. 端到端原则(End-to-End Principle)
   → 核心网络尽量简单,功能放到端系统
   → 例子:TCP 的可靠传输在端系统实现,而非每个路由器

2. 尽力而为(Best Effort)
   → IP 层不保证送达、不保证顺序、不保证无重复
   → 可靠性由上层(TCP)负责

3. 分层自治
   → 各层协议可独立演进
   → 应用层可用 HTTP/2 或 HTTP/3,不改动下层

参考文章

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「计算机基础」更多文章

  1. 16. 数据链路层
  2. 15. 网络层与路由
  3. 13. 死锁与同步