第3章 数据链路层(1)

news2024/11/18 14:57:12

3.1数据链路层的功能

加强物理层传输原始比特流的功能,将可能出差错的物理连接改成逻辑上无差错的数据链路[节点的逻辑通道]

3.1.1 为网络提供服务

  • (1).无确认的无连接服务
    适合通信质量好的有线传输链路(实时通信或误码率较低的通信信道)【例如以太网】
  • (2).有确认的无连接服务
    接收到数据需要发送确认。适用于误码率较高的通信信道【例如无线通信】
  • (3)有确认的面向连接的服务
    服务可靠性高,适用于可靠性实时性较高的场所。

3.1.2 链路管理

数据链路层的连接的建立,维持,释放过程称为链路管理。主要用于面向连接的服务。

3.1.3 帧定界,帧同步与透明传输

数据链路层将网络层的分组封装成帧。将数据的首部和尾部添加信息构成帧。
同步是指的接收方能从接收到的二进制比特流中区分出帧的起始与终止
透明传输是指的任意比特组合的数据都能在链路上传输。

3.1.4流量控制

目的是控制发送方的发送速率。
许多高层也有流量控制功能,只是控制的对象不同。

层次流量控制对象
数据链路层节点与节点之间
网络层整个网络
传输层源端到目的端

3.1.5差错控制

接收方通过某些算法检测数据是否出差错,如果出现差错就丢弃。


3.2组帧

组帧的目的是在出错时仅仅重发出错部分。【解决帧定界,帧同步,透明传输等问题】

3.2.1 字符计数法(可靠性差,一个出错全部出错)

在帧头前面用一个计数字段表明帧内字符数
在这里插入图片描述

3.2.2 字符填充的首位定界符【同步】(适用文本文件)

使用开始字符"SOH"和结束字符"EOT"表示首位,若数据中也有"SOH"或"EOT"就使用转义字符"ESC"插入在前面。出现转义字符就再插入一个转义字符。
在这里插入图片描述

3.2.3 零比特填充的首尾标志法(用硬件实现容易,性能高于字符填充法)

在传输比特前,若存在连续的5个1,就在后面加一个0
在这里插入图片描述

3.2.4违规编码法

曼彻斯特编码差分曼彻斯特斯特编码中所有码元都由两种电平组成。
因此高-高电平低-低电平可以用于起始和终止的定界符。

字符计数法的脆弱性和字符填充法实现的复杂性和不兼容性。目前常用的是零比特填充法和违规编码法。


3.3差错控制

对接收到的数据进行检错和纠错

3.3.1 检错编码

  • 1.奇偶校验码(只能检测出奇数个错误)
    奇校验码:填充0个或多个1使得整个数据有奇数个1
    偶校验码:填充0个或多个1使得整个数据有奇数个0

  • 2.循环冗余码

(1)准备数据,切割网络层分组为等长。
(2)每组都加上冗余码构成帧再发送

收发双发约定好生成多项式,通过做模2除法找到一个冗余码来校验。

生成多项式有两种形式:
可以写成二进制或者多项式形式:1110 001可以写成 x 6 + x 5 + x 4 + x + 1 x^6+x^5+x^4+x+1 x6+x5+x4+x+1
通过计算找到二进制长度减1位冗余码。其中减法是进行异或运算
在这里插入图片描述
通过循环冗余码,数据链路层做到了对帧的无差错接收。接受的的帧都认为传输过程无差错。接收端丢弃的也接收到了,但是因为差错而被丢弃。不是可靠传输。
可靠传输数据链路层发送什么就接收什么。

3.3.2 海明码[纠错编码]

设有效数据长度为n,k为校验位长度
2 k > = n + k + 1 2^k>=n+k+1 2k>=n+k+1

校验位放在 2 i 2^i 2i的位置,其中i∈[0,k-1]。
用的还是偶校验码

编码过程:
在这里插入图片描述


