【计算机网络入门】初学计算机网络(六)

目录

1.回忆数据链路层作用

 2. 组帧

2.1 四种组帧方法

2.1.1 字符计数法

2.1.2 字节填充法

2.1.3 零比特填充法

2.1.4 违规编码法

3. 差错控制

3.1 检错编码

3.1.1 奇偶校验码

3.1.2 CRC(循环冗余校验)校验码

3.2 纠错编码

3.2.1 海明校验码

3.2.2 海明码如何纠错?

3.2.3 海明码纠错检错能力


1.回忆数据链路层作用

 2. 组帧

帧定界

如何让接收方知道帧的界限?

透明传输

接收方如何去除“帧定界”的附加信息,把帧恢复原貌。

2.1 四种组帧方法

2.1.1 字符计数法

使用一个字节记录帧的长度放在每一个帧开头的位置

缺点任意一个计数字符出错,那么后面的帧全部无法定界,和多米诺骨牌一样

2.1.2 字节填充法

使用控制字符来确定一个帧的开始和结束

缺点:当数据的内容和指定的开始结束内容完全一致,我们该如何区分是数据还是控制字符

改进引入转义字符,如果控制字符和数据内容完全一致,我们会在数据内容前面加入一个转义字符表明:这就是普通的数据

        如果数据的内容和转义字符一样,我们就在“数据”之前 再加一个转义字符,让接收方知道这是一个数据,当接收方接受到数据之后,需要逆处理去掉转义字符。

2.1.3 零比特填充法

        使用特殊的数字作为帧的开头和结尾(01111110六个一),我们需要对数据部分进行处理,如果有连续五个1就在后面加一个0,这样一来就不会出现和开始字符或者结尾字符相同的情况了。

使用零比特填充法的协议:PPP,HDLC 

2.1.4 违规编码法

        我们定义每个周期的中间必须变化,没有变化的我们视作“违规”,所以我们只需要让数据遵守规则,让帧头和帧尾的部分违规即可

3. 差错控制

        发现帧内部的位错误。

3.1 检错编码

接收方发现比特错误丢弃帧,通知发送方重传帧。

3.1.1 奇偶校验码

奇校验:保持(有效信息位和校验位)1的个数为奇数。

偶校验:保持(有效信息位和校验位)1的个数为偶数。

 如果,一下子有两个二进制位跳位,那么也是会符合偶校验的规则的,但是我们知道这是错误的。

3.1.2 CRC(循环冗余校验)校验码

        数据发送方、接收方约定一个除数K个信息位+R个校验位作为被除数,添加校验位后需要保证除法的余数为0;收到数据后进行除法检查余数是否为0,若余数非0说明出错,则进行重传或纠错。

  

 

3.2 纠错编码

        由接收方发现并纠正比特错误。

        上面说到奇偶校验只能察觉到奇数个比特位的错误,一旦错误的位数是偶数,此方法就会失效,并且不能进行纠错

3.2.1 海明校验码

        海明码的思路是基于偶校验先把所有的数据进行分组,然后每一组有一个校验位,这样就能表示很多种状态,甚至出错的位置都能够找到

        这些状态最起码能表示信息位+校验位出错的位置,还有一种正确的状态;加起来就是2的k次方≥n+k+1种状态。将校验位按照规定放入2的次方位置上面,信息位依次填入

        我们把信息位的下标(H3的3,H5的5......)使用二进制表示出来进行分组H1 = P1 = 1101 = H357进行异或,H2 = P2 = 1011 = H367进行异或,H4 = P3 = 0111 = H567异或,分别异或算出校验位。

 

       

3.2.2 海明码如何纠错?

        我们现在的三个分组求出来对应的三个校验位,也就是每组四个比特(3个信息位1个校验位)直接进行异或,得数是0则没有错误

         若此时P2跳变成0,我们第二组异或就会为1,由低位到高位就是010->也就是十进制的2,即海明码的第二位出现了错误

