您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算机网络基础(第3版)[李志球][电子教案]第3章
Lizq98@xzcat.edu.cn1第3章数据链路层本章要点◆了解数据链路层的功能和成帧的目的◆掌握停止等待和滑动窗口等流量控制机制◆掌握数据链路层差错控制方法◆掌握循环冗余校验码(CRC)及计算方法◆掌握数据链路层协议Lizq98@xzcat.edu.cn2目录3.1数据链路层功能及成帧3.2差错控制3.3流量控制和链路管理3.4数据链路协议第3章数据链路层Lizq98@xzcat.edu.cn33.1数据链路层功能及成帧数据链路和链路是有区别的,链路是一条物理线路,而数据链路是一个逻辑概念,它包括物理线路和必要的控制规程(协议)。数据链路层DLL(DataLinkLayer)的作用是利用物理层提供的位串传输功能,将物理层传输原始比特流时可能出错的物理连接,改造成为逻辑上无差错的数据链路,在相邻节点间实现透明的高可靠性传输,同时为网络层提供有效的服务。3.1.1数据链路层功能数据链路层主要功能是:成帧、差错控制、流量控制和链路管理等。Lizq98@xzcat.edu.cn43.1.1数据链路层功能成帧是将数据组合成数据块(数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位);差错控制是控制帧在物理信道上的传输,包括如何处理传输差错;流量控制是调节发送速率使之与接收方相匹配;链路管理是在两个网路实体之间提供数据链路通路的建立、维持和释放管理。3.1数据链路层功能及成帧注意:物理层的传输单位是二进制位(bit),而数据链路层是以帧(Frame)为传输单位,而且是在LAN内节点之间的传输。(如果传输数据时经过中间节点,那就是广域网,存在路由选择问题,这是网络层考虑的问题)。Lizq98@xzcat.edu.cn53.1.2成帧和帧同步3.1数据链路层功能及成帧1.成帧数据链路层将物理层传送过来的比特流按照一定格式分割成若干个帧,成帧的目的在于:(1)一旦数据在传输时出错,只需重传或纠正有错的帧,而不必重发全部数据,从而提高效率;(2)报文不分割整个传输,出错概率较大;分成若干帧后,较小的帧出错概率也小;(3)检查一个短帧的错误要比检查一个大的报文传输错误要容易,算法也要简单。Lizq98@xzcat.edu.cn63.1.2成帧和帧同步3.1数据链路层功能及成帧2.帧同步帧同步是指为了能让接收方收到的比特流中明确区分出一帧,发送方必须要建立和区分出帧的边界(起始和终止),方法是在帧的开始和结束位置增加一些特殊的位组合来实现。l常用的帧同步方法有下面几种:字节计数法使用字符填充的首尾定界符法使用比特填充的首尾定界符法违法编码法Lizq98@xzcat.edu.cn73.2.1差错类型和控制差错产生的原因主要是由于线路本身电气特性所产生的随机噪声(热噪声)、信号振幅、频率和相位的衰减或畸变、电信号在传输介质上的反射回音效应、相邻线路的串扰、外界的电磁干扰和设备故障等因素造成的。1.差错类型差错可分为单比特差错和突发差错两类,单比特差错是指在传输的数据单元中只有一个比特发生了改变(0变1或1变0),而突发差错是指在传输的数据单元中有两个或两个以上的比特发生了改变。差错控制有两种方法:一是改进硬件,但增加成本;另一个是进行差错控制,在数据链路层采用编码进行查错或纠错处理。3.2差错控制Lizq98@xzcat.edu.cn83.2.1差错类型和差错控制注意:数据链路层和物理层的数据编码不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。数据链路层编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。3.2差错控制2.差错控制方法什么是冗余和冗余码Lizq98@xzcat.edu.cn93.2差错控制3.检错码和纠错码只具有检错能力的编码称为检错码。既能检错又具有自动纠错能力的编码则称为纠错码。差错控制方式有自动请求重发ARQ(AutomaticrepeatRequest)和前向纠错FEC(ForwardErrorCorrection)两种。lARQ采用检错码方法实现,它使用冗余技术。发送方增加一些附加位,便于接收端进行检错。lFEC采用纠错码方法实现。纠错码比检错码复杂,需足够多的冗余位,实现起来复杂,编码和解码速度慢,效率低,造价高且费时。3.2.1差错类型和差错控制计算机网络中主要使用检错码Lizq98@xzcat.edu.cn101.奇偶校验码奇偶校验(Parity)码是一种简单、但能力有限的检错码,它在信息位的后面附加一个检验位(冗余位),使得码字中“1”的个数保持为奇数(奇校验)或偶数(偶校验)的编码方法。奇偶校验码在一维空间有“水平奇偶校验”和“垂直奇偶校验”码,在二维空间上有“水平垂直奇偶校验码”。由于奇偶校验码容易实现,所以当信道干扰不太严重及信息位不很长时很有用,特别是在计算机通信网的数据传送(如计算机串行通信)中经常应用这种检错码。3.2.2差错控制编码3.2差错控制Lizq98@xzcat.edu.cn111.奇偶校验码ASCII代码表示一个字符需要七位,而计算机内表示一个ASCII字符时,占用8个二进制位(一个字节),其中7位是ASCII编码,另外一位作为奇偶校验位(冗余位)。例如:←―――1110111110111111100101100100发送方向word水平偶校验为:←―――11101110110111101110010011001001发送方向word3.2.2差错控制编码3.2差错控制Lizq98@xzcat.edu.cn121.奇偶校验码每个字节的最后一位为冗余位,它保证每个字节的1的个数为偶数个。接收方对每个字节进行统计1的个数检查,如果每个字节都是偶数个1,当作无差错传输处理(如果错了两位,也不认为传输有错);如果有一个字节是奇数个1,表示数据传输过程中受到破坏。3.2.2差错控制编码虽然奇偶校验不能提供出错位置,也不具备纠错能力,但实践证明它是一种简单、有效的差错检测方法。3.2差错控制Lizq98@xzcat.edu.cn13循环冗余校验码(CRC)是一种最常用的检错码。它通过在信息位的后面附加一串冗余比特实现。方法是将要发送的二进制比特序列当作一个多项式F(x)的系数,发送端用双方预先约定的G(x)生成多项式对应的比特序列去除,(F(x)对应的比特序列后要加上n个0,n是一个比G(x)生成多项式对应的比特序列的位数减1的数),求得一个余数多项式,它就是循环冗余校验码,然后将它附加在放在信息位的后面组成CRC码进行传输。在接收端,用同样的G(x)去除接收到的比特序列,若能被其整除,表示传输正确,否则表示有错。2.循环冗余校验码3.2差错控制3.2.2差错控制编码Lizq98@xzcat.edu.cn14运算时需要注意以下两点:(1)运算都是模2运算,即“异或”运算(00=0;11=0;01=1;10=1)。(2)多项式F(x)比特序列后加了4个0,所以冗余位也要是4位。如果余数为“10”,那么冗余位是“0010”。本例余数为1010,它就是冗余码。因此,发送方传输前需要将冗余码“1010”附加到信息“1011001”之后,因此实际传输的CRC码为“10110011010”。接收端接收数据后,用同样的G(x)系数“11001”去除接收到的比特序列,整除时表示传输正确。2.循环冗余校验码3.2差错控制3.2.2差错控制编码Lizq98@xzcat.edu.cn15【例3.1】(7,3)码中,信息码有3位,可分别表示十进制数据0~7,设G(x)为x4+x3+x2+1,对应的生成多项式比特序列为11101,有5位组成,因此冗余校验码应是4位,通过计算,得表3.3。000000000010010011100010011101101101001101001001111101101001011011101011111101003.2差错控制2.循环冗余校验码3.2.2差错控制编码Lizq98@xzcat.edu.cn16本来7位二进制码可以有27(128)个码字,表中所得的8个CRC码是从这128个码字中,按照一致校验方程组挑选出来的,它有如下特性:1)封闭性。表中任两个CRC码的对应位进行模2相加后结果,仍然是表3.3中8个码字中的一个。2)循环性。表中任意一个(7,3)CRC码字循环右(左)移一位或多位后,仍是表中8个(7,3)CRC码字中的一个。3.2差错控制练习:请同学们计算下列两个数的(7,3)码。010、1012.循环冗余校验码3.2.2差错控制编码Lizq98@xzcat.edu.cn17◆目前广泛使用的生成多项式主要有四种:CRC12=x12+x11+x3+x2+1CRC16=x16+x15+x2+1(IBM公司)CRC16=x16+x12+x5+1(CCITT)CRC32=x32+x26+x23+x22+x16+x11+x10+x8+x7+x5+x4+x2+x+1循环冗余码的产生和校验均有集成电路产品,发送端能够自动生成CRC码,接收端自动校验。Ethernet采用的是32位CRC码,它由专用的以太网CRC系列器件来实现。3.2差错控制2.循环冗余校验码3.2.2差错控制编码Lizq98@xzcat.edu.cn18海明码是R.Hamming于1950年首次提出的,它是一种可以纠正单比特差错的编码。设信息位为k位,冗余位r位,构成n=k+r位码字。若希望用r个监督关系式产生r个校正因子来判断码字在传输后是否出错,并确定n个不同的错误位置,则要求满足下列关系式:2r≥n+1或2r≥k+r+13.2差错控制2.海明码3.2.2差错控制编码Lizq98@xzcat.edu.cn19例如,当k=4时,为了满足上述不等式,则需要r≥3。现取r=3,则n=k+r=7。即在信息位a6a5a4a3后面加上3为冗余位a2a1a0。其中a2、a1和a0分别可通过4位信息位中某几位按模2加法得到。如果传输后没有错误,这三个监督关系式的值s2、s1和s0应该全为“0”。a6a5a4a3a2a1a0中某一位差错与S2S1S0的其对应关系可规定如表3.4所示(当然也可以规定成另外的对应关系)。3.2差错控制2.海明码3.2.2差错控制编码Lizq98@xzcat.edu.cn20S2S1S0值000001010011100101110111出错码无错a0a1a2a3a4a5a6a2、a4、a6中有一个传输出错都应使S2=1,即:S2=a2⊕a4⊕a5⊕a6同理,可以得到监督关系式:S2=a2⊕a4⊕a5⊕a6S1=a1⊕a3⊕a5⊕a6(3.1)S0=a0⊕a3⊕a4⊕a63.2差错控制2.海明码3.2.2差错控制编码Lizq98@xzcat.edu.cn21将(3.1)式中的S2、S1和S0取值为零,则:a2⊕a4⊕a5⊕a6=0a1⊕a3⊕a5⊕a6=0(3.2)a0⊕a3⊕a4⊕a6=0由此可得:a2=a4⊕a5⊕a6a1=a3⊕a5⊕a6(3.3)a0=a3⊕a4⊕a63.2差错控制2.海明码3.2.2差错控制编码Lizq98@xzcat.edu.cn22发送端根据(3.3)式计算冗余位。十六进制0到F相应的冗余位如下表所示。3.2差错控制2.海明码3.2.2差错控制编码a6a5a4a3a2a1a0a6a5a4a3a2a1a00000000100011100010111001100001010110100100011110101100101001101100001010110111010100110011111010001110001111111Lizq98@xzcat.edu.cn23例如,发送端将十六进制数字A(1010)的海明码1010010发送传输后,接收端按监督关系式计算出S2、S1和S。的值,若全为“0”,则没有出错;若某一位出错,可查表3.2来判定是哪一位错,从而纠正之。如码字0010101传输中发生一位错,在接收端收到的为0011101,通过监督关系式可算得S2=0﹑S1=1和S0=1,由表3.2
本文标题:计算机网络基础(第3版)[李志球][电子教案]第3章
链接地址:https://www.777doc.com/doc-3153277 .html