计算机网络(1.9)概述-实体、协议、服务和服务访问点

实体 (entity) 表示任何可发送或接收信息的硬件或 软件进程。

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

在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。

要实现本层协议,还需要使用下层所提供的服务。

协议和服务在概念上是不一样的 ,协议的实现保证了能够向上一层提供服务。 本层的服务用户只能看见服务而无法看见下面的协议。即下面的协议对上面的服务用户是透明的。 协议是“水平的”,即协议是控制对等实体之间通信的规则。 服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。 上层使用服务原语获得下层所提供的服务。

服务访问点 :同一系统相邻两层的实体进行交互的地方,称为服务访问点SAP (Service Access Point)。 服务访问点SAP是一个抽象的概念,它实际上就是 一个逻辑接口。 OSI把层与层之间交换的数据的单位称为服务数据单元SDU (Service Data Unit)。  SDU 可以与PDU 不一样,例如,可以是多个SDU 合成为一个 PDU,也可以是一个SDU 划分为几个 PDU。


计算机网络(1.9)概述-实体、协议、服务和服务访问点

协议很复杂,协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。 看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,还必须非常仔细地检查这个协议能否应付各种异常情况。

【例1-1】著名的协议举例 

占据东、西两个山顶的蓝军1 和蓝军2 与驻扎在 山谷的白军作战。

其力量对比是:单独的蓝军1 或蓝军2打不过白军,但蓝军1 和蓝军2 协同作战 则可战胜白军。

现蓝军1 拟于次日正午向白军发起攻击。于是用计算机发送电文给蓝军2。但通信线路很不好,电文出错或丢失的可能性较大 (没有电话可使用)。因此要求收到电文的友军必须送回一个确认电文。但此确认电文也可能出错或丢失。试问能否设计出一种协议使得蓝军1 和蓝军2 能够实现协同作战,因而一定(即100 %而不是99.999…%)取得胜利?

蓝军1发送信息,蓝军2恢复同意,蓝军2要确定蓝军1受到了蓝军2的统一需要蓝军1回复,于是蓝军1回复收到同意,蓝军1要确定蓝军2收到了自己的同意,需要蓝军2回复····

计算机网络(1.9)概述-实体、协议、服务和服务访问点

这样无限循环下去,两边的蓝军都始终无法确定自己最后发出的电文对方是否已经收到。 没有一种协议能够使蓝军 100% 获胜。 这个例子告诉我们,看似非常简单的协议,设计起来要考虑的问题还是比较多的。