3.2.3 海明码纠错检错能力

        海明码可以1位纠错,2位检错;做到这样的结果我们只需要增加一位作为整体偶校验;我们就会出现以下三种情况。

①校验方程=0且全体偶校验成功(0):完全正确。

②校验方程≠0且全体偶校验失败(1):有一位错误,可以定位找到。

③校验方程≠0且全体偶校验成功(0):有两位错误,无法定位,申请重传。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26758.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树的核心技术与C++实现:存储、遍历与递归应用

目录 一、二叉树基础概念与常见类型 1.1 二叉树核心概念 1.2 四种常见二叉树类型 类型1:满二叉树 类型2:完全二叉树 类型3:二叉搜索树(BST) 类型4:平衡二叉树(AVL) 类型5&…

《白帽子讲 Web 安全:点击劫持》

目录 摘要: 一、点击劫持概述 二、点击劫持的实现示例:诱导用户收藏指定淘宝商品 案例 构建恶意页面: 设置绝对定位和z - index: 控制透明度: 三、其他相关攻击技术 3.1图片覆盖攻击与 XSIO 3.2拖拽劫持与数据…

IDEA 使用codeGPT+deepseek

一、环境准备 1、IDEA 版本要求 安装之前确保 IDEA 处于 2023.x 及以上的较新版本。 2、Python 环境 安装 Python 3.8 或更高版本 为了确保 DeepSeek 助手能够顺利运行,您需要在操作系统中预先配置 Python 环境。具体来说,您需要安装 Python 3.8 或更高…

Linux:进程替换

目录 进程程序替换 替换原理 进程替换相关函数 环境变量与进程替换函数 命令行解释器(my_xshell) 进程程序替换 上一篇进程控制讲到,父进程创建子进程就是为了让子进程去做一些另外的事情,但是不管怎么说,子进程的部分代码也还是父进程…

Navicat连接虚拟机数据库详细教程

Navicat连接虚拟机数据库详细教程 以Windows主机 上的navicat 连接ubuntu虚拟机为例 确认虚拟机ip地址和主机ip地址 主机地址查询 cmd输入ipconfig 登录mysql 创建用户 CREATE USER newuserlocalhost IDENTIFIED BY password; CREATE USER newuser% IDENTIFIED BY passwor…

Java内存管理与性能优化实践

Java内存管理与性能优化实践 Java作为一种广泛使用的编程语言,其内存管理和性能优化是开发者在日常工作中需要深入了解的重要内容。Java的内存管理机制借助于垃圾回收(GC)来自动处理内存的分配和释放,但要实现高效的内存管理和优…

解码中国AI双雄突围:DeepSeek破壁与英伟达反攻背后的算力暗战

一、算力困局下的中国突围术 2024年夏季的科技界暗流涌动:北京中关村的服务器机房里,寒武纪最新MLU300X芯片正以每秒120万亿次运算支撑着自动驾驶系统的实时决策;上海张江的AI实验室中,DeepSeek团队通过神经元分块技术将模型参数压…

【Python · Pytorch】Conda介绍 DGL-cuda安装

本文仅涉及DGL库介绍与cuda配置,不包含神经网络及其训练测试。 起因:博主电脑安装了 CUDA 12.4 版本,但DGL疑似没有版本支持该CUDA版本。随即想到可利用Conda创建CUDA12.1版本的虚拟环境。 1. Conda环境 1.1 Conda环境简介 Conda&#xff1…

0x03 http协议和分层架构

HTTP协议 简介 Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议:面向连接,安全基于请求-响应模型:一次请求对应一次响应HTTP协议是无状态的协议&#xff…

IDEAPyCharm安装ProxyAI(CodeGPT)插件连接DeepSeek-R1教程

背景:最近DeepSeek比较火嘛,然后在githup上也看到了GitHub Copilot,就想着现在AI的准确率已经可以提高工作效率了。所以从网上找了一些编程插件,发现Proxy支持的模型比较多,通用性和适配性比较好。所以本文记录一下pro…

