专注SIP通讯产品与方案

计算机网络协议结构

一、分层协议概念
  网络协议也就是网络软件技术,它直接关系到网络的互通和传送性能,是网络标准化的核心内容。众所周知,现代网络协议的一个重要特征是采用分层的结果,例如国际标准化组织(ISO)制定的著名的计算机网络开放式系统互连(OSI)七层协议结构就是一个典型的例子。
  分层协议结构的基本概念如图所示:
协议分层的概念
        每个网络节点装备有层次完全相同的协议,各层具有明确的功能分工。其中最高层负责装配和处理应用业务消息,直接和上面的应用系统接口,常称作应用层;最低层定义物理传输媒体,常称作物理层。每一层经处理和过滤后,将有效信息传递给上一层,称之为“提供服务”,同时向下一层“请求服务”,相邻层之间通过所谓的"层间原语"(primitive)交换信息,实现服务的请求和提供。通常称上一层为下-层的服务用户,下一层为上一层的服务提供者。两个节点中编号相同的分层称之为对等层,节点间通信是由各对等层通信(peer-to-peerCommunication)组成的。各层消息在物理上是通过其下层提供的连接传送的,如图中实线所示,但是在逻辑上相当于是由另一节点的对等层沿水平方向发送过来的,如图中虚线所示。描述第n层之间水平通信的规则称之为n层协议。各层协议完成各自的功能分工,并互相协同最终实现应用业务信息在两个节点之间的无差错传送。
        分层协议的最大优越性就在于它的灵活性和可扩充性。由于各层分工明确,因此每层协议可独立修改和更新,当推出新的应用业务时,只要增加相应的应用层协议就可迅速满足需要。
所谓协议,它主要包含如下儿个方面的内容:
消息类型和格式、编码;
各种操作对应的消息收发顺序;
收到消息后节点应采取的动作;
相邻层之间的层间原语类型和参数。
        一个采用分层结构的协议体系,由各个分层的协议组成,称之为协议栈(protocolstack)。各层协议消息的格式必须统一,层间原语格式可由开发厂商自行规定。
  各层协议的消息采用逐层封装的方法构成,如图所示:
协议消息的封装过程
        每层消息由两部分组成:头部(Header)和数据体(Data)组成。其中,头部为该层协议实体加入的控制信息,如地址、序号、消息类型等,又称为开销(ove中ead),协议定义的就是如何解释和处理该层头部的一组规则。数据体就是上层传下来的消息,每层协议对数据体不作任何处理,只是透明传递。整个协议栈的消息处理过程是:应用层将原始用户数据装配成应用层消息往下传递,每经一层加一个头部;至远端节点,每经一层协议处理去掉一个头部,最后将原始用户数据传递到应用层。通常,第2层(数据链路层)消息除了头部外,还有一个尾部,供差错检测用。
        在协议术语中,消息的数据体称为服务数据单元(SOU-ServiceDataUnit),加上头部后成为协议数据单元(POU-ProtocolDataUnit)。在不同的协议栈和不同协议层中,协议消息可有不同的名称,如帧、分组、段、报文等,数据体也可称为净荷(payload)或用户数据。
  需要注意的是,由于每层消息都有一个最大允许长度,每个网络还有一个最大允许传送单元(MTV-MaximumTransferUnit),因此,如果上层传下来的消息太长,下层就需将其拆成多个sou,分别加上头部后往下传递,这称之为分割(segmentation),远端节点的逆过程称为重装(Reassembly)。
  最后说明一点,在分层协议结构中,相邻层间的接口点称为服务接入点(SAP-ServiceAceessPoint)。一般说来,每层协议可为上一层多个协议实体提供服务,每个协议实体代表一类协议功能,例如在应用层就对应为多种不同的应用。因此,每层可有多个SAP,每个SAP有其对应的地址。这样从协议的角度看,每个物理节点可视作多个逻辑节点,至该节点的连接实际上可为一个多重连接。SAP的概念示于图:
