数据通信与计算机网络——数据链路层数字通信与计算机网络技术基础数据通信与计算机网络——数据链路层第4章数据链路层本章学习目标•链路、数据链路的概念,数据链路层的功能•停止等待协议的工作原理与过程•数据链路层是如何进行差错控制的•数据链路层流量控制的意义与方法•面向比特数据链路层协议HDLC的帧结构与帧分类•PPP链路协议的工作过程数据通信与计算机网络——数据链路层4.1数据链路层概述链路与数据链路调制解调器调制解调器链路控制链路控制节点交换机节点交换机链路数据链路数据传输链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。数据链路(datalink)除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。数据通信与计算机网络——数据链路层4.1数据链路层概述帧与报文通信媒体物理层数据链路层网络层传输层会话层表示层应用层物理层数据链路层网络层传输层会话层表示层应用层报文或分组报文帧用户用户数据通信与计算机网络——数据链路层4.1数据链路层概述4.1.2数据链路层的目的、服务及功能1.目的数据链路层在网络实体间提供建立、维持和释放数据链路连接以及提供传输数据链路服务数据单元的功能和过程的手段;在物理连接上建立数据链路连接。它检测和校正物理层出现的错误,为网络层提供可靠的数据链路。数据通信与计算机网络——数据链路层4.1数据链路层概述4.1.2数据链路层的目的、服务及功能2.为网络层提供的服务(1)数据链路连接。(2)接收数据链路服务数据单元和网络层交换数据;(3)提供数据链路端点标识符;(4)当把数据链路服务数据单元划分为多个数据链路协议数据单元传送时,要保证按发送方发送的顺序向接收方的网络层递交,即提供保序的服务;(5)差错位检测、纠正和报告;(6)流量控制;(7)服务质量参数的商定。数据通信与计算机网络——数据链路层4.1数据链路层概述4.1.2数据链路层的目的、服务及功能3.数据链路层的功能1、链路管理:当网络中的两个结点进行通信时,发送方必须确知接收方是否已处在准备接收状态。2、帧同步:数据链路层,数据传送的单位是帧。3、流量控制:协调发送方与接收方的工作。4、差错控制:接收方可通过校验帧的差错编码,判断接收到的帧是否有差错。5、透明传输:所谓透明传输就是不管所传数据是什么样的比特组合,都应能够在链路上传送。6、寻址:在多点连接的情况下,保证每一帧都能送到正确的目的站。课件制作人:谢希仁4.2停止等待协议4.2.1完全理想化的数据传输先研究一下数据链路层的模型。课件制作人:谢希仁数据链路层的简单模型局域网广域网主机H1主机H2路由器R1路由器R2路由器R3电话网局域网主机H1向H2发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2从层次上来看数据的流动课件制作人:谢希仁数据链路层的简单模型(续)局域网广域网主机H1主机H2路由器R1路由器R2路由器R3电话网局域网主机H1向H2发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2仅从数据链路层观察帧的流动课件制作人:谢希仁4.2停止等待协议4.2.1完全理想化的数据传输数据链路层主机A缓存主机B数据链路AP2AP1缓存发送方接收方帧高层帧课件制作人:谢希仁完全理想化的数据传输所基于的两个假定假定1:链路是理想的传输信道,所传送的任何数据既不会出差错也不会丢失。假定2:不管发方以多快的速率发送数据,收方总是来得及收下,并及时上交主机。这个假定就相当于认为:接收端向主机交付数据的速率永远不会低于发送端发送数据的速率。课件制作人:谢希仁4.2.2具有最简单流量控制的数据链路层协议现在去掉上述的第二个假定。但是,仍然保留第一个假定,即主机A向主机B传输数据的信道仍然是无差错的理想信道。然而现在不能保证接收端向主机交付数据的速率永远不低于发送端发送数据的速率。由收方控制发方的数据流,乃是计算机网络中流量控制的一个基本方法。课件制作人:谢希仁具有最简单流量控制的数据链路层协议算法在发送结点:(1)从主机取一个数据帧。(2)将数据帧送到数据链路层的发送缓存。(3)将发送缓存中的数据帧发送出去。(4)等待。(5)若收到由接收结点发过来的信息(此信息的格式与内容可由双方事先商定好),则从主机取一个新的数据帧,然后转到(2)。课件制作人:谢希仁具有最简单流量控制的数据链路层协议算法(续)在接收结点:(1)等待。(2)若收到由发送结点发过来的数据帧,则将其放入数据链路层的接收缓存。(3)将接收缓存中的数据帧上交主机。(4)向发送结点发一信息,表示数据帧已经上交给主机。(5)转到(1)。课件制作人:谢希仁两种情况的对比(传输均无差错)AB送主机B送主机B送主机B送主机BAB送主机B送主机B时间不需要流量控制需要流量控制课件制作人:谢希仁4.2.3实用的停止等待协议时间AB送主机送主机(a)正常情况AB送主机(c)数据帧丢失重传tout丢失!AB送主机丢弃(d)确认帧丢失重传tout丢失!AB送主机(b)数据帧出错重传出错四种情况课件制作人:谢希仁超时计时器的作用结点A发送完一个数据帧时,就启动一个超时计时器(timeouttimer)。计时器又称为定时器。若到了超时计时器所设置的重传时间tout而仍收不到结点B的任何确认帧,则结点A就重传前面所发送的这一数据帧。一般可将重传时间选为略大于“从发完数据帧到收到确认帧所需的平均时间”。课件制作人:谢希仁解决重复帧的问题使每一个数据帧带上不同的发送序号。每发送一个新的数据帧就把它的发送序号加1。若结点B收到发送序号相同的数据帧,就表明出现了重复帧。这时应丢弃重复帧,因为已经收到过同样的数据帧并且也交给了主机B。但此时结点B还必须向A发送确认帧ACK,因为B已经知道A还没有收到上一次发过去的确认帧ACK。课件制作人:谢希仁帧的编号问题任何一个编号系统的序号所占用的比特数一定是有限的。因此,经过一段时间后,发送序号就会重复。序号占用的比特数越少,数据传输的额外开销就越小。对于停止等待协议,由于每发送一个数据帧就停止等待,因此用一个比特来编号就够了。一个比特可表示0和1两种不同的序号。课件制作人:谢希仁帧的发送序号数据帧中的发送序号N(S)以0和1交替的方式出现在数据帧中。每发一个新的数据帧,发送序号就和上次发送的不一样。用这样的方法就可以使收方能够区分开新的数据帧和重传的数据帧了。课件制作人:谢希仁可靠传输虽然物理层在传输比特时会出现差错,但由于数据链路层的停止等待协议采用了有效的检错重传机制,数据链路层对上面的网络层就可以提供可靠传输的服务。课件制作人:谢希仁停止等待协议ARQ的优缺点优点:比较简单。缺点:通信信道的利用率不高,也就是说,信道还远远没有被数据比特填满。为了克服这一缺点,就产生了另外两种协议,即连续ARQ和选择重传ARQ。这将在后面进一步讨论。课件制作人:谢希仁4.3连续ARQ协议4.3.1连续ARQ协议的工作原理在发送完一个数据帧后,不是停下来等待确认帧,而是可以连续再发送若干个数据帧。如果这时收到了接收端发来的确认帧,那么还可以接着发送数据帧。由于减少了等待时间,整个通信的吞吐量就提高了。课件制作人:谢希仁连续ARQ协议的工作原理ACK1确认DATA0ACK2确认DATA1DATA2出错,丢弃DATA3不按序,丢弃,重传ACK2DATA4不按序,丢弃,重传ACK2DATA5不按序,丢弃,重传ACK2ACK3确认DATA2ACK4确认DATA3超时重传时间ABtout送交主机送交主机…课件制作人:谢希仁需要注意:(1)接收端只按序接收数据帧。虽然在有差错的2号帧之后接着又收到了正确的3个数据帧,但接收端都必须将这些帧丢弃,因为在这些帧前面有一个2号帧还没有收到。虽然丢弃了这些不按序的无差错帧,但应重复发送已发送过的最后一个确认帧(防止确认帧丢失)。(2)ACK1表示确认0号帧DATA0,并期望下次收到1号帧;ACK2表示确认1号帧DATA1,并期望下次收到2号帧。依此类推。课件制作人:谢希仁需要注意:(3)结点A在每发送完一个数据帧时都要设置该帧的超时计时器。如果在所设置的超时时间内收到确认帧,就立即将超时计时器清零。但若在所设置的超时时间到了而未收到确认帧,就要重传相应的数据帧(仍需重新设置超时计时器)。在等不到2号帧的确认而重传2号数据帧时,虽然结点A已经发完了5号帧,但仍必须向回走,将2号帧及其以后的各帧全部进行重传。连续ARQ又称为Go-back-NARQ,意思是当出现差错必须重传时,要向回走N个帧,然后再开始重传。课件制作人:谢希仁需要注意:(4)以上讲述的仅仅是连续ARQ协议的工作原理。协议在具体实现时还有许多的细节。例如,用一个计时器就可实现相当于N个独立的超时计时器的功能。数据通信与计算机网络——数据链路层4.4流量控制窗口机制连续ARQ协议发送方是不能无限制地发送数据帧的,主要因为:(1)由于发送的数据帧都未被确认,需要在发送方缓存中保留副本,以备重传。计算机的硬件资源是有限的,缓存容量不能无限制增加。(2)发送数据帧过多,一旦有一帧出现错误,可能有很多帧需要重传,造成很大的浪费,增加了很多不必要的开销。(3)为了对连续发送的大量数据帧进行编号,每帧的发送序号也要占用较多的比特,又增加了一定的开销。因此需要对此协议中连续发送的未被确认的帧数做一定的限制,这就是滑动窗口协议。课件制作人:谢希仁滑动窗口的概念发送端和接收端分别设定发送窗口和接收窗口。发送窗口用来对发送端进行流量控制。发送窗口的大小WT代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。01234567012发送窗口WT不允许发送这些帧允许发送5个帧(a)01234567012不允许发送这些帧还允许发送4个帧WT已发送(b)01234567012不允许发送这些帧WT已发送(c)01234567012不允许发送这些帧还允许发送3个帧WT已发送已发送并已收到确认(d)课件制作人:谢希仁接收端设置接收窗口在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。在连续ARQ协议中,接收窗口的大小WR=1。只有当收到的帧的序号与接收窗口一致时才能接收该帧。否则,就丢弃它。每收到一个序号正确的帧,接收窗口就向前(即向右方)滑动一个帧的位置。同时发送对该帧的确认。不允许接收这些帧01234567012WR准备接收0号帧(a)不允许接收这些帧01234567012WR准备接收1号帧已收到(b)不允许接收这些帧01234567012WR准备接收4号帧已收到(c)课件制作人:谢希仁滑动窗口的重要特性只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。收发两端的窗口按照以上规律不断地向前滑动,因此这种协议又称为滑动窗口协议。当发送窗口和接收窗口的大小都等于1时,就是停止等待协议。课件制作人:谢希仁发送窗口的最大值当用n个比特进行编号时,若接收窗口的大小为1,则只有在发送窗口的大小WT2n1时,连续ARQ协议才能正确运行。例如,当采用3bit编码时,发送窗口的最大值是7而不是8。课件制作人:谢希仁选择重传ARQ协议可加大接收窗口,先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。选择重传ARQ协议可避免重复传送那些本来已经正确到达接收端的数据帧。但我们付出的代价是在接收端要设置具有相当容量的缓存空间。对于选择重传ARQ协议,若用n比特进行编号,则接收窗口的最大值受下式的约束WR2n/2(3-18)数据通信与计算机网络——数据链路层