差错控制

  • 思维导图:
  • 什么是差错:
  • 位错:
  • 位错之检错编码:奇偶校验码
  • 位错之检错编码:循环冗余码
  • 位错之纠错编码:海明校验码

思维导图:

什么是差错:

产生差错的原因主要是噪声;噪声分为全局性噪声和局部性噪声
差错分为俩类:位错和帧错
帧错分为三种:丢失、重复、失序

位错:

位错就是传输数时某一位或某几位二进制位发生错误;是从比特的角度来看的

位错之检错编码:奇偶校验码

奇偶校验码:就是在数据上添加一位校验位,以此来判断数据是否出错
但是奇偶校验码只能有奇数位错误时才能检验出来,所以检错能力只有50%
举个例子:
1110和1101都采用奇校验是无法查出错误的(出现了偶数位错误)(第一位为校验位),发送了1110,接收了1101,但是奇校验依旧成立。所以上图的答案是D。

位错之检错编码:循环冗余码

就是用要发送的数据除以(模2除法)生成多项式得到一个帧检验序列,发送给接收方的就是数据+帧检验序列;接受方再用数据+帧检验序列 除以相同的生成多项式,若余数为0,则数据传输中未发生差错,反之,出现差错。

CRC校验并不能达到可靠传输
我们现在普遍认为:凡是接收端数据链路层接收的帧均无差错,但是这是一种不太准确的描述
准确的来说:我们都能以非常接近1的概率认为这些帧在传输过程中无差错

位错之纠错编码:海明校验码

第一步: 确定校验码的位数r

根据海明不等式求出r的值

第二步: 确定校验码和数据的位置关系

把求出的校验位放到相应的位置上,这些位置一般都放在2的次幂位置上,即1,2,4,8,16…,当最后一位校验位超出校验位+数据位的长度时,直接补到最后一位上即可;

第三步: 求校验码的值

每一个校验位用二进制表示时都有一位为1,那么这个校验位校验的就这位为1的所有数据位;例如:p1的二进制表示为0001,那么他就会校验最后一位为1的数据,即:D1、D2、D4、D5 这几位。
知道了校验位可以校验的位之后令这几位与P1异或为0,就可以求出P1的值,例如:P1 异或D1异或D2异或D4异或D5 = 0,求P1 即可
然后分别求出P2P3P4

第四步: 检错和纠错

校验时,再次用校验位和其可以校验的位异或最终结果为0则无错,反之有错;例如:
上图中D2 出错后
P1 异或 D1 异或 D2 异或 D4 异或 D5 = 1
P2 异或 D1 异或 D3 异或 D4 异或 D6 = 0
P3 异或 D2 异或 D3 异或 D4 =1
P4 异或 D5 异或 D6 =0
所以在0101位出错,即第5位出错
然后纠正即可,1是错的改成0就是纠正了

