数据帧的差错检验

文章介绍了数据帧在传输过程中用于检查错误的几种方法,包括奇偶校验(奇校验和偶校验),这种简单但只能检测奇数位误码的方法;16位校验和,通过二进制补码求和运算实现错误检测;以及循环冗余校验(CRC),利用模二除法产生校验码,提供更可靠的错误检测。CRC使用预定的除数,并且在接收端进行验证,当余数为0时认为无差错。
摘要由CSDN通过智能技术生成

数据帧的差错检验

  • 奇偶校验:1位奇偶校验是最简单、最基础的校验码
  • 简单校验和:主要用于 TCP/IP体系中的网络层和传输层
  • 循环冗余校验(CRC):数据链路广泛使用的校验方法
奇偶校验

奇校验码:增加一比特位校验位,使得数据+校验位中‘1’的个数为奇数。
偶校验码:增加一比特位校验位,使得数据+校验位中‘1’的个数为偶数。

例如::
1011010 1 奇校验
1011010 0 偶校验

但是奇偶校验只能检验出奇数位误码

例如:利用奇校验
发送方: 1011010 1
接收方:1001110 1
接收方检查,仍然是奇数位个‘1’,没有检出错误

其次,奇偶校验不能纠错,发现错误后,只能重发。

简单校验和

TCP/IP体系主要校验方法
16位校验和:
发送方:将32位的数据分两部分,进行16位二进制补码求和运算,结果取反,随数据一同发送
接收方:进行16位二进制补码求和运算(包括校验和),结果全为1,则未检测到错误。

例如:
1110 0110 0110 0110
1101 0101 0101 0101
——————————
1 1011 1011 1011 1011
—————————— 多于16位,继续求和
1011 1011 1011 1100
0100 0100 0100 0011 取反
所以校验和为0100 0100 0100 0011

发送方将数据以及校验和发送,接收方将两者进行16位二进制补码求和运算

例如:
1110 0110 0110 0110
+1101 0101 0101 0101
——————————
1 1011 1011 1011 1011
——————————
1011 1011 1011 1100
+0100 0100 0100 0011
——————————
1111 1111 1111 1111
没有错误

到这里很明白了,校验和为数据二进制补码求和运算后的反码,一个数与自己反码的求和运算为全1。

循环冗余校验:CRC

假设CRC校验码为:m比特位

发送方:将要发送的数据作为被除数(左移m位,或补m个0),选择一个预定的二进制数( m+1位)作为除数;利用二进制模二除法运算,计算得到一个余数,作为CRC校验码,随数据帧发送给接收方。

接收方: 以发送方发送的数据-CRC校验码为被除数,选同样的预定的二进制码为除数,如果余数为0,表明没有差错(接近概率1),否则证明发生差错。

预定的二进制数(除数)
标准的国际编码,用户不能随意规定
在这里插入图片描述

实例
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_wow_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值