您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 计算机网络多媒体技术与应用
第四章数据链路层本章内容本层的主要功能数据帧差错控制流量控制基本数据链路层协议Internet的点对点协议4.1数据链路层的基本概念基本概念链路(link):一条无源的点到点的物理线路段,中间没有任何其他的交换结点。是一条物理链路。数据链路(datalink):当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加到链路上,就构成了数据链路数据链路层最重要的作用是:通过一些数据链路层协议(即链路控制规程),在不太可靠的物理链路上实现可靠的数据传输。数据链路层的功能(1)为网络层提供服务传输差错处理流量控制数据链路层的功能(2)数据链路层的基本功能:链路管理数据链路的建立、维持和释放帧定界(帧同步)帧定界是指收方能从收到的比特流中准确地区分出一帧的开始和结束流量控制发方发送数据的速率必须使收方来得及接收。差错控制前向纠错:收方收到有差错的数据帧时,能自动将差错改正过来。差错检测:收方检测出收到的帧有差错(但并不知是哪几个比特错了)时,就立即将它丢弃,但有两种选择:一种方法不进行任何处理(要处理也是由高层进行),另一种方法则是由数据链路层负责重传丢弃的帧。将数据和控制信息区分开透明传输寻址必须保证每一帧都能送到正确的目的站。(a)Virtualcommunication.(b)Actualcommunication.ServicesProvidedtoNetworkLayer数据链路协议的位置Placementofthedatalinkprotocol.成帧Acharacterstream.(a)Withouterrors.(b)Withoneerror.成帧成帧Bitstuffing(a)Theoriginaldata.(b)Thedataastheyappearontheline.(c)Thedataastheyarestoredinreceiver’smemoryafterdestuffing.4.2基本数据链路层协议完全理想化的数据传输在这样理想化的条件下,数据的传输就非常简单(不需要有流量控制,也不需要有差错控制)。具有最简单流量控制的数据链路层协议若传输数据的信道仍是无差错的理想信道,但不能保证接收端向主机交付数据的速率永远不低于发送端发送数据的速率。实用的停止等待协议对于实际传输数据的信道是不能保证所传的数据不产生差错,且还需要对数据的发送端进行流量控制。不出差错时,接收方将收到的正确帧交付给主机,同时向发方发一个确认帧ACK(ACKnowledgement)。发方主机收到ACK后才能发送一个新的数据帧。传输过程中出现差错:(1)数据帧出错:ACK,NAK(2)数据帧丢失:超时计时器Time-outer(3)确认帧丢失:重复帧、编号发送序号编号问题:对发送的数据帧带上发送序号,序号所占用的比特数的有限的。经过一段时间后,发送序号就会重复。序号所占用的比特数越少,额外开销就越小。对停止等待协议,每发送一帧就停止等待,故用一个比特来编号就够了。虽然物理层在传输比特时会出现差错,但由于数据链路层的停止等待协议采用了有效的检错重传机制,数据链路层对上面的网络层就提供了可靠传输的服务。停止等待协议中的几个重要时间关系在半双工通信模型中结点A向结点B发送数据帧。结点B只发送确认帧而不发否认帧和数据帧。设tf是一个数据帧的发送时间,且帧的长度是固定不变。则数据帧的发送时间tf是数据帧的长度lf(bit)与数据发送速率C(bit)之比。tf=lf/C(s)数据帧沿链路传到结点B还要经历一个传播时延tp,它是信号(电磁波)在物理链路上传播所造成的时延。结点B收到数据帧要花费时间进行处理,即处理时间tpr。结点B接着发送确认帧ACK,其发送时间为tα设信道的双向传播时延都是一样的,当结点A收到确认帧时,确认帧也经历了tp和tpr。从一个数据帧从结点A发出到结点A收到结点B的确认帧,(即两个成功发送的数据帧之间的最小时间间隔)tT=tf+tp+tpr+tα+tp+tpr设重传时间(作用是:数据帧发送完毕后若经过了这样长的时间还没有收到确认帧,就重传这个数据帧):tout=tp+tpr+tα+tp+tpr设上式右端的处理时间tpr和确认帧的发送时间tα都远小于传播时延tp,就可简单地将重传时间取为两倍的传播时延,tout=2tp。两个发送成功的数据帧之间的最小时间间隔tT=tf+tout如遇发生差错,则须再重传已发送过的数据帧,直到对方成功收到为止。成功发送一个数据帧所需的时间显然要超过tT。停止等待协议ARQ的优点:比较简单;缺点:信道利用率不高。尤其当信道引起的传播时延很大时(如卫星通信),也就是说信道还远远没有被数据比特填满。为克服这一缺点,产生了另外两种协议:连续ARQ和选择重传ARQ。4.3连续ARQ协议连续ARQ协议的工作原理工作原理的要点:在发送完一个数据帧后,不是停下来等待确认帧,而是可以连续再发送若干个数据帧。如果这时收到了接收端发来的确认帧,那么还可以接着发送数据帧。由于减少了等待时间,整个通信的吞吐量就提高了。结点A向结点B每发送完一数据帧不是停止等待而是继续发后续帧,且每发完一帧就为该帧设置超时计时器。结点B回送的确认帧不仅要说明是对哪一帧进行确认或否认,而且确认帧本身必须编号。ACKn表示对(n-1)号帧的确认。即已收到了第(n-1)号帧,下次期望收到第n号帧。几点注意:(1)结点B运行的协议是在出现差错时不做任何响应,然后就等待发送端超时重传。(另一种是在出现差错时就向结点A发送否认帧,以便使发送端及早重传出错的帧。)(2)接收端只按序接收数据帧。(3)ACK1表示确认0号帧DATA0,并期望下次收到1号帧,依此类推。(4)结点A在每发送完一个数据帧时都要设置该帧的超时计时器。如果在所设的超时时间tout内收到确认帧,就立即将超时计时器清零。若在所设置的超时时间tout到了而仍未收到确认帧,就要重传相应的数据帧(仍需重新设置超时计时器)。连续ARQ又称为Go-back-NARQ,意思是当出现差错必须重传时,要向回走N个帧,然后再开始重传。连续ARQ协议因连续发送数据帧而提高了信道的利用率,但在重传时又必须把原来己传送正确的数据帧进行重传(仅因这些数据帧的前面有一个数据帧出了错),这种做法又使传送效率降低。由此可见,若传输信道的传输质量很差因而误码率较大时,连续ARQ协议不一定优于停止等待协议。在连续ARQ议中,应当将已发送出去但未被确认的数据帧的数目加以限制。因为:(1)当未被确认的数据帧数目太多时,只要有一帧出了差错,就可能有很多的数据帧需要重传,这必然就白白花费较多的时间,增大开销。(2)为了对所发送的大量数据帧进行编号,每个数据帧的发送序号也要占用较多的比特数,这样又增加了一些不必要开销。滑动窗口的概念滑动窗口在连续ARQ协议中采用与停止等待协议同样原理的循环重复使用已收到确认的那些帧的序号。在控制信息中用有限几个比特来编号,加入适当的控制机制,来限制已发送出去但未被确认的数据帧的数目。在发送端和接收端分别设定所谓发送窗口和接收窗口。发送窗口用来对发送端进行流量控制,而发送窗口的大小WT代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。滑动窗口的概念例:设发送序号用3比特编码,即可有0~7个不同的序号。发送窗口WT=5,表示在未收到对方确认信息的情况下,发送端最多可以发送出5个数据帧。发送窗口的规则可如图表示。(P80)为了减少开销,连续ARQ协议还规定接收端不一定每收到一个正确的数据帧就必须立即发回一个确认帧,而是可以在连续收到若干个正确的数据帧以后,才对最后一个数据帧发确认信息,或者可以在当自己有数据要发送时才将对以前正确收到的帧加以捎带确认。对某一数据帧的确认就表明该数据帧和这以前所有的数据帧均己正确无误地收到了。在接收端设置接收窗口用来控制可接收哪些数据帧而不可接收哪些帧。在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。下图中,接收窗口的大小WR=1。只有在接收窗口向前滑动时(与此同时也发送了确认〉,发送窗口才有可能向前滑动。发送端若没有收到该确认,发送窗口就不能滑动。当数据帧的发送序号所占用的比特数一定时,发送窗口的最大值是多少?例:设用3比特对数据帧序号编号,发送窗口最大值为8,即WT=8,发送窗口已满,发送暂停。且8个数据帧已正确到达接收端,并对每一个数据帧接收端都发送出确认帧:(1)所有的确认帧都正确到达了发送端,故发送端又发送8个新的数据帧,其编号是0~7。注意:序号是循环使用的,8个帧都是新的帧。(2)所有的确认帧都丢失了。经过超时计时器控制的时间后,发送端重传这8个旧的数据帧,其编号仍为0~7。问题已经十分明显了。接收端第二次收到编号为0~7的8个数据帧时,无法判定:这是8个新的数据帧,或这是8个旧的、重传的数据帧。将发送窗口设置为8显然是不行的。当用n个比特进行编号时,若接收窗口的大小为1,则只有在发送窗口的大小WT≤2n-1时,连续ARQ协议才能正确运行。连续ARQ协议所有已发送出去的但尚未被确认的数据帧都必须保存在发送端的缓存中,以便在出差错时进行重传。这种对已发送的数据帧的保存,是使用一个先进先出的队列。发送端每发完一个新的数据帧就将该帧存入这个队列。当队列长度达到发送窗口大小WT时,即停止再发送新的数据帧。当按照协议进行重传(重传1帧或多帧)时,队列并不发生变化。只有当收到对应于队首的帧的确认时,才将队首的数据帧清除。若队列变空,则表明全部已发出的数据帧均已得到了确认。4.4面向比特的链路控制规程HDLCIBM公司在SNA的数据链路层规程采用了面向比特的规程SDLC(SynchronousDataLinkControl),ISO将其修改后称为HDLC(High-levelDataLinkControl),CCITT将HDLC修改后称为LAP(LinkAccessProce-dure),后LAP又被修改为LAPB(B-Balanced)。HDLC可适用于链路的两种基本配置:非平衡配置与平衡配置HDLC的帧结构数据链路层要解决帧同步的问题。帧同步就是从收到的比特流中正确地判断出一个帧从哪个比特开始以及到哪个比特结束。各字段的意义:标志字段F(F1ag)8bit:01111110作为一个帧的边界(帧的开头和结尾)。地址字段A,8bit:帧检验序列字段FCS,16bit:采用的生成多项式是CRC-CCITT。所检验的范围是从地址字段的第1个比特起,到信息字段的最末1个比特为止。控制字段C,8bit:HDLC的许多重要功能都靠控制字段来实现。分为三大类,即信息帧(Information)、监督帧(Supervisory)和无编号帧(Unnumbered)。信息帧:C的第1比特为0,2~4比特为发送序号N(S),表示当前发送的信息帧的序号;6~8比特为接收序号N(R),表示本站所期望收到的帧的发送序号。5比特是探询终止(Poll/Final)监督帧:控制字段的第1~2比特为10,则对应的帧即为监督帧S,共四种。由3~4比特的取值决定。(P87)所有的监督帧都不包含要传送的数据信息,因此它只有48bit。监督帧不需要有发送序号N(S)。但监督帧中的接收序号N(R)却是至关重要的。无编号帧:控制字段的第1~2比特为11。无编号帧本身不带编号即无N(S)和N(R)字段。而是用5bit来表示不同功能的无编号帧。无编号帧主要起控制作用,可在需要时随时发出。4.6Internet的点对点协议PPP用户接入Internet一般有两种方法:①使用拨号电话线接入;②使用专线接入。不管用哪种方法,在传送数据时都需要有数据链路层协议。Point-to-pointProtoc
本文标题:计算机网络多媒体技术与应用
链接地址:https://www.777doc.com/doc-1484878 .html