文章目录

  • 一、 奇偶校验码
  • 二、 奇偶校验码 特点
  • 三、 奇偶校验码 示例
  • 四、 CRC 循环冗余码 ( 原理说明 )
  • 五、 CRC 循环冗余码 计算示例
  • 六、 CRC 循环冗余码 生成多项式

一、 奇偶校验码


奇偶校验码 组成 :

① 信息元 : n−1n-1n−1 位 ; 要发送的有效数据 ;

② 校验元 : 111 位 ; 冗余码 ;

③ 奇校验码 : 111 的个数为 奇数 ; 冗余位 111 ;

④ 偶校验码 : 111 的个数为偶数 ; 冗余位 000 ;

二、 奇偶校验码 特点


奇偶校验码 特点 : 该编码方法 , 只能检查 奇数个 比特错误 , 如果有 偶数个比特错误 , 无法检查出来 , 检错率是 50%50\%50% ;

三、 奇偶校验码 示例


奇偶校验码 示例 :

传输 字符 ‘S’ 的 ASCII 码 110010111001011100101 , 使用 奇校验码 , 在 数据前 添加 111 位 冗余位 111 , 表明 111 的个数为奇数 , 上述数据的 111 的个数为 555 个 , 是奇数个 ;

奇数个错误 : 如果接受到的数据中 111 的个数是 偶数个 , 此时就能检测出数据错误 ;

偶数个错误 : 如果接收到的数据中 111 的个数为 奇数个 , 那么就会判断接收的数据是正确的 ; 无法检查出 偶数个错误 ;

四、 CRC 循环冗余码 ( 原理说明 )


发送端 :

① 要传输的数据 : 555 ;

② 生成多项式 : 222 ;

③ 计算冗余码 : 使用 要传输的数据生成多项式=52\cfrac{要传输的数据}{生成多项式} = \cfrac{5}{2}生成多项式要传输的数据​=25​ , 商是 222 , 余数是 111 ;

④ 冗余码 : 余数 111 就是 FCS 帧检验序列 , 也就是 冗余码 ;

⑤ 最终发送的数据 : 5+1=65 + 1 = 65+1=6

接收端 :

① 接收到的数据 : 666 ;

② 生成多项式 : 222 ;

③ 判定差错 : 计算 接收到的数据生成多项式\cfrac{接收到的数据}{生成多项式}生成多项式接收到的数据​ 余数是否为 000 , 如果余数为 000 , 说明传输过程中没有错误 ;

数据链路层 使用 CRC 循环冗余校验编码 , 进行差错控制 , 只能做到无差错接收 , 凡是接收到的数据帧 , 都是正确的 ;

五、 CRC 循环冗余码 计算示例


发送数据 11010110111101 0110 111101011011 , 使用 CRC 循环冗余码 , 生成多项式是 100111001110011 , 求最终的发送数据 ???

最终发送的数据组成 : 原始数据 11010110111101 0110 111101011011 + 帧检验序列 FCS ;

计算 帧检验序列 FCS :

① 数据加 冗余码 位数个 000 : 首先确定 冗余码 位数 , 冗余码的位数是 生成多项式的 阶 , 即 生成多项式 100111001110011 的 总位数 减去 111 , 相当于 离散数学 中的生成函数的 最高位次幂 ; FCS 的位数是 444 位 ;

生成多项式 是 NNN 位 , 那么阶 就是 N−1N-1N−1 位 , FCS 帧检验序列就是 N−1N-1N−1 位 ;

数据加 444 个 000 后为 110101101100001101 0110 11 000011010110110000

② 模 222 除法 : 数据 加上 000 后 , 除以 生成多项式 , 余数就是 FCS 帧检验序列 ;

二进制除法 , 与十进制除法不同的是 , 每个除法相除的计算是 异或操作 ;

异或运算 : 同 000 , 异 111 ;


模 222 除法计算过程分析 :

  • 110101101011010 异或 100111001110011 计算得到 100110011001 , 然后下一位 111 落下来 , 得到 100111001110011 ;
  • 100111001110011 异或 100111001110011 计算得到 000000000000000 , 然后下面 555 位 落下来 , 得到 101101011010110 ;
  • 101101011010110 异或 100111001110011 计算得到 101101101 , 然后下 222 位落下来 , 得到 101001010010100 ;
  • 101001010010100 异或 100111001110011 计算得到 111011101110

最终计算出来的 帧检验序列 是 111011101110 ;

最终发送的数据是 : 11010110111101 0110 111101011011 111011101110

接收端接收数据并校验 :

① 检验过程 : 接收端接收 上述 11010110111101 0110 111101011011 111011101110 数据 , 将上述数据 与 生成多项式 100111001110011 相除 , 如果余数为 000 说明该数据帧没有差错 ;

② 结果判定 : 如果余数不为 000 , 说明数据帧错误 , 而且不知道哪里出现错误 , 丢弃该数据帧 , 重新发送 ;

