第三章 数据链路层
第三章 数据链路层
主要内容 组帧 检错和纠错 可靠交付(差错恢复及流量控制 数据链路层协议举例 HDLC协议 PPP协议
主要内容 组帧 检错和纠错 可靠交付(差错恢复及流量控制) 数据链路层协议举例 HDLC协议 PPP协议
1组帧( framing) 使用字节(字符)填充的首尾标记法 使用特殊的字节来表示帧的开始与结束 为避免在数据部分岀现这些特殊字节时产生异 义,在特殊字节前插入转义字符,称为字节填 充( byte stuffing) 该方法依赖于特定的字符编码集,帧长必须是 8比特的整倍数,灵活性差,处理开销大(必 须由软件处理)
1 组帧(framing) 使用字节(字符)填充的首尾标记法: 使用特殊的字节来表示帧的开始与结束 为避免在数据部分出现这些特殊字节时产生异 义,在特殊字节前插入转义字符,称为字节填 充(byte stuffing) 该方法依赖于特定的字符编码集,帧长必须是 8比特的整倍数,灵活性差,处理开销大(必 须由软件处理)
字节填充图例 FLAG Header Payload field Trailer FLAG Oniginal characters After stuff Ing A FLAG B A ESC FLAG B AESC B A ESC B AESCFLAGB A ESCESCESC FLAG B ESCESC B A ESC ESC ESCESC B (b) (a)aframe delimited by flag bytes (b) Four examples of byte sequences before and after stuffing
字节填充图例 (a) A frame delimited by flag bytes (b) Four examples of byte sequences before and after stuffing
组帧(续) 使用比特填充的首尾标记法 使用一个特殊的比特模式(0111110作为 帧的起始与结束标志。 为避免在数据部分岀现这个比特模式时带来异 义,当数据部分连续发送了5个“1后,自动 插入一个“0”,称比特填充( bit stuffing)。 该方法不依赖于特定的字符编码集,灵活性强 处理简单(可用硬件处理)
组帧(续) 使用比特填充的首尾标记法: 使用一个特殊的比特模式(01111110)作为 帧的起始与结束标志。 为避免在数据部分出现这个比特模式时带来异 义,当数据部分连续发送了5个“1”后,自动 插入一个“0” ,称比特填充(bit stuffing)。 该方法不依赖于特定的字符编码集,灵活性强, 处理简单(可用硬件处理)
比特填充图例 (a)011011111111111111110010 (b)011011111011111011111010010 Stuffed bits (c)011011111111111111110010 (a)The original data (b) The data as they appear on the line (c) The data as they are stored in receiver's memory after destuffing
比特填充图例 (a) The original data. (b) The data as they appear on the line. (c) The data as they are stored in receiver’s memory after destuffing
组帧(续) 物理层编码违例法 使用物理层编码中的无效编码表示帧的边界 如曼彻斯特编码及差分曼彻斯特编码中的“H- H电平对和“LL电平对
组帧(续) 物理层编码违例法: 使用物理层编码中的无效编码表示帧的边界, 如曼彻斯特编码及差分曼彻斯特编码中的“HH”电平对和“L-L”电平对
2检错和纠错 传输出错的类型 单个错:由随机的信道热噪声引起,一次只影响1位。 突发错:由瞬间的脉冲噪声引起,一次影响许多位。 用突发长度表示突发错影响的最大数据位数。 差错编码的类型 检错码:只能检测到数据传输发生了错误,但无法自 行纠正,通常与反馈重传结合起来进行差错恢复。 纠错码:不权能够检测出数据传输发生了错误,而且 能够自行纠正错误
2 检错和纠错 传输出错的类型 单个错:由随机的信道热噪声引起,一次只影响1位。 突发错:由瞬间的脉冲噪声引起,一次影响许多位。 用突发长度表示突发错影响的最大数据位数。 差错编码的类型 检错码:只能检测到数据传输发生了错误,但无法自 行纠正,通常与反馈重传结合起来进行差错恢复。 纠错码:不权能够检测出数据传输发生了错误,而且 能够自行纠正错误
如何检测与纠正错误? 码字( codeword):由m比特的数据(消息)加上比特 的冗余(校验位)构成。 有效编码集:由2m个(符合编码规则的)有效码字组成。 检错:当收到的码字为无效码字时,称检测出错 海明距离( Hamming Distance):两个码字的对应位 上取值不同的位数 纠错:将收到的无效码字纠正到距其最近的有效码字。 检错码与纠错码的能力都是有限的
如何检测与纠正错误? 码字(codeword):由m比特的数据(消息)加上r比特 的冗余(校验位)构成。 有效编码集:由2 m个(符合编码规则的)有效码字组成。 检错:当收到的码字为无效码字时,称检测出错误。 海明距离(Hamming Distance):两个码字的对应位 上取值不同的位数。 纠错:将收到的无效码字纠正到距其最近的有效码字。 检错码与纠错码的能力都是有限的
编码集的检错与纠错能力 编码集的海明距离:编码集中仼意两个有效码字的海明距 离的最小值。 检错能力:为检测出d比特错误,编码集的海明距离至少 应为d+1;奇偶校验是能够检测出1比特错误的检错码。 纠错能力:为纠正d比特错误,编码集的海明距离至少应 为2d+1;海明码是能够纠正1比特错误的纠错码
编码集的检错与纠错能力 编码集的海明距离:编码集中任意两个有效码字的海明距 离的最小值。 检错能力:为检测出d比特错误,编码集的海明距离至少 应为d+1;奇偶校验是能够检测出1比特错误的检错码。 纠错能力:为纠正d比特错误,编码集的海明距离至少应 为2d+1;海明码是能够纠正1比特错误的纠错码