1.6 网络模型:OSI 与 TCP/IP
如果说网络是连接世界的桥梁,那么 网络模型 就是建造这座桥梁的图纸。 为了让华为的路由器能和思科的交换机“说话”,为了让 Windows 能访问 Linux 搭建的网站,全世界必须使用同一种语言。
这个“通用语言”就是 TCP/IP,而 OSI 则是它的理论教科书。
1. 为什么需要分层?(Why Layering?)
想象一下寄快递的过程:
- 你(应用层):把礼物放进盒子里,写好字条。
- 快递小哥(传输层):把盒子打包,贴上单号,保证东西不丢。
- 分拣中心(网络层):查看收件人地址,决定走哪条高速公路(路由)。
- 卡车司机(数据链路层):把包裹装上车,开往下一站。
- 公路(物理层):承载卡车运行的柏油路。
每一层只做自己的事,不用管下一层怎么做。快递小哥不用会开卡车,卡车司机不用管盒子里装的是什么。这就是解耦。
2. OSI 七层参考模型
ISO(国际标准化组织)定义的“完美模型”。虽然 TCP/IP 赢得了市场,但 OSI 赢得了教材。我们沟通时常说“二层设备”、“三层交换机”,指的都是 OSI 的层级。
记忆口诀:应、表、会、传、网、数、物(All People Seem To Need Data Processing)
| 层级 | 名称 | 英文 | 核心功能 | 数据单元 (PDU) | 典型设备/协议 |
|---|---|---|---|---|---|
| 7 | 应用层 | Application | 人机交互,提供服务 | Data | HTTP, Telnet, FTP |
| 6 | 表示层 | Presentation | 翻译(编码、加密、压缩) | Data | JPEG, ASCII, SSL |
| 5 | 会话层 | Session | 对话管理(建立/维持会话) | Data | RPC |
| 4 | 传输层 | Transport | 端到端传输,可靠性 | Segment (段) | TCP, UDP |
| 3 | 网络层 | Network | 路由选路,IP 寻址 | Packet (包) | 路由器, IP, ICMP |
| 2 | 数据链路层 | Data Link | 介质访问,MAC 寻址 | Frame (帧) | 交换机, Ethernet |
| 1 | 物理层 | Physical | 比特传输 (0/1) | Bit (比特) | 网线, Hub, 光纤 |
3. TCP/IP 四层模型 (实战王者)
OSI 太复杂了,工程界更喜欢“实用主义”。TCP/IP 将 OSI 简化为 4 层(或 5 层):
3.1 传输层双雄:TCP vs UDP
| 特性 | TCP (传输控制协议) | UDP (用户数据报协议) |
|---|---|---|
| 连接性 | 面向连接 (三次握手) | 无连接 (直接发) |
| 可靠性 | 可靠 (丢包重传、顺序重组) | 不可靠 (丢了就丢了) |
| 速度 | 较慢 (开销大) | 极快 (开销小) |
| 比喻 | 打电话 ("喂能听到吗?""能。""那我说了...") | 校园广播 (大喇叭喊话,不管你听没听见) |
| 场景 | 网页(HTTP)、邮件(SMTP)、文件下载(FTP) | 视频会议、语音通话、竞技游戏、DNS |
3.2 网络层核心:IP
IP 协议(Internet Protocol)负责把数据包从地球的一端送到另一端。它不保证一定送到(不可靠),但它保证尽力去送(Best Effort)。
4. 数据的“俄罗斯套娃” (封装与解封装)
当你在微信上发一句“Hello”,这行字经历了什么?它被一层层地“打包”:
📦 封装过程 (Encapsulation)
⬇️ 应用层:生成数据 "Hello"⬇️ 传输层:贴上 TCP头 (源端口/目端口)。变成 Segment。 ⬇️ 网络层:贴上 IP头 (源IP/目IP)。变成 Packet。 ⬇️ 数据链路层:贴上 MAC头 (源MAC/目MAC) 和 FCS尾。变成 Frame。 ⬇️ 物理层:变成 010101... 的光电信号发出。
接收端收到后,进行相反的操作(解封装),一层层拆开快递盒,最终看到 "Hello"。
5. 为什么 TCP/IP 赢了?
OSI 虽然完美,但它定标准太慢了,且实现复杂。TCP/IP 诞生于美国军方(ARPANET),更注重连接不同类型的网络(互联互通)。 最终,简单的 TCP/IP 随着互联网的爆发成为了事实标准。