数据链路层概述

  

        数据传输过程如下:

 

         数据包按上述过程传输,详见(计算机网络概述三)。在分析数据链路层时可以假象成其沿着水平传播。

        这三段链路层的传播方式可能会有所不同。

基本概念:

        链路:指一个节点到相邻节点的一段物理线路,有线或者无线,而中间没有其他的交换节点。

        数据链路:当在一条链路上传送数据时,除了需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的软件或者硬件加到链路上,就形成了数据链路。

        网卡就实现了这些协议。

        帧:数据链路层对等实体之间在水平方向进行逻辑通信的协议数据单元PDU。

 三个问题概述:

        下图为封装成帧的情况。

         依照帧的首部和尾部标志位识别出帧的开始和结束的过程叫做帧定界。

         接收机接收到的数据根据标志字识别出帧的首部和尾部来区分两个帧。 但是当数据载荷部分有(PDU)有和帧尾部和帧首部时,会导致识别出的帧的错误,这一问题为透明传输问题

差错检测:(如何知道帧中出现了误码)

         提出一种检错码,将帧的内容计算为一个检错码。判断接收帧和发送帧的检错码是否相同。

可靠传输服务:

封装成帧和透明传输:

       封装成帧指的是数据链路层交给上层交付的协议数据单元添加帧头和帧尾使之称为帧,帧头和帧为重含有重要的控制信息,但不是每一种数据传输协议都包含帧定界标志。如MAC帧

        在数据链路层向物理层传输时,物理层给MAC帧添加前导码来实现帧定界的作用,此外,MAC帧每一帧和每一帧中都有一定的传输间隔。

        透明传输:数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

 

        当PDU中还有flag时会导致误判帧定界。因此PDU中不能含有flag。此时就称为不透明传输。

解决方法:

        没出现一个帧定界符时将其插入转译字符,如下:

        如果在检测到帧定界符时,如果后面有转译字符,如果有转译字符,那么就剔除转译字符,继续寻找帧定界符。

        又有面向比特的透明传输:即

         PDU中如果每出现5个连续的1,就插入0,以此来保证PDU中不会出现帧定界符。

 

        为了提升效率:帧的数据部分应该远远长于帧头和帧尾。但是应该有一个最大限制,称为MTU(Max Trans Unit)。

  差错检错:

       实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1变为0,0变为1.这称为比特差错

         如上图中的FCS码用来进行差错检测。

奇偶校验:

        在待发送的数据中添加1位奇偶校验码,使得1的个数位奇数或者偶数。

         显然其检错率较高。

循环冗余校验:

        收发双方约定好一个生成多项式G(x);

        基于待发送数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据后一起传输。

        接收方通过生成多项式来计算收到的数据是否产生了误码;

 示例:

           

 

         

 

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

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

相关文章

用于视觉跟踪的在线特征选择研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

HBase-组成

client 读写请求HMaster 管理元数据监控region是否需要进行负载均衡,故障转移和region的拆分RegionServer 负责数据cell的处理,例如写入数据put,查询数据get等 拆分合并Region的实际执行者,由Master监控,由regionServ…

C#实现旋转图片验证码

开发环境:C#,VS2019,.NET Core 3.1,ASP.NET Core 1、建立一个验证码控制器 新建两个方法Create和Check,Create用于创建验证码(返回1张图片和令牌),Check用于验证(验证图…

Qt应用开发(基础篇)——LCD数值类 QLCDNumber

一、前言 QLCDNumber类继承于QFrame,QFrame继承于QWidget,是Qt的一个基础小部件。 QLCDNumber用来显示一个带有类似lcd数字的数字,适用于信号灯、跑步机、体温计、时钟、电表、水表、血压计等仪器类产品的数值显示。 QLCDNumber可以显示十进制…

【RabbitMQ】golang客户端教程3——发布订阅(使用fanout交换器)

发布订阅 在上一个教程中,我们创建了一个工作队列。工作队列背后的假设是每个任务只传递给一个工人。在这一部分中,我们将做一些完全不同的事情——我们将向多个消费者传递一个消息。这就是所谓的“订阅/发布模式”。 为了说明这种模式,我们…

cloudstack management高可用

一、环境说明 CPU: kunpeng 920 操作系统:OpenEuler 22.03 IP角色192.168.157.20mysql192.168.157.21management-server 1192.168.157.22management-server 2192.168.157.30nginx 二、部署 基础环境准备参考【cloudstack测试环境搭建】 1、部署mysql&…

若依管理系统后端将 Mybatis 升级为 Mybatis-Plus

文章目录 说明流程增加依赖修改配置文件注释掉MybatisConfig里面的Bean 代码生成使用IDEA生成代码注意 Controller文件 说明 若依管理系统是一个非常完善的管理系统模板,里面含有代码生成的方法,可以帮助用户快速进行开发,但是项目使用的是m…