解码过程:
在这里插入图片描述
若在解码时校验位全是0,说明无差错。
若不为0,差错就在以纠正位组成的二进制对应的位置。(图中二进制101就是十进制5,第5位出错了)

检错纠错
位数d位d位
需要d+1位2*d+1位

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WIN32部分知识介绍

🌈前言:此篇博客是为下一篇的《贪吃蛇》的做的前戏工作,这篇会讲到贪吃蛇所用到的一些工具以及函数。 首先在讲WIN32的内容时我们想了解一下他的基本概念: Windows 这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外…

指数移动平均(EMA)

文章目录 前言EMA的定义在深度学习中的应用PyTorch代码实现yolov5中模型的EMA实现 参考 前言 在深度学习中,经常会使用EMA(指数移动平均)这个方法对模型的参数做平均,以求提高测试指标并增加模型鲁棒。实际上,_EMA可以…

全栈的自我修养 ———— css中常用的布局方法flex和grid

在项目里面有两种常用的主要布局:flex和grid布局(b站布局),今天分享给大家这两种的常用的简单方法! 一、flex布局1、原图2、中心对齐3、主轴末尾或者开始对其4、互相间隔 二、grid布局1、基本效果2、加间隔3、放大某一个元素 一、…

数据的加密方式及操作方法

目录 一 什么是加密 二 加密方法 对称加密(如AES加密) 非对称加密(如RSA加密) 散列(如MD5加密) 三 加密操作 1 MD5加密(散列) 2 AES加密(对称加密) …

HTMK5七天学会基础动画网页10(2)

制作立方体 学完前面的基础内容&#xff0c;制作立方体是个不错的练习方法&#xff0c;先看成品 再分析一下&#xff0c;六个面让每个面旋转平移就可以实现一个立方体&#xff0c;来看代码: <title> 制作立方体</title> <style> *{ margin: 0; padding: 0; …

如何搭建财务数据运营体系:基于财务五力模型的分析

在当今复杂多变的商业环境中,财务数据作为企业决策的重要参考依据,其运营体系的搭建显得尤为关键。一个健全、高效的财务数据运营体系不仅能够为企业提供准确的财务数据支持,还能帮助企业在激烈的市场竞争中保持领先地位。基于财务五力模型的分析,我们可以从收益力、安定力…

基于深度学习YOLOv8+Pyqt5的抽烟吸烟检测识别系统(源码+跑通说明文件)

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;39抽烟 获取完整源码源文件4000张已标注的数据集配置说明文件 可有偿59yuan一对一远程操作跑通 效果展示 基于深度学YOLOv8PyQt5的抽烟吸烟检测识别系统&#xff08;完整源码跑通说明文件&#xff09; 各文件说明 模型评价…

Mybatis-Plus——07,性能分析插件

性能分析插件 一、导入插件二、SpringBoot中配置环境为dev或test环境三、运行测试————————创作不易&#xff0c;笔记不易&#xff0c;如觉不错&#xff0c;请三连&#xff0c;谢谢~~ MybatisPlus也提供了性能分析插件&#xff0c;如果超过这个时间就停止运行&#xff0…

常见3大web漏洞

常见3大web漏洞 XSS攻击 描述&#xff1a; 跨站脚本&#xff08;cross site script&#xff09;-简称XSS&#xff0c;常出现在web应用中的计算机安全漏桶、web应用中的主流攻击方式。 攻击原理&#xff1a; 攻击者利用网站未对用户提交数据进行转义处理或者过滤不足的缺点。 …

前端文件上传

文件上传方式 前端文件上传有两种方式&#xff0c;第一种通过二进制blob传输&#xff08;formData传输&#xff09;&#xff0c;第二种是通过base64传输 文件相关的对象 file对象其实是blob的子类 blob对象的第一个参数必须是一个数组&#xff0c;你可以把一个file对象放进去…

Oracle SQL优化(读懂执行计划 一)

