<<计算机网络>>差错控制---奇偶效验码/循环冗余码ORC/海明码

简介: <<计算机网络>>差错控制---奇偶效验码/循环冗余码ORC/海明码

检错编码

1.奇偶效验码


2eaf5413460e4e859d0e3cc7425997f2.jpg

从图我们可以看出


1.奇偶效验码由两部分组成 分别是一位校验元(也就是一个校验码)和n-1个信息原


2.奇偶效验码分为奇效验码和偶效验码,使用那种要根据最前面加上校验元1后一共有几个1


               奇效验码有奇数个1 偶校验码有偶数个1  


数据经过转换发送过去的就是在前面加入了一个1的数据,如果采用的是奇效验码的方式,则接收方会判断1的个数是否为奇数;偶数一样!!


因此----当数据中改变了两个数字,奇效验码原本是001101传送过去变成了110010,接收方并不会检测出错误,因为1的个数还是奇数!!!so  检测的成功率只有50%!!一个拉跨的效验码!!


2.循环冗余码CRC

书上概念很乱,但它却很简单,你只需要知道怎么求码,接收方怎么检验是否有问题就可以!!


首先先要知道:循环冗余码需要一个生成多项式(这个不用管是什么,题中会给)


做题步骤: 1. 加0 ------ 需要发送的数据有n位则在数据的最后加上n-1个0


2. 将已经加0的数据 除以 生成多项式


3. 得到除后的余数 将第一步加上的0,改成这个余数即可,就是我们真正需要发送的数据


例题:假设发送的数据是1101   0110  11 ,采用ORC校验,生成多项式为1001  1  ,则最终发送的数据是?计算机怎么检验的?


解答:


1. 加0    数据变成1101  0110  1100  00


2.除以多项式,1101  0110  1100  00 / 1001  1   ,计算得到余数是1110


3.替换    所以发送到数据是1101  0110  1111 10


计算机检验:将数据除以 生成多项式,如果没有余数,则数据正确,如果有余数,则错误


检测并纠错编码

3. 海明码


海明码是比较难的一种,不仅可以检错还能纠错!


首先你要知道:海明码发现双比特错,纠正单比特错


                         工作原理:动一下则牵扯全身!!


一个数据变成经过海明码变成最终发送的数据一共需要三部


假设要发送的数据为  101101


第一步:确定校验码位数


一个公式解决:2^r >= k + r + 1  ( r 就是校验码位数; k 是发送数据的个数)


带入 k = 6  ,求出 r = 4


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


校验码的位置都在2的n次方位,转化成二进制也就是只有一个1的地方


数据则在其他的位置, 我们看图


3e4f339bdefd4309929e54078e7c789b.png


第三步:求出校验码的值


方法:看对应位的效验码的1  数据位的这个地方是否有1,与其数据为按位与运算结果为0


P1 ^ D1 ^ D2 ^ D4 ^ D5 == 0   ➡  P1 = 0


P2 ^ D1 ^ D3 ^ D4 ^ D5 == 0   ➡  P2 = 0


P3 ^ D2 ^D3 ^D4 == 0             ➡  P3 = 0


P4 ^D5 ^D6 == 0                     ➡   P4 =1


将这些值填入表中的对应位置,因此得到的  发送过去的码就是0010 0111 01


检验???方法一样


将校验码与对应的位进行按位与,如果结果都为0 则正确,如果都为1 则错误!!但是海明码还可以纠错!比如第五位除错,接收端收到的是0010 1111 01


令所有要校验的位异或运算:


P1 ^ D1 ^ D2 ^ D4 ^ D5 == 0   ➡  P1 = 1


P2 ^ D1 ^ D3 ^ D4 ^ D5 == 0   ➡  P2 = 0


P3 ^ D2 ^D3 ^D4 == 0             ➡  P3 = 1


P4 ^D5 ^D6 == 0                     ➡   P4 =0


1010==5,所以就得到了第五位错了  !!是不是很神奇??  


相关文章
|
1月前
|
机器学习/深度学习 存储 自然语言处理
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
|
5月前
|
网络协议 C语言 网络架构
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
276 7
|
5月前
|
缓存
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
126 0
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
|
6月前
|
机器学习/深度学习 算法
m基于GA-GRU遗传优化门控循环单元网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,一个基于遗传算法优化的GRU网络展示显著优化效果。优化前后的电力负荷预测图表显示了改进的预测准确性和效率。GRU,作为RNN的一种形式,解决了长期依赖问题,而遗传算法用于优化其超参数,如学习率和隐藏层单元数。核心MATLAB程序执行超过30分钟,通过迭代和适应度评估寻找最佳超参数,最终构建优化的GRU模型进行负荷预测,结果显示预测误差和模型性能的提升。
185 4
|
5月前
|
机器学习/深度学习 算法
m基于PSO-GRU粒子群优化长门控循环单元网络的电力负荷数据预测算法matlab仿真
摘要: 在MATLAB 2022a中,对比了电力负荷预测算法优化前后的效果。优化前为"Ttttttt111222",优化后为"Tttttttt333444",明显改进体现为"Tttttttttt5555"。该算法结合了粒子群优化(PSO)和长门控循环单元(GRU)网络,利用PSO优化GRU的超参数,提升预测准确性和稳定性。PSO模仿鸟群行为寻找最优解,而GRU通过更新门和重置门处理长期依赖问题。核心MATLAB程序展示了训练和预测过程,包括使用'adam'优化器和超参数调整,最终评估并保存预测结果。
56 0
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】35. 门控循环神经网络之门控循环单元(gated recurrent unit,GRU)介绍、Pytorch实现GRU并进行训练预测
【从零开始学习深度学习】35. 门控循环神经网络之门控循环单元(gated recurrent unit,GRU)介绍、Pytorch实现GRU并进行训练预测
|
5月前
|
算法
计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)
计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)
333 0
|
4天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
14 2
|
5天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
4天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。