第4讲 数据链路层

资源下载
  1. 二一教育资源

第4讲 数据链路层

资源简介

(共38张PPT)
第4讲
数据链路层
学习要求:
了解:数据传输过程中差错产生的原因与性 质。
掌握:误码率的定义与差错控制方法。
掌握:数据链路层的基本概念。
掌握:Internet中的数据链路层协议。
4.1 差错产生与差错控制方法
4.1.1 为什么要设计数据链路层
在原始物理传输线路上传输数据信号是有差错的;
设计数据链路层的主要目的:
将有差错的物理线路改进成无差错的数据链路;
方法 — 差错检测
差错控制
流量控制
作用:改善数据传输质量,向网络层提供高质量 的服务。
4.1.2 差错产生的原因和差错类型
传输差错 — 通过通信信道后接收的数据与发送 数据不一致的现象;
差错控制 — 检查是否出现差错以及如何纠正差错;
通信信道的噪声分为两类:热噪声和冲击噪声;
热噪声:由电子的热运动产生, 热噪声时刻存在, 具有很宽的频谱,且幅度较小。(香农关于有噪声信道传输速率的结论针对热噪声 )
通信线路的信噪比越高,热噪声引起的差错越少。
热噪声引起的差错 → 随机差错,或随机错;
冲击噪声引起的差错 → 突发差错,或突发错;
在通信过程中产生的传输差错,是由随机差错与突发差错共同构成的。
传输差错
产生过程
4.1.3 误码率的定义
误码率定义:
二进制比特在数据传输系统中被传错的概率,
它在数值上近似等于:
Pe = Ne/N
其中,N为传输的二进制比特总数;
Ne为被传错的比特数。
4.1.4 检错码与纠错码
在数据传输中出现随机性错误不可避免 → 需要采用有效的差错控制方法。在数据通信中常用的差错控制办法就是检错和纠错码。
纠错码:
每个传输的分组有足够的冗余信息;
接收端能发现并自动纠正传输差错。
实现困难,在一般的通信场合不宜采用。
检错码:
分组仅包含足以使接收端发现差错的冗余信息;
特点:接收端能发现出错,但不能确定哪一 位错,自己不能纠正传输差错。
检错码采用重传机制达到纠错目的,原理简单、实现容易、编码与解码速度快,目前得到广泛应用。
常用的检错码
奇偶校验码
垂直奇(偶)校验
水平奇(偶)校验
水平垂直奇(偶)校验
循环冗余编码CRC---目前应用最广的检错码之一。
海明码 (补充,纠错码)
奇偶校验是最常用的检错方法。
奇偶校验原理:在需校验的代码后增加一位,
增加一位校验位后码字中1的个数为:
奇数→奇校验
偶数→偶校验。
简单实用, 但只能检查出少量的随机性错误。
数值 水平偶校验
第1字节 1 1 0 0 1 0 1 0
第2字节 0 1 0 0 0 0 0 1
第3字节 1 0 0 0 0 0 1 0
第4字节 1 0 0 1 1 0 0 1
垂直奇校验 0 1 1 0 1 1 1
循环冗余校验码CRC(Cyclic Redundancy Check) 有很强的检错能力, 硬件实现容易,广泛应用在局域网中。
循环码:其中任一有效码字经过循环移位(右移或左移一位或多位)后得到的码字仍然是有效码字。例如, 若(a n-1 a n-2… a1 a0)是有效码字, 则(a n-2 a n-3 … a0 a n-1), (a n-3 a n-4 … a n-1 a n-2), …, 等都是有效码字。 例:110101和101011(110101右移一位的结果)都是有效码。
CRC是一种循环码。
4.1.5 循环冗余编码工作原理
CRC的考查点主要有三个:常见的CRC应用标准、计算CRC校验码;验算一个加了CRC校验的码是否有错误。
将要发送的数据比特序列看作是一个数据多项式f(χ)的系数,在发送端用χk * f(χ)除以收发双方预先约定的一个“生成多项式” G(χ),得到余数(校验位),余数的位数与生成多项式的最高幂次相同,把校验位拼接到原有效信息后面形成CRC码发送到接收端。
(k是生成多项式最高幂的值,例如生成多项式CRC-12 的最高幂值为12,则χ12*f(χ), f(χ)乘以χk是为了将余数多项式R(χ)拼接到原有效信息后面)。
数据多项式f(χ) :要发送的数据字形成 的多项式 。
生成多项式G(χ):按照一定的要求给出, 已有国际标准。
商多项式Q(χ):用G(χ)除χkf(χ)得到。
余数多项式R(χ)。
实际传送的CRC码多项式: χkf(χ)+R(χ)
注意f’(x)只包括数据字段,不包括校验字段。实际采用:接收的CRC码除以生成多项式G(x),若能除尽表示接收正确,不能除尽接收不正确。
注意:除法是“模2运算”,即进行加、减运算时不考虑进位和借位。
做模2除法时,上商的原则是当部分余数首位为1时商取1,反之商取0,然后按模2减( 0-0=0,1-1=0,0-1=1,1-0=1);求部分余数时,这个余数去掉一位最高位。当被除数逐位除完时,最后余数的位数与生成多项式的最高幂次相同,该余数就是校验位,它拼接在有效信息后面组成CRC码。
例1:
传送信息为110011,生成多项式为 (x4+x3+1)→生成多项式最高幂的值为4,即k=4,余数
R(χ)取4位。
因为:
X4*(x5+x4+x+1)
=x9+x8+x5+x4
即χ 4 * f(χ)是在110011后添加4个0,形成1100110000。
接收端
例2:设传送信息是二进制串100110,生成多项式为1011,计算校验位并写出CRC码。
[解] 生成多项式1011(即x3+x+1)的最高幂为3,校验位取3位,余数也取3位, 100110加3个0后做模2除法。
校验位为011,
CRC码是100110011
验算一个加了CRC校验的码是否有错误:
当CRC码到达接收方时,接收方用CRC码除以同样的生成多项式G(χ),如果正好除尽,(余数为0)表示信息无错误,接收方去掉CRC码后面的校验位,获得有效信息;
如果某一位出错,则余数不为0。此时继续模2除法,余数值将出现反复循环,这就是“循环码”名称的由来。余数为3位时,如果余数为001,表示第1位出错,余数为110,表示第6位出错,以此类推。
出错时,重新传送一次或立即纠错。
本例中,CRC码是100110011,生成多项式仍是1011,进行模2除法:
余数为0,表示信息无错误。
例3:设原始报文为“11001010101”,其生成多项式为:“x4+x3+x+1” ,计算校验位并写出CRC码。
解:生成多项式的最高幂次就是校验位的位数→生成多项式为x4+x3+x+1时校验位为4位, 110010101010000作为被除数,除以生成多项式所对应的二进制数11011,使用模2除,如下图所示。
校验位为0011,将0011添加到原始报文的后面就是CRC码:110010101010011。
CRC生成多项式
并不是任何一个二进制串都可以作生成多项式用,它应满足当任何一位发生传送错误时都能使余数不为0,并且不同位发生错误时余数也不同,这样不但能检错,而且能推断是哪一位出错,从而有利于准确地纠错。常用的生成多项式长13位、17位或33位。
CRC生成多项式的国际标准:
CRC-12 G(X)=X12+X11+X3+X2+X+1
CRC-16 G(X)=X16+X15+X2+1 (11000000000000101)
CRC-CCITT G(X)=X16+X12+X5+1
CRC-32 G(X)=X32+X26+X23+X22+X16
+X12+X11+X10+X8+X7+X5+X4+X2+X+1
CRC―32用在许多局域网中。
CRC的实现:异或运算器、移位寄存器。
下图中移位寄存器(由k位组成)、几个异或门和一条反馈回路。 图中的移位寄存器可以按CCITT-CRC标准生成16位的校验和。 寄存器被初始化为零, 数据字从右向左逐位输入。
CRC的实现
可以看出按图中的反馈回路把一个左移出寄存器的数据位反馈回去与寄存器中的数据进行异或等同于在数据多项式上加上生成多项式, 因而也等同于从数据多项式中(按模2)减去生成多项式。
CRC校验码的检错能力
CRC校验码能检查出全部单个错;
CRC校验码能检查出全部离散的二位错;
CRC校验码能检查出全部奇数个错;
CRC校验码能检查出全部长度小于或等于K位的突发错;
CRC校验码能以[1-(1/2)K-1]的概率检查出长度为(K+1)位的突发错;
如果K=16,则该CRC校验码能全部检查出小于或等于16 位的所有的突发差错,并能以1-(1/2)16-1=99.997%的概率检查出长度为17位的突发错,漏检概率为0.003%;
由于海明码在计算和纠错过程中,计算过于复杂,硬件实现较复杂,实际应用不是很广泛。
补充作业:
1、已知CRC生成多项式为G(X)=X4+X+1,设要传送的 信息码字为10110,计算检验码。
2、若采用生成多项式G(X)=X9+X6+X5+ X4+X3+1,检验收到的报文101010001101是否正确。
4.2.3 数据链路层向网络层提供的服务
数据链路层服务的类型:
面向连接确认服务(acknowledged connection-oriented service); 广域网通信子网的数据链路层
无连接确认服务(acknowladged connectionless service); 无线通讯系统
无连接不确认服务(unacknowledged connectionless service)。 局域网的数据链路层
实际数据路径
与虚拟数据路径
4.3.1 数据链路层协议的分类:
同步数据链路控制(Synchronous Data Link Control)协议
BSC 了解
小结
物理传输线路上传输数据信号是有差错的;
误码率是指二进制比特在数据传输过程中被传错的概率;
数据链路层是将一条原始的、有差错的物理线路变为对网络层无差错的数据链路;
数据链路层完成链路管理、帧传输、流量控制、差错控制等功能;
数据链路层协议基本可以分为两类:面向字符型与面向比特型;
数据链路层的数据传送单位是帧,帧具有固定的结构;
HDLC的帧分为信息帧(I帧)、无编号帧(U帧)与监控帧(S帧);
Internet数据链路层主要的协议是SLIP与PPP协议;
PPP协议不仅用于拨号电话线,并且可以用于路由器─路由器之间的专用线路上。

展开更多......

收起↑

资源预览