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

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

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

奇偶校验法是通过在信息位的首部添加校验位来实现,分为奇数校验法和偶数校验法。由于偶数校验法更适合通过异或(模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个位置同时跳变了,是可以知道数据中存在错误的,但是不知道到底是哪两个位置出现了错误,这就叫做可以进行两个位置的检错,但是无法进行纠错。此时需要重传数据。

相关推荐
白中白121383 天前
计算机网络系列-1
计算机网络
G皮T4 天前
【计算机网络】网络时间协议 NTP(二):X-Request-Start
网络·计算机网络·时钟同步·ntp·网络时间协议
G皮T4 天前
【计算机网络】网络时间协议 NTP(一)
网络·计算机网络·时钟同步·ntp·网络时间协议
大地的一角5 天前
(计算机网络)网络基础
计算机网络
tobias.b5 天前
408真题解析-2010-40-计算机网络-域名解析
网络·计算机网络·计算机考研·408真题解析
EmmaXLZHONG6 天前
分布式系统概念与设计笔记(Notes of Distributed Systems Concepts and Design)
笔记·分布式·网络协议·计算机网络
林姜泽樾6 天前
linux基础第一章,linux的介绍和它和windows的区别
linux·运维·计算机网络·安全·网络安全
wangjialelele6 天前
万字整理计算机网络知识点
linux·c语言·网络·c++·计算机网络·php
REDcker7 天前
FTP协议原理及应用精解
linux·后端·计算机网络·互联网·ftp·服务端开发
8125035337 天前
DNS监控:生产实践
linux·网络·网络协议·tcp/ip·计算机网络