数据链路层协议及技术资料
数据链路层协议及技术资料
5.1 数据链路层基本概念
• 链路:一条无源的点到点的物理线路段 • 数据链路:链路+规程(控制数据传输)。一条物理
连接加上为实现数据可靠传输所配置的硬件和相关的 通信协议) • 数据链路层的作用:通过一些数据链路层协议(链路 控制规程),在不太可靠的物理链路上实现可靠的数 据传输
• 技术:如何避免字符数据可能与帧的头尾标志相同? 发送方在数据中遇到DLE时,自动在其前后插入一个 DLE 接收方在数据中遇到单个DLE时,可确定帧界,遇到2 个 DLE时,自动删除一个DLE
5.2.2 带字符填充的首尾字符定界法
• 用途:帧同步用于面向字符型协议,比如PPP,IBM 的二进制同步通信协议BSC
段规定的长度(8bbit,16bit,32bit)计算他们的和, 若校验和大于规定的长度,则将进位加到最后的校验 和中。将校验和和数据一起发送。在接收端,重新计 算校验和与原校验和比较。比如传输“HELLO WORLD.”以16bit为例
4865H+6C6CH+6F20H+776FH+726CH+642EH+ 进位=71FCH
来实现 软件:通过快速的CRC检验软件来实现
5.4 差错控制和流量控制
• 数据链路协议主要考虑的问题: 1、避免所传送的数据可能出现差错和丢失 2、使发方发送数据的速率适应收方的接收能力
理想化的数据传输
• 假设1:所传送的数据既不会出现差错和也不会丢失 (不考虑差错控制问题)
• 假设2:接收端的数据接收速率足够快,有能力接收 发送端的数据发送率(不考虑流量控制问题)
• 一般情况:信道速率b比特/秒,帧长度L比特,往返传 输延迟R秒,则信道利用率为 (L/b)/(L/b+R)=l/(l+Rb/L)
• 有确认无连接:使用前不建立连接,但每帧传输必须 得到确认
适合信号传播时延比较大,线路状态不一定很可靠的情 况
例如:无线通信:建立连接降低了利用率(540ms);误 码率相对高,需确认):用于不可靠的通道传输;
• 有确认有连接(电话,大多数广域网的通信子网的 DLL)
数据链路层可靠传输
保证直接相连的两台主机的可靠性传输 1)将传输的数据组合成同一的格式:帧 2)数据校验和反馈重发机制 3)流量控制
5.3.2 奇偶检验
• 通过增加冗余位使得码字中“1”的个数恒为奇数或偶 数的编码方法.
例:发送端发送ASCII码0110000,在传输的过程中由 于干扰,接收端接收的是0110001。那么系统能不能 知道出现出错了呢?
如果发送端发送的是ASCII码数据+奇校验位,即 01100001,那么接收端接收的是01100011,那么系 统能不能知道出错了呢?若接收到的数据是 01100111,那么系统如何判断?
• 解决方法:给每个数据帧附加不同的发送序号Ns,如 果接收端收到相同序号的数据帧,则丢弃,并回送一 个ACK
• 发送序号需要多少位?对于ARQ协议,发送序号有1 和0即可(只需1bit),每发一个新的数据帧,发送序 号和上次发送不一样
停止等待协议的信道利用率
• 单程传输时延Td,数据帧发送时间Tf,数据传输率C,数 据帧长度L,信道利用率Cr=(总时间-等待时间)/传 输一帧的总时间
• 在理想化的条件下,数据链路层不需要: 1、差错控制协议 2、流量控制协议 就可保证数据的正确传输
5.4.1 最简单流量控制的停止等待协议
• 保留假设1,去掉假设2。考虑流量控制问题--流量 控制协议
• 使发送端发送数据的速率适应接收端的接收能力 • 最简单流量控制协议(发送方和接收方各有一个帧的
L为码距,D为可以检测出的错误位数,
C为可以纠正的错误位数,并且有D≥C。
常用检错码和纠错码
检错码: 校验和 奇偶校验码 循环冗余编码CRC • 目前应用最广的检错码编码方法之一 纠错码: 海明码
5.3.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)
引起相邻多个数据位出错 ; • 引起突发差错的位长称为突发长度; • 在通信过程中产生的传输差错,是由随机差错与突发
差错共同构成的。
差错评价指标及差错控制方法
评价指标: • 误码率:错传的码元数与所传输码元总数之比 • 误比特率:错传的比特数与所传输总比特数之比。在
二进制码元时,误比特流=误码率 差错控制基本方式: • 反馈纠错:在接收端能发现差错,但不能确定错码的
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
• “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、发送这个数据帧 3、等待 4、若收到由接收端的应答信息,转1 接收节点: 1、等待 2、接收由发送端发来的数据帧 3、将其存入数据链路层的接收缓存 4、发送应答信息,表示数据帧已接收,转到1
5.4.2实用的停止等待协议ARQ
• 去掉假设1,去掉假设2
• 忽略应答帧长度和处理时间: Cr=Tf/(Tf+2Td)=1/(1+2TdC/L)
• 卫星信道传输速率50kbps,往返传输延迟500ms,若传 1000bit的帧,使用停止等待协议,则传输一个帧所需 时间为: 发送时间+信息信道延迟+确认信道延迟= 1000bit/50kbps+250ms+250ms=520ms 信道利用率=20/520约为4%
考虑差错控制问题--差错控制协议
考虑流量控制问题--流量控制协议
初步协议:
1、发送端发送数据帧后,等待接收 端的应答帧
2、接收端收到数据帧后,通过CRC 校验,如果无差错,回送一个确认 帧ACK,否则,回送一个否认帧 NAK
3、发送端收到应答帧,如果是ACK, 发送下一数据帧,如果是NAK,重 发数据帧
集合中,可得到所Байду номын сангаас任意两个码字的海明距离,其中最 小的海明距离称为该码字编码的海明距离d
检错编码和纠错编码
使用3位二进制来对8个码 字进行编码不能检测出 错
使用4位二进制来对8个码 字进行编码能检测奇数 位出错,但不能纠错
海明距离(码距)为3及以上,才能够进行纠错
码距与纠错检错位的关系
一般情况下,冗余位越多,检错纠错能力越强,但相应 编码效率也随之降低了 L-1=C+D
5.2 成帧(framing)
帧的组成必须保证能识别一个完整的帧,并保证一旦出 现传输差错导致前一个帧丢失,也必须能识别下一个 帧(错误发生之后重新同步)。
成帧方法: ➢字符计数法 ➢带字符填充的首尾字符定界法 ➢带位填充的首尾标记定界法 ➢物理层编码违例法
5.2.1 字符计数法
• 帧头中用一个字节来表示整个帧的字符个数
• G(X)被通信双方事先共同选定使用: 发送端:通过G(X)生成校验码 接收端:通过G(X)校验接收的码字 对于多项式的运算:采用模2计算(加法不进,减法不
借位);加减法是一样的 模2计算即是异或运算
• 发送端:
1、生成校验码R(X):把要发送的数据码去除G(X),所得 的余数值T(X)就是循环冗余码
差错产生的原因和差错类型
• 传输差错 — 通过通信信道后接收的数据与发送数据 不一致的现象;
• 差错控制 — 检查是否出现差错以及如何纠正差错; • 通信信道的噪声分为两类:热噪声(传输介质导体的
电子热运动形成)和冲击噪声(外界电磁干扰形成); • 由热噪声引起的差错是随机差错,或随机错,一般出
错数据位不相邻 ; • 冲击噪声引起的差错是突发差错,或突发错,一般会
• 令牌环网中使用编码违例格式
5.3 差错产生与差错控制方法
5.3.1 为什么要设计数据链路层
• 在原始物理传输线路上传输数据信号是有差错的;
• 设计数据链路层的主要目的: 将有差错的物理线路改进成无差错的数据链路; 方法 — 差错检测 差错控制(重发和编序号) 流量控制(滑动窗口协议)
• 作用:改善数据传输质量,向网络层提供高质量的服 务。
5.3.3 循环冗余码-CRC码
• 特点:实现容易,检错能力强,广泛使用。常结合反 馈重发法来保证信息的可靠传输。
• 码字组成:
• 编码和解码的计算采用二进制比特序列多项式 • 二进制比特序列多项式
• 例:若数据码=110011,可以表示为: M(X)=X5+X4+X+1
• 生成多项式G(X):