目录 SQL执行计划的作用示例演示执行计划概念介绍执行计划实例DISPLAY_CURSOR 类型DISPLAY_AWR 类型 指标详解 SQL执行计划的作用 示例演示 执行计划概念介绍 执行计划实例 DISPLAY_CURSOR 类型 DISPLAY_AWR 类型 指标详解

Vivado原语模板

1.原语的概念 原语是一种元件&#xff01; FPGA原语是芯片制造商已经定义好的基本电路元件&#xff0c;是一系列组成逻辑电路的基本单元&#xff0c;FPGA开发者编写逻辑代码时可以调用原语进行底层构建。 原语可分为预定义原语和用户自定义原语。预定义原语为如and/or等门级原语…

【电路笔记】-PNP晶体管

PNP晶体管 文章目录 PNP晶体管1、概述2、PNP晶体管电路示例3、PNP晶体管识别1、概述 PNP 晶体管与我们在上一篇教程中看到的 NPN 晶体管器件完全相反。 在这种类型的 PNP 晶体管结构中,两个互连的二极管相对于之前的 NPN 晶体管是相反的。 这会产生正-负-正类型的配置,箭头…

vxe-table配合Export2Excel导出object类型数据{type,count}。表格数据呈现是利用插槽,导出只要count该怎么做

先贴一张数据来&#xff1a; 一、然后是vxe-grid的columns配置&#xff1a; 然后就正常用封装好的Export2Excel就行。 碰到一次在控制台报错&#xff1a; 没复现出来&#xff0c;大概就说是count咋样咋样。 以后碰到的话再说&#xff0c;各位要用的话也注意看看 二、或者 用js…

不知道吧,腾讯云轻量应用服务器使用有一些限制!

腾讯云轻量应用服务器相对于云服务器CVM是有一些限制的&#xff0c;比如轻量服务器不支持更换内网IP地址&#xff0c;不支持自定义私有网络VPC&#xff0c;内网连通性方面也有限制&#xff0c;轻量不支持CPU内存、带宽或系统盘单独升级&#xff0c;只能整个套餐整体升级&#x…

AWS 入门实践-远程访问AWS EC2 Linux虚拟机

远程访问AWS EC2 Linux虚拟机是AWS云计算服务中的一个基本且重要的技能。本指南旨在为初学者提供一系列步骤&#xff0c;以便成功地设置并远程访问他们的EC2 Linux实例。包括如何上传下载文件、如何ssh远程登录EC2虚拟机。 一、创建一个AWS EC2 Linux 虚拟机 创建一个Amazon…

MySQL通过SQL语句进行递归查询

这里主要是针对于MySQL8.0以下版本&#xff0c;因为MySQL8.0版本出来了一个WITH RECURSIVE函数专门用来进行递归查询的 先看下表格数据&#xff0c;就是很普通的树结构数据&#xff0c;通过parentId关联上下级关系 下面我们先根据上级节点id递归获取所有的下级节点数据&#x…

nmcli绑定bond双网卡(active-backup模式)

当前网卡mac地址IP都不一样 创建名为“jbl”的新连接&#xff0c;并将其模式设置为“active-backup” nmcli connection add type bond ifname jbl mode active-backup添加物理网卡到bond(JBL),两个物理网卡添加到新创建的bond连接中 nmcli connection add type bond-slave…

python:布伊山德U检验(Buishand U test,BUT)突变点检测(以NDVI时间序列为例)

作者:CSDN @ _养乐多_ 本文将介绍布伊山德U检验(Buishand U test,BUT)突变点检测代码。以 NDVI 时间序列为例。输入数据可以是csv,一列NDVI值,一列时间。代码可以扩展到遥感时间序列突变检测(突变年份、突变幅度等)中。 结果如下图所示, 文章目录 一、准备数据二、…

Building Systems with the ChatGPT API

Building Systems with the ChatGPT API 本文是 https://www.deeplearning.ai/short-courses/building-systems-with-chatgpt/ 这门课程的学习笔记。 文章目录 Building Systems with the ChatGPT APIWhat you’ll learn in this course Language Models, the Chat Format and…