分层结构、协议、接口与服务

计算机网络的各层及其协议的集合称为网络的体系结构(Architecture)。 换言之,计算机网络的体系结构就是这个计算机网络及其所应完成的功能的精确定义。需要强调的是,这些功能究竟是用何种硬件或软件完成的,是一个遵循这种体系结构的**实现(Implementation)**问题——体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件(网络体系结构的定义 2010 年考过)。

这一节给出的三组词——协议是水平的、服务是垂直的、接口是层间的——是整本书的通用语言。后面每一章的开头都在说”本层向上提供什么服务、与对等层用什么协议”。

机制

1.2.1 分层结构

分层的基本原则如下:

  1. 每层都实现一种相对独立的功能,降低大系统的复杂度。
  2. 各层之间的接口自然清晰,易于理解,相互交流尽可能少。
  3. 各层功能的精确定义独立于具体的实现方法,可采用最合适的技术来实现。
  4. 保持下层对上层的独立性,上层单向使用下层提供的服务。
  5. 整个分层结构应能促进标准化工作。

在网络分层结构中,第 层的活动元素通常称为第 层实体。实体指任何可发送或接收信息的硬件或软件进程,通常是某个特定的软件模块。不同机器上的同一层称为对等层,同一层的实体称为对等实体。 第 层向第 层提供的服务包括在其以下各层提供的服务。第 层的实体称为服务提供者,服务提供者上一层的实体称为服务用户。

三个数据单元:

名称含义
协议数据单元(PDU)对等层之间传送的数据单位;第 层的 PDU 记为 -PDU
服务数据单元(SDU)层与层之间交换的数据单位;第 层的 SDU 记为 -SDU
协议控制信息(PCI)控制协议操作的信息;第 层的 PCI 记为 -PCI

每层的协议数据单元都有一个通俗的名称:物理层的 PDU 称为比特流,数据链路层的 PDU 称为帧,网络层的 PDU 称为分组,传输层的 PDU 称为报文段。

当在各层之间传输数据时,将从第 层收到的 PDU 作为第 层的 SDU,加上第 层的 PCI,就封装成了第 层的 PDU,交给第 层后作为 SDU 发送,接收方接收时做相反的处理,因此三者的关系为层次结构的含义还包括:

  1. 第 层的实体不仅要使用第 层的服务来实现自身定义的功能,还要向第 层提供本层的服务,该服务是第 层及其下面各层提供的服务总和。
  2. 最低层只提供服务,是整个层次结构的基础;最高层面向用户提供服务。
  3. 上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其他层的服务。
  4. 通信时,对等层在逻辑上有一个直接信道,表现为能直接将信息传送到对方。

1.2.2 协议、接口与服务

协议:为了在网络中进行数据交换而建立的规则、标准或约定称为网络协议,是控制在对等实体之间进行通信的规则的集合,是水平的。不对等实体之间是没有协议的:如用 TCP/IP 栈通信的两个节点 A 和 B,节点 A 的传输层和节点 B 的传输层之间存在协议,但节点 A 的传输层和节点 B 的网络层之间不存在协议。

协议由三部分组成(同步的定义 2020 年考过):

组成含义例子
语法数据与控制信息的格式TCP 报文段格式由 TCP 的语法定义
语义需要发出何种控制信息、完成何种动作及做出何种应答建立 TCP 连接时每次握手所执行的操作
同步(时序)执行各种操作的条件、时序关系,即事件实现顺序的详细说明三次握手操作的时序关系

接口:同一节点内相邻两层的实体交换信息的逻辑接口称为服务访问点(SAP)。每层只能在紧邻的层之间定义接口,而不能跨层定义接口。 服务是通过 SAP 提供给上层使用的,第 层的 SAP 就是第 层可以访问第 层服务的地方。

服务:指下层为紧邻的上层提供的功能调用,是垂直的。注意协议和服务概念上的区别:

  1. 只有本层协议的实现才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。
  2. 协议是”水平的”,服务是”垂直的”。
  3. 并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体”看得见”的功能才称为服务。

服务可按三种方式分类:

分类含义
面向连接服务与无连接服务面向连接服务通信前必须先建立连接、分配资源,分为连接建立、数据传输和连接释放三个阶段,如 TCP;无连接服务不需要先建立连接,直接发送带有目的地址的包,常被描述为”尽最大努力交付”,是一种不可靠的服务,如 IP、UDP
可靠服务和不可靠服务可靠服务指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地;不可靠服务是尽力而为的服务,其正确性、可靠性要由应用或用户来保障
有应答服务和无应答服务有应答服务指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现,如文件传输服务;无应答服务指接收方收到数据后不自动给出应答,如 WWW 服务

边界

体系结构是抽象的,实现是具体的。 2010 年真题考的就是这句话。

协议是水平的,服务是垂直的。 对等层之间才有协议;不对等实体之间没有协议。

只有能被上层”看得见”的功能才叫服务。 一层内部的实现细节不算服务。

上层只能通过接口使用相邻下层的服务,不能跨层调用。

-PDU 就是 -SDU。 封装的过程就是”上一层的 PDU 变成下一层的 SDU,再加上本层的 PCI”。

可靠服务不等于面向连接。 两者是两组分类;不可靠服务的可靠性可以由应用或用户来补(如收到后自己检验、报错、重发)。

对照速查

说法对错
网络体系结构是各层及其协议的集合✅(2010)
体系结构是具体的,实现是抽象的❌(反了)
节点 A 的传输层与节点 B 的网络层之间存在协议❌
协议由语法、语义、同步三部分组成✅(2020)
接口可以跨层定义❌
服务是水平的,协议是垂直的❌(反了)
一层内完成的全部功能都称为服务❌(只有被上层看得见的才是)
网络层的 PDU 称为分组,传输层的 PDU 称为报文段✅
-SDU + -PCI = -PDU✅
有应答服务的应答由用户程序实现❌(由传输系统内部自动实现)

考点

  • 体系结构 = 各层 + 协议的集合;抽象 vs 实现(2010)
  • 分层的五条原则;实体、对等层、服务提供者与服务用户
  • PDU / SDU / PCI 的关系;各层 PDU 的名称
  • 协议水平、服务垂直、接口(SAP)层间;协议三要素(2020)
  • 三组服务分类:面向连接/无连接、可靠/不可靠、有应答/无应答

链接