当前位置: 首页 > news >正文

数据链路层概述

  

        数据传输过程如下:

 

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

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

基本概念:

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

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

        网卡就实现了这些协议。

        帧:数据链路层对等实体之间在水平方向进行逻辑通信的协议数据单元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);

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

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

 示例:

           

 

         

 

相关文章:

数据链路层概述

数据传输过程如下: 数据包按上述过程传输,详见(计算机网络概述三)。在分析数据链路层时可以假象成其沿着水平传播。 这三段链路层的传播方式可能会有所不同。 基本概念: 链路:指一个节点到相邻节点的一段物…...

Python代码使用技巧汇总:提升你的编程技能

各位程序员朋友们,今天我要跟大家分享一些关于Python代码的最佳使用技巧,这些技巧可以帮助你们成为更专业且高效的程序员。不管你是刚刚入门还是已经有一些经验,这些技巧都能够为你提供实际操作价值。 一、合理使用Python的数据结构和算法&am…...

Ae 效果:CC Spotlight

透视/CC Spotlight Perspective/CC Spotlight CC Spotlight(CC 聚光灯) 主要用途是创建和控制逼真的聚光灯效果。通过调整这些属性,可以模拟出各种不同的照明环境和效果,比如舞台照明、日出日落、特定的颜色照明等。 ◆ ◆ ◆ 效…...

如何在页面中嵌入音频和视频?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 嵌入音频⭐ 嵌入视频⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏…...

Unity 中检测射线穿过的所有的物体

