Appearance
体系结构与参考模型
考情分析
体系结构是 408 计算机网络的必考内容,几乎每年都会涉及。考法多样:选择题考各层功能和对应协议,大题可能结合具体场景问"这个操作发生在哪一层"。对各层的理解程度直接影响后续所有章节的学习效果。
考频:★★★
为什么要分层
计算机网络是一个极其复杂的系统,涉及硬件、软件、协议、数据格式等方方面面。如果把所有功能都塞到一个模块里,不仅难以设计,更难以维护和升级。
分层的核心思想:每一层只关注自己的功能,向上层提供服务,使用下层提供的服务。
好处:
- 模块化设计:每层功能独立,便于分工开发
- 接口标准化:层与层之间通过接口交互,某一层的实现变化不影响其他层
- 易于理解和调试:问题定位可以逐层排查
分层的基本原则:
- 每层实现一种相对独立的功能,降低系统复杂度
- 各层之间接口清晰、简洁,相互依赖尽可能少
- 各层功能的定义独立于具体实现方法
- 保持下层对上层的独立性,上层单向使用下层提供的服务
- 整个分层结构应有利于标准化工作
计算机网络的各层及其协议的集合,称为网络的体系结构。体系结构是抽象的定义,而实现是具体的硬件和软件。
两个重要的体系结构
OSI 七层参考模型
OSI(Open Systems Interconnection)是 ISO 提出的标准化体系结构,分为七层。它更多是理论参考,实际应用中并未被广泛采用。
从上到下:
| 层次 | 名称 | 主要功能 | PDU |
|---|---|---|---|
| 7 | 应用层 | 为用户应用程序提供网络服务接口 | 报文(Message) |
| 6 | 表示层 | 数据格式转换、加密解密、压缩 | — |
| 5 | 会话层 | 建立、管理和终止会话,同步控制 | — |
| 4 | 传输层 | 端到端的可靠/不可靠数据传输 | 段(Segment) |
| 3 | 网络层 | 路由选择,逻辑寻址(IP 地址) | 数据报(Datagram) |
| 2 | 数据链路层 | 帧的封装、差错检测、介质访问控制 | 帧(Frame) |
| 1 | 物理层 | 比特流的透明传输,定义接口特性 | 比特(Bit) |
记忆口诀:应表会传网数物(从上到下)。
表示层和会话层在实际协议中功能较弱,所以 TCP/IP 模型将它们合并到了应用层。
TCP/IP 四层模型
TCP/IP 是因特网使用的实际体系结构,分为四层(也有五层的说法,把网络接口层拆成数据链路层和物理层)。
| TCP/IP 四层 | TCP/IP 五层 | 对应 OSI 层 | 典型协议 |
|---|---|---|---|
| 应用层 | 应用层 | 应用层 + 表示层 + 会话层 | HTTP, FTP, DNS, SMTP |
| 传输层 | 传输层 | 传输层 | TCP, UDP |
| 网际层 | 网络层 | 网络层 | IP, ICMP, ARP, OSPF |
| 网络接口层 | 数据链路层 + 物理层 | 数据链路层 + 物理层 | 以太网, PPP, Wi-Fi |
408 教材通常使用五层模型来讲解(兼具 OSI 的清晰和 TCP/IP 的实用),这也是考试默认的参考框架。
OSI vs TCP/IP 对比
| 对比项 | OSI 七层 | TCP/IP 四(五)层 |
|---|---|---|
| 层数 | 7 层 | 4 层(或5层) |
| 制定组织 | ISO | IETF |
| 实际使用 | 仅作为参考模型 | 因特网实际采用 |
| 设计顺序 | 先有模型,后制定协议,通用性好 | 先有协议栈,后归纳出模型 |
| 表示层/会话层 | 独立设置 | 合并到应用层 |
| 网络层 | 可以面向连接也可以无连接 | 仅无连接(IP) |
| 传输层 | 仅面向连接 | 面向连接(TCP)+ 无连接(UDP) |
TCP/IP 体系体现了两大设计哲学:Everything over IP(各种应用均可构建于 IP 之上)和 IP over Everything(IP 可运行于任意底层网络之上)。
各层的功能详解
应用层
直接为用户的应用进程提供服务。不同的网络应用对应不同的应用层协议。
核心协议:HTTP(网页)、FTP(文件传输)、SMTP/POP3/IMAP(邮件)、DNS(域名解析)。
传输层
提供端到端(进程到进程) 的数据传输服务。通过端口号区分同一主机上的不同应用进程。
注意三层通信的区别:数据链路层实现节点到节点通信(MAC 地址),网络层实现主机到主机通信(IP 地址),传输层实现端到端通信(端口号)。
传输层具有复用与分用功能:复用是指多个应用进程可同时使用传输层服务;分用是指传输层能将接收到的数据准确交付给对应的上层进程。
- TCP:面向连接、可靠传输、流量控制、拥塞控制
- UDP:无连接、尽最大努力交付、开销小
OSI 参考模型的传输层仅提供面向连接的可靠服务,而 TCP/IP 模型的传输层同时支持面向连接(TCP)和无连接(UDP)。
网络层
负责将分组从源主机传送到目的主机,核心功能是路由选择和逻辑寻址(IP 地址)。
网络层提供的是无连接、不可靠的数据报服务(IP 协议的特点),可靠性交给传输层的 TCP 来保证。
数据链路层
将网络层交下来的数据报封装成帧,在相邻节点之间传输。主要功能:
- 封装成帧(加首部和尾部)
- 差错检测(CRC 校验)
- 介质访问控制(MAC,解决多节点共享信道的冲突问题)
物理层
在传输介质上传送比特流。物理层关心的是:
- 接口的机械特性(形状、引脚数)
- 电气特性(电压范围、信号速率)
- 功能特性(各引脚的功能定义)
- 规程特性(信号时序关系)
物理层的任务是透明传输比特流——不管传的是什么数据,物理层都一视同仁地转成信号传出去。
PDU、SDU 与 PCI
这三个概念在选择题中经常考辨析:
- 协议数据单元(PDU):对等层之间传送的数据单位
- 服务数据单元(SDU):相邻层之间交换的数据单位
- 协议控制信息(PCI):控制协议操作的信息(即首部/尾部)
三者关系:n-SDU + n-PCI = n-PDU = (n-1)-SDU
也就是说,第 n 层从第 n+1 层接收到的 PDU 作为本层的 SDU,加上本层的 PCI 后封装成本层的 PDU,再交给第 n-1 层。
封装与解封装
数据在发送方从上层往下层传递时,每经过一层都会加上该层的首部(有时还有尾部),这个过程叫封装。到达接收方后,从下层往上层逐层去掉首部,叫解封装。
各层数据单元的名称:
| 层次 | PDU 名称 | 说明 |
|---|---|---|
| 应用层 | 报文(Message) | 应用层产生的完整数据 |
| 传输层 | 段/报文段(Segment) | TCP 的叫段,UDP 的叫用户数据报 |
| 网络层 | 数据报/分组(Datagram/Packet) | IP 数据报 |
| 数据链路层 | 帧(Frame) | 加了帧首部和尾部 |
| 物理层 | 比特(Bit) | 0 和 1 的比特流 |
交互可视化
下面的可视化展示了各层的功能、PDU 名称和封装/解封装的过程。
协议、接口与服务
这三个概念在 408 选择题中经常出辨析题。
- 协议:对等层(同一层)之间通信时遵守的规则,是水平的。协议由语法(数据格式)、语义(控制信息含义)、同步(动作时序)三要素组成。不对等实体之间不存在协议。
- 服务:下层为紧邻的上层提供的功能调用,是垂直的。第 n 层提供的服务是其自身及以下所有层服务的总和。只有能被上层感知并调用的功能才构成服务,下层协议对上层是透明的。
- 接口(SAP,服务访问点):同一节点内相邻两层实体交换信息的逻辑接口。每层只能与紧邻的上下层定义接口,不允许跨层调用。
服务的分类
| 分类方式 | 类型 | 说明 |
|---|---|---|
| 按连接方式 | 面向连接服务 | 通信前建立连接、分配资源,结束后释放(如 TCP) |
| 无连接服务 | 无须建立连接,各分组独立传输,"尽最大努力交付"(如 UDP) | |
| 按可靠性 | 可靠服务 | 具备检错、纠错、应答机制,确保数据正确送达 |
| 不可靠服务 | 仅"尽最大努力交付",可靠性由高层保障 | |
| 按应答方式 | 有应答服务 | 接收方自动返回确认(如文件传输) |
| 无应答服务 | 接收方不自动返回应答(如 WWW 浏览) |
一个常见的比喻:你(应用层)用中文写信(协议),交给翻译(表示层)翻译成英文,然后交给邮局(传输层及以下)。邮局提供的"寄信"功能就是服务,你和邮局之间的窗口就是接口。
疑难点
为什么互联网的网络层被设计为"不可靠"的?
这是互联网的核心设计哲学——端到端原则。IP 层只负责"尽力而为"地转发分组,不保证到达、不保证顺序、不保证不重复。可靠性交给传输层的 TCP 来做。好处是:网络核心(路由器)保持简单高效,只需要做转发;不同应用可以按需选择可靠传输(TCP)或不可靠传输(UDP)。如果在网络层强制可靠传输,视频通话、直播这类对实时性要求高、能容忍少量丢包的应用反而会受到不必要的延迟。
端到端通信和逐跳(点到点)通信有什么区别?
端到端通信指源主机到目的主机之间跨越整个网络的通信,属于传输层概念,通信双方是源主机进程和目的主机进程。逐跳通信指一条链路两端相邻节点之间的通信,属于数据链路层概念。一次端到端的通信,在路径上会经过多次逐跳转发。类比:你从北京寄快递到广州是"端到端",快递在每个中转站之间的运输是"逐跳"。网络层的 IP 协议虽然也是逐跳转发,但它提供的"服务"是端到端的——从源到目的。
易错点
1. OSI 模型中网络层可以提供面向连接的服务
OSI 的网络层既支持面向连接也支持无连接。而 TCP/IP 的网络层(IP)只提供无连接的数据报服务。两个模型在这一点上是不同的。
2. ARP 到底属于哪一层?
这是个经典争议。408 教材(谢希仁版)将 ARP 放在网络层。但从功能上看,ARP 是把 IP 地址映射为 MAC 地址,涉及数据链路层的概念。考试中按教材处理,认为 ARP 属于网络层。
3. "对等层通信"是逻辑上的
物理上数据是从上层到下层,经过物理链路到对方,再从下层往上层传。对等层之间并没有直接的物理连接。所谓"第 N 层和对方第 N 层通信"是指它们在逻辑上使用相同的协议处理数据。
4. 服务和协议的方向
服务是纵向的(下层给上层提供),协议是横向的(对等层之间遵守的规则)。不能把"TCP 协议"说成"TCP 服务"。
高频考点清单
- OSI 七层模型每层的名称和功能
- TCP/IP 四(五)层模型与 OSI 的对比(设计顺序、网络层/传输层差异)
- 各层 PDU 的名称(报文 / 段 / 数据报 / 帧 / 比特)
- PDU、SDU、PCI 三者关系:n-SDU + n-PCI = n-PDU
- 封装与解封装的过程
- 协议三要素:语法、语义、同步
- 协议(水平)、服务(垂直)、接口(SAP)三个概念的区分
- 服务的分类:面向连接/无连接、可靠/不可靠、有应答/无应答
- 传输层的复用与分用功能
- 节点到节点(数据链路层)、主机到主机(网络层)、端到端(传输层)的区分
- 常见协议属于哪一层(HTTP-应用层, TCP-传输层, IP-网络层, ARP-网络层)