您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第5章数据链路层技术
第5章数据链路层技术5.1OSIfRM中的数据链路层5.1.1数据链路层功能5.1.2数据链路层服务5.2数据链路控制原理与技术5.2.1基本的传输控制过程5.2.2链路级流量控制5.2.3链路级差错控制5.3数据链路层协议实例5.3.1高级数据链路控制规程HDLC5.3.2因特网的数据链路协议数据链路是构成端—端逻辑信道的一段节点-节点间数据通路,是在一条数据线路基础上通过数据链路层协议建立起来的、具有它自己的数据传输格式(帧)和传输控制功能的节点—节点间“逻辑联结”。数据链路层为该层的对等通信实体间提供建立、维持和拆除一条或多条数据链路所必需的功能、过程,向网络层实体提供透明的、可靠的链路级数据传输服务。在本章中,“链路”(1ink)是指实际存在的物理链路,与前面章节中所述的传输线路等同;“数据链路”(datalink)是指通过协议控制建立起来的逻辑链路,反映出两点之间的传输联结关系。本章首先综述OSI/RM中定义的数据链路层功能和服务,然后主要讲述救据链路控制的原理与技术。最后,介绍两个最重要的数据链路控制协议实例。5.1OSI/RM中的数据链路层数据链路层(DL)是OS!参考模型中的第2层,介于物理层和网络层之间。数据链路层的目的是在物理层提供的数据线路连接和比特流传输功能的基础上,为它的上层对等实体(网络层实体)之间建立、维持和释放“节点-节点”间的数据链路联结,并在这个联结上为传送数据链路层数据单元(帧)提供功能性和过程性的方法。5.1.1数据链路层功能数据链路层在物理层提供的服务基础上,将网络层递交来的数据单元在邻接的两节点之间,实现透明的、高可靠的传输。这里所谓的“透明的”传输,是指无论什么类型(或结构)的数据,都按其原来的形式传输。为达到这一目的,数据链路层必须具备一系列相应的功能,归纳如下。1.数据链路管理当网络中的两个节点要进行通信时,发送方必须确知接收方是否已经处在准备接收的状态。为此,通信的双方必须先要交换一些必要的信息,以便建立起一种相互关系(逻辑联结关系)。在数据链路层,这种关系称为数据链路(DataLink)。同样地,在传输数据过程中还要维持这个数据链路,而在通信完毕时要释放这个数据链路。涉及数据链路的建立、维持和释放等方面的功能就叫做数据链路管理。2.装帧与帧同步在数据链路层,数据的传送单位是帧(Frame)。所以,当网络层实体递交并请求发送它的数据后,数据链路实体首先必须将该数据按照协议的要求,装配成数据帧,然后在数据链路控制协议的控制下发送到数据链路上去。在该链路的另一端则是相反的过程。另一方面,成批的数据如此被装配成数据帧,一帧一帧地在数据链路上传输,还必须保持它们的顺序性,以免在接收卸帧以后发生乱序。有关帧传输顺序性方面的功能就叫做帧同步。3.流量控制发送方发送数据的速率必须使接收方来得及接收,以免造成帧丢失。当接收方来不及接收时,就必须及时控制发送方的发送速率,以使收发双方的速率达到匹配。4.差错控制任何实用的通信系统都必须具有检测和纠正差错的能力,尤其是数据通信系统,要求最终的数据差错率达到极低的程度。因此,差错控制过程也是数据链路层的主要功能之一。5.透明传输如前所述,所谓透明传输就是不管所传数据是什么样的比特组合(例如,文本型数据、图像型数据、机器代码型数据等),都应当能够在链路上安全可靠地传输。当所传数据中的比特组合恰巧与协议的某个控制信息的结构完全一样时,就必须采取适当的措施,使接收方不会将这样的数据错误地认为是某个控制信息,这样才能保证数据链路上的传输是安全可靠的。6.寻址在一条简单的点—点式链路上传输数据时,无所谓寻址问题。但是,在多点式链路上传输数据时,则必须保证每一帧都能送到正确的接收方,接收方也应当知道发送方是哪一个节点,所以数据链路层也存在简单的寻址问题。5.1.2数据链路层服务OSI/RM的数据链路层的功能结构及其相关要素,可以用图5—1所示的模型表示,它在相邻节点间实现透明的、高可靠的数据传输,并以此功能作为向网络层提供的服务——数据链路服务。那么,如图5—1所示,数据链路层实体是这种服务的提供者,而上层的网络层实体就是它的服务用户,两层之间服务关系的接口就是数据链路服务访问点DL—SAP。数据链路层向网络层提供的基本服务,是将链路上源结点的网络层数据在逐条链路上传输,直到宿结点的网络层。如图5—1所示,在源结点网络层实体将数据交给数据链路层。数据链路层利用它的数据链路联结支持,把数据传输到宿结点的对等层,然后再递交给它的服务用户——网络层实体。图5-1数据链路层结构及其服务数据链路层可以提供多种不同类型的服务,实际提供的服务因系统不同而不同,但基本上有3种。1.无确认、无联结服务无确认、无联结服务是指源节点宿节点发送独立的数据帧,而且宿结点对收到的帧不做确认。数据链路层提供这种服务时,双方事先不必建立联结,因而也不存在释放联结的问题。如果某个帧由于线路差错而被丢失,数据链路层也不作任何处理,恢复工作留给上层去完成。这类服务适用于数据线路差错率很低的情况,也适用于传输实时语音数据的情况,因为语音数据流不能容许因差错恢复所带来的过大的延时·。许多局域网的数据链路层都提供无确认、无联结的服务。2.有确认、无联结服务为了提高可靠性,引入了有确认、无联结服务。这种服务仍然不需要建立联结,但是对一个被发出去的帧要进行单独确认。用这种方式,发送方就可以知道一帧是否已经安全到达目的地。如果在指定时间内一个帧未能到达目的地,则可以重传发生错误的帧。3.面向联结的服务数据链路层为网络层提供的最复杂的服务是面向联结服务。采用这种服务,源结点和宿结点在传输任何数据之前,必须先建立数据链路联结。在这种联结上传输的每一个帧被编上序号,数据链路层保证传输的帧被对方收到,且只收到一次,帧的先后顺序也不能改变。数据链路层的面向联结服务为网络层实体之间的交互提供了最可靠的数据传输服务。使用面向联结服务时,链路上的数据传输过程分为3个不同阶段。第一阶段是建立联结,并把通信双方的帧传输变量和有关的计数器进行初始化:第二阶段进行数据帧的传输过程;第三阶段是断开数据链路连结,并释放有关变量、缓冲区和其他用于维持联结的资源。5.2数据链路控制原理与技术在一条数据线路两端的DTE之间,只有当执行某一种链路传输控制规程(协议)而建立起双方的逻辑联结后,一对通信实体之间的逻辑通路才可被称为“数据链路”。数据链路层的功能和服务,要通过在数据链路上执行数据链路控制规程来具体实现。为了在数据链路上进行有效的、可靠的数据传输,需要对传输操作实施严格的控制和管理。完成这种控制和管理功能的规则和约定,称为链路控制规程(LinkControlProcedure)。根据数据链路层的功能与服务要求,任一种数据链路规程都必须完成如下几个基本的控制与管理:口链路构型及其工作方式;口基本的传输操作与顺序,即传输的阶段性控制和链路管理;口数据传输流量的控制,即速度匹配控制;口数据传输差错的控制,即差错检测与恢复控制。下面几个小节分别讨论以上这几个基本控制问题的原理与技术。5.2.1基本的传输控制过程一对数据链路层实体之间进行数据传输,必须满足一定的条件和遵循一套约定好的操作规则和顺序,以及对异常情况的处理办法等,才能保证传输的可靠性和有效性。系统设计者必须预先制定出如何控制数据传输的这些操作规则和约定,即操作规程。另外,因链路构型的不同(如点—点构型与多点构型),还存在是否寻址的问题。下面分两种情况来讨论。1.点—点链路点—点链路(Point-To-PointLink)上的操作规程比较简单,但它却是各种不同构型链路操作规程的基础。结合图5-2来说明一种最基本的半双工方式的传输操作(图中大写字母代表发送单元、小写字母代表接收单元;带圈的S代表起始态,E代表结束态)。图5-2点—点链路传输控制过程(半双工)设一条链路上的两个通信实体分别为“站1”和“站2”。各站的主次属性,是在—次数据传输联结开始时自动确定的。如图5-2所示,在某一时刻的S态,站1有数据欲传送到站2,则站1主动发出询问信息(ENQ),这时它自动居为主站地位。当站2接收到ENQ后,自动地居为次站地位,并且如果本站已准备好接收,给对方回送一个认可信息(ack),就可建立起完成一次传输联结的半双工链路(在本书的后文中,规定用大写字母表示发送信息,用小写字母表示接收信息)。主站收到ack之后,即以同步方式或者异步方式开始发送数据帧(DATA)。但为了可靠起见,发送一定数量数据后,必须暂停一会,等待对方的认可(ack)后方可继续发送后续数据。待全部数据发送完毕,发送一个结束信息(EOT),表示本站这次传输已经结束,到达E态。至此,两个站的一次数据传输完成,链路联结结束,双方的主次关系亦到此结束。当然,由于实际通信线路会造成传输过程中的差错,另外,接收站也有尚未准备好接收数据的情况。针对这些情况,接收站可以回送否认信息nak,或者不回送任何信息。对于发送站,收到nak后,应立即重发在此之前刚刚发送过的信息(ENQ或DATA)。如果发送站在等待回送期间收不到任何信息,则认为出现了异常情况,可能是接收站对接收信息的隐式否认,也可能是明式响应信息在传输中被丢失。发送站必须有正确处理这种异常情况的措施。任何站对本站中出现的异常情况的处理过程,称为“恢复过程”(后面将要讨论这个问题)。一般地,一次数据传输的操作控制过程,可分为3个阶段:(1)建立联结:沟通双方的链路联结,确认发送/接收(主/次)关系(2)数据传输:进行数据的分帧传输与认可;(3)终止联结:确认传输结束,结束双方的逻辑联结(终止双方的发送/接收关系)。以上传输控制3阶段,对于任何链路构型和不同的双工性,都是共同的。对于点-点链路,上面所描述的操作规程及主次关系,对双方是对等的,也即任何一方都可居为主站而掌握主控权。但是,为避免发生竞争冲突,实际中当主站结束传输后应发送一个权利转移信息(RVl),以表明转换主控权。在许多应用场合下,往往固定一个主站,主控权始终不转移。例如计算机主机与终端之间的联结属这种情况。在这种固定形式下,若次站有数据要发送,只能等待主站的请求,次站才可允许进入数据传输阶段。在全双工链路上,由于可以同时双向传输数据和控制信息,所以实际上是同时在两个方向上执行上述操作规则。在后述内容中将了解到这方面的情况。2.多点链路多点链路(Multi-pointLink)上的操作方式的选择,主要取决于是否存在一个被指定的主站。若有一个主站,则数据传输只能在主站与某一个次站之间进行,次站之间不传输数据。这种场合下普遍采用的所有操作规程,都是从一种所谓查询与选择方案变化而来的。这里所谓的查询:是指主站按某种顺序逐个地向次站请求数据,次站若有数据,则建立链路联结,将数据传给主站;选择:是指主站有数据送给某一次站,有选择地通知该次站“数据即将送到”。待链路联结后,将数据传给次站。“查询与选择”方案中的传输控制3阶段,与点—点链路上基本相同,只是由于存在一个以上的次站,在“建立”阶段需在控制信息中附加地址信息,通信实体必须具有寻址能力,并且在有差错情况下的“查询”与“选择”过程有所区别。图5-3所示为“查询”与“选择”方案的链路建立过程。数据传输阶段和结束阶段与点对点链路相同,图中做了简化。主站通过“查询”操作向次站请求数据,以允许次站将本站的数据传送给主站。开始,主站发出询问信息ENQ并携带被查询的次站站址,以表示向该次站请求数据。被查询的次站收到ENQ后,若有数据要送,则立即进入数据传输阶段,以发送数据来兼作ack的响应和建立链路联结的作用。否则,回送nak,主站送出EOT以结束对这个次站的查询。若主站收到的响应不正确或无响应信息,则做异常情况处理,进入恢复过程。如此对一个次站的操作完毕后,又开始查询下一个次站,反复循环进行下去。图5-3多点链路的传输控制过程(半双工)主站通过“选择”操作来完成主站到次站的数据传输。开始,主站发出询问信息ENQ并携带被选择次站的地址,以通知该站“即将有数据送到”。若被选择次站已
本文标题:第5章数据链路层技术
链接地址:https://www.777doc.com/doc-2196297 .html