计网——17差错检测和纠正技术

处理帧差错两种方法

  1. 检错重发(detect and retransmission)
    ①检测到发送方报文受损,则通知发送方重传副本
    ②差错率低效果好
    适用场合
    检错重发适合链路差错率很低的场合,如有线通信
  2. 前向纠错(Forward Error Correction, FEC)
    ①纠错通过额外信息“预先”进行
    ②时效性好
    适用场合
    前向纠错适合对时间要求很高的场合,如航天和实时控制

一.差错检测

EDC= 差错检测和纠错比特 (冗余)
D = 数据由差错校验保护,可能包括首部字段
差错检测不是100%可靠!
协议可能漏掉某些差错,但是非常少
较大的EDC字段产生更好的检测和纠正

二.奇偶校验

单比特奇偶校验

检测单个比特差错
计网——17差错检测和纠正技术

二维比特奇偶校验

检测和纠正单个比特差错
计网——17差错检测和纠正技术

三.互联网检验和

目标

检测传输段中的“差错”(如比特翻转) (注意: 仅用于运输层)

发送方

将段内容作为16比特整数序列来处理
检验和: 段内容相加(补码和)
发送方将检验和的值放入 UDP 检验和字段

接收方

计算接收到段的检验和
检查是否计算的检验和等于 检验和字段的值:
NO – 检测到差错
YES – 没有检测到差错,仍可能有错

当作加法时,最高位进比特位的进位需要加到结果中
对不同的报文,容易找到具有相同检验和的另一段报文:
效果不好!

四.检验和:循环冗余码校验(Cyclic Redundancy Check)

将数据比特D看作一个二进制数,选择r+1比特模式(生成式)G
目标:选择r个CRC 比特R, 使得
<D,R> 被G整除 (以2为模)
接收方知道G, 用G除以<D,R>。如果有非零余数:检测到差错!
能够检测所有小于r+1比特的突发差错
广泛用于以太网, HDCL中

计网——17差错检测和纠正技术

CRC例子

希望:
D.2r XOR R = nG
等价为:
D.2r = nG XOR R
等价为:
如果用G除以D.2r, 余数为 R
计网——17差错检测和纠正技术
计网——17差错检测和纠正技术