实体和对等实体

实体是任何可以发送或接收信息的硬件或软件进程。

例子:

  • 网卡可以发送和接收信息,因此可以看作硬件实体。
  • 浏览器进程、Web 服务器进程可以发送和接收应用报文,因此可以看作软件实体。

对等实体是通信双方相同层次中的实体。例如,发送主机应用层中的浏览器进程和接收主机应用层中的 Web 服务器进程互为对等实体;两端数据链路层中的网卡相关功能也可以互为对等实体。

协议

协议是控制两个对等实体进行逻辑通信的规则集合。

两个实体之间并不是有物理链接。对等层看起来像在直接通信,实际数据仍会沿发送方协议栈向下、经过网络传输、再沿接收方协议栈向上。

协议三要素:语法、语义、同步

要素 含义 例子
语法 数据与控制信息的格式 首部字段如何排列、字段占多少位
语义 通信双方要完成的操作 收到 HTTP GET 后应返回请求资源或错误状态
同步 通信双方的时序关系 先发送请求,再接收响应;连接建立后再传输数据
协议看横向

协议描述的是同一层、不同系统中的对等实体如何逻辑通信。它解决的是横向规则问题。

# 服务和接口

服务是下层通过层间接口向上层提供的功能。

接口是同一系统内相邻两层之间交互的位置。上层通过服务访问点 SAP 使用下层服务。

900

第 $n$ 层通过第 $n-1$ 层提供的服务完成自己的通信功能,同时又向第 $n+1$ 层提供服务。也就是说,服务关系是逐层向上的:低层提供能力,高层使用能力。

这三个概念的方向不同:

概念 方向 关键问题
协议 横向,同层对等实体之间 对等实体按什么规则通信
服务 纵向,下层提供给上层 下层能为上层做什么
接口 本机内部,相邻层之间 上层在哪里、如何访问下层服务

服务访问点和服务原语

服务访问点 SAP 是上层访问下层服务的位置。可以把它理解为层间服务的入口。

服务原语是描述层间服务请求和响应的抽象操作。它强调的是同一系统内上下层如何交互,而不是两个主机之间的物理传输细节。

PDU 和 SDU

对等层之间传送的数据单元称为协议数据单元 PDU。

同一系统内相邻层之间交换的数据单元称为服务数据单元 SDU。

760

在封装过程中,上层交给本层的数据就是本层的 SDU。本层添加首部或尾部后,形成用于本层对等实体逻辑通信的 PDU。

例如:

  • HTTP 请求交给 TCP 后,对 TCP 来说是 SDU。
  • TCP 加上 TCP 首部后,形成 TCP 报文段,这是运输层 PDU。
  • TCP 报文段交给 IP 后,又成为网络层的 SDU。
  • IP 加上 IP 首部后,形成 IP 数据报,这是网络层 PDU。

多个 SDU 可以合成为一个 PDU,一个 SDU 也可以拆分为多个 PDU。具体如何处理取决于该层协议设计。