Skip to content

第一章 分层与端到端:网络的总体设计


1. 为什么网络课必须从"分层"开始

很多人复习计算机网络,第一件事就是背"OSI 七层:物理、数据链路、网络、传输、会话、表示、应用",背完就去做题,结果一遇到"交换机工作在哪一层""TCP 和 IP 谁负责可靠性"这类题就翻车。原因很简单:只记住了层的名字,没理解每一层"为什么存在"、它"承诺解决什么问题"。

先退一步想:把一段文字从北京的一台电脑发到上海的一台手机,中间要解决多少问题?

  1. 文字要变成电信号或光信号,才能在线缆里跑。
  2. 信号在传输中可能出错,要能发现错误。
  3. 北京到上海要经过很多台中间设备,每一步该往哪走?
  4. 对方可能同时开着微信、浏览器、网易云,数据到了手机,该交给哪个程序?
  5. 数据可能丢、可能乱序,谁来补发、谁来排序?
  6. 双方的程序要约定数据格式,比如"这是一个网页请求"。

如果让一个程序把这六件事全包了,这个程序会庞大到没人能维护,而且换一种线缆、换一种应用都得推倒重来。网络设计者的答案是:把大问题切成一叠小问题,每层只解决一类问题,层与层之间只通过固定接口打交道。这就是分层。

分层带来两个决定性的好处:

  1. 复杂性分解。每一层只面对一个规模可控的子问题,实现者不必了解其他层的细节。写浏览器的人不需要懂光纤怎么调制信号。
  2. 各层独立演化。只要层间接口不变,某一层的技术可以整体替换而不影响其他层。WiFi 取代网线、HTTP/3 取代 HTTP/1.1,上下层几乎无感。这就像换手机壳不用换手机。

一句大白话点透:分层的本质是"分工加合同"——每层对上层承诺一种服务,怎么兑现承诺是自己的私事

2. OSI 七层与 TCP/IP 四层:两套模型怎么对照

考试中两套模型都会考。OSI(开放系统互连参考模型)是国际标准组织提出的"理论蓝图",分七层,概念完整但从未大规模落地;TCP/IP 模型是互联网实际使用的"工程实践",通常划成四层。它们的对应关系如下:

OSI 七层TCP/IP 四层核心职责(白话)典型协议典型设备数据单元 PDU
应用层应用层程序之间说什么、怎么说HTTP、DNS、FTP、SMTP网关(应用层网关)报文
表示层应用层数据格式转换、加密压缩JPEG、TLS 的部分职责报文
会话层应用层建立、管理会话RPC 会话管理报文
传输层传输层进程到进程、可靠性TCP、UDP段(TCP)/ 数据报(UDP)
网络层网际层跨网络寻址与选路IP、ICMP、ARP、OSPF路由器分组 / 包
数据链路层网络接口层同一链路内成帧、差错检测以太网、PPP、WiFi交换机、网桥
物理层网络接口层比特流变成物理信号RJ45、光纤规范集线器、中继器比特

三个必须记牢的点:

  1. PDU(协议数据单元)就是"每一层眼中的数据长什么样":应用层叫报文,传输层叫段,网络层叫分组(包),链路层叫帧,物理层叫比特。考试常直接考"帧是哪一层的数据单元"。
  2. 设备与层的绑定关系是高频考点:集线器在物理层(只会无脑复制信号),交换机在数据链路层(认 MAC 地址),路由器在网络层(认 IP 地址)。
  3. OSI 的会话层、表示层在 TCP/IP 里被并入应用层——实践证明这两层单独存在的必要性不大,相关功能由应用程序自己处理。

还有一种常见的"五层教学模型"(物理、链路、网络、传输、应用),是教材为了讲课方便把 TCP/IP 的网络接口层拆成两层。做题时以题目采用的模型为准。

3. 封装与解封装:数据在协议栈里的一生

4. 端到端原则:可靠性到底该放在哪一层

5. 沙漏模型与 IP 细腰

6. 电路交换与分组交换:互联网选了哪条路

7. 网络性能指标:时延不只一种

8. 用分层框架给考题"定位"

本章要点回顾

做题提醒