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

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

文章目录

一、 奇偶校验码

二、 奇偶校验码 特点

三、 奇偶校验码 示例

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

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

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





一、 奇偶校验码


奇偶校验码 组成 :


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


② 校验元 : 1 11 位 ; 冗余码 ;


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


④ 偶校验码 : 1 11 的个数为偶数 ; 冗余位 0 00 ;






二、 奇偶校验码 特点


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






三、 奇偶校验码 示例


奇偶校验码 示例 :


传输 字符 ‘S’ 的 ASCII 码 1100101 11001011100101 , 使用 奇校验码 , 在 数据前 添加 1 11 位 冗余位 1 11 , 表明 1 11 的个数为奇数 , 上述数据的 1 11 的个数为 5 55 个 , 是奇数个 ;


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


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






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


发送端 :


① 要传输的数据 : 5 55 ;


② 生成多项式 : 2 22 ;


③ 计算冗余码 : 使用 要 传 输 的 数 据 生 成 多 项 式 = 5 2 \cfrac{要传输的数据}{生成多项式} = \cfrac{5}{2}

生成多项式

要传输的数据


=

2

5


 , 商是 2 22 , 余数是 1 11 ;


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


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




接收端 :


① 接收到的数据 : 6 66 ;


② 生成多项式 : 2 22 ;


③ 判定差错 : 计算 接 收 到 的 数 据 生 成 多 项 式 \cfrac{接收到的数据}{生成多项式}

生成多项式

接收到的数据


 余数是否为 0 00 , 如果余数为 0 00 , 说明传输过程中没有错误 ;




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






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


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



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


计算 帧检验序列 FCS :


① 数据加 冗余码 位数个 0 00 : 首先确定 冗余码 位数 , 冗余码的位数是 生成多项式的 阶 , 即 生成多项式 10011 1001110011 的 总位数 减去 1 11 , 相当于 离散数学 中的生成函数的 最高位次幂 ; FCS 的位数是 4 44 位 ;


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


数据加 4 44 个 0 00 后为 11010110110000 1101 0110 11 000011010110110000



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


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


异或运算 : 同 0 00 , 异 1 11 ;


image.png

模 2 22 除法计算过程分析 :


11010 1101011010 异或 10011 1001110011 计算得到 1001 10011001 , 然后下一位 1 11 落下来 , 得到 10011 1001110011 ;

10011 1001110011 异或 10011 1001110011 计算得到 00000 0000000000 , 然后下面 5 55 位 落下来 , 得到 10110 1011010110 ;

10110 1011010110 异或 10011 1001110011 计算得到 101 101101 , 然后下 2 22 位落下来 , 得到 10100 1010010100 ;

10100 1010010100 异或 10011 1001110011 计算得到 1110 11101110


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


最终发送的数据是 : 1101011011 1101 0110 111101011011 1110 11101110




接收端接收数据并校验 :


① 检验过程 : 接收端接收 上述 1101011011 1101 0110 111101011011 1110 11101110 数据 , 将上述数据 与 生成多项式 10011 1001110011 相除 , 如果余数为 0 00 说明该数据帧没有差错 ;


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






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


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

3

+x

2

+1


相当于 : G ( x ) = x 3 + x 2 + 0 x 1 + x 0 G(x) = x^3 + x^2 + 0x^1 + x^0G(x)=x

3

+x

2

+0x

1

+x

0


对应的模二运算的除数 : 1101 11011101 ;


x xx 的 0 00 次幂系数为 1 11 , 对应第 0 00 位 为 1 11 ;

x xx 的 1 11 次幂系数为 0 00 , 对应第 1 11 位 为 0 00 ;

x xx 的 2 22 次幂系数为 1 11 , 对应第 2 22 位 为 1 11 ;

x xx 的 3 33 次幂系数为 1 11 , 对应第 3 33 位 为 1 11 ;


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


目录
相关文章
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
904 62
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
767 9
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
机器学习/深度学习 Serverless 索引
分类网络中one-hot编码的作用
在分类任务中,使用神经网络时,通常需要将类别标签转换为一种合适的输入格式。这时候,one-hot编码(one-hot encoding)是一种常见且有效的方法。one-hot编码将类别标签表示为向量形式,其中只有一个元素为1,其他元素为0。
843 2
|
机器学习/深度学习 存储 自然语言处理
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
1227 1
|
网络协议 C语言 网络架构
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
1674 7
|
XML JSON 安全
Base64编码原理与在网络传输中的应用
Base64编码原理与在网络传输中的应用
|
缓存 算法
基于机会网络编码(COPE)的卫星网络路由算法matlab仿真
**摘要:** 该程序实现了一个基于机会网络编码(COPE)的卫星网络路由算法,旨在提升无线网络的传输效率和吞吐量。在MATLAB2022a中测试,结果显示了不同数据流个数下的网络吞吐量。算法通过Dijkstra函数寻找路径,计算编码机会(Nab和Nx),并根据编码机会减少传输次数。当有编码机会时,中间节点执行编码和解码操作,优化传输路径。结果以图表形式展示,显示数据流与吞吐量的关系,并保存为`R0.mat`。COPE算法预测和利用编码机会,适应卫星网络的动态特性,提高数据传输的可靠性和效率。
|
缓存
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
2136 0
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
|
安全 程序员 网络安全
编码之舞:我的编程技术感悟网络安全与信息安全:漏洞、加密技术及安全意识的探讨
在数字世界的广阔舞台上,编程技术如同一种精确而优美的舞蹈。它不仅要求逻辑的严密和技术的精湛,还需要创新思维和持续学习的热情。本文将分享作者在编程旅程中的个人感悟,探讨如何通过实践、学习和反思不断提升编程能力,并在技术探索中找到乐趣和成就感。 在数字化时代,网络安全和信息安全已成为全球关注的焦点。随着网络攻击手段的不断升级,如何保护个人和企业的数据安全成为了一个亟待解决的问题。本文将深入探讨网络安全漏洞的产生原因、加密技术的应用以及提升安全意识的重要性。通过分析具体案例,我们将揭示网络安全领域的最新发展趋势,并提供实用的防护策略,帮助读者构建更为坚固的安全防线。
|
机器学习/深度学习 算法
m基于PSO-GRU粒子群优化长门控循环单元网络的电力负荷数据预测算法matlab仿真
摘要: 在MATLAB 2022a中,对比了电力负荷预测算法优化前后的效果。优化前为"Ttttttt111222",优化后为"Tttttttt333444",明显改进体现为"Tttttttttt5555"。该算法结合了粒子群优化(PSO)和长门控循环单元(GRU)网络,利用PSO优化GRU的超参数,提升预测准确性和稳定性。PSO模仿鸟群行为寻找最优解,而GRU通过更新门和重置门处理长期依赖问题。核心MATLAB程序展示了训练和预测过程,包括使用'adam'优化器和超参数调整,最终评估并保存预测结果。
381 0

热门文章

最新文章