层间SAP示图
二、OSI七层结构
OSI七层参考模型如图所示:
OSI参考模型
各层的功能为:
物理层:定义物理传输媒体及其机械、电气和物理接口。
数据链路层:主要功能是确保在相邻节点之间链路上比特流的正确传送,其代表性的协议是高级数字链路控制协议(HDLC)。对于广播型的LAN来说,需解决共享信道的控制接入问题,它有专门
网络层:负责将分组消息由主叫传送到被叫。主要功能是寻址和选路,也包括一定的拥塞控制。
运输层:其主要功能是根据用户需要提供端到端的差错控制和流量控制能力,保证分组消息传送的可靠性和有序性。
会话层:可提供诸如全双工/半双工/单工会话方式、会话中断后的断点恢复等功能。
表示层:定义统一的语法,消除主被叫数据结构表示方法不一致带来的问题。最著名的就是1型抽象语法标记(ASN.1)协议。
应用层:定义各种具体应用。
  由上图可见,下三层协议是相邻节点之间执行的协议,解决分组的传送问题,称为低层协议。运输层及以上各层协议是端到端协议,解决分组的处理问题,称为高层协议。主机到路由器及通信子网内部只含低层协议,高层协议则位于主机中。
  OSI参考模型提出的分层结构思想和设计原则已被一致认同,有关术语也被广泛采用,但是实际上并没有一个协议是按照七层结构去实现的,其原因是过于复杂。例如,表示层和会话层很少有用。而Internet的TCP/IP协议栈采用简化的结构,却获得了极大的成功。
三、TCP/IP参考模型
如下图所示,TCP/IP参考模型仅为4层:
TCP/IP参考模型
网络接入层:解决主机如何接人网络。此层协议取决于所使用的网络类型,例如X.25、FR、LAN等。互联网研究人员认为该层协议是现成的,对此不予关心。
网际层;定义网际统一的网络层协议,解决分组穿越多个网络的路由问题。在Internet中使用的就是著名的IP协议。
运输层;支持源端主机和目的主机之间的端到端对话。Internet定义了两个协议。一个称为传输控制协议(TCP-TransmissionControlProtocol),这是一个支持可靠传送的面向连接协议,在会话之前首先要建立TCP连接,并具有检错和重发功能,主要用于数据、信令等要求高可靠性的应用。另一个称为用户数据报协议(UDP-UserDatagramProtocol),这是一个不可靠的无连接协议,主要用于语音、视频等实时通信,也用于一次性的客户机-服务器类型的问答式询问。
应用层:即进程层。Internet定义的主要应用有:远程终端(TE1N门)、文件传输(FTP)、电子函件(SMTP)、域名服务(DNS)、简单网络管理(SNMP)和万维网(WWW)等。
  上述4层模型因Internet的主要协议TCP和IP而得名。该模型也适用于其它网络,只是网络层和运输层的协议不同。如著名的Novell网,其网络层协议为IPX,运输层协议为NCP或SPX。网络接入层则为各种LAN。
        TCP/IP模型除了简洁以外,它和OSI模型的最大不同之处是,TCP/IP模型的网络层只提供无连接服务,运输层则提供面向连接和无连接两类协议,其思路是简化网络层协议,提高路由对网络设备故障的自适应调整能力。而OSI模型的网络层支持两类服务,运输层只支持面向连接服务,网络层的面向连接服务导致协议十分复杂,这也是传统电信网及ATM网和IP网的最大不同之处。
        应该说OSI模型是一个对网络研究和讨 论十分有用的模型,但是很少有人对开发OSI协议感兴趣,而TCP/IP协议已经广泛使用,但是其参考模型比较粗糙,实际上是后来 才给出的,尤其是网络接入层不能算作是一个协议层,应将它进一步划分为数据链路层和物理层。由此得到改进的 5层混合模型如图所示,这是讨论计算机网络一般基于的模型。
计算机网络的5层混合模型
  最后说明一点,在Internet中常称数据链路层消息为帧(frame),IP层消息为分组(packet),TCP/UDP层消息为段(segment)。