错误检测

网络必须能将数据准确无误地从一个设备传输到另一个设备,但是由于线路噪声在内的多种因素可能使数据在传输中被破坏。对于可靠性传输来说,必须进行错误检测和纠正。

错位检测位置

在OSI模型中,错误检测和纠正机制要么在数据链路层实现,要么在传输层实现。

数据传输错误类型

在数据传输中,一般会产生三种类型的错误:

  • 单比特错误:在数据单元中只有一个比特发生了改变。
  • 多比特错误:在数据单元中有两个或两个以上的不连续比特发生了改变。
  • 突发错误:在数据单元中有两个或两个以上连续的比特发生了改变。

其中,单比特错误最容易发生而突发错误比较不容易发生。

错误检测技术

在数据传输中,错误检测采用了冗余技术,就是在信息中加上附加比特以便于接收端进行错误检测。

在数据通信中采用四种类型的冗余校验技术:

  • 垂直冗余校验(VRC),也称为奇偶校验
  • 纵向冗余校验(LRC)
  • 循环冗余校验(CRC)
  • 校验和

其中,前三种技术是在物理层实现而被数据链路层使用的;第四种技术主要由网络层或国际互联网所使用;而在传输层实现的。

垂直冗余校验

在垂直冗余校验(VRC)中,在每一个数据单元上都增加一个 校验位,从而使得1的总数(包括校验位)对于偶校验来说是偶数, 或对于奇校验来说是奇数。

垂直冗余校验(VRC)可以检测所有的单比特错误。只有当发 生错误的比特个数为奇数个时,它才能检测出多比特和突发错误。
在这里插入图片描述

纵向冗余校验

纵向冗余校验(LRC)是在两维上的垂直冗余校验(VRC)。 它在若干个数据单元后增加了一个冗余单元,冗余单元内的各比特 位是从采用VRC校验的数据单元的各对应位计算得来的。

纵向冗余校验(LRC)对于所有在偶数个数据单元的偶数个相 同位置发生错误的情况不能检测外,其它的错误都能检测出来

循环冗余校验

循环冗余校验(CRC)是最有效的一种冗余校验技术。它基于 二进制除法来实现。

通过在数据单元末尾附加一串冗余比特,称作循环冗余码或循 环冗余校验余数,使得整个数据单元可以被另一个预定的二进制数 所整除。在接收端,用同一个数去除输入的数据单元,如果能整除 ,就认为没有错误发生,否则拒绝该数据单元。
在这里插入图片描述

  1. 循环冗余码(CRC)生成器:
    具有以下两个特性的CRC码才是合法的:必须比除数至少少一位; 在附加到数据串末尾后必须形成可以被除数所整除的比特序列。
    在这里插入图片描述
  2. CRC生成多项式:
    循环冗余校验(CRC)生成器(除数)通常不是由一串0或1来代 表的,而是用一个代数多项式代表。
    在这里插入图片描述

校验和技术

校验和是在高层写一种使用的错误检测技术。
在发送方,校验和生成器将数据单元细分成大小为n(通常是 16)比特的几段。这些分段采用反码加法算法加在一起,使得整个 结果仍然是n比特长。该总和(校验和)随后取反并当作冗余位加 在原始数据单元的末尾,称作校验和域。

在接收方,校验和校验器采用同样的方法分段并相加(包括校 验和域在内),结果为全1时表示没有错误发生。
在这里插入图片描述
可靠性:
校验和检测所有涉及奇数个比特的错误,以及大多数涉及偶数个比特的错误。但是,如果在某一段中的一个或多个比特被破坏,并且在下一个分段中具有相反值的对应为也被破坏,这些列的和将不变因此不能被接收方检测出错误。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值