数据链路层相关知识——超详细海明码、CRC编码讲解!软考网络工程师考试重点总结!!

3.1 检错与纠错

3.1.1 基本概念

比特差错:比特在传输过程中,1可能会变成0,0可能变成1
码字:n = m + r,其中m个数据位(即报文)和r个冗余位(校验位)
海明码距:两个码字中不相同的二进制位的个数
两个码字的码距:一个编码系统中任意两个合法编码(码字)之间不同的二进制位数
编码系统的码距:整个编码系统中任意两个码字的码距的最小值
误码率:传输错误的比特占所传输比特总数的比率

海明研究发现:检测d个错误,则编码系统码距 ≥ d + 1;纠正d个错误,则编码系统码距 > 2d

3.1.2 海明码

设海明码校验位为k,信息位为m,则它们之间的关系应满足m+k+1\leqslant 2^{k}

下面以原始信息101101为例:

1.确定海明码校验位长
        m为信息位长,m=6,根据上述关系式,解不等式可知最小k为4,即校验位为4,信息位加校验的总长度为10位。

2.推导海明码
        1)填写原始信息
        习惯上将校验位从左至右安排在1、2、4、8...的位置上,原始信息则从左至右填入剩下的位置。如下图,校验位处于B1、B2、B4、B8位,剩下位为信息位从左至右依次填写:

        2)计算校验位
        根据公式得到校验位(\oplus表示异或运算)
                P1=B3\oplus B5\oplus B7\oplus B9=1\oplus 0\oplus 1\oplus 0=0
                P2=B3\oplus B6\oplus B7\oplus B10=1\oplus 1\oplus 1\oplus 1=0
                P3=B5\oplus B6\oplus B7=0\oplus 1\oplus 1=0
                P4=B9\oplus B10=0\oplus 1=1
为什么要这么做异或?
        把除去1、2、4、8(校验位位置值)之外的3、5、6、7、9、10值转换为二进制位,如下表:

信息位 信息位编号的十进制 信息位编号的二进制
第4位 第3位 第2位 第1位
B3 3 0 0 1 1
B5 5 0 1 0 1
B6 6 0 1 1 0
B7 7 0 1 1 1
B9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值