Skip to content

计算机网络协议、接口、服务的概念

协议

要在网络中做到有条不紊地交换数据,就必须遵循一些事先约定好的规则,其规定了所交换数据的格式及有关的同步问题。为了在网络中进行数据交换而建立的这些规则、标准或约定称为网络协议(Network Protocol),是控制在对等实体之间进行通信的规则的集合,是水平的。不对等实体之间是没有协议的,如用 TCP/IP 栈通信的两个节点 A 和节点 B ,节点 A 的传输层和节点 B 的传输层之间存在协议,但节点 A 的传输层和节点 B 的网络层之间不存在协议。


协议由语法、语义和同步三部分组成。

  • 语法:数据与控制信息的格式。

例如,TCP 报文段格式就是由 TCP 的语法定义的。

  • 语义:即需要发出何种控制信息、完成何种动作及做出何种应答。

例如,在建立 TCP 连接时每次握手所执行的操作就是由 TCP 的语义定义的。

  • 同步(或时序):执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。

例如,建立 TCP 连接的三次握手操作的时序关系就是由 TCP 的同步定义的。

接口

同一节点内相邻两层的实体交换信息的逻辑接口称为服务访问点(SAP)。

每层只能在紧邻的层之间定义接口,而不能跨层定义接口。服务是通过 SAP 提供给上层使用的,第 n 层的 SAP 就是第 n+1 层可以访问第 n 层服务的地方。

服务

服务是指下层为紧邻的上层提供的功能调用,是垂直的。对等实体在协议的控制下,使得本层能为上层提供服务,但要实现本层协议,还需要使用下层提供的服务。

注意,协议和服务概念上是不一样的。首先,只有本层协议的实现才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下面的协议对上层的服务用户是透明的。其次,协议是"水平的",即协议是控制对等实体之间通信的规则。但是,服务是"垂直的",即服务是由下层通过层间接口向上层提供的。另外,并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体"看得见"的功能才称为服务。

协议、接口、服务三者之间的关系如图所示。


协议、接口、服务三者之间的关系

计算机网络提供的服务可按以下三种方式分类。

  • 面向连接服务与无连接服务

    面向连接服务中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和占用的资源。因此这种服务可分为连接建立、数据传输和连接释放三个阶段。例如,TCP 就是一种面向连接服务的协议。

    无连接服务中,通信前双方不需要先建立连接,需要发送数据时可直接发送,将每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。这种服务常被描述为"尽最大努力交付",是一种不可靠的服务。例如,IP、UDP 就是一种无连接服务的协议。

  • 可靠服务和不可靠服务

    可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。不可靠服务是指网络只是尽量让数据正确、可靠地传送到目的地,是一种尽力而为的服务。

    对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。例如,用户收到信息后要判断信息的正确性,若不正确,则用户就要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可将不可靠服务变成可靠服务。

Last updated:

本站源代码可在 Github 查看与贡献。