计算机网络-链路层(1)差错检测与纠正

差错编码D→DR,其中R为差错检测与纠正比特(冗余比特/监督位)
差错编码并不能保证100%可靠。
差错编码可分为检错码与纠错码
两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数
对于检错码,如果编码集的汉明距离ds=r+1,则该差错编码可以检测r位的差错
例如,编码集 {00,01,10,11} 的汉明距离ds=1,不能实现差错检测
例如,编码集 {00 00,01 01,10 10,11 11} 的汉明距离ds=2,可以100%检测1比特差错。(红色即冗余信息,此处使用了重复码)
对于 纠错码,如果编码集的汉明距离ds=2r+1,则该差错编码可以纠正r位的差错,将一个无效的码字纠正为距离最近的码字。
例如,编码集 {00 0000,01 0101,10 1010,11 1111} 的汉明距离ds=3,可以纠正1比特差错,如100010纠正为10 1010。
  • 奇偶校验码
差错检测最简单的方式就是用 单个奇偶校验位,使1的总数总是偶数
 
如果出现偶数个比特的差错无法检测出
 
检测能力50%,检测效率高
二维奇偶校验:检测奇数位差错、部分偶数位差错;纠正同一行/列的奇数位错
  • Internet校验和(Checksum)
发送端:
将“数据”(校验内容)划分为16位的二进制“整数”序列
求和(sum):补码求和(最高位进位的“1”,返回最低位继续加)
校验和(Checksum):sum的反码
放入分组(UDP、TCP、IP)的校验和字段
接收端:与发送端相同算法计算,计算得到的"checksum":为16位全0(sum为16位全1)无错;否则有错
  • 循环冗余检测(CRC)编码/多项式编码
检错能力更强大的差错编码,广泛应用于实际网络(以太网,802.11 WiFi,ATM)
将数据比特D视为一个二进制数
选择一个r+1位的比特模式G,称为生成多项式
目标:选择r位的CRC比特R,满足
(1)<D,R>刚好可以被G 模2整除
(2)接收端检错:利用G除<D,R>,余式全0,无错;否则,有错!
(3)可以检测所有突发长度小于r+1位差错。
模2算术,加法不进位,减法不借位,相当于XOR
D*2^r XOR R = nG
D*2^r = nG XOR R
R=余式[D*2^r/G]
因此D*2^r + R = nG时无错;否则有错

转载于:https://www.cnblogs.com/yangyuliufeng/p/9294938.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值