数据链路层协议及技术资料

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.3.2 奇偶检验
• 通过增加冗余位使得码字中“1”的个数恒为奇数或偶 数的编码方法.
例:发送端发送ASCII码0110000,在传输的过程中由 于干扰,接收端接收的是0110001。那么系统能不能 知道出现出错了呢?
如果发送端发送的是ASCII码数据+奇校验位,即 01100001,那么接收端接收的是01100011,那么系 统能不能知道出错了呢?若接收到的数据是 01100111,那么系统如何判断?
位置,通过反馈信息请求发送端重发,直到接收端肯 定确认为止。适合双工通信和非实时通信系统 • 前向纠错:在接收端不但能发现错码,还能确定错码 位置,并纠正错码。适合单工通信和实时通信系统 • 混合纠错:少量差错在接收端自动纠正,超出自纠正 能力,通过反馈请求重发
误码控制基本原理
• 为了能判断传送的信息数据是否有误,在传送时增加 必要的附加判断数据,在不发生误码的情况之下,附 加判断数据是完全多余的,但如果发生误码,即可利 用信息数据与附加数据之间的特定关系来实现检错和 纠错
L为码距,D为可以检测出的错误位数,
C为可以纠正的错误位数,并且有D≥C。
常用检错码和纠错码
检错码: 校验和 奇偶校验码 循环冗余编码CRC • 目前应用最广的检错码编码方法之一 纠错码: 海明码
5.3.1 校验和
• 算法简单,容易实现,但检错率不高 • 将发送的数据看成是二进制整数序列,并划分成一段
数据链路层功能和提供的服务
• 数据链路层的协议数据单元PDU:帧 • 任务是将网络层的数据组合成帧,加上一定的校验,
然后交物理层用某种信号表示二进制数据位送到目的 计算机,并通过目的计算机的物理层和数据链路层送 到网络层,为网络层提供了一条可靠的数据链路 提供服务(通过有无连接,有无确认区分): • 无确认无连接服务 例如:局域网 1)共享信道无需连接 2)传输出错或丢失由上层恢复 3)信道比较好,数据传输的误码率比较低 无确认并非不可靠,其可靠性由上层负责
差错产生的原因和差错类型
• 传输差错 — 通过通信信道后接收的数据与发送数据 不一致的现象;
• 差错控制 — 检查是否出现差错以及如何纠正差错; • 通信信道的噪声分为两类:热噪声(传输介质导体的
电子热运动形成)和冲击噪声(外界电磁干扰形成); • 由热噪声引起的差错是随机差错,或随机错,一般出
错数据位不相邻 ; • 冲击噪声引起的差错是突发差错,或突发错,一般会
引起相邻多个数据位出错 ; • 引起突发差错的位长称为突发长度; • 在通信过程中产生的传输差错,是由随机差错与突发
差错共同构成的。
差错评价指标及差错控制方法
评价指标: • 误码率:错传的码元数与所传输码元总数之比 • 误比特率:错传的比特数与所传输总比特数之比。在
二进制码元时,误比特流=误码率 差错控制基本方式: • 反馈纠错:在接收端能发现差错,但不能确定错码的
• 在理想化的条件下,数据链路层不需要: 1、差错控制协议 2、流量控制协议 就可保证数据的正确传输
5.4.1 最简单流量控制的停止等待协议
• 保留假设1,去掉假设2。考虑流量控制问题--流量 控制协议
• 使发送端发送数据的速率适应接收端的接收能力 • 最简单流量控制协议(发送方和接收方各有一个帧的
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
• 检测能力: 所有单个错、奇数个错和离散的二位错 所有长度<r位的突发差错
• CRC实现: 硬件:采用多段移位寄存器或异或门组成CRC校验电路
• 一般情况:信道速率b比特/秒,帧长度L比特,往返传 输延迟R秒,则信道利用率为 (L/b)/(L/b+R)=l/(l+Rb/L)
5.2 成帧(framing)
帧的组成必须保证能识别一个完整的帧,并保证一旦出 现传输差错导致前一个帧丢失,也必须能识别下一个 帧(错误发生之后重新同步)。
成帧方法: ➢字符计数法 ➢带字符填充的首尾字符定界法 ➢带位填充的首尾标记定界法 ➢物理层编码违例法
5.2.1 字符计数法
• 帧头中用一个字节来表示整个帧的字符个数
• 若计数出错,对本帧和后面的帧有影响。(错误没有 办法恢复)
5.2.2 带字符填充的首尾字符定界法
• 比如以ASCII字符DLE和STX作为帧的头部,DLE和ETX 作为帧的尾部(DLE=10H,STX=02H,ETX=03H) (DLE:data link escape表转义字符,STX:start of text,ETX:end of text)
缓冲空间) 发送节点: 1、从数据链路层的发送缓存中取一个数据帧 2、发送这个数据帧 3、等待 4、若收到由接收端的应答信息,转1 接收节点: 1、等待 2、接收由发送端发来的数据帧 3、将其存入数据链路层的接收缓存 4、发送应答信息,表示数据帧已接收,转到1
5.4.2实用的停止等待协议ARQ
• 去掉假设1,去掉假设2
• “0”比特插入删除技术(透明传输):发送方5个“1” 后插入“0”,接收方删除第5个“1”后的“0”
5.2.4 物理层编码违例法
• Manchester encoding or Differential Manchester encoding 用high-low pair/low-high pair 表示1/0, high-high/low-low不表示数据,可以用来做定界符。
考虑差错控制问题--差错控制协议
考虑流量控制问题--流量控制协议
初步协议:
1、发送端发送数据帧后,等待接收 端的应答帧
2、接收端收到数据帧后,通过CRC 校验,如果无差错,回送一个确认 帧ACK,否则,回送一个否认帧 NAK
3、发送端收到应答帧,如果是ACK, 发送下一数据帧,如果是NAK,重 发数据帧
协议有什么缺陷呢?
死锁现象
缺陷1:数据帧丢失 • 当出现帧丢失时,发送端永远等待下去,如何解决? • 解决方法:发送端设立一个超时计时器,发送完一个
数据帧时,就启动它,如果在规定时间内得不到应答 帧,判定为超时,重传数据 • tout称为重传时间
重复帧差错
缺陷2:应答帧丢失,产生重复帧
• 若应答帧丢失,按照超时重发方法,接收端将接收到 重复帧,如何解决?
• 有确认无连接:使用前不建立连接,但每帧传输必须 得到确认
适合信号传播时延比较大,线路状态不一定很可靠的情 况
例如:无线通信:建立连接降低了利用率(540ms);误 码率相对高,需确认):用于不可靠的通道传输;
• 有确认有连接(电话,大多数广域网的通信子网的 DLL)
数据链路层可靠传输
保证直接相连的两台主机的可靠性传输 1)将传输的数据组合成同一的格式:帧 2)数据校验和反馈重发机制 3)流量控制
• 令牌环网中使用编码违例格式
5.3 差错产生与差错控制方法
5.3.1 为什么要设计数据链路层
• 在原始物理传输线路上传输数据信号是有差错的;
• 设计数据链路层的主要目的: 将有差错的物理线路改进成无差错的数据链路; 方法 — 差错检测 差错控制(重发和编序号) 流量控制(滑动窗口协议)
• 作用:改善数据传输质量,向网络层提供高质量的服 务。
5.3.3 循环冗余码-CRC码
• 特点:实现容易,检错能力强,广泛使用。常结合反 馈重发法来保证信息的可靠传输。
• 码字组成:
• 编码和解码的计算采用二进制比特序列多项式 • 二进制比特序列多项式
• 例:若数据码=110011,可以表示为: M(X)=X5+X4+X+1
• 生成多项式G(X):
数据链路层协议及技术资料
5.1 数据链路层基本概念
• 链路:一条无源的点到点的物理线路段 • 数据链路:链路+规程(控制数据传输)。一条物理
连接加上为实现数据可靠传输所配置的硬件和相关的 通信协议) • 数据链路层的作用:通过一些数据链路层协议(链路 控制规程),在不太可靠的物理链路上实现可靠的数 据传输
集合中,可得到所有ቤተ መጻሕፍቲ ባይዱ意两个码字的海明距离,其中最 小的海明距离称为该码字编码的海明距离d
检错编码和纠错编码
使用3位二进制来对8个码 字进行编码不能检测出 错
使用4位二进制来对8个码 字进行编码能检测奇数 位出错,但不能纠错
海明距离(码距)为3及以上,才能够进行纠错
码距与纠错检错位的关系
一般情况下,冗余位越多,检错纠错能力越强,但相应 编码效率也随之降低了 L-1=C+D
• 技术:如何避免字符数据可能与帧的头尾标志相同? 发送方在数据中遇到DLE时,自动在其前后插入一个 DLE 接收方在数据中遇到单个DLE时,可确定帧界,遇到2 个 DLE时,自动删除一个DLE
5.2.2 带字符填充的首尾字符定界法
• 用途:帧同步用于面向字符型协议,比如PPP,IBM 的二进制同步通信协议BSC
2、发送
:实际上,把CRC校验码R(X)附加到数
据码M(X)的后面,然后发送传输
• 接收端:
CRC举例
• 数据码M(X)=110011,利用生成多项式 G(X)=X4+X3+1,求CRC校验码为多少?
• 流行的生成多项式有:
CRC-12
G(x)= x12+x11+x3+x2+x+1
CRC-16
G(x)= x16+x15+x2+1
段规定的长度(8bbit,16bit,32bit)计算他们的和, 若校验和大于规定的长度,则将进位加到最后的校验 和中。将校验和和数据一起发送。在接收端,重新计 算校验和与原校验和比较。比如传输“HELLO WORLD.”以16bit为例
4865H+6C6CH+6F20H+776FH+726CH+642EH+ 进位=71FCH
• 为了使数据码有一定的检错和纠错能力,应当按一定 的规则在数据码的基础上增加一些冗余码
码字的检错与纠错能力
• 码字(n位)=数据码(m位)+冗余码(r位) • 海明距离:两个码字之间对应码元位的不同码元的个数。 • 比如:10001001与10100011,有3位不同,海明距离
=3 • 码字编码的海明距离:对于一种码字编码,在这个码字
来实现 软件:通过快速的CRC检验软件来实现
5.4 差错控制和流量控制
• 数据链路协议主要考虑的问题: 1、避免所传送的数据可能出现差错和丢失 2、使发方发送数据的速率适应收方的接收能力
理想化的数据传输
• 假设1:所传送的数据既不会出现差错和也不会丢失 (不考虑差错控制问题)
• 假设2:接收端的数据接收速率足够快,有能力接收 发送端的数据发送率(不考虑流量控制问题)
• G(X)被通信双方事先共同选定使用: 发送端:通过G(X)生成校验码 接收端:通过G(X)校验接收的码字 对于多项式的运算:采用模2计算(加法不进,减法不
借位);加减法是一样的 模2计算即是异或运算
• 发送端:
1、生成校验码R(X):把要发送的数据码去除G(X),所得 的余数值T(X)就是循环冗余码
• 忽略应答帧长度和处理时间: Cr=Tf/(Tf+2Td)=1/(1+2TdC/L)
• 卫星信道传输速率50kbps,往返传输延迟500ms,若传 1000bit的帧,使用停止等待协议,则传输一个帧所需 时间为: 发送时间+信息信道延迟+确认信道延迟= 1000bit/50kbps+250ms+250ms=520ms 信道利用率=20/520约为4%
• 解决方法:给每个数据帧附加不同的发送序号Ns,如 果接收端收到相同序号的数据帧,则丢弃,并回送一 个ACK
• 发送序号需要多少位?对于ARQ协议,发送序号有1 和0即可(只需1bit),每发一个新的数据帧,发送序 号和上次发送不一样
停止等待协议的信道利用率
• 单程传输时延Td,数据帧发送时间Tf,数据传输率C,数 据帧长度L,信道利用率Cr=(总时间-等待时间)/传 输一帧的总时间
• 不足:依靠字节模式,但不是所有的字符编码都是采
用8位模式,unicode采用16位编码,如何允许任意 长度的字符编码的帧同步技术呢?
5.2.3 带位填充的首尾字符定界法
• 帧的起始和结束都用一个特殊的位串“01111110”,称 为标记(flag)
如果由于干扰,一个帧标志没有正确接收,则继续扫描 接收串,一旦扫描到01111110,表示新的一帧的开始, 具有再同步能力
相关文档
最新文档