计算机网络数据链路层研究培训资料.ppt
计算机网络数据链路层研究Q Q:物理:物理链路链路与逻辑链路(或称与逻辑链路(或称数据链路数据链路)的不同?)的不同?物理链路物理链路是指在是指在物理层物理层设备和相应物理层通信规程设备和相应物理层通信规程作用下形成的;作用下形成的;逻辑逻辑链路链路是指在是指在数据链路层数据链路层设备和相应的通信规程设备和相应的通信规程作用下建立的;作用下建立的;是在是在“物理链路物理链路”基础上建立的。基础上建立的。把实现数据传输规程把实现数据传输规程(即通信协议即通信协议)加到链路上,就加到链路上,就构成了构成了逻辑链路逻辑链路。二者的二者的本质作用都是一样的,就是用来构建进行网本质作用都是一样的,就是用来构建进行网络通信、访问的通道,只不过络通信、访问的通道,只不过“物理层物理层”构建的是一构建的是一条物理通道,而条物理通道,而“数据链路层数据链路层”构建的是真正用于数构建的是真正用于数据传输的逻辑通道。据传输的逻辑通道。2它们之间的关系如下图所示。它们之间的关系如下图所示。3链路链路(link)(link)是从一个结点到是从一个结点到相邻结点相邻结点的一段的一段物理线物理线路路,中间没有任何其他的交换结点。(,中间没有任何其他的交换结点。(物理链路物理链路)一条链路只是数据传输通路的一个组成部分。43.1 3.1 数据链路层的功能数据链路层的功能 物理层只负责比特流的接收和发送,而不考虑信息物理层只负责比特流的接收和发送,而不考虑信息本身的意义,同时物理层也不能解决数据传输的控本身的意义,同时物理层也不能解决数据传输的控制,而这就是数据链路层所要解决的制,而这就是数据链路层所要解决的。因此因此,数据链路层的功能是实现系统实体之间二进数据链路层的功能是实现系统实体之间二进制数据单元的正确传输,通过必要的同步控制、差制数据单元的正确传输,通过必要的同步控制、差错控制、流量控制,为其上层(网络层)提供可靠、错控制、流量控制,为其上层(网络层)提供可靠、无差错的数据信息。无差错的数据信息。数据链路层的主要功能(总结)数据链路层的主要功能(总结)(1)(1)封装成帧:封装成帧:帧头和帧尾就是作为帧的起始和结束标帧头和帧尾就是作为帧的起始和结束标志,也就是帧边界。志,也就是帧边界。(2)(2)透明传输:透明传输:其目的就是要实现其目的就是要实现“帧同步帧同步”,就是接,就是接收端能从收到的比特流中准确地识别收端能从收到的比特流中准确地识别“帧帧”的边界。的边界。(3)(3)差错控制:差错控制:在通信过程中能够自动检测出错误并进在通信过程中能够自动检测出错误并进行纠正的方法;行纠正的方法;(4)(4)流量控制:流量控制:控制帧在物理信道上的传输;控制帧在物理信道上的传输;(5)(5)数据链路管理:数据链路管理:链路的建立、维持和释放管理。链路的建立、维持和释放管理。61.1.帧帧的封装的封装2.2.透明传输透明传输-帧同步帧同步在数据链路层中,数据的传输单位是帧。帧是具在数据链路层中,数据的传输单位是帧。帧是具有一定长度的格式,每个帧除了要传送的数据外,有一定长度的格式,每个帧除了要传送的数据外,还包括校验码,以使接收方能发现传输中的差错。还包括校验码,以使接收方能发现传输中的差错。帧同步即接收端应当能从收到的比特流中准确地帧同步即接收端应当能从收到的比特流中准确地识别一个识别一个帧的开始和结束帧的开始和结束。数据链路层常见的数据链路层常见的几种帧同步方法几种帧同步方法包括:字节计包括:字节计数法、字符填充的首尾定界符法、比特填充的首、数法、字符填充的首尾定界符法、比特填充的首、尾定界符法、违例编码法。尾定界符法、违例编码法。3.3.差错控制差错控制 为了将比特流在传输中的差错率控制在一定的范围为了将比特流在传输中的差错率控制在一定的范围之内,广泛地采用了各种编码技术。之内,广泛地采用了各种编码技术。编码技术可分为两类:编码技术可分为两类:一类是一类是向前纠错向前纠错,当接收方收到出错的数据帧后,当接收方收到出错的数据帧后,能够自动将错误修正过来。这种方法的系统开销能够自动将错误修正过来。这种方法的系统开销大,不适合于计算机网络;大,不适合于计算机网络;另一类是另一类是检错重传检错重传,即接收方检错到错误的帧后,即接收方检错到错误的帧后,就通知发送方就通知发送方重新发送重新发送该帧,直到收到正确的帧该帧,直到收到正确的帧为止。这种方法的系统开销较小,通常应用于计为止。这种方法的系统开销较小,通常应用于计算机网络中。算机网络中。常用的差错控制技术有反馈检测、自动请求重常用的差错控制技术有反馈检测、自动请求重发(发(ARQARQ)和前向纠错()和前向纠错(FECFEC)。)。1 1)反馈检测反馈检测 反馈检测方法又称回送校验法。双方在进行数反馈检测方法又称回送校验法。双方在进行数据传输时,接收方将接收到的数据重新发回发送方,据传输时,接收方将接收到的数据重新发回发送方,由发送方检查是否与原始数据完全相符。如不相符,由发送方检查是否与原始数据完全相符。如不相符,则发送方发送一个控制信息通知接收方删去出错的则发送方发送一个控制信息通知接收方删去出错的数据。并重新发送该数据;如相符,则发送下一个数据。并重新发送该数据;如相符,则发送下一个数据。数据。2 2)自动请求重发自动请求重发 自动请求重发(自动请求重发(Automatic Repeat requestAutomatic Repeat request,ARQARQ),是计算机网络中较常采用的差错控制方法。),是计算机网络中较常采用的差错控制方法。ARQARQ的原理的原理:P P5252特点:特点:3 3)前向纠错前向纠错前向纠错简称前向纠错简称FECFEC(Forward Error Forward Error CorrectionCorrection)。其原理是:发送方将要发送的数据附加上一其原理是:发送方将要发送的数据附加上一定的冗余纠错码一并发送,接收方则根据纠定的冗余纠错码一并发送,接收方则根据纠错码对数据进行差错检测,如发现差错,由错码对数据进行差错检测,如发现差错,由接收方进行纠正。接收方进行纠正。4.4.流量控制流量控制 为防止接收端缓存能力不足而造成的阻塞和数据丢为防止接收端缓存能力不足而造成的阻塞和数据丢失,将数据高速、可靠地传输到接收方,发送端发失,将数据高速、可靠地传输到接收方,发送端发送数据的速率必须使接收端来得及接收,当接收方送数据的速率必须使接收端来得及接收,当接收方来不及接收时,接收方必须及时控制发送方发送数来不及接收时,接收方必须及时控制发送方发送数据的速率,这就是流量控制功能。据的速率,这就是流量控制功能。概括地讲,概括地讲,流量控制就是使发送方和接收方的数据流量控制就是使发送方和接收方的数据处理速率保持一致。处理速率保持一致。数据链路层常用的流量控制方法有数据链路层常用的流量控制方法有:停等协议和滑停等协议和滑动窗口机制,将在介绍动窗口机制,将在介绍ARQARQ协议时再重点介绍。协议时再重点介绍。5.5.数据数据链路管理链路管理 当网络中的两个节点间要进行通信时,数据的发送当网络中的两个节点间要进行通信时,数据的发送方必须知道接收方是否处于准备接收状态。为此,方必须知道接收方是否处于准备接收状态。为此,在传输数据之前通信双方必须事先交换一些必要的在传输数据之前通信双方必须事先交换一些必要的信息,让通信双方做好数据发送和接收的准备。同信息,让通信双方做好数据发送和接收的准备。同样,在传输数据时要维持数据链路,而在通信完毕样,在传输数据时要维持数据链路,而在通信完毕时要释放数据。时要释放数据。数据链路的建立、维持和释放数据链路的建立、维持和释放就叫做链路管理。就叫做链路管理。3.2 3.2 差错控制差错控制3.2.1 3.2.1 传输差错的特性传输差错的特性 当数据从信源出发,经过通信信道时,由于通信当数据从信源出发,经过通信信道时,由于通信信道总是有一定的噪声存在,因此在到达信宿时,信道总是有一定的噪声存在,因此在到达信宿时,接收信号是信号与噪声的叠加。在接收端,接收电接收信号是信号与噪声的叠加。在接收端,接收电路在取样时判断信号电平。如果噪声对信号叠加的路在取样时判断信号电平。如果噪声对信号叠加的结果判断出现错误,就会引起传输数据的错误。结果判断出现错误,就会引起传输数据的错误。我们把通过通信信道后接收数据与发送数据不一致我们把通过通信信道后接收数据与发送数据不一致的现象称为的现象称为传输差错。传输差错。比特在传输过程中可能会产生差错,比特在传输过程中可能会产生差错,1 1 可能会变成可能会变成 0 0 而而 0 0 也可能变成也可能变成 1-1-比特差错。比特差错。差错差错的类型:的类型:通信信道的噪声分为通信信道的噪声分为热噪声和冲击噪声热噪声和冲击噪声两种。由这两种噪声两种。由这两种噪声分别产生两种分别产生两种随机差错和突发差错随机差错和突发差错。热噪声是由传输介质导体的电子热运动产生的,它的特点是热噪声是由传输介质导体的电子热运动产生的,它的特点是时刻存在,幅度较小且强度与频率无关,但频谱很宽,是一时刻存在,幅度较小且强度与频率无关,但频谱很宽,是一类随机噪声。由热噪声引起的差错称为类随机噪声。由热噪声引起的差错称为随机差错随机差错。此类差错。此类差错的特点是差错是孤立的,在计算机网络应用中是极个别的。的特点是差错是孤立的,在计算机网络应用中是极个别的。与热噪声相比,冲击噪声幅度较大,是引起传输差错的主要与热噪声相比,冲击噪声幅度较大,是引起传输差错的主要原因。冲击噪声的持续时间要比数据传输中的每比特发送时原因。冲击噪声的持续时间要比数据传输中的每比特发送时间要长,因而冲击噪声会引起相邻多个数据位出错。冲击噪间要长,因而冲击噪声会引起相邻多个数据位出错。冲击噪声引起的传输差错称为声引起的传输差错称为突发差错突发差错。计算机网络中的差错主要是计算机网络中的差错主要是突发差错。突发差错。差错产生的原因?差错产生的原因?P P4747误码率是衡量一个信道质量的重要参数。误码率是衡量一个信道质量的重要参数。是是在一段时间内,传输错误的比特占所传在一段时间内,传输错误的比特占所传输比特总数的比率。输比特总数的比率。v在数值上近似等于:在数值上近似等于:P Pe e=N=Ne e/N/N;v其中:其中:N N为传输的二进制比特总数,为传输的二进制比特总数,NeNe为被传错的比特数。为被传错的比特数。173.2.2 3.2.2 常用的简单差错控制编码常用的简单差错控制编码 为了保证数据传输的可靠性,在计算机网络传输数据时,必为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种须采用各种差错检测措施差错检测措施来减少误码率。来减少误码率。差错控制编码的差错控制编码的原理原理是:发送方对准备传输的数据进行抗干是:发送方对准备传输的数据进行抗干扰编码,即按某种算法附加上一定的冗余位,构成一个码字后扰编码,即按某种算法附加上一定的冗余位,构成一个码字后再发送。接收方收到数据后进行校验,即检查信息位和附加的再发送。接收方收到数据后进行校验,即检查信息位和附加的冗余位之间的关系,以检查传输过程中是否有差错发生。冗余位之间的关系,以检查传输过程中是否有差错发生。差错控制编码分差错控制编码分检错码和纠错码检错码和纠错码两种,两种,检错码检错码是能自动发现是能自动发现差错的编码,差错的编码,纠错码纠错码是不仅能发现差错而且能自动纠正差错的是不仅能发现差错而且能自动纠正差错的编码。编码。常用的差错控制编码方法主要有奇偶校验、海明码、常用的差错控制编码方法主要有奇偶校验、海明码、循环冗循环冗余检错余检错。3.2.3 3.2.3 海明码海明码 自主学习自主学习 1950 1950年,海明发明了从待发送的数据位中生成一定数年,海明发明了从待发送的数据位中生成一定数量的特殊码字,并发明了通过此特殊码字来检测和纠正差量的特殊码字,并发明了通过此特殊码字来检测和纠正差错代码的理论和方法。按照海明的方法,要求在比特串发错代码的理论和方法。按照海明的方法,要求在比特串发送前插入多个奇偶校验位,奇偶校验位校验在关键位置上送前插入多个奇偶校验位,奇偶校验位校验在关键位置上的奇偶性的思想是如果比特位改变了,它们的位置将决定的奇偶性的思想是如果比特位改变了,它们的位置将决定一个特定的奇偶校验错误组合。比特串被发送后,接收方一个特定的奇偶校验错误组合。比特串被发送后,接收方就可以将这些在传输中出现错误的比特位纠正到正确的值。就可以将这些在传输中出现错误的比特位纠正到正确的值。海明码在内存寻址及海明码在内存寻址及RAMRAM与寄存器之间传送比特时非常有用。与寄存器之间传送比特时非常有用。3.2.4 3.2.4 循环冗余码循环冗余码 重点掌握重点掌握目前在数据链路层广泛使用目前在数据链路层广泛使用循环冗余检验码循环冗余检验码(即(即CRCCRC码码)的检错)的检错码编码方法之一码编码方法之一,简称循环码。简称循环码。CRCCRC是一种被广泛采用的是一种被广泛采用的多项式编码多项式编码,具有良好的数,具有良好的数学结构,易于实现,具有较强的检错能力,特别适学结构,易于实现,具有较强的检错能力,特别适合于检测突发性的错误。合于检测突发性的错误。CRCCRC的工作方法是在发送端产生一个冗余码,附加在的工作方法是在发送端产生一个冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息信息位后面一起发送到接收端,接收端收到的信息按发送端形成按发送端形成循环循环冗余码同样的算法进行校验,如冗余码同样的算法进行校验,如果发现错误,则通知发送端重发。任何一个由二进果发现错误,则通知发送端重发。任何一个由二进制数位串组成的代码,都可以唯一的与一个只含有制数位串组成的代码,都可以唯一的与一个只含有0 0和和1 1两个系数的多项式建立一一对应的关系。两个系数的多项式建立一一对应的关系。CRCCRC码字由两部分组成,前一部分是码字由两部分组成,前一部分是k k个比特的待发送信个比特的待发送信息码,固定不变的,后一部分是息码,固定不变的,后一部分是n n个比特的冗余码。个比特的冗余码。Q Q:如何得出:如何得出n n个比特的冗余码?个比特的冗余码?冗余码的计算方法冗余码的计算方法是,先将信息码后面补是,先将信息码后面补0 0,补,补0 0的的个数是生成多项式的个数是生成多项式的最高次幂最高次幂n n;将补零之后的信息码除以将补零之后的信息码除以G(XG(X),注意除法过程中所),注意除法过程中所用的减法是用的减法是模模2 2减法减法,即没有借位的减法,也就是,即没有借位的减法,也就是异异或运算或运算。当被除数逐位除完时,得到比除数少一位。当被除数逐位除完时,得到比除数少一位的余数。此余数即为的余数。此余数即为冗余位冗余位(冗余码)(冗余码),将其添加,将其添加在信息位后便构成在信息位后便构成CRCCRC码字码字。21循环冗余检验循环冗余检验CRCCRC的原理的原理 在在发送端发送端,先把数据划分为组。假定每组,先把数据划分为组。假定每组 k k 个比特。个比特。假设待传送的一组数据假设待传送的一组数据 M M=101001=101001(现在(现在 k k=6=6)。那么在)。那么在 M M 的后面再添加供差错的后面再添加供差错检测用的检测用的 n n 位位冗余码冗余码一起发送。一起发送。计算计算n n 位位的冗余码。的冗余码。22冗余码的计算冗余码的计算 实际的实际的CRCCRC校验码生成是采用二进制模校验码生成是采用二进制模2 2运算,运算,是一种是一种异或运算异或运算(相同为(相同为0 0,不同为,不同为1 1);将发送数据比特序列将发送数据比特序列左移左移n n位位以放入余数,这以放入余数,这相当于在相当于在 M M 后面后面添加添加 n n 个个 0 0。得到的得到的 (k k+n n)位的位的CRCCRC码字除以事先选定好码字除以事先选定好的长度为的长度为 (n n+1)+1)位的位的除数除数P P,得出,得出商商是是 Q Q 而而余数余数是是R R,即,即R R为为n n位的冗余码。(余数位的冗余码。(余数R R 比比除数除数 P P 少少1 1 位,所以位,所以 R R 是是 n n 位。位。)实例:见下页实例:见下页23冗余码的计算实例冗余码的计算实例 现在现在 k k=6,=6,M M=101001=101001。设设 n n=3,=3,除数除数 P P=1101=1101,被除数是被除数是 101001 101001000000左移左移3 3位,用位,用0 0填充填充。模模 2 2 运算的结果是:运算的结果是:商商 Q Q=110101=110101,余数余数 R R=001=001。把余数把余数 R R 作为作为冗余码冗余码添加在数据添加在数据 M M 的后面发送出的后面发送出去。发送的数据是:去。发送的数据是:2 2n nM M+R R 即:即:101001101001001001,共,共 (k k+n n)位。位。24循环冗余检验的原理说明循环冗余检验的原理说明 110101 Q(商)P(除数)1101 101001000 2nM(被除数)1101 1110 1101 0111 0000 1110 1101 0110 0000 1100 1101 001 R(余数),作为 FCS说明:做题过程中要有此计算过程。说明:做题过程中要有此计算过程。25接收端接收端对收到的每一帧进行对收到的每一帧进行 CRC CRC 检验检验 (1)(1)若若得得出出的的余余数数 R R =0 0,则则判判定定这这个个帧帧没有差错,就没有差错,就接受接受(accept)(accept)。(2)(2)若若余余数数 R R 0 0,则则判判定定这这个个帧帧有有差差错错,就就丢弃丢弃。CRCCRC的特点:的特点:P P5050但但这这种种差差错错校校验验方方法法并并不不能能确确定定究究竟竟是是哪哪一个或哪几个比特出现了差错。一个或哪几个比特出现了差错。26 数据链路层数据链路层用于实现差错控制和流量控制的协议有:用于实现差错控制和流量控制的协议有:停等协议停等协议、连续、连续ARQARQ协议和协议和选择重传协议。选择重传协议。3.3.1 3.3.1 停等协议停等协议 停等协议是最基本也是最简单的差错控制和流量控停等协议是最基本也是最简单的差错控制和流量控制协议。制协议。采用了有效的检错重传机制。采用了有效的检错重传机制。它只允许每次传一帧的信息,然后就停止等待对方它只允许每次传一帧的信息,然后就停止等待对方回应,当接收到确认帧回应,当接收到确认帧ACKACK后,再发送下一帧。后,再发送下一帧。如果收到否认帧或是没有收到任何确认帧,就采取如果收到否认帧或是没有收到任何确认帧,就采取超时重发的措施。超时重发的措施。3.3 3.3 数据链路协议数据链路协议停止等待协议(单帧)停止等待协议(单帧)(b)超时重传(a)无差错情况A发送 M1确认 M1B发送 M2发送 M3确认 M2确认 M3tt超时重传 M1丢弃有差错的报文A发送 M1B发送 M2确认 M1tt确认丢失和确认迟到确认丢失和确认迟到 A发送发送 M1B超时重传 M1发送发送 M2丢弃丢弃重复的重复的 M1重传确认重传确认 M1(a)确认丢失确认确认 M1A发送发送 M1B超时超时重传重传 M1发送发送 M2丢弃重复的 M1重传确认M1(b)确认迟到确认确认 M1收下迟到收下迟到的确认的确认但什么也不做但什么也不做tttt请注意请注意保留副本:保留副本:在发送完一个分组后,必须暂时保留在发送完一个分组后,必须暂时保留已发送的分组的副本。已发送的分组的副本。编号:编号:分组和确认分组都必须进行编号。分组和确认分组都必须进行编号。设置超时计时器,设置超时计时器,它的重传时间设置应当比数据它的重传时间设置应当比数据在分组传输的平均往返时间更长一些。在分组传输的平均往返时间更长一些。3.3.2 3.3.2 连续连续ARQARQ协议协议 (多帧)(多帧)指发送端可以连续发送一系列数据帧(具体可以连指发送端可以连续发送一系列数据帧(具体可以连续发送多少个帧,要视双方的缓存空间大小(也即续发送多少个帧,要视双方的缓存空间大小(也即“窗口大小窗口大小”)而定),效率大大提高。)而定),效率大大提高。当然,在这个连续发送的过程中也可以接收来自接当然,在这个连续发送的过程中也可以接收来自接收端的响应消息(可以是确认帧,也可能是否认帧),收端的响应消息(可以是确认帧,也可能是否认帧),发送端同样可以对传输出错的数据帧(如接收端返回发送端同样可以对传输出错的数据帧(如接收端返回了否认帧的帧,或者响应计时器超时的帧)进行重发了否认帧的帧,或者响应计时器超时的帧)进行重发。3.3.2 3.3.2 连续连续ARQARQ协议协议 (多帧)(多帧)自动请求重传ARQ的原理:P54应注意的四点:连续ARQ协议的工作原理连续连续 ARQ ARQ 协议协议 (窗口机制窗口机制)123456789101112(a)发送方维持发送窗口(发送窗口是 5)发送窗口(b)收到一个确认后发送窗口向前滑动向前123456789101112发送窗口发送窗口发送窗口 发送窗口用来发送窗口用来对发送端进行流量控制对发送端进行流量控制。流量控制是通过窗口的大小流量控制是通过窗口的大小W WT T来限制的,表来限制的,表示在还没有收到对方确认信息的情况下发送示在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。显然,停等端最多可以发送多少个数据帧。显然,停等协议的发送窗口大小为协议的发送窗口大小为1 1。接收窗口接收窗口 接收端设置接收窗口,在接收端只有当收到的接收端设置接收窗口,在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据数据帧的发送序号落入接收窗口内才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。在连续一律将其丢弃。在连续ARQARQ协议中,接收窗口的大小协议中,接收窗口的大小W WR R1 1。只有当收到的帧的序号与接收窗口一致时才。只有当收到的帧的序号与接收窗口一致时才能接收该帧。否则,就丢弃。每收到一个序号正确能接收该帧。否则,就丢弃。每收到一个序号正确的帧,接收窗口就向前(即向右方)滑动一个帧的的帧,接收窗口就向前(即向右方)滑动一个帧的位置。同时发送对该帧的确认。位置。同时发送对该帧的确认。接收方:累积确认接收方:累积确认 接收方一般采用接收方一般采用累积确认累积确认的方式。即不必对收到的的方式。即不必对收到的分组逐个发送确认,而是分组逐个发送确认,而是对按序到达的最后一个分对按序到达的最后一个分组组发送确认,这样就表示:发送确认,这样就表示:到这个分组为止的所有到这个分组为止的所有分组都已正确收到了。分组都已正确收到了。累积确认累积确认有的优点是:容易实现,即使确认丢失也有的优点是:容易实现,即使确认丢失也不必重传。缺点是:不能向发送方反映出接收方已不必重传。缺点是:不能向发送方反映出接收方已经正确收到的所有分组的信息。经正确收到的所有分组的信息。当出现传输差错时,当出现传输差错时,ARQARQ有两种处理策略,即有两种处理策略,即“回退回退N N帧帧”(GO-DACK-NGO-DACK-N)策略和)策略和“选择重选择重传传”(Selective Selective RepeatRepeat)策略。)策略。(1 1)回退回退N N帧策略帧策略 P55 P55 “回退回退N N帧策略帧策略”的基本原理是,如果发送端一共发送了的基本原理是,如果发送端一共发送了n n个数据帧个数据帧,但收到接收端发来的但收到接收端发来的ACKACK确认帧中少了某一个或确认帧中少了某一个或几个帧几个帧ACKACK确认帧确认帧,或者在接收某一帧时检测出有错,接收或者在接收某一帧时检测出有错,接收端发送一个端发送一个NAKNAK否认帧给发送端;或者在计时器超时后仍没否认帧给发送端;或者在计时器超时后仍没有收到某个帧的有收到某个帧的ACKACK或者或者NAKNAK帧,发送端则可以判断接收端最帧,发送端则可以判断接收端最后一个正确接收的帧编号,然后从缓存空间的重发表中后一个正确接收的帧编号,然后从缓存空间的重发表中重发重发所收到的最后一个所收到的最后一个ACKACK帧序号以后的所有帧帧序号以后的所有帧。(2 2)选择重发策略选择重发策略 P57 P57 “选择重发选择重发”策略规定,当发送端收到包含出错帧序策略规定,当发送端收到包含出错帧序号的号的NAKNAK帧时,据此序号从重发表中选出相应帧的备份,帧时,据此序号从重发表中选出相应帧的备份,让让发送发送端重传出现差错的数据帧端重传出现差错的数据帧,而对在差错数据帧后面已,而对在差错数据帧后面已经发送的数据帧不再重传,经发送的数据帧不再重传,避免了对后继正确数据帧的多避免了对后继正确数据帧的多余重发。余重发。3.4 3.4 点对点协议点对点协议PPPPPP3.4.1 PPP3.4.1 PPP的特点的特点 在实际应用中,点对点通信主要应用在两种情在实际应用中,点对点通信主要应用在两种情况中。第一种情况是两个网络之间通过路由器互连,况中。第一种情况是两个网络之间通过路由器互连,路由器之间通过点对点进行连接;第二种情况是拨路由器之间通过点对点进行连接;第二种情况是拨号接入,即计算机利用普通电话线通过调制解调器号接入,即计算机利用普通电话线通过调制解调器接入网络。接入网络。PPPPPP是为在同等单元之间传输数据包这样的简单链路是为在同等单元之间传输数据包这样的简单链路而设计的链路层协议。而设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。这种链路提供全双工操作,并按照顺序传递数据包。面向字节的面向字节的PPP PPP 协议的组成协议的组成 1992 1992 年制订了年制订了 PPP PPP 协议。经过协议。经过 1993 1993 年和年和 1994 1994 年的修订,现在的年的修订,现在的 PPP PPP 协议已成为因特网的正式协议已成为因特网的正式标准标准RFC 1661RFC 1661。PPP PPP 协议有三个组成部分:协议有三个组成部分:一个将一个将IPIP数据报封装到串行链路的方法。数据报封装到串行链路的方法。PPPPPP既既支持异步链路,又支持面向比特的同步链路。支持异步链路,又支持面向比特的同步链路。链路控制协议链路控制协议 LCPLCP:用于数据链路连接的建立、:用于数据链路连接的建立、配置和测试。配置和测试。网络控制协议网络控制协议 NCPNCP:用于建立、配置多种不同:用于建立、配置多种不同数据链路的网络层协议。数据链路的网络层协议。403.4 3.4 点对点协议点对点协议PPPPPP3.4.2 PPP3.4.2 PPP的帧格式的帧格式 PPP PPP帧格式如图所示,帧格式如图所示,PPPPPP不是面向比特而是不是面向比特而是面向字节的,因而所有面向字节的,因而所有PPPPPP帧的长度都是整数个字帧的长度都是整数个字节。节。标志字段标志字段F F:长度为长度为1 1字节,用于比特流的同步,字节,用于比特流的同步,其值为其值为7E7E(二进制表示是(二进制表示是 0111111001111110),它是表示一个帧的开始或结束,它是表示一个帧的开始或结束地址字段地址字段A A:地址字段长度为地址字段长度为1 1字节字节;值为值为“FF”(11111111)FF”(11111111)。1 1、各字段的意义、各字段的意义42控制字段控制字段C C:控制字段长度为控制字段长度为1 1字节字节;值为值为“03”03”(0000001100000011);协议字段协议字段协议字段长度为协议字段长度为2 2字节字节;标识网络层协议数据的类型标识网络层协议数据的类型;例如:例如:0021H0021H表示帧的信息字段是表示帧的信息字段是IPIP数数据报据报;43帧校验字段帧校验字段FCSFCS:v帧校验字段长度为帧校验字段长度为2 2字节字节;v用于保证数据的完整性。用于保证数据的完整性。信息字段信息字段v信息字段长度可变信息字段长度可变;v最长为最长为15001500字节,即字节,即MTU;MTU;44保证传输中帧定界的正确方法保证传输中帧定界的正确方法当当 PPP PPP 用在异步传输时,用在异步传输时,RFC1662RFC1662定义了定义了在用于异步通信中的转义字符是在用于异步通信中的转义字符是“0 x7D0 x7D”,并且,并且使用一种特殊的使用一种特殊的字符填字符填充法。充法。当当 PPP PPP 用在同步传输链路时,协议规定用在同步传输链路时,协议规定采用硬件来完成比特填充采用硬件来完成比特填充-零比特填充零比特填充法法。452 2、字节填充、字节填充 了解了解 将信息字段中出现的每一个将信息字段中出现的每一个 0 x7E 0 x7E 字节转变成为字节转变成为 2 2 字节序列字节序列(0 x7D,0 x7E0 x7D,0 x7E)。若信息字段中出现一个若信息字段中出现一个 0 x7D 0 x7D 的字节的字节,则将其转则将其转变成为变成为 2 2 字节序列字节序列(0 x7D,0 x5D0 x7D,0 x5D)。若信息字段中出现若信息字段中出现 ASCII ASCII 码的控制字符(即数码的控制字符(即数值小于值小于 0 x20 0 x20 的字符),则在该字符前面要加入的字符),则在该字符前面要加入一个一个 0 x7D0 x7D 字节,同时改变该字节。字节,同时改变该字节。由于在发送端进行字节填充,接收端需要检测并由于在发送端进行字节填充,接收端需要检测并使用同样的策略将数据恢复。使用同样的策略将数据恢复。463 3、零比特填充、零比特填充 掌握掌握 PPP PPP 协议使用同步传输(一连串的比特连续传协议使用同步传输(一连串的比特连续传送)。这时送)。这时 PPP PPP 协议采用零比特填充方法来协议采用零比特填充方法来实现透明传输。实现透明传输。在发送端,只要发现有在发送端,只要发现有 5 5 个连续个连续 1 1,则立即,则立即填入一个填入一个 0 0。接收端对帧中的比特流进行扫描。接收端对帧中的比特流进行扫描。每当发现每当发现 5 5 个连续个连续1 1时,就把这时,就把这 5 5 个连续个连续 1 1 后的一个后的一个 0 0 删除。删除。因为标志字段的因为标志字段的7E7E对应二进制为对应二进制为0111111001111110,会引起对帧边界的误判断。会引起对帧边界的误判断。470 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0发送端在发送端在 5 5 个连个连 1 1 之后之后填入填入 0 0 比特再发送出去比特再发送出去0 0 1 1 1 1 1 1 00 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 00 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0信息字段中出现了和信息字段中出现了和标志字段标志字段 F F 完全一样完全一样的的 8 8 比特组合比特组合在接收端把在接收端把 5 5 个连个连 1 1之后的之后的 0 0 比特删除比特删除会被误认为是标志字段会被误认为是标志字段 F F 发送端填入发送端填入 0 0 比特比特接收端删除填入的接收端删除填入的 0 0 比特比特零比特填充零比特填充483.4.3 PPP3.4.3 PPP的工作状态的工作状态 PPP PPP的工作过程如下的工作过程如下:(1 1)当用户拨号接入)当用户拨号接入ISPISP时,路由器的调制解调器对时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。拨号做出确认,并建立一条物理连接。(2 2)PCPC机向路由器发送一系列的机向路由器发送一系列的LCPLCP分组(封装成多分组(封装成多个个PPPPPP帧),帧),ISPISP对用户进行身份鉴别。对用户进行身份鉴别。(3 3)这些分组及其响应选择一些)这些分组及其响应选择一些PPP PPP 参数,进行网络参数,进行网络层配置,层配置,NCP NCP 给新接入的给新接入的 PC PC机分配一个临时的机分配一个临时的IPIP地址,地址,使使PCPC机成为因特网上的一个主机。机成为因特网上的一个主机。(4 4)通信完毕时,)通信完毕时,NCPNCP释放网络层连接,收回原来分释放网络层连接,收回原来分配出去的配出去的IPIP地址。接着,地址。接着,LCP LCP 释放数据链路层连接。最释放数据链路层连接。最后释放的是物理层的连接。后释放的是物理层的连接。是点对点协议;是点对点协议;既支持异步链路,也支持面向比特的同步链路;既支持异步链路,也支持面向比特的同步链路;PPPPPP是面向字节的,处理差错检测,支持多种协是面向字节的,处理差错检测,支持多种协议;议;是面向连接的,是面向连接的,要互相创立连接通道才能一对一要互相创立连接通道才能一对一的传输;的传输;PPPPPP不使用序号和确认机制,因此不提供可靠传不使用序号和确认机制,因此不提供可靠传输的服务。它适用在点到点线路的传输中输的服务。它适用在点到点线路的传输中 。总结:总结:PPP PPP 协议的特点协议的特点50在数据链路层互联设备(扩展在数据链路层互联设备(扩展LAN)LAN)是使用是使用网桥网桥。网桥网桥工作在数据链路层工作在数据链路层,起到数据接收、地址过起到数据接收、地址过滤与数据转发的作用,用来实现多个网络系统之滤与数据转发的作用,用来实现多个网络系统之间的数据交换。间的数据交换。它是根据它是根据 MAC MAC 帧的目的地址对收帧的目的地址对收到的帧进行到的帧进行过滤和转发过滤和转发。所谓所谓过滤过滤帧,就是当网桥收到一个帧时,并不是帧,就是当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的向所有的接口转发此帧,而是先检查此帧的目的 MAC MAC 地址,然后再确定将该帧转发到哪一个接口,地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃。或者是把它丢弃。网桥的过滤和转发借助于网桥的过滤和转发借助于转发表转发表来完成。来完成。网桥具有自学习功能。网桥具有自学习功能。3.5 3.5 数据链路层设备数据链路层设备51两个局域网通过网桥互联的结构两个局域网通过网桥互联的结构 网桥网桥用来连接不同网段的计算机网络设备用来连接不同网段的计算机网络设备,同时它又可隔离同时它又可隔离冲突域冲突域。网桥所连接的两个。网桥所连接的两个“网段网段”,是指,是指IPIP地址属于同一网地址属于同一网络地址段(也就是络地址段(也就是IPIP地址中的网络地址中的网络IDID一样)。一样)。无论是网桥,还是二层交换机,虽然每个端口可以连接一个无论是网桥,还是二层交换机,虽然每个端口可以连接一个网段,但是它们所连接的主机都是在同一网络,或者同一子网网段,但是它们所连接的主机都是在同一网络,或者同一子网中。中。52 网桥使各网段成为隔离开的碰撞域,能够抑制网络风暴。B2B1碰撞域碰撞域碰撞域ABCDEF53网桥具有以下基本特征:网桥具有以下基本特征:P60 P60(1 1)网桥在数据链路层上实现局域网互联。)网桥在数据链路层上实现局域网互联。(2 2)网桥能够互连两个采用不同数据链路层协议、)网桥能够互连两个采用不同数据链路层协议、不同传输介质与不同传输速率的网络。不同传输介质与不同传输速率的网络。(3 3)网桥以接收、存储、地址过滤与转发的方式实)网桥以接收、存储、地址过滤与转发的方式实现互联网络之间的通信。现互联网络之间的通信。(4 4)网桥需要互联的网络在数据链路层以上采用相)网桥需要互联的网络在数据链路层以上采用相同的协议。同的协议。(5 5)网桥可以分隔两个网络之间的广播通信量,有)网桥可以分隔两个网络之间的广播通信量,有利于改善互连网络的性能与安全性。利于改善互连网络的性能与安全性。网桥的内部结构网桥的内部结构 站表接口管