← 返回学习笔记

Lecture 2:知识 - 计算机网络体系结构与参考模型

408 学习笔记:Lecture 2:知识 - 计算机网络体系结构与参考模型。保留原有知识内容、公式与图示;有对应原件时提供查看和下载入口。

本页目录

描述:网络体系结构定义“各层做什么、相邻层怎样服务、对等层怎样通信”,但不规定具体软硬件代码。用“协议横向、服务纵向、接口在相邻层之间”理解 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. 每层实现相对独立功能,降低大系统复杂度。
  2. 层间接口清晰、相互交流尽量少。
  3. 层功能定义独立于实现方法,可选适合的技术实现。
  4. 下层对上层保持独立,上层只使用下层服务。
  5. 分层结构应促进标准化。

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 向上提交,最终交还给目标应用/用户。控制信息随层封装而增加,使各层能完成寻址、复用、差错检测等本层职责。

题型:#分层概念与模型映射

第一部分:判断方法

  1. “同层远端通信规则”是协议;“相邻层提供功能”是服务;“可访问下层服务的位置”是 SAP/接口。
  2. 对协议三要素:格式选语法、做何操作选语义、先后顺序选同步。
  3. 相邻节点帧传输/流控选数据链路层;IP 跨网路由选网络层;两进程可靠通信选传输层;格式转换/加密选表示层。
  4. 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;接收端逆向解封装。