在开发中 有个需求,射线要检测所有穿过的物体。 代码如下: using UnityEngine;public class HitCollider : MonoBehaviour {public float raycastDistance Mathf.Infinity;// Update is called once per framevoid Update(){Ray ray Camera.main.Scre…...

LeetCode 29题:两数相除

题目 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345 将被截断为 8 ,-2.…...

Axure RP9中使用Echarts示例

目录 在Axure中拖入一个矩形框,并命名tes 进入Echarts官网示例页面https://echarts.apache.org/examples/zh/index.html 选择自己需要的图表,修改数据,并复制左侧js代码 把上面复制的代码替换下方的option{}; javascript: var script docum…...

利用Jmeter做接口测试全流程分析

利用Jmeter做接口测试怎么做呢?过程真的是超级简单。 明白了原理以后,把零碎的知识点填充进去就可以了。这篇文章就来介绍一下如何利用Jmeter做接口测试的流程,主要针对的是功能测试。暂不涉及到自动化测试和性能测试的内容。 一把来说&…...

超级浏览器与指纹浏览器:功能与特点的比较

导语:随着互联网的快速发展,隐私和安全问题日益受到关注。在这个背景下,超级浏览器和指纹浏览器作为定制化浏览器的两个重要类型,各自具有独特的功能和特点。本文将对超级浏览器和指纹浏览器进行比较,帮助读者更好地理…...

云端同步、高效无界:5款免费的跨平台思维导图软件推荐!

思维导图是一种以图形化方式表示思想、概念或任务的方法,可以帮助用户梳理思维、提高记忆和理解。在工作中,思维导图可以用于会议记录、任务规划、项目管理等,帮助提高工作效率和团队协作能力;在学习中,思维导图可以用…...

OpenAI允许网站阻止其网络爬虫;谷歌推出类似Grammarly的语法检查功能

🦉 AI新闻 🚀 OpenAI推出新功能,允许网站阻止其网络爬虫抓取数据训练GPT模型 摘要:OpenAI最近推出了一个新功能,允许网站阻止其网络爬虫从其网站上抓取数据训练GPT模型。该功能通过在网站的Robots.txt文件中禁止GPTB…...

SpringBoot操作Jedis

SpringBoot操作Jedis 1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://ma…...

实现静态资源访问的几种方法

什么是静态资源&#xff1f; 静态资源是指在服务器端存储的不会变化的文件&#xff0c;如HTML、CSS、JavaScript、图片、音频、视频等文件。这些文件一般不包含动态内容&#xff0c;每次请求时返回的内容都是固定的。 为什么要使用静态资源&#xff1f; 提升网站性能&#xf…...

chrome 下 autocomplete=off (禁止记住密码)不起作用解决方案

chrome 下 autocompleteoff (禁止记住密码)不起作用解决方案&#xff1a; 不知道是否是CHROME一个BUG&#xff0c;按说不应该&#xff0c;但事实它确实存在。 因时间关系&#xff0c;懒得查阅官方资料&#xff0c;这类问题解锁容易&#xff0c;思路如下&#xff1a; 初始化设置…...

设计模式-简单工厂模式(静态工厂模式)java实现

介绍 简单工厂模式根据所提供的参数数据返回几个可能类中的一个类的实例。通常返回的类都有一个公共的父类和公共的方法。 意图 提供一个类&#xff0c;负责根据一定的条件创建某一具体类的实例。同时使用工厂模式也是为了隐藏创建对象的过程 角色及其职责 (1)工厂(Creator…...

如何共享笔记本电脑网络

为了让手机连接笔记本网络&#xff0c;我们通常通过在笔记本上安装诸如WiFi共享精灵来实现&#xff0c;其实没有那么麻烦&#xff1a; 1、在电脑上打开“设置”—>选择“网络和Internet”—>选择“移动热点”&#xff08;如果系统是Windows 7或更低版本&#xff0c;则需要…...

Android 高级进阶知识整理

Android Framework 启动流程 init 进程启动过程 Android系统启动流程 Zygote启动流程及源码分析 APP启动流程 init进程是Android用户空间第一个进程&#xff0c;主要做以下3件事情&#xff1a; 创建和挂载启动所需的文件目录。初始化和启动关键服务&#xff0c;守护关键…...

一文详解 DolphinDB SQL 标准化

为了提升用户体验&#xff0c;降低用户学习成本和脚本迁移复杂度&#xff0c;自 1.30.17 / 2.00.5 版本开始&#xff0c;DolphinDB 逐步支持了标准化 SQL 的书写方法&#xff1b;并于 1.30.22 / 2.00.10 版本起&#xff0c;对标准 SQL 的常用语法和关键字实现了兼容。 1. 与标…...

ATF(TF-A)安全通告汇总

目录计划如下&#xff0c;相关内容补充中&#xff0c;待完成后进行超链接&#xff0c;敬请期待&#xff0c;欢迎您的关注 1、Advisory TFV-1 (CVE-2016-10319) 2、Advisory TFV-2 (CVE-2017-7564) 3、Advisory TFV-3 (CVE-2017-7563) 4、Advisory TFV-4 (CVE-2017-9607) 5、Ad…...

vuejs 设计与实现 - 简单diff算法

DOM 复用与key的作用&#xff1a; DOM 复用什么时候可复用&#xff1f; key 属性就像虚拟节点的“身份证”号&#xff0c;只要两个虚拟节点的 type属性值和 key 属性值都相同&#xff0c;那么我们就认为它们是相同的&#xff0c;即可以进行 DOM 的复用。即 我们通过【移动】来…...

【前端|Javascript第3篇】探秘JavaScript的作用域与作用域链:小白也能轻松搞懂!

大家好&#xff01;欢迎来到本篇博客&#xff0c;今天我们将解开JavaScript编程世界中的一道神秘面纱&#xff1a;作用域与作用域链。很多Javascript开发者并不真正理解它们&#xff0c;但这些概念对掌握Javascript至关重要。如果你对这些概念感到困惑&#xff0c;不要担心&…...

【Spring AOP】结合日志面向切面编程 两种写法

概念 这里需要提前了解什么是Spring的AOP&#xff08;Aspect Oriented Programming&#xff09;。是在OOP&#xff08;面向对象&#xff09;思想的一种拓展思想。简单来说就是将某个代码块嵌入到其它的代码块中。笔者先前学Spring也有学什么IoC啊AOP啊&#xff0c;但实际上没有…...

C#在自动化领域的应用前景与潜力

人机界面&#xff08;HMI&#xff09;开发&#xff1a;使用C#开发人机界面软件&#xff0c;实现与自动化设备的交互和监控。C#的图形界面设计能力和丰富的控件库使得开发人员能够创建直观、易用的界面。 数据采集与处理&#xff1a;C#可以与各种传感器、设备进行数据通信和采集…...

string模拟实现:

string模拟实现&#xff1a; 上一篇博客&#xff0c;我们对String类有了一个基本的认识&#xff0c;本篇博客我们来从0~1去模拟实现一个String类&#xff0c;当然我们实现的都是一些常用的接口。 ❓我们这里定义了一个string类型&#xff0c;然后STL标准库里面也有string&#…...

系统与软件安全研究(八)

FUZZ101入门 Detail gcc,clang,llvm都有啥区别GCC (GNU Compiler Collection), Clang, 和 LLVM 都是用于编译代码的工具链。它们在某些方面有相似之处,但也有一些重要的区别。 GCC (GNU Compiler Collection):GCC 是由 GNU 组织开发的,是一个非常流行的开源编译器集合。它…...

jmeter测试rpc接口-使用dubbo框架调用【杭州多测师_王sir】

1.基于SOAP架构。基于XML规范。基于WebService协议。特点:接口地址?wsdl结尾2.基于RPC架构&#xff0c;基于dubbo协议&#xff0c;thrift协议。SpringCloud微服务。3.基于RestFul架构&#xff0c;基于json规范。基于http协议(我们常用的都是这种&#xff0c;cms平台也是) Rest…...

Java8中forEach()里使用return的效果

先总结&#xff1a;使用forEach()处理集合时不能使用break和continue这两个方法&#xff0c;可以使用无返回值的return跳出此次循环&#xff0c;效果同标准for循环的continue。 首先&#xff0c;forEach()先对入参判空&#xff0c;然后使用增强for循环调用action.accept(t)&am…...

MVC配置原理

如果你想保存springboot的mvc配置并且还想自己添加自己的配置就用这个。 视图解析器原理&#xff0c;它会从IOC容器里获取配置好视图解析器的配置类里的视图解析器集合&#xff0c; 然后遍历集合&#xff0c;生成一个一个的视图对象&#xff0c;放入候选 视图里&#xff0c;…...

rabbitmq安装

安装erlang方案二 vi /etc/yum.repos.d/rabbitmq-erlang.repo 文件内容&#xff1a; In /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erlang] namerabbitmq-erlang baseurlhttps://dl.bintray.com/rabbitmq-erlang/rpm/erlang/22/el/7 gpgcheck1 gpgkeyhttps://dl.bi…...

轻松抓取网页内容!API助力开发者,快速数据采集

在如今这个信息爆炸的时代&#xff0c;人们需要从各种渠道获取数据来支持自己的业务需求。而对于开发者们来说&#xff0c;如何快速、准确地从互联网上抓取所需的数据也成为了一项重要的技能。而抓取网页内容 API 则是一种能够帮助开发者轻松实现数据抓取的工具。 一、什么是抓…...

石家庄网站外包/西安网站维护公司

描述60台计算机的机房所需要的设备也就是网线&#xff0c;交换机&#xff0c;路由器&#xff0c;这个规模也就算是一个小型的局域网&#xff0c;接下来我就详细讲解一下具体怎样组网、60台电脑规模的局域网怎样连接首先第一步应该将“路由器”与“光猫”串连&#xff0c;串连所…...

做美食网站视频下载/百度入口官网

课程主页在 http://blog.csdn.net/sxhelijian/article/details/39152703&#xff0c;课程资源在 云学堂“贺老师课堂”同步展示&#xff0c;使用的帐号请到课程主页中查看。 这段代码是典型的用空间换时间的算法&#xff0c;数据与存储其所占空间的下标完全相同。这段代码不具有…...

伪静态网站/如何开通自己的网站

iphone4锁屏键坏了图文教你修复 来源&#xff1a;互联网 作者&#xff1a;佚名 时间&#xff1a;03-07 16:18:30 【大 中 小】iphone4锁屏键经常使用&#xff0c;所以坏的可能性是很大而且不在少说&#xff0c;接下来为你详细分享一下解决方法&#xff0c;感兴趣的朋友可以参考…...

做身份证网站/市场推广方案怎么做

Angular 中的路由 一、 Angular 创建一个默认带路由的项目 命令创建项目 ng new ng-demo --skip-install 创建需要的组件 ng g component components/home ng g component components/news ng g component components/newscontent找到 app-routing.module.ts 配置路由 引入…...

logo在线制作免费生成器无水印/广州seo关键词优化费用

使用python自带的itertools模块 调用其product函数 传入我们想组合生成的字符数据 便会源源不断的生成组合 而且不会重复 repeat参数指定生成多少位 import itertools mylist("".join(x) for x in itertools.product("0123456789abcdefghijklmnopqrstuvwx…...

免费铺货诚招代理商/百度seo工具

这次给大家带来js如何直接获取网页中图片地址&#xff0c;js直接获取网页中图片地址的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。第一种方法&#xff1a;js通过正则实现/*** 获取html代码中图片地址* param htmlstr* returns {Array}*/function ge…...