IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络——数据链路层之差错控制 -> 正文阅读

[网络协议]计算机网络——数据链路层之差错控制

参考链接

  1. CSKAOYAN.COM

差错控制

差错来源

概括来说,传输中的差错都是由于噪声引起的

  1. (全局性)由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。解决方法:提高信噪比来减少或避免干扰

  2. (局部性)外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。解决方法:通常利用编码技术来解决

差错分类

  1. 位错:比特位出错,1变成0,0变成1
  2. 帧错:丢失、重复、失序

差错控制(比特错)

物理层编码VS链路层编码

数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼切斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码技术实现一组二进制比特串在传输过程中是否出现了差错

冗余编码

在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到的码字是否符合原规则,从而判断是否出错

检错编码

奇偶校验码

奇偶校验码包含n-1位信息元和1位校验元。奇校验码中“1”的个数为奇数;偶校验码中“1”的个数为偶数

奇偶校验码只能检查出奇数个比特错误,检错能力为50%

循环冗余码CRC

最终发送的数据:要发送的数据+帧检验序列FCS

计算冗余码:

  1. 加0。假设生成多项式G(x)的阶为r,则加r个0
  2. 模2除法。数据加0后除以多项式,余数为冗余码/FCS/CRC检验码的比特序列

接收端检错过程:
把收到的每一个帧都除以同样的除数,然后检查得到的余数R。

  1. 余数为0,判定这个帧没有差错
  2. 余数不为0,判定这个帧有差错(无法确定到位)

FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输

纠错编码

海明码

海明码:发现双比特错,纠正单比特错

海明不等式: 2 r ? k + r + 1 2^{r}\geqslant k+r+1 2r?k+r+1

工作流程:

  1. 确定校验码位数r
    设要发送的数据为:D=101101
    根据海明不等式,满足不等式的最小r为4,即D的海明码应该有6+4=10位,其中原数据6位,校验码4位

  2. 确定校验码和数据的位置
    校验码都放在2的幂的位置,数据则从左到右按序把空填满

  3. 求出校验码的值
    令所有要校验的位异或为0
    P 1 ⊕ D 1 ⊕ D 2 ⊕ D 4 ⊕ D 5 = 0 P_{1}\oplus D_{1}\oplus D_{2}\oplus D_{4}\oplus D_{5}=0 P1?D1?D2?D4?D5?=0
    P 2 ⊕ D 1 ⊕ D 3 ⊕ D 4 ⊕ D 6 = 0 P_{2}\oplus D_{1}\oplus D_{3}\oplus D_{4}\oplus D_{6}=0 P2?D1?D3?D4?D6?=0
    P 3 ⊕ D 2 ⊕ D 3 ⊕ D 4 = 0 P_{3}\oplus D_{2}\oplus D_{3}\oplus D_{4}=0 P3?D2?D3?D4?=0
    P 4 ⊕ D 5 ⊕ D 6 = 0 P_{4}\oplus D_{5}\oplus D_{6}=0 P4?D5?D6?=0

求解得到 P 1 = 0 , P 2 = 0 , P 3 = 0 , P 4 = 1 P_{1}=0,P_{2}=0,P_{3}=0,P_{4}=1 P1?=0,P2?=0,P3?=0,P4?=1

故101101的海明码位0010011101

  1. 检错并纠错
    令所有要检验的位异或运算
    得到的逆序二进制序列,就对应了出错的位置
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 10:11:58  更:2021-08-06 10:13:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 19:44:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码