首页 > 其他分享 >数据链路层的检错与纠错

数据链路层的检错与纠错

时间:2024-05-30 15:46:21浏览次数:13  
标签:纠错 H3 H1 H7 校验 CRC 校验位 检错 链路层

通讯链路都不是完全理想的。比特在传输过程中可能会产生比特差错,即1可能变成0,0也可能变成1

1帧包含m个数据位(即报文)和r个冗余位(即校验位)。假设帧的总长度为n,则有 n = m + r。
包含数据和校验位的n位单元,通常称为n位码字

奇偶校验

\(\color{red}{奇偶校验只能检测出错误,而无法确定错误数据位具体是哪一位,因此无法纠错}\)
校验依据:判断传输的一组二进制数据中"1"的个数是奇数还是偶数
奇校验:如果以二进制数据中的"1"的个数是奇数为依据,则是奇校验
偶校验:如果以二进制数据中的"1"的个数是偶数为依据,则是偶校验
\(\color{green}{说明:采用何种校验必须事先规定好,通常传输的数据会专门设置一个奇偶校验位,用它来确保发送出去的二进制数据中的"1"的个数为奇数或偶数。}\)

例如:发送一组8位二进制数,假定第一位为奇偶校验位,后7位为数据位,采用奇校验
1、当发送数据是b'0000111时,发送数据中的"1"有3个,为奇数。此时校验码就为"0",实际发出的数据为b'00000111;
2、当发送数据时b'0001100时,发送数据中的"1"有2个,为偶数。此时校验码就为"1",实际发出的数据为b'10001100

海明码

海明码是一种多重奇偶检错系统,它具有检错和纠错功能。海明码中的全部传输码字是由原来的信息和附加奇偶校验位组成的。每一个这种奇偶校验位和信息为被编在传输码字的特定位置上。这种系统组合能找出错误出现的位置,无论是原有信息位还是附加校验位

海明距离:两个码字中不相同的二进制位的个数
两个码字的码距:一个编码系统中任意两个合法编码(码字)之间不同的二进制数位数
编码系统的码距:整个编码系统中任意两个码字的码距的最小值
误码率:传输错误的比特占所传输比特总数的比率

海明码的编码方式

比如:假设需要传输的数据码是"1100"
1、根据公式:计算k = 3,即需要3个校验位

\[2^k >= m + k + 1 \]

m为信息位,k为校验位
2、校验位按照2^i,即2的次幂,如,1,2,4,8,16,32...留出来,一会填检验码

H7 H6 H5 H4 H3 H2 H1
1 1 0 0

3、需要确认H1、H2、H4这三个校验位都来校验那些2位置
4、将1、2、4的二进制码写出来,最高位补到3位,前面算的k = 3

1 2 4
001 010 100

5、将0替换为*,作为通配符表,如下

1 2 4
**1 *1* 1**

5、将1-7的二进制列出来

1 2 3 4 5 6 7
001 010 011 100 101 110 111

6、将这几个数与上面的通配符表进行匹配(把有与通配表1相同位置的数放一列)

1 2 4
**1 *1* 1**
001(1) 010(2) 100(4)
011(3) 011(3) 101(5)
101(5) 110(6) 110(6)
111(7) 111(7) 111(7)

7、因此我们可以确定:
H1负责H1、H3、H5、H7的校验
H2负责H2、H3、H6、H7的校验
H3负责H4、H5、H6、H7的校验

H7 H6 H5 H4 H3 H2 H1
1 1 0 0

7、用偶校验法,求出校验位是"1"还是"0"
H3、H5、H7的"1"的个数为奇数,因此H1=1
H3、H6、H7的"1"的个数为偶数,因此H2=0
H5、H6、H7的"1"的个数为偶数,因此H3=0
8、至此我们得出了完整的海明码

H7 H6 H5 H4 H3 H2 H1
1 1 0 \(\color{red}{0}\) 0 \(\color{red}{0}\) \(\color{red}{1}\)

9、查错(|表示按位异或)
第一组p1 = H1 | H3 | H5 | H7
第二组p2 = H2 | H3 | H6 | H7
第三组P3 = H4 | H5 | H6 | H7
10、画图
image
1)如果编码完全正确,那么p1、p2、p3的结果都是0
2)如果p1=1,p2=0,p3=0,则说明p2和p3组的成员2、3、4、5、6、7都没出错,则H1错误
3)以此类推

CRC编码

CRC编码,是指循环冗余码校验,它是利用除法及余数的原理来作错误侦测(Error Detecting)的。

它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。

生成CRC校验码

例如:假设原始信息串为"10110",CRC的生成多项式为

\[G(x) = x^4 + x + 1 \]

