OSI / RM 参考模型有3个主要概念:服务、接口和协议,但是 TCP / IP 参考模型最初没有明确区分服务、接口和协议。
一、协议:网络协议就是通信双方都必须要遵守的规则,和我们日常生活中的约定一样。如果没有网络协议,计算机中的数据无法发送到网络上,更无法到达对方计算机上。有了网络通信协议,网络通信才能够发生。协议的实现是很复杂的。因为协议要把电子邮件、文档等加工转化成可以在网络上传输的信号,需要进行非常复杂的处置流程才能让人读得懂它传输的数据,协议中,每一层都是通过层间接口向上一层提供一定的服务,而把"这种服务是如何实现的细节对上层加以屏蔽。
假设网络协议分为若干层,那么 A、B 两节点通信,实际是节点 A 的第 n 层与节点 B 的第 n 层进行通信,故协议总是指某一层的协议。准确地说,它是在同等层之间的实体通信时,有关通信规则和约定的集合就是该层协议,如物理层协议、传输层协议、应用层协议。每一相邻层协议间有一接口,下层通过该接口向上一层提供服务。
从用户来看,通信是在用户 A 和用户 B 之间进行的。双方遵守应用层协议,通信为水平方向。但实际上,信息并不是从 A 站的应用层直接传送至 B 站的应用层,而是每一层都把数据和控制信息传给它的下一层,直至最低层,第一层之下是物理传输介质,在物理介质上传送的是实际电信号。信息的实际流动过程如图所示。
信息流动过程
网络协议主要由以下三个要素组成:
1、语法:即数据与控制信息的结构或格式,包括数据的组织方式、编码方式、信号电平的表示方式等。
2、语义:即需要发出何种控制信息,完成何种动作及做出何种应答,以实现数据交换的协调和差错处理。
3、时序:即事件实现顺序的详细说明,以实现速率匹配和排序
二、服务:服务是协议外部行为的体现,各层服务是垂直关系,即网络中低层协议向相邻的高层协议提供服务,如上图中的物理层向数据链路层服务。高层则通过原语( Primitive )或过程( Procedure )调用相邻低层所提供的服务。计算机网络向用户提供两类关于数据传输方式的服务。
1、面向连接的服务( Connection Oriented Service )。面向连接的服务思想来源于电话传输系统。其过程可以分为三部分,即建立连接,数据传输与断开连接,称为虚电路方式。面向连接的服务又可分为永久性连接服务和非永久性连接服务。
非永久性连接服务在每个应用(或称为数据流)开始之前,都要先进行连接,待连接成功之后再进行数据通信。通信完毕之后断开连接。
永久性连接则只是在第一次进行数据通信之前进行连接。待该连接成功后将一直把该连接的路径存入相应的计算机或网络设备中。除非管理员删除掉永久性连接或网络故障,以后这两台计算机进行通信时就不用再进行连接。
面向连接的服务只有在建立连接时发送的分组中才包含相应的目的地址。待连接建立起来之后,所传送的分组中将不再包含目的地址,而仅包含比目的地址要短小得多的连接标识( Connection Identifier ),从而减少了数据分组传输的负载。面向连接的另一个好处就是一旦连接中断,用户马上就能发现。这使得用户可以很快地采取相应的措施。 TCP 协议就是面向连接的, ATM ( Asynchronous Transfer Mode ,异步传输模式)交换机、帧中继网( Frame Relay , FR )等也是面向连接的。
2、无连接服务( Connectionless Service )。无连接服务的工作方式就像邮电系统。两个通信的计算机之间无须事先建立连接。以无连接服务方式传输每个数据分组中都必须包含目的地址。无连接方式不能防止分组的丢失、重复或失序等错误。无连接方式的优点是处理开销小,发送信息快,比较适合实时数据的处理和传输。 UDP 协议就是无连接方式的。 IP 协议也是无连接的。以太网、令牌环网、光纤分布式数据接口( Fiber Distributed Data Interface , FDDI )网等共享传输介质的局域网都是无连接方式的。交换式以太网包括千兆位以太网都是无连接方式的。
三、服务、接口和协议三者的关系:服务、接口和协议三者的关系如图下图所示。接口是两相邻协议层之间所有调用和服务访问点以及服务的集合。相邻高层协议通过不同的服务访问点( Service Access Point , SAP )对低层协议进行调用,就像过程调用中不同的过程调用要使用不同的过程调用名一样。网络层的服务访问点就是网络地址。
四、数据传送单位:数据传送单位可以分为以下三种:
1、服务数据单元( Service Data Unit , SDU ):为完成用户所要求的功能而应传送的数据。第 N 层的服务数据单元记为 N - SDU 。
2、协议控制信息( Protocol Control Information , PCI ):控制协议操作的信息。第 N 层的协议控制信息记为 N - PCI 。
3、协议数据单元( Protocol Data Unit , PDU ):协议交换的数据单位。第 N 层的协议数据单元记为 N - PDU 。