六、 CRC 循环冗余码 生成多项式


生成多项式 : G(x)=x3+x2+1G(x) = x^3 + x^2 + 1G(x)=x3+x2+1

相当于 : G(x)=x3+x2+0x1+x0G(x) = x^3 + x^2 + 0x^1 + x^0G(x)=x3+x2+0x1+x0

对应的模二运算的除数 : 110111011101 ;

  • xxx 的 000 次幂系数为 111 , 对应第 000 位 为 111 ;
  • xxx 的 111 次幂系数为 000 , 对应第 111 位 为 000 ;
  • xxx 的 222 次幂系数为 111 , 对应第 222 位 为 111 ;
  • xxx 的 333 次幂系数为 111 , 对应第 333 位 为 111 ;

生成多项式对应的 二进制数 , 总位数是最高次幂加一 , 每一位是对应位前的系数 000 或 111 ;

【计算机网络】数据链路层 : 差错控制 ( 检错编码 | 奇偶校验码 | CRC 循环冗余码 )★相关推荐

  1. 数据链路层 功能 封装成帧 透明传输 字符计数法 字符填充法 零比特填充法 违规编码法 传输中的差错 差错控制 冗余编码 奇偶校验码 CRC循环冗余码 检错过程 细解 图解 通俗易懂

    粉丝不过W 数据链路层: 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质:双绞线.光纤和微波,分为有线链路.无线链路 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输 ...

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

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

  3. 3.3.1 差错控制(检错编码)

    目录 差错从何而来? 检错编码--奇偶校验码 检错编码--CRC循环冗余码 差错从何而来? 检错编码–奇偶校验码 检错编码–CRC循环冗余码

  4. 3.3.2 差错控制(检错编码)

    目录 纠错编码--海明码 1.确认校验码位数 2.确认校验码和数据的位置 3.求校验码的值 4.检错并纠错 总结 纠错编码–海明码 1.确认校验码位数 2.确认校验码和数据的位置 P1=2^(1-1) ...

  5. 【计算机网络】—— 差错控制(检错编码)

    目录 一.差错从何而来? 二.数据链路层的差错控制 检错编码 -- 奇偶校验码 检错编码 -- CRC循环冗余码 一.差错从何而来? 概括来说,传输中的差错都是由于噪声引起的. 全局性噪声: 产生原因 ...

  6. 差错控制之检错编码与纠错编码

    差错来源 数据链路层的差错控制 检错编码-奇偶校验码 检错编码–CRC循环冗余码 纠错编码-海明码 海明码:发现双比特错误,纠正单比特错 1.确定校验码的位数r 2.确定校验码和数据的位置 3.求出校 ...

  7. 差错控制(检错编码、纠错编码)

    二战三战都不是事 ,只要心甘情愿,一眨眼就走出考场了 打破 第211 篇文章 文章目录 差错控制 差错来源 数据链路层的差错控制 检错编码--奇偶校验码 检错编码一一CRC循环冗余码 纠错编码一一海明 ...

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

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

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

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

最新文章

  1. Altium Designer原理图元件和PCB元件互相定位
  2. oracle 11g r2配置文件,Oracle 11g R2 常用配置与日志的文件位置
  3. python atm作业详解_python day4 作业 ATM
  4. ssm使用全注解实现增删改查案例——DeptServiceImpl
  5. amigo幸运字符什么意思_转载 | 史上最全 python 字符串操作指南
  6. python3 一 多线程死锁问题及解决方案
  7. java 标注 json_java – 注释资源以生成JSON,但在响应头中返回“text/plain”
  8. 词法分析 有穷自动机
  9. 关于keeplive
  10. windows7修改或删除曾经保存的远程桌面连接的密码
  11. 【HAVENT原创】nginx 配置
  12. 中兴新支点操作系统_中兴新支点操作系统的设计和功能怎样?
  13. 小写字母转大写代码HTML,字母大小写转换.html
  14. Windows 11 21H2正式版镜像
  15. 关于premiere中遮罩的几点总结 数媒0802 宋志超
  16. Reinforced Neighborhood Selection Guided Multi-Relational Graph Neural Networks阅读笔记
  17. 长沙民政职业技术学院计算机网络技术专业,长沙民政职业技术学院计算机网络技术专业...
  18. fatal error C1088
  19. 拉依达准则python实现
  20. android edittext 美化,android EditText的美化

热门文章

  1. 查询x,y之间的素数
  2. luogu 2014 选课 树上背包
  3. demo:a spreadsheet-like application
  4. Tengine(nginx) 搭建Tomcat集群
  5. 201521123060 《Java程序设计》第10周学习总结
  6. U-Boot 提供的基本命令
  7. SvsUtil.exe生成服务文件
  8. 安装 SQL Server 2008 R2 的硬件和软件要求(转)
  9. 《bbs.yingjiesheng.com,超全的求职笔经面经论坛》
  10. OpenCV-自定义harris检测