求CRC校验码
1、因多项式最高次幂为4,所以CRC校验码为4位
2、在原始信息后"添0",即:10110\(\color{red}{0000}\)
3、计算生成多项式

\[G(x) = x^4 + x + 1 = 1*x^4 + 0*X^3 + 0*x^2 + 1*x^1 + 1*x^0 = 10011 \]

4、使用生成多项式除。利用模2除法。
image
得到余数"1111"。
\(\color{red}{注意:余数如果不足4位,则余数左边用若干个0补齐。如求得余数位"11",检验位为"4",则补2个0得到"0011"}\)
5、将余数添加到原始信息后
上例中,原始信息为"10110",添加余数"1111"后,结果为"101101111"

CRC校验

CRC校验过程与生成过程类似,接收方收了带校验码和的帧后,用多项式G(x)来除。余数为0,则表示信息无错;否则要求发送方进行重传

标签:纠错,H3,H1,H7,校验,CRC,校验位,检错,链路层
From: https://www.cnblogs.com/hongliang888/p/18221957

相关文章

  • 划重点来了,计算机组成原理之计算机存储介绍与汉明码纠错
    存储器 1.分类(1)按存储介质分类:存储介质是能寄存”0“或"1"两种代码的物质或元器件。包括半导体器件,磁性材料,光盘等。半导体存储器:半导体器件组成的存储器。断电后数据会丢失,易失性存储器。磁表面存储器:在金属或塑料基体的表面涂的一层磁性材料。按载磁体形状不同,分为......
  • 《计算机网络微课堂》第三章 链路层
    3.1:概述---本节课我们对数据链路层进行概述,我们首先来看看数据链路层在网络体系结构中的地位。如图所示主机H1给主机H2发送数据,中间要经过三个路由器和电话网、局域网以及广域网等多种网络。​​从五层协议原理体系结构的角度来看,主机应具有体系结构中的各个层次,而路由器......
  • 关于国内外语法纠错的研究(三)-方法篇(一)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、分类器1基本原理2方式3现状二、机器翻译1SMT2NMT总结前言在上文提到目前国际上比较著名的几个数据集,在本文将讨论目前在GEC领域存在的几种方法,包括分类器(统计和神经)、机器翻......
  • C练习--补充或纠错代码
    数据结构回顾--树1.阅读以下说明和C代码,直接把答案填入空格中。本函数的功能是删除二叉查找树中的一个结点将要删除的结点可能有以下三种情况。情况①是删除叶子结点。情况②是删除只有1个子结点的结点。情况③是删除有左右子树的结点。intDeleteNode(Bitree*r,inte){......
  • 数据链路层
    计算机导论之数据链路层数据链路层在计算机网络中起着关键作用。在设计数据链路层时,需要考虑诸多问题,如如何实现可靠的数据传输、如何处理流量控制等。基本数据链路协议如PPP协议等,规定了数据帧的格式和传输方式。为了确保数据的准确性,数据链路层采用了检测与纠错技术,如奇偶......
  • Dell R720 内存纠错比率超限 更换内存引起的故障
    DellR720内存纠错比率超限更换内存引起的故障2019年12月18日 8823点热度 27人点赞 0条评论0x01前言服务器里有一根内存出现异常,在除错的过程中我详细了解R720的内存配置。我在这里将除错过程和基本配置信息记录下来。0x02错误在上周,我发现服务器后部的状态灯不再......
  • CANXL标准发布 | (1)一文读懂CANXL数据链路层总线,通信再进化!
        2024年3月22日,期待已久的ISO11898-2:2024版本横空出世,标志着新一代CAN总线的时代即将到来(ISO/FDIS11898-1:2023也处于最终投票阶段)。搭载着2048Byte的CANXL列车已蓄势待发,决心突破10M的高速通道。Autosar、英飞凌、ST、Vector和NXP等行业风向标早已准备迎接CANXL高速通......
  • 数据链路层
    数据链路层文章目录数据链路层数据链路层基础概论数据链路层概念帧的概念以太网数据帧中的MAC和LLC数据链路层的两种传输方式数据链路层的三个基本问题局域网中的设备数据链路层的通信协议冲突域和广播域虚拟局域网VLANCSMA/CDPPPCRC重点数据链路层基础概论数据......
  • 【计算机网络篇】数据链路层(4.2)可靠传输的实现机制
    文章目录......
  • 【网络】:数据链路层
    数据链路层一.以太网帧格式二.认识MTU三.ARP协议1.ARP协议的工作流程2.ARP数据报的格式3.ARP欺骗四.其他重要协议或技术1.DNS2.ICMP协议3.NAT技术(重点)4.代理服务器五.一些问题认识以太网“以太网”不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内......