计算机网络之数据链路层:3、差错控制(奇偶校验、CRC冗余校验、海明校验)相关推荐

  1. 【计算机网络】数据链路层的差错控制 - 循环冗余校验(CRC)

    文章目录 一.为什么引入循环冗余校验CRC - 数据链路层的差错控制机制 二.CRC的原理 参考链接 一.为什么引入循环冗余校验CRC - 数据链路层的差错控制机制 我们都知道,物理层在链路上传输位流 ...

  2. 计算机组成原理数据校验之奇偶校验,海明校验

    文章内容基于:计算机组成原理_华中科技大学_中国大学MOOC(慕课) (icourse163.org) 仅作为日常学习的笔记整理 目录 一. 数据校验的基本原理 1.数据校验的必要性 2.数据校验的基 ...

  3. 【计算机网络】数据链路层 : 差错控制 ( 检错编码 | 差错来源 | 差错分类 | 冗余编码 )

    文章目录 一. 差错来源 二. 差错分类 三. 差错控制 四. "物理层" 编码 与 "数据链路层" 编码 对比 五. 冗余编码 一. 差错来源 "差 ...

  4. 3.1.1计算机网络(数据链路层 差错控制 循环冗余码 海明码 流量控制)

    目录 数据链路层 数据链路层基本概念 数据链路层功能概述 封装成帧 透明传输 组帧的四种方法: 1.字符计数法 ​2.字符填充法 ​3.零比特填充法 4.违规编码法 差错控制 差错从何而来? 数据链路 ...

  5. 数据链路层的检错技术——循环冗余校验CRC(Cyclic Redundancy Check)

    数据链路层的循环冗余校验CRC(Cyclic Redundancy Check) 简介 背景 原理(以CRC-16/XMODEM为例) 应用场景 CRC各版本及反转.初始值含义详解 计算过程 计算过程 ...

  6. 【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★

    文章目录 一.数据链路层 功能 二.封装成帧 ★ 三.流量控制 和 可靠传输 ★★ 1.停止等待协议 ★ 2.后退 N 帧 ( GBN ) 协议 ★ 3.选择重传 ( SR ) 协议 ★ 四.差错控制 ...

  7. 【计算机网络复习 数据链路层】3.3.1 差错控制(检错编码)

    差错控制(检错编码) 一.差错从何而来? 二.数据链路层的差错控制 2.1 奇偶校验码 2.2 CRC循环冗余码 一.差错从何而来? 概括来说,传输中的差错都是由于噪声引起的. 全局性:由于线路本身电 ...

  8. 校验码(海明校验,CRC冗余校验,奇偶校验)

    循环冗余校验码 CRC码利用生成多项式为k个数据位产生r个校验位进行编码,其编码长度为n=k+r所以又称 (n,k)码. CRC码广泛应用于数据通信领域和磁介质存储系统中. CRC理论非常复杂,一般书 ...

  9. 数据链路层之差错控制(检错编码和纠错编码)-(奇偶校验码、CRC循环冗余码、海明码)...

    思维导图 为什么会出现差错? 检验和纠正差错的编码方法 关于数据链路层和物理层的编码区别 冗余编码 检错编码 关于检验码和纠错码中的奇偶校验码.循环冗余码(CRC).海明码可参考我之前写的:校验码(一 ...

最新文章

  1. 判断数组元素相等 php,php中判断数组相等的方法以及数组运算符介绍
  2. 李德毅院士:希望智能驾驶成为我国继高铁之后又一张新名片
  3. Linux NAPI/非NAPI
  4. GIS数据的查找,插入,删除,更新(ArcEngine)
  5. 微软亚洲研究院谭旭:AI音乐,技术与艺术的碰撞
  6. 1017: 成绩大排队
  7. Openjudge NOI题库 ch0111/04 网线管理
  8. 人工智能、机器学习、深度学习和神经网络的区别
  9. Hive之函数与自定义函数
  10. 美国富人如何“逃税”?
  11. 成功的人都很会控制自己的情绪
  12. 使用Mac电脑内置的屏幕共享功能,进行远程桌面管理
  13. python web改为java_Python是否可以成为Web应用程序的良好替代方案,否则将在Java EE中完成?...
  14. Pycharm 主题字体推荐(亮色)
  15. 菜鸟入门:电脑常用的9个小知识点
  16. 什么是servlet技术?如何部署和新建一个servlet?
  17. 经典再现,看到就是赚到。尚硅谷雷神 - SpringBoot 2.x 学习笔记 - 核心功能篇
  18. 今天在网上找QQ头像,找到两个字,太强了,一个我老婆的名字,另一个.....用了肯定有人打我脸
  19. 72名图灵奖获得者的成就
  20. JAVA 消息队列的使用场景

热门文章

  1. apscheduler 脚本执行失败_在脚本中使用 Bash 信号捕获 | Linux 中国
  2. RandomizedLogisticRegression ImportError解决思路参考
  3. Adobe illustrator 直接选择工具删除白板 - 连载 6
  4. 谈谈数次生信线下活动的收获和体会
  5. Mac远程控制软件哪款好用?Remote Desktop manager for mac「专业」
  6. STM32+CubeMX开发工程笔记汇总(更新2021.8.12)
  7. swing中怎么在原来图片的基础上切换第二张图片_摄影比赛原来是这么评出来的!照片点评与修图小赛第10期...
  8. HBase详细的安装和使用方法
  9. Qt文档阅读笔记-Simple Anchor Layout Example解析
  10. Java工作笔记-注解的进一步理解