【计算机网络】第三章——差错检测

个人主页:兜里有颗棉花糖

欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创

收录于专栏【计算机网络

本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌

目录

一、比特差错

比特差错:

如下图所示,比特流在传输过程中由于受到各种干扰,就可能出现比特差错(或误码)。

误码率:

比特在传输过程中由于误码出现了错误,那么接收方的数据链路层通过什么方法可以知道比特出现了错误呢?我们可以使用差错检错码来对比特进行检查。

差错检测码:

我们拿以太网版本2的MAC帧格式来进行举例:帧尾中包含了一个长度为4字节的帧检测序列FCS字段(其作用就是让接收方的数据链路层检查帧在传输过程中出现了误码)

我们再拿点对点协议PPP帧的格式:帧尾中也包含了两字节的帧检测序列FSC片段(其作用也是接收方的数据链路层检查帧在传输过程中出现了误码)。

二、奇偶校验

奇偶校验:

我们依然进行举例说明:

  • 下面是一个待发送的数据,假设收发双方采用奇校验,那么在数据后面添加的校验位应该为比特1,使得比特1的总数为奇数,假设传输过程中产生了1为误码,我们用红色表示。接收方对受到的比特流进行奇校验,发现比特1的总数为偶数而不是奇数,因此就知道传输过程中发生了误码。所以,采用奇校验的话,如果比特1的数目的奇性发生改变的话,此时可以检测出错误。
  • 但是如果传输过程中产生了两位误码,接收方对受到的比特流进行奇校验,发现比特1的总数为奇数,此时就认为比特流传输过程中没有发生误码。所以,采用奇校验,如果比特1的奇性不改变,此时就无法检测出错误。
  • 现在我们假设收发双方规定使用偶校验,那么在数据后面添加的校验位应该为比特0,使得比特1的总数为偶数。假设比特流传输过程中产生了一位误码,接收方对受到的比特流进行偶校验,发现比特1的总数是奇数而不是偶数,就知道比特流传输过程中发生了误码。所以,采用偶校验的话,如果比特1的数量的偶性发生改变的话,此时可以检查出错误。但是如果比特流传输过程中产生了2位误码,接收方对接收到的比特流进行偶校验,发现比特1的总数位偶数,此时就会误认为没有发生误码。因此采用偶校验,如果比特1的数量的偶性如果不改变的话,此时就检查不出错误。

现在对上述过程进行总结:

  • 如果有奇数个位发生误码,奇偶性发生变化,可以检查出错误
  • 如果有偶数个位发生误码,奇偶性不发生变化,不能检查出错误(漏检)(因为每个误码会对比特1的数量的奇偶性产生影响,影响相互抵消,此时就无法检查出错误)。

由于奇偶性的漏检率比较高,因此一般不会采用这种检测方法(检测比特流在传输过程中是否发生误码)。

下面我们来看循环冗余检验------CRC(Cyclic Redundancy Check

三、循环冗余检验------CRC(Cyclic Redundancy Check)重点

CRC是一种检测能力很强的一种检测方法,漏检率极低。

下图是循环冗余检验的过程:

  • 现在来看发送方的操作:使用除法来计算冗余码,待发送的数据作为被除数的一部分,后面添加生成多项式最高次个0以构成被除数;生成多项式各项系数构成的比特串作为除数。然后进行除法从而得到商和余数。余数就是计算出的冗余码,将其添加到待发送的数据后面一起发送过程如下图:
  • 现在来看接收方的操作,依然是做除法;被除数是接收到的数据;除数仍然是生成多项式各项系数构成的构成的比特串;然后进行除法得到商和余数。如果余数为0,则可以判定比特流传输过程中没有产生误码,否则则可以判定产生了误码。过程如下图:

生成多项式

现在我们对生成多项式进行举例说明:

下图是常用到的生成多项式:

使用这些生成多项式进行CRC校验,可以达到较好的检测效果(即漏检率比较低)。

注意:CRC算法要求生成多项式必须包含最低次项

练习1

将余数添加到待发送数据的后面就可以发送了。

练习2

四、总结

本文到这里就结束了,希望友友们可以支持一下一键三连哈。嗯,就到这里吧,再见啦!!!

相关推荐
啊阿狸不会拉杆20 小时前
《计算机网络-自顶向下方法》5.4 ISP之间的路由选择:BGP 读书笔记
网络·计算机网络·接口隔离原则
毕竟是shy哥21 小时前
vs code连接远程服务器docker环境及配置免密登录
服务器·docker·vs code
徐小黑ACG21 小时前
nginx配置文件
linux·服务器·nginx
新时代牛马1 天前
Linux VFS 完整篇:从path_openat、dentry/inode 到page cache 与挂载排障
linux·运维·服务器
Delite8021 天前
摆脱实验室束缚:便携式卡尔费休微量水分检测技术与现场应用解析
大数据·网络·人工智能
啊阿狸不会拉杆1 天前
《计算机网络-自顶向下方法》4.6 小结、课后习题与Wireshark实验 读书笔记
计算机网络·wireshark·智能路由器
ACP广源盛139246256731 天前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
ACP广源盛139246256731 天前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
我爱cope1 天前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
新时代牛马1 天前
Linux 驱动中断与定时完整篇:从 request_threaded_irq 到hrtimer 选型与排障
linux·运维·服务器