qt-C++笔记之QToolButton和QPushButton的区别

qt-C笔记之QToolButton和QPushButton的区别 code review! 文章目录 qt-C笔记之QToolButton和QPushButton的区别1.运行2.main.cpp3.main.pro 1.运行 QToolButton 适用于工具栏或需要较紧凑、图标化显示的场合。通过 setAutoRaise(true) 与 setToolButtonStyle(Qt::ToolButtonTe…

css的元素显示模式

一.什么是元素显示模式 作用&#xff1a;网页的标签非常多&#xff0c;不同地方会用到不同类型的标签&#xff0c;了解他们的特点可以更好的布局我们的网页。 元素显示模式就是元素(标签)以什么方式进行显示&#xff0c;比如<div>自己占一行&#xff0c;比如一行可以放多…

MySQL整体架构

目录 1 客户端 2 服务端 2.1 Server层 2.1.1 连接器 2.1.2 查询缓存 2.1.3 词法器 2.1.4 优化器 2.1.5 执行器 2.2 存储引擎层 1 客户端 ● 客户端为连接MySQL服务端的工具或者驱动&#xff0c;比如JDCB&#xff0c;ODBC等等 ● 用于连接目前服务器&#xff0c;并且发送需要执行…

【踩坑随笔】`npm list axios echarts`查看npm依赖包报错

npm list axios echarts查看npm依赖包出现以下报错&#xff0c;原因就是包的版本匹配问题&#xff0c;按照提示降axios版本或者自己升找合适的got版本&#xff0c;我这里是选择了降版本。本文记录仅做解决思路参考不一定适配大家的实际情况。 weed-detection-system1.0.0 E:\P…

大唐杯——阶段二01

03 5G寻呼 UE&#xff08;User Equipment&#xff09; UE是用户设备&#xff08;User Equipment&#xff09;的缩写&#xff0c;指的是移动通信网络中的终端设备&#xff0c;例如手机、平板电脑、物联网传感器等。 AMF&#xff08;Access and Mobility Management Function&a…

小程序画带圆角的圆形进度条

老的API <canvas id"{{canvasId}}" canvas-id"{{canvasId}}" style"opacity: 0;" class"canvas"/> startDraw() {const { canvasId } this.dataconst query this.createSelectorQuery()query.select(#${canvasId}).bounding…

SimVS: Simulating World Inconsistencies for Robust View Synthesis 论文解读

目录 一、概述 二、相关工作 三、SimVS 1、利用视频模型模拟世界的不一致性 2、效果 一、概述 该论文提出了一种名为SimVS的视频模型方法&#xff0c;旨在解决稀疏多视角图像捕捉中因动态变化&#xff08;光照变化、物体运动&#xff09;导致的视图合成鲁棒性问题。 动机&a…

华为OD机试真题:跳房子I (E卷、Java)

华为OD机试&#xff08;E卷D卷C卷&#xff09;最新题库【超值优惠】Java/Python/C合集 题目描述 跳房子&#xff0c;也叫跳飞机&#xff0c;是一种世界性的儿童游戏。 游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格。跳房子的过程中&#xff0c;可以向前跳&…

快速排序算法详解

算法原理 快速排序是一种分治的策略的排序算法。它的核心排序思想是将问题不断的分解为子问题。以数组为例进行介绍更容易理解&#xff0c;创建一个数组或者vector&#xff0c;假设是std::vector<int> a{3&#xff0c;2, 1, 5, 4,7}&#xff0c;要对a从小到大进行排序&a…

Windows本地Docker+Open-WebUI部署DeepSeek

最近想在自己的电脑本地部署一下DeepSeek试试&#xff0c;由于不希望污染电脑的Windows环境&#xff0c;所以在wsl中安装了ollama&#xff0c;使用ollama拉取DeepSeek模型。然后在Windows中安装了Docker Desktop&#xff0c;在Docker中部署了Open-WebUI&#xff0c;最后再在Ope…