Lecture 2:知识 - 计算机网络体系结构与参考模型
Chinese-language Computer Science 408 note: Lecture 2:知识 - 计算机网络体系结构与参考模型. Original source available where applicable.
On this page
This note is currently available in Chinese. The original wording, formulas and diagrams are preserved to avoid an unverified technical translation.
描述:网络体系结构定义“各层做什么、相邻层怎样服务、对等层怎样通信”,但不规定具体软硬件代码。用“协议横向、服务纵向、接口在相邻层之间”理解 OSI 和 TCP/IP,可串起封装、端到端与点到点的所有考点。
1.1 网络体系结构与分层
网络体系结构(architecture)是计算机网络各层及其协议的集合,是对网络及其应完成功能的精确定义。体系结构是抽象规范;硬件、软件如何实现某协议是具体实现问题,体系结构不描述实现细节。
1.1.1 基本术语
| 术语 | 含义 |
|---|---|
| 对等层 | 不同机器上的同一层 |
| 对等实体 | 不同机器上同一层的实体,按本层协议进行逻辑通信 |
| 服务提供者/服务用户 | 第 $n$ 层向第 $n+1$ 层提供服务,前者为提供者,后者为用户 |
| PDU | 对等实体间传送的协议数据单元;第 $n$ 层的为 $n$-PDU,含数据和控制信息两部分 |
| SDU | 上层交给本层、作为本层数据部分的服务数据单元 |
| PCI | 本层为实现协议加入的控制信息(protocol control information) |
每层 PDU 可抽象为:
$$n\text{-PDU}=n\text{-PCI}+n\text{-SDU}$$
其中 $n\text{-SDU}$ 是第 $n+1$ 层交给第 $n$ 层的数据;通常可理解为上层的 $(n+1)\text{-PDU}$ 下交后成为本层的 $n\text{-SDU}$,本层再加入 $n\text{-PCI}$ 形成 $n\text{-PDU}$。
1.1.2 分层原则
- 每层实现相对独立功能,降低大系统复杂度。
- 层间接口清晰、相互交流尽量少。
- 层功能定义独立于实现方法,可选适合的技术实现。
- 下层对上层保持独立,上层只使用下层服务。
- 分层结构应促进标准化。
1.1.3 网络标准化与主要组织
INFO · 教材补充
网络设备只有遵守共同的接口和协议规范才能互通。标准大体可分为:
- 法定标准(de jure):由权威标准组织按正式程序制定,如 ISO、ITU-T、IEEE 发布的标准。
- 事实标准(de facto):先因广泛实现和使用形成产业共识,再可能被正式吸收;TCP/IP 的早期普及是典型例子。
| 组织/文档体系 | 与计算机网络的关系 |
|---|---|
| ISO | 制定国际标准;OSI 参考模型由 ISO 推出 |
| ITU-T | 制定电信、传输与接口等建议标准 |
| IEEE | 制定局域网/城域网的 IEEE 802 系列,如 802.3 以太网、802.11 无线局域网 |
| IETF | 通过开放工作组推进 Internet 协议规范,成果主要发布在 RFC 文档系列中 |
RFC 是一类公开文档的编号体系,并非每一份 RFC 都是 Internet 标准;其中还包括信息性、实验性、最佳当前实践等文档。Internet-Draft 是有期限的工作草案,也不能直接当作已发布 RFC。教材旧版有时把标准轨道写成“建议标准 -> 草案标准 -> Internet 标准”,而当前 IETF 标准轨道的主要成熟级别是 Proposed Standard 与 Internet Standard;做历史题时应按题目给定年代和口径判断。
1.2 协议、服务与接口
1.2.1 协议:对等层间的横向规则
协议是控制对等实体通信规则的集合,由**语法、语义、同步(时序)**组成。
| 要素 | 定义 | 例子 |
|---|---|---|
| 语法 | 数据与控制信息的格式 | TCP 报文段首部字段和格式 |
| 语义 | 应发何种控制信息、完成什么动作、如何应答 | TCP 三次握手中收到报文后应进行的操作 |
| 同步/时序 | 操作条件、事件顺序与时间关系 | 三次握手“先 SYN、后 SYN+ACK、再 ACK”的顺序 |
口诀:语法看形式,语义看做什么,同步看先后。 时序图中的纵向时间轴/报文先后通常考查同步,而报文格式图才考查语法。
1.2.2 服务与 SAP:相邻层间的纵向关系
服务是下层向紧邻上层提供的功能调用,方向是垂直的。每层实体在本层协议约束下工作,借助下层服务,进而向上层提供服务。
层只能与紧邻层定义接口,不能跨层定义接口。服务访问点(SAP,Service Access Point)是同一节点内相邻两层实体交换信息的逻辑接口,即第 $n+1$ 层访问第 $n$ 层服务的位置。
| 具体协议/层次 | 常见上层协议分用标识 |
|---|---|
| 以太网数据链路层 | EtherType 字段标识所承载的上层协议 |
| IPv4/IPv6 网络层 | Protocol/Next Header 字段标识上层协议 |
| TCP/UDP 传输层 | 端口号帮助把报文分用到进程或套接字 |
SAP 是相邻层之间的抽象服务访问位置;以上字段是具体协议中常见的分用标识,可帮助理解服务用户的选择,但不能无条件等同于所有体系结构中的 SAP 本体。
1.2.3 服务分类
| 分类 | 类型 | 特征与例子 |
|---|---|---|
| 是否建连 | 面向连接 | 先建立连接/分配资源,再传输,结束时释放;分建立、数据传输、释放三阶段,TCP 为例 |
| 无连接 | 无须预建连接,带目的地址的数据可直接发送;无连接只描述建连方式,不必然等于不可靠。IP、UDP 是无连接且不可靠的具体例子 | |
| 可靠性 | 可靠服务 | 通过检错配合重传,或使用前向纠错等机制,按服务承诺保证数据正确、可靠地交付;只有应答而无超时、重传等配套机制并不足以保证可靠 |
| 不可靠服务 | 只按既定能力尽量交付;需要时可由上层增加序号、确认、超时与重传等机制来获得所需可靠性 | |
| 是否自动确认 | 有应答 | 在所讨论层的服务接口中,接收/服务方按该服务规范返回响应或证实 |
| 无应答 | 在所讨论层的服务接口中不自动返回证实;下层是否仍有 TCP ACK 等机制是另一问题 |
教材有时用“文件传输有应答、WWW 页面无应答”举例,只能理解为特定层次和服务原语的分类;不能据此断言底层没有 TCP 确认,也不能把 HTTP 响应与链路/传输层确认混为一谈。
1.2.4 服务原语
上层使用下层服务时发出的命令称服务原语。有应答服务使用四类原语;无应答服务只需请求、指示两类。
| 原语 | 方向 | 含义 |
|---|---|---|
Request 请求 |
服务用户 -> 服务提供者 | 请求执行工作 |
Indication 指示 |
服务提供者 -> 服务用户 | 告知用户发生/到达某事件 |
Response 响应 |
服务用户 -> 服务提供者 | 对指示作出响应 |
Confirmation 证实 |
服务提供者 -> 服务用户 | 证实此前请求的完成/结果 |
1.2.5 协议与服务的区别
| 协议 | 服务 |
|---|---|
| 同层对等实体间的水平通信规则 | 同一节点相邻层间的垂直功能提供 |
| 规定本层如何同远端对等层协作 | 描述本层向上层“提供什么” |
| 本层协议实现正确,才能保证服务实现 | 上层无需知道下层协议内部实现细节 |
1.3 OSI 七层参考模型
OSI(Open Systems Interconnection Reference Model)由 ISO 提出,自下而上为:
7 应用层 用户与网络的接口
6 表示层 数据表示、转换、压缩、加密
5 会话层 会话建立/管理/终止、同步点
4 传输层 进程到进程的端到端传输
3 网络层 分组跨网传送、路由
2 数据链路层 相邻节点帧传输
1 物理层 原始比特流
- 低三层(物理、数据链路、网络)通常称通信子网,承担数据传输。
- 高三层(会话、表示、应用)通常称资源子网,承担用户侧数据处理。
- 传输层承上启下,提供端到端服务。
1.3.1 物理层
在物理介质上透明传输原始比特流,定义数据终端设备 DTE 与数据通信设备 DCE 的物理/逻辑连接方法。PDU/传输单位为比特。
1.3.2 数据链路层
把网络层交来的分组封装为帧,在相邻节点之间传送。OSI 教材常把其服务目标概括为:通过成帧、差错检测、流量控制,必要时再配合确认与重传,把可能出错的物理连接抽象成对网络层更可靠、逻辑上近似无差错的数据链路。
- 关注的是一段一段的相邻链路,而非跨多个路由器的端到端。
- 相邻节点间的流量控制等功能属于数据链路层。
- 具体协议的服务能力不同:例如以太网通常能检错并丢弃坏帧,却不在链路层负责重传,因此“数据链路层一定可靠交付”是错误结论。
1.3.3 网络层
在 OSI 教材功能集合中,网络层控制通信子网运行,把分组从源节点传到目的节点,并讨论路由选择、流量控制、拥塞控制、差错控制和网际互连等功能。传输单位为数据报/分组。这组功能不能原样套到 TCP/IP 的无连接 IP:IP 本身提供尽力而为的数据报交付,并不保证可靠、按序,也不提供端到端流量控制。
1.3.4 传输层
负责主机中两个进程之间的端到端通信。OSI 教材模型强调可靠传输、流量控制、差错控制、QoS 和数据传输管理;在 TCP/IP 实际协议族中则要区分:TCP 提供面向连接的可靠字节流,UDP 提供无连接、不可靠的数据报服务。
“端到端”在传输层以两个应用进程为端点;“逐跳/相邻节点”描述数据沿每一段链路在相邻网络设备之间转发。MAC 地址通常用于本链路一跳的帧交付,IP 地址用于网络层逻辑寻址并由路由器逐跳查表转发;不能把“点到点”简单定义成“基于 MAC 或 IP”。题目若说相邻两节点的链路流控,不要选传输层。
1.3.5 会话层
允许不同主机上的进程会话,为表示层实体或用户进程建立连接,并在连接中有序传输数据/建立同步。它负责会话建立、管理、终止;检查点机制可在通信失效后从检查点继续,类似断点续传。
1.3.6 表示层
处理通信系统间信息的表示方式,用抽象标准数据结构和编码使不同主机的表示方法可交换;另负责数据压缩、加密、解密。数据格式转换是表示层而非应用层职能。
1.3.7 应用层
用户与网络的接口,为特定应用提供访问 OSI 环境的手段。它使用的应用协议最多、最复杂,例如 FTP(文件传送)、SMTP(邮件)、HTTP(万维网)。
1.4 TCP/IP 四层模型
TCP/IP 因广泛应用成为事实上的国际标准。自下而上四层:
| TCP/IP 层 | 对应 OSI 层 | 核心含义 |
|---|---|---|
| 网络接口层 | 物理层 + 数据链路层 | 接入本地链路、帧与比特传送 |
| 网际层 | 网络层 | 跨网络 IP 数据报转发;提供无连接、不可靠数据报服务 |
| 传输层 | 传输层 | 端到端进程通信;可有 TCP/UDP 等不同服务 |
| 应用层 | 会话层 + 表示层 + 应用层 | 面向用户的应用协议及会话/表示功能 |
1.5 OSI 与 TCP/IP 的比较
| 方面 | OSI | TCP/IP |
|---|---|---|
| 结构 | 7 层 | 4 层;合并 OSI 的会话/表示/应用为应用层,合并物理/链路为网络接口层 |
| 服务、协议、接口 | 精确定义并明确区分,是 OSI 的重要贡献 | 这三个概念没有 OSI 那样明确分离 |
| 形成次序 | 先有参考模型,再有协议规范,通用性较好 | 先有成熟协议栈,再归纳模型,主要适于 TCP/IP 网络 |
| 网络层/传输层连接性 | 网络层支持无连接和面向连接,传输层仅面向连接(教材模型) | 网际层仅无连接;传输层支持无连接和面向连接,可靠性由端到端解决 |
二者共同点:均采用分层体系结构、基于相对独立协议栈概念,都能帮助异构网络互连、使不同厂商计算机通信。
1.6 数据的封装、传输和解封装
每个协议栈顶端面向用户;用户的自然语言/应用数据先被应用层转换为通信数据。向下交付时,上一层 PDU 作为下一层 SDU,下一层加自己的 PCI 形成新 PDU,即逐层封装:
应用数据
-> [传输层 PCI | 应用数据] = 传输层 PDU
-> [网络层 PCI | 传输层 PDU] = 网络层 PDU(分组/数据报)
-> [链路层 PCI | 网络层 PDU | 链路层控制信息] = 帧
-> 比特流经物理介质发送
接收端反向逐层检查并剥离本层 PCI(解封装),把 SDU 向上提交,最终交还给目标应用/用户。控制信息随层封装而增加,使各层能完成寻址、复用、差错检测等本层职责。
题型:#分层概念与模型映射
第一部分:判断方法
- “同层远端通信规则”是协议;“相邻层提供功能”是服务;“可访问下层服务的位置”是 SAP/接口。
- 对协议三要素:格式选语法、做何操作选语义、先后顺序选同步。
- 相邻节点帧传输/流控选数据链路层;IP 跨网路由选网络层;两进程可靠通信选传输层;格式转换/加密选表示层。
- TCP/IP 映射:网接 = OSI 1+2,应用 = OSI 5+6+7。
第二部分:易错点
- 服务“可靠”不等于一定“面向连接”,面向连接/无连接与可靠/不可靠是两条分类维度。
- PDU 是对等层间的单位,不是“同一台机器中相邻层的接口数据”这一概念本身。
- 网络体系结构规定功能和协议关系,不是网卡、路由器、操作系统的具体实现说明书。
- EtherType、IP Protocol/Next Header 和端口号是具体协议的分用标识,不能无条件当成抽象 SAP 的同义词。
相关知识
- 科目导航:计算机网络导航
- 阅读顺序:上一篇:计算机网络概述 · 下一篇:物理层概述
1.7 本节复盘
- 网络体系结构是分层与协议功能的抽象定义;对等层靠协议横向通信,相邻层靠服务纵向协作,SAP 是服务入口。
- 协议三要素:语法定格式、语义定动作、同步定时序;面向连接、可靠性、有无应答是不同服务维度,不能由一种属性推出另一种。
- OSI 七层中物理传比特、链路传帧、网络传分组、传输做进程端到端;具体层是否可靠要看服务与协议,不能只凭层名判断;会话管理会话、表示处理格式/加密、应用面向用户。
- TCP/IP 为网络接口、网际、传输、应用四层;网际层无连接不可靠,传输层可同时支持不同服务。
- 封装过程是上层 PDU 下交成为下层 SDU、下层增加 PCI;接收端逆向解封装。