3.3、差错检测

本文介绍了比特差错、奇偶校验、循环冗余校验(CRC)在数据传输中的作用,强调检错码与纠错码的区别,以及CRC的广泛应用。重点讲解了如何通过这些技术检测和应对传输过程中的误码,以及在计算机网络中的实际应用策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、比特差错

比特差错\color{red}比特差错

  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错: 111 可能会变成 000 ,而 000 也可能变成 111

比特流在传输过程中由于受到各种干扰,就可能会出现比特差错,或称为误码

image-20221124195854303

误码率BER\color{red}误码率 BERBER ( Bit Error Rate )

  • 在一段时间内,传输错误的比特占所传输比特总数的比率。

使用差错检测码\color{red}差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一

  • 以太网版本 222MAC 的帧尾,就是 444 字节的帧检验序列 FCS 字段,

    要写入该字段的内容,也就是检测码。

    接收方主机收到帧后,就可以判断出帧在传输过程中是否出现了误码

    image-20221124200159825

  • 点对点 PPP 帧的格式,其帧尾中也包含了一个长度为 222 字节的帧检验序列 FCS 字段

    image-20221124200253437

2、奇偶校验

奇偶校验

  • 在待发送的数据后面添加1位奇偶校验位\color{red}添加1位奇偶校验位1,使整个数据(包括所添加的校验位在内)中 "1"的个数\color{red} "1"的个数"1"为奇数(奇校验)或偶数(偶校验)。
  • 如果有奇数个位发生误码\color{red}奇数个位发生误码,则奇偶性发生变化,可以检查出误码\color{red}可以检查出误码;
  • 如果有偶数个位发生误码\color{red}偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)\color{red}不能检查出误码(漏检));

若收发双发约定采用奇校验。那么在数据后面添加的校验位应该为比特 111,使得比特 111 的总数为奇数。

  • 若产生误码用红色表示,接收方收到的比特流进行奇校验,发现比特 111 的总数为偶数而不是奇数,就知道了传输过程中发生了误码

即:采用奇校验。着比特1的数量的奇性改变,可以检查出错误。


若传输过程中产生 222 位误码,接收方收到的比特流进行奇校验,发现比特 111 的总数为奇数,就误认为传输过程中没有发生误码

即:采用奇校验,比特 111 的数量的奇性不改变。是无法检查出错误的。


偶校验同理

image-20221124201229240

3、循环冗余校验 CRC (Cyclic Redundancy Check)

  • 收发双方约定好一个生成多项式\color{red}生成多项式 G(x)G(x)G(x);
  • 发送方基于待发送的数据生成多项式计算出差错检测码(冗余码\color{red}冗余码),将其添加到待传输数据的后面一起传输;
  • 接收方通过生成多项式来计算收到的数据是否产生了误码;

发送方的处理

  • 其中余数就是被计算出的冗余码

image-20221124201717255

接收方的处理

image-20221124201752170


生成多项式举例

image-20221124201901160


image-20221124202427590


image-20221124202622457

4、说明

检错码\color{red}检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误\color{red}无法纠正错误

要想纠正传输中的差错,可以使用冗余信息更多的纠错码\color{red}纠错码进行前向纠错\color{red}前向纠错。但纠错码的开销比较大,在计算机网络中较少使用\color{red}计算机网络中较少使用使

循环冗余校验 CRC 有很好的检错能力(漏检率非常低\color{red}漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现\color{red}易于用硬件实现,因此被广泛应用于数据链路层\color{red}广泛应用于数据链路层广

在计算机网络中通常采用后续中将要讨论的检错重传方式\color{red}检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧\color{red}或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值