本节书摘来自华章出版社《无线网络:理解和应对互联网环境下网络互连所带来的挑战》一书中的第1章,第1.5节,作者:(美)杰克L.伯班克(Jack L. Burbank)等著,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1.5 分层通信模型
一般来说,任何通信系统都可以用开放系统互连(Open Standards Interconnect,OSI)的七层通信模型来描述。1984年,OSI模型首次作为ISO 7498标准发布,它是两个端点之间的通信框架,具体描述如图1-4所示。读者可以从参考文献[307]中了解更多信息。
OSI模型采用了七层结构,它的每一层都为其相邻的更高一层提供服务,并从其较低的相邻一层请求服务。七层结构总结如下:
应用层:由端点间通信(例如,即时通信、Web浏览)应用构成。
表示层:负责数据格式化和表示。执行功能包括语法协商和数据压缩。
会话层:负责建立和维护实体之间的会话状态。
传输层:负责通过一种透明的方式处理实体之间的数据传输。可提供多种服务,包括可靠的或者高性价比的数据传输服务。
网络层:负责维护实体间无连接的和面向连接的传输。提供的服务包括路由和寻址以确保网络中节点的数据传输。
数据链路层:负责处理纠错和在其他功能中一个或多个物理链路数据的多路复用。
物理层:由用于通信的物理设备和传输媒体组成。
此外,数据链路层通常进一步细分为两个不同的子层:数据链路控制(Data Link Control,DLC)子层和媒体访问控制(Media Access Control,MAC)子层,如图1-5所示。
这些子层所发挥的不同功能将在以后章节再做介绍。第4~7层代表的是两个通信实体之间的端到端通信功能;第1层和第2层代表的是在两个通信实体之间复合路径上的任意两个端点之间的点对点(Point-To-Point,PTP)通信功能。网络层(Network layer,NWK)提供了通信终端主机(在分组交换网中,端到端路径建立在报文到报文交换的基础上)之间端到端的通信路径,并且也是将端到端和PTP功能结合到一起的“胶水”。
需要指出的是七层模型还没有形成规范,因为会话层和表示层在大多数现代体系结构中通常不是作为分开的两层实现,而是分布在应用层和传输层之间或被完全忽略。如今互联网中应用的最常见模型是TCP/IP五层模型。这个模型将七层模型压缩为五层。TCP/IP五层模型如图1-6所示。
在这个模型中,除了省略了表示层和会话层之外,每一层的命名方式跟七层模型类似。传输层实际上将数据流多路复用到运行在单一端点的不同应用中。从这个意义上来说,传输层通过TCP和用户数据报协议(User Datagram Protocol,UDP),提供了维持类会话流的能力。TCP提供了一个面向连接的、可靠的、基于应答的方法来收发数据,所以能将数据按正确顺序无错地传递给应用层。UDP提供了一个无连接的、不可靠的方法来以尽力服务(best effort)的方式收发数据。从这个角度讲,UDP并不保证数据报接收的正确顺序和无错性。常见的网络层协议(IP)在整个互联网中无处不在,这也是互联网中每个端点都可以交换数据的原因。在IP中,数据流被分成许多IP数据报或数据包。
协议栈的每一层在整个通信过程中都扮演着复杂的角色。而且,每一层都有其特有的技术问题和挑战,这些问题和挑战要么只与某一层相关,要么在无线网络问题空间中被放大。许多这类技术问题在表1-1中进行了总结。
协议栈中的每层协议都同等重要,并一起形成一个重要的技术挑战。一个有效的无线网络解决方案必须解决协议栈所有层的问题;在特定层中的单一机制可能解决特定的技术问题,但并不适用于一般无线网络的问题空间。
不同的技术组织关注协议栈的不同部分。IEEE 802的研究范围包括ISO/OSI参考模型的最下两层。虽然IEEE标准名称(例如,IEEE 802.11)和相应的商业名称(例如,Wi-Fi)经常作为同义词来使用,但应该指出的是,IEEE标准只包括PHY和MAC,而商业名称所指的是整个协议栈,包括那些更高的层。其他组织,如包括第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)的蜂窝标准化组织,通常定义通信过程的所有方面。被IEEE 802 LAN/MAN标准委员会(LAN/MAN Standards Committee,LMSC)、其他标准化组织以及决定商业名称的行业联盟采用的标准化过程,将在第2章中做更详细的介绍。
层定义
每层标准由两部分组成:服务定义和协议规范。服务定义描述了每层执行的功能和其提供给协议栈高层的服务。协议规范描述了层内和同等实体之间使用的过程,以执行由服务定义描述的功能。
协议是一套公认的规则,通过它实现两个实体间的信息传输。协议的一个例子就是人类语言。在数据通信中,协议一般对数据的格式、数据的处理方式、数据如何被关注(即,数据的意义)进行定义。协议包括3个组成部分:
(a)服务数据单元(Service Data Unit,SDU)由协议栈上层产生的用户数据和控制信息组成,这些控制信息由协议栈的特定层进行传输。
(b)协议控制信息(Protocol Control Information,PCI)是同等实体间的交换信息,用于执行特定任务或解决格式问题。协议栈的每一层都会附加这类信息,这样每层都可以提供其所定义的服务并成功完成其所需的功能。
(c)协议数据单元(Protocol Data Unit,PDU)是SDU和PCI的结合。也称为封装SDU,它是传递到下一层的信息。
注意,这些定义是与层相关的。例如,一层的PDU是下一层的SDU。另外,每个单元的大小通常是有限制的,也就是说包含在单一SDU 和PDU中的信息不是无限的。因为数据用二进制(位)进行传输,每个单元的位数通常是有限的。为了表示单一的完整传输,将多个单元进行复合传输(例如,文件的传输可能由许多这样的单元组成)。
层与层之间通过传递这些PDU和SDU进行交互,如图1-2所示。第N+1层生成PDU信息,并将其传递到第N层进行服务。第N层添加合适的PCI,生成一个新的PDU并将其向下传递到第N-1层。第N-1层接收SDU信息并将PCI信息附加在上面,由此生成一个不同的PDU。重复此过程直到到达协议栈的底层,数据跨越传输媒体进行传输。层与层之间通过其标准化接口服务接入点(Service Access Point,SAP)进行通信。层与层之间的交互过程如图1-7[4]所示。
图1-7 OSI通信参考模型中的层交互,摘自参考文献[4]