目录
- 协议
- 什么是协议
- 协议是水平存活的
- 协议的组成
- 接口
- 服务
- 服务是什么
- 服务原语
- 协议与服务的区别
- 计算机网络提供的服务的三种方式
- 面向连接服务与无连接服务
- 可靠服务与不可靠服务
- 有应答服务与无应答服务
协议
什么是协议
协议,就是规则的集合。
在计算机网络中,我们需要在庞大的网络中有条不紊地交换数据,就必须遵循一些事先约定好的规则。这些规则明确了所交换的数据的格式以及相关的同步方案。我们称这些为了进行网络中的数据交换而建立的规则、标准或者约定称为网络协议,网络协议也简称为“协议”。
协议是水平存活的
需要注意的是,网络协议,控制的是两个(或多个)对等实体中进行通信的规则的集合,是水平的。不对等实体间是没有协议的。比如使用 TCP/IP 协议栈通信的两个结点,结点A 的传输层与 结点B 的传输层之间是存在协议,但是 结点A 的传输层和 结点B 的网络层是不存在协议的。
协议的组成
协议是由语法、语义和同步三个部分组成。
- 语法:规定了传输数据的格式。
- 语义:规定了所要完成的功能,即需要发出何种控制信息、完成何种动作以及做出何种应答。
- 同步:规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。
一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。
接口
接口是同一结点内相邻两层间交换信息的连接点,是一个系统内部的规定。每层只能为紧邻的层次之间定义接口,不能跨层定义接口。
在典型的接口上,同一结点相邻两层的实体通过服务访问点(SAP)进行交互。服务是通过 SAP 提供给上层使用的,第 n n n 层的 SAP 就是第 n + 1 n+1 n+1 层可以访问第 n n n 层服务的地方。
每个 SAP 都有一个能够标识它的地址,且 SAP 是一个抽象的概念,实际上是一个逻辑接口,是和通常所说的两个设备之间的硬件接口是很不一样的。
服务
服务是什么
服务是指下层为紧邻的上层提供的功能调用,是垂直的。
对等实体在协议的控制下,使得本层能够为上一层提供服务,但要实现本层协议,还需要使用下一层所提供的服务。
服务原语
上层使用下层所提供的服务时,必须与下层交换一些命令。这些命令在 OSI 参考模型中被称为 服务原语。
服务原语被分为以下几类:
- 请求: Request,由服务用户发往服务提供者,请求完成某项工作。
- 指示: Indication,由服务提供者发往服务用户,指示用户做某件事情。
- 响应: Response,由服务用户发往服务提供者,作为对指示的响应。
- 证实: Confirmation,由服务提供者发往服务用户,作为对请求的证实。
这几类原语用于不同的功能,如建立连接、传输数据和断开连接等。根据是否包含全部原语,又将服务分为 有应答服务 以及 无应答服务:
- 有应答服务: 包括全部原语;
- 无应答服务: 仅包含请求和指示两类原语。
协议与服务的区别
协议和服务在概念上是不同的。
- 只有本层协议实现了才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。
- 协议是“水平”的,即协议是控制对等实体之间通信的规则,而服务是“垂直”的,即服务是由下层通过层间接口向上层提供的。
- 另外,并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才能被称为服务。
协议、接口、服务三者之间的关系可以如下图所示:
计算机网络提供的服务的三种方式
面向连接服务与无连接服务
- 在 面向服务 中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后,释放连接以及所占用的资源。因此这种服务可以分为连接建立、数据传输和连接释放三个阶段。TCP 就是一种面向连接服务的协议。
- 在 无连接服务 中,通信前双方无需先建立连接,需要发送数据时可直接发送,把每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。这是一种不可靠的服务。IP/UDP 就是一种无连接的服务。
可靠服务与不可靠服务
- 可靠服务 是指网络具有纠错、检错、应答机制,能够保证数据正确、可靠地传送到目的地。
- 不可靠服务 是指网络只是尽量正确、可靠地传送,而不能保证数据正确、可靠地传送至目的地,是一种尽力而为的服务。
对于不可靠服务的网络,其网络的正确性、可靠性要由应用或者用户来保障。例如用户收到信息后要判断信息的正确性,如果不正确,那么用户要把出错信息报告给信息的发送者,以便发送者采取纠错措施。通过用户的这些措施,可以把不可靠的服务变成可靠的服务。
有应答服务与无应答服务
- 有应答服务 是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。所发送的应答既可以是肯定应答,也可以是否定应答,通常在接收到的数据有错误时发送否定应答。例如,文件传输服务就是一种有应答的服务。
- 无应答服务 是指接收方收到数据后不自动给出应答,若需要应答,则由高层实现。例如对于 WWW 服务,客户端收到服务器发送的页面文件 后不给出应答。