linux手动安装 golangci-lint-1.53.3-linux-386.rpm

首先还是 去下载对应的 rpm 包 https://github.com/golangci/golangci-lint/releases 然后上传到 服务器/usr/local 目录下 执行安装命令 sudo rpm -ivh golangci-lint-1.53.3-linux-386.rpm 查看版本 golangci-lint --version

一周 AIGC 丨苹果下架多款 AIGC 应用,阿里云开源通义千问 70 亿参数模型

多个 AIGC 应用在苹果应用商店下架,包含数据采集和使用不够规范等问题。阿里云开源通义千问 70 亿参数模型,包括通用模型 Qwen-7 B 和对话模型 Qwen-7 B-Chat。腾讯混元大模型开始应用内测,内部多个业务线接入测试。百度智能云“千帆大模型平…

Azure通过自动化账户实现对资源变更

Azure通过自动化账户实现对资源变更 创建一个自动化账户第一种方式 添加凭据(有更改资源权限的账户,没有auth认证情况)创建一个Runbook,测试修改 AnalysisServices 定价层设置定时任务:开始定时任务: 第二种…

Python爬虫(八)_Requests的使用

Requests:让HTTP服务人类 虽然Python的标准库中urllib2模块中已经包含了平常我们使用的大多数功能,但是它的API使用起来让人感觉不太好,而Requests自称"HTTP for Humans",说明使用更简单方便。 Requests唯一的一个非转…

【移动机器人运动规划】03 —— 基于运动学、动力学约束的路径规划

文章目录 前言相关代码整理:相关文章: 介绍什么是kinodynamic?为什么需要kinodynamic?模型示例unicycle model(独轮车模型)differential model(两轮差速模型)Simplified car model (简化车辆模型…

【技巧】如何保护PowerPoint不被改动?

PPT,也就是PowerPoint,是很多小伙伴在工作生活中经常用到的图形演示文稿软件。 做好PPT后,担心自己不小心改动了或者不想他人随意更改,我们可以如何保护PPT呢?下面小编就来分享两个常用的方法: 1. 将PPT改…

win10笔记本显示器根据页面显示亮度自动调节亮度的问题

系统是win10企业版,针对这个问题查了很多种方法,比如: 1、控制面板->硬件和声音->电源选项->点击当前电源计划的更改计划设置->更改高级电源设置->显示->启用自适应亮度 但是我发现我的电源计划只有平衡这一种&#xff0c…

怎么把图片表格转换成word表格?几个步骤达成

在处理文档时,图片表格的转换是一个常见的需求。而手动输入表格是非常耗时的,因此,使用文本识别软件来自动转换图片表格可以大大提高工作效率。在本文中,我们将介绍如何使用OCR文字识别技术来将图片表格转换为Word表格。 OCR文字识…

【架构设计】高并发架构实战:从需求分析到系统设计

写在前面 很多软件工程师的职业规划是成为架构师,但是要成为架构师很多时候要求先有架构设计经验,而不做架构师又怎么会有架构设计经验呢?那么要如何获得架构设计经验呢? 1 高并发是什么 高并发是指系统在同一时间内处理的请求量…

tomcat上部署jpress

一.确保有jdk,tomcat和mysql环境 二.新建jpress数据库,新建jpress用户并赋予所有权限 三.将jpress的war上传到tomcat/apache-tomcat-8.5.70/webapps,具体根据你的实际tomcat安装路径为准,上传完成后他会自己解包 四.到浏览器完…

python优雅地爬虫

申明:仅用作学习用途,不提供任何的商业价值。 背景 我需要获得新闻,然后tts,在每天上班的路上可以听一下。具体的方案后期我也会做一次分享。先看我喜欢的万能的老路:获得html内容-> python的工具库解析&#xff0…

FreeRTOS(系统配置)

一、FreeRTOSConfig.h文件 FreeRTOS的系统配置文件为FreeRTOSConfig.h,在此配置文件中可完成FreeRTOS的裁剪与配置。 FreeRTOSConfig.h 根据正在构建的应用程序定制 FreeRTOS 内核。因此,它特定于应用程序,而不是 FreeRTOS,并且应…

容器——2.Collection 子接口之 List

文章目录 2.1. Arraylist 和 Vector 的区别?2.2. Arraylist 与 LinkedList 区别?2.2.1. 补充内容:双向链表和双向循环链表2.2.2. 补充内容:RandomAccess 接口 2.3 ArrayList 的扩容机制 2.1. Arraylist 和 Vector 的区别? ArrayList 是 List 的主要实现类,底层使…