网络协议简介

5 阅读3分钟

网络协议是计算机网络中通信双方必须遵守的规则和约定集合。

1. 网络拓扑

┌─────────────────────────────────────────────────────────────────┐
│                OSI 七层 vs TCP/IP 四层 vs 五层模型              │
│                                                                 │
│  OSI 七层          TCP/IP 四层      五层模型(教学)              │
│  ┌──────────┐      ┌──────────┐     ┌──────────┐               │
│  │ 7 应用层  │      │          │     │ 5 应用层  │               │
│  │ 6 表示层  │ ───→ │ 应用层    │ ───→│          │               │
│  │ 5 会话层  │      │          │     │          │               │
│  ├──────────┤      ├──────────┤     ├──────────┤               │
│  │ 4 传输层  │ ───→ │ 传输层    │ ───→│ 4 传输层  │               │
│  ├──────────┤      ├──────────┤     ├──────────┤               │
│  │ 3 网络层  │ ───→ │ 网络层    │ ───→│ 3 网络层  │               │
│  ├──────────┤      │          │     ├──────────┤               │
│  │ 2 链路层  │ ───→ │ 网络接口层│ ───→│ 2 链路层  │               │
│  ├──────────┤      │          │     ├──────────┤               │
│  │ 1 物理层  │      │          │     │ 1 物理层  │               │
│  └──────────┘      └──────────┘     └──────────┘               │
│                                                                 │
│  封装与解封装(洋葱模型):                                     │
│  发送方: 应用数据 → +TCP头 → +IP头 → +帧头 → 比特流             │
│  接收方: 比特流 → -帧头 → -IP头 → -TCP头 → 应用数据             │
│  每层只对同层有意义(TCP头只有收发双方TCP栈能理解)              │
└─────────────────────────────────────────────────────────────────┘

2. 协议三要素

要素说明类比
语法数据格式与编码"信封的格式"
语义各字段的含义与操作"收件人地址表示送达目标"
时序事件顺序与同步规则"先发请求后等响应"

3. 分层模型的设计哲学

3.1. 为什么分层?

分层是管理复杂度的核心策略:

  1. 关注点分离:每层只解决一类问题,不与其他层耦合
  2. 复用:上层可调用下层提供的多种服务(HTTP 可 over TCP,也可 over QUIC)
  3. 独立演进:TCP/IP 协议栈升级不影响 HTTP 应用代码
  4. 透明组合:上层不需要知道下层实现细节

专家视角:分层不是目的,是手段。过度分层是反模式——OSI 七层模型中会话层/表示层在实践中几乎空壳,因为应用层自己处理了会话和编码。TCP/IP 四层模型更务实,把 OSI 5-6-7 合并为应用层。

3.2. 封装与解封装

发送方(封装)                          接收方(解封装)
                                       
应用层  | HTTP 数据                        | HTTP 数据
       | ↓ 加 HTTP 头                      | ↑ 去 HTTP 头
传输层  | TCP 头 + HTTP 数据                | TCP 头 + HTTP 数据
       | ↓ 加 TCP 头                       | ↑ 去 TCP 头
网络层  | IP 头 + TCP 头 + HTTP 数据         | IP 头 + TCP 头 + HTTP 数据
       | ↓ 加 IP 头                        | ↑ 去 IP 头
链路层  | 帧头 + IP 头 + TCP 头 + HTTP 数据  | 帧头 + IP 头 + TCP 头 + HTTP 数据
       | ↓ 加帧头/帧尾                      | ↑ 去帧头/帧尾
物理层  | 0110100...                       | 0110100...

专家视角:封装是洋葱模型——每层把自己的头包在数据外面。解封装是剥洋葱——从下往上逐层去头。每层的头只对同层有意义——TCP 头只有收发双方的 TCP 栈能理解。

4. OSI 七层模型

层名称典型协议数据单位设备
7应用层HTTP协议/FTP协议/SMTP协议/DNS协议消息—
6表示层TLS协议/编码/压缩消息—
5会话层—消息—
4传输层TCP协议/UDP协议段/数据报—
3网络层IP/ICMP协议/ARP协议包路由器
2数据链路层以太网/PPP协议帧交换机
1物理层以太网/光纤/无线比特集线器/中继器

5. TCP/IP 四层模型

层对应 OSI典型协议数据单位
应用层5-7HTTP/FTP/SMTP/DNS/SSH消息
传输层4TCP/UDP段/数据报
网络层3IP/ICMP/ARP包
网络接口层1-2以太网/PPP/Wi-Fi帧/比特

6. OSI vs TCP/IP

对比维度OSITCP/IP
层数74
设计驱动理论先行实践先行
会话/表示层独立分层合入应用层
网络接口层拆为物理+链路合为一层
实际部署几乎未实现互联网基石

专家视角:OSI 模型的价值在于教学和概念框架,TCP/IP 的价值在于实际运行。面试时说"七层模型"是理论素养,工程中用"四层模型"是实践素养。

7. 五层模型(折中)

教学常用五层模型(合并 OSI 5-6-7 为应用层,保留物理/链路分离):

层名称典型协议
5应用层HTTP/FTP/SMTP/DNS
4传输层TCP/UDP
3网络层IP/ICMP/ARP
2数据链路层以太网/PPP
1物理层以太网/光纤