数据链路层差错控制的三种方法

今天学习了数据链路层差错控制的三种方法,分别是:

奇偶校验法、循环冗余校验法和海明校验法。

奇偶校验法是通过在信息位的首部添加校验位来实现,分为奇数校验法和偶数校验法。由于偶数校验法更适合通过异或(模2加)的方法实现,故现实中经常采用偶数校验法,即将信息位中的1和校验位的bit一起进行异或运算,如果异或结果为0,则说明总共有偶数个1,否则有奇数个1(错误)。但是如果同时存在两个位置的跳变,则偶数校验法无法检测出。

循环冗余校验法,就是设定一个生成多项式,例如 x 3 + x 2 + 1 x^3+x^2+1 x3+x2+1, 多项式的系数对应1101, 这个多项式为除数。然后在信息位的尾部添加多项式的次数(例子中为3)个bit位。如何确定这3个bit位呢?首先在信息位的末端填上3个0,然后开始进行模2除运算。最后的余数就是这3个校验位的bit. (不说多了,先记这么一点)

最后最厉害的是海明的海明校验法,海明因此发明创造获得了1986年的图灵奖。海明校验法是在奇偶校验发的基础上进一步改进,通过设置多个奇偶校验位,并且每一个校验位放的位置也不是规规矩矩地就放在信息位的首部,而是按照 2 i − 1 2^{i-1} 2i−1的方式来确定位置。例如设置3个校验位 P 1 P 2 P 3 P_1P_2P_3 P1P2P3, 这3个校验码在最终的信息码和校验码混合的整体bitc串中的位置分别是第1位,第2为,第4位。然后每一个校验码负责几个信息位的校验。假如原始信息码为 D 1 D 2 D 3 D 4 D_1D_2D_3D_4 D1D2D3D4, 如何对原始信息码进行分组呢?看下他们在最终bit串中的位置: P 1 P 2 D 1 P 3 D 2 D 3 D 4 P1P2D1P3D2D3D4 P1P2D1P3D2D3D4, D1 D2 D3 D4现在的位置分别是3、5、6、7, 转换成二进制分别是011,101,110,111。

则P1负责第1位为1的信息码:分别是D1,D2,D4;

P2负责第2位为1的信息码:D1,D3,D4,

P3 负责第3位为1的信息码 :D2,D3,D4.

这刚好对应:P3所在的位置刚好是4, 刚好对应最高位(第3位,2^2 = 4)

P2所在的位置刚好是2, 刚好对应第2位(第2位,2^1 = 2)

P1所在的位置刚好是1, 刚好对应第1位(第1位,2^0 = 1)

如果只出现了某一个位置的跳变,则可以定位出跳变的bit,并进行纠错。

但是如果两个位置同时跳变,会出现两个异或结果为1的情况,但是却不知道哪个位置出现了错误。所以海明校验法无法处理两个位置同时跳变的纠错。

学了这么多,只需要知道数据链路层进行差错控制有3种方法:分别是奇偶校验法、循环冗余校验法和海明校验法。海明校验法可以进行1位的纠错,无法进行2位的纠错,可以进行2位的检错。如果2个位置同时跳变了,是可以知道数据中存在错误的,但是不知道到底是哪两个位置出现了错误,这就叫做可以进行两个位置的检错,但是无法进行纠错。此时需要重传数据。

相关推荐
DARLING Zero two♡16 小时前
【计算机网络】简学深悟启示录:http
网络协议·计算机网络·http
梁辰兴19 小时前
计算机网络基础:传输控制协议 TCP
tcp/ip·计算机网络·计算机·tcp·计算机网络基础·梁辰兴·传输控制协议
小李独爱秋1 天前
计算机网络经典问题透视:手机通过Wi-Fi接入到互联网是没有流量因而是免费的吗?
服务器·计算机网络·智能手机·信息与通信·无线网络
今儿敲了吗1 天前
计算机网络第四章笔记(四)
笔记·计算机网络
charlotte102410241 天前
计算机网络体系结构:从0到1帮你理解计算机网络体系结构!
计算机网络
junnhwan2 天前
【计算机网络-CS168-textbook阅读笔记】传输层原理与TCP设计
笔记·计算机网络·tcp·cs168
梁辰兴2 天前
计算机网络基础:用户数据报协议 UDP
网络·网络协议·计算机网络·udp·用户数据报协议·计算机网络基础·梁辰兴
醒醒酒2 天前
sqli-labs Less1-4 新手修仙版
数据库·计算机网络·安全·web安全·网络安全·oracle
今儿敲了吗2 天前
计算机网络第四章笔记(三)
笔记·计算机网络