计算机网络—数据链路层

news2024/11/18 8:10:39

文章目录

  • 数据链路层服务
    • 差错编码
    • 多路访问协议
      • 信道划分
      • 随机访问MAC协议

数据链路层服务

该层中的帧数据结构:
在这里插入图片描述
帧头部会因为不同的局域网协议而不同,因此会在另一篇博文中继续介绍不同的帧数据报,不在本博文介绍。(不过除了PPP协议外一般都是<目标MAC,源MAC,类型>,占8字节,每个MAC占6字节,类型占2字节)帧尾一般是用于校验的数据。

  • 在数据链路层传输的数据称为:帧(frame)
  • 数据层会负责检错纠错数据
  • 连接两个节点的链路通道
    • 无线连路
    • 有线链路
    • 局域网(特殊链路)

数据链路层:负责将两个节点的数据进行传输

  • 封装帧操作
  • 流量控制

差错编码

  • 汉明距离
    给出两个或者一组(编码集)相同长的二进制数,然后比较每一个位置是否相同,不同汉明距离+1

  • 奇偶校验码
    ❀点击学习奇偶校验码
    这边给出以为博主写的博文,实在是写的太好了,这不是偷懒,确实是写的很好。

  • CheckSum校验和
    ❀点击学习校验和
    因为我之前在传输层UDP中写过一次校验和如何计算,所以这边可以直接跳到传输层UDP。

  • CRC循环冗余校验码
    ❀点击学习CRC循环冗余校验码
    这边给出以为博主写的博文,实在是写的太好了,这不是偷懒,确实是写的很好。

多路访问协议

  • MAC地址(物理地址)
    这个可以理解为链路层的地址,网卡的号码。每个网卡地址都不一样。
    因此我们在拿到IP地址后,其实还不能真正的找到主机的接口将数据传进去,因此还需要在链路层中加一个MAC地址,就是网地址,然后这个地址就是我们要送到的那个接口的地址。

在本博文不解释MAC地址,知道这个知识点先,在局域网技术博文详细介绍

  • MAC协议分类
    • 信道划分MAC协议
    • 随机访问MAC协议
    • 轮转MAC协议

信道划分

  • 首先说明一下:在越来越底层的时候,我们的数据其实所到底都是0、1,然后用电压电流的高低压来传输,用频率来传输等等。
    • TDMA(时分多路复用)
      将时间分成多份,然后每份时间内对应一个传输数据的专用时间,也就是说我在传输数据的时候我这条链路应该给谁用,这TDMA就是将时间分开,然后每一个时间点给不同的数据进行发送。(俗话说,只要你时间够快,别人就看不出你是在串行操作,快到让人感觉你是在并发操作这个数据。)
      在这里插入图片描述

    • FDMA(频分多路复用)
      将频带划分成多份。注意:频带指的是Hz频率,也就是说这个划分能够完成每一条路独立传输数据。
      首先当有有一个频带空闲的时候,我们只需将要传输的数据的频率调到该频带上即可。
      在这里插入图片描述

信道划分首要好处就是不会发生冲突,每个都是独立传输的数据,但是我们分的越多,带宽就越低,所以依旧是不能局限于仅仅使用信道划分。


随机访问MAC协议

  • 变发送数据,边检测冲突
  • 时隙ALOHA协议
    这个时隙的意思就是将这个随机传输数据随机到了时间上面,将时间划成等长的时间,然后再随机的时间内发送数据
    • 只能在每段时间的开始才能发送数据,中间不可,因为要保证在这个时间内是没有人能够恶意的来碰瓷发生冲突
    • 如果没有发生冲突,就一直以这个划分好的每一个时间的开始发送数据
    • 如果发生了冲突后,我就要延迟了,延迟到什么时候呢,就是每个时间开始的时候,我都会以p的概率进行发送,也就是说我可能不发。发的概率是p,不发的概率是1-p。
      在这里插入图片描述
  • 可以看到图中,我们只能在一个时隙内发生冲突(因为规定了在时隙开始才能发送)
  • 浪费的时隙比较多
  • 优点:
    • 高度分散化
    • 实现起来简单
  • ALOHA(纯)
    这个非时隙的ALOHA协议就是有新的数据帧就立马发出去
    (我心想这也要起名字?!)
    在这里插入图片描述
  • CSMA(载波监听多路访问)
    人话:监听信道是否空闲,有空闲就发送
    • 1坚持CSMA
    • 0坚持CSMA
    • p坚持CSMA
      1坚持即一直监听信道
      0坚持即信道忙的时候我不监听信道,等一段时间后我再监听
      p坚持即以概率p执行1坚持,以概率1-p执行0坚持
      注意:在CSMA中是监听信道是否空闲,而不是监听是否冲突

但是即使是这样我们的链路传输发生延迟的时候还是会发生冲突,因此我们不能立马监听到某地发送数据了,因此我们还需优化。

  • CSMA/CD
    人话:发送的时候 同时 监听是否冲突
    注意:这个是基于CSMA然后执行他自己添加的功能:边发边听是否冲突
    • 由于还是有延迟问题,所以我们必须要解决这个问题,那就是我们在设计链路的时候为了防止延迟冲突,就需要设计出在某个子网内的一个合理的最远链路距离。
      在这里插入图片描述

为什么要L/R>=RTT?因为是用最小的那个数据帧长度衡量,即Lmin是最小的,也就是说传输最快的,但是我们通告冲突的最极端的情况就是在快要送达目的的时候出现冲突,这时候就要开始通告我们冲突信息了,所以说我们通告的时间是希望RTT通告信号的时间尽可能快过网络带宽传输速度

  • 轮询(意指轮流询问)
    轮流询问,那询问必然需要一台管理主机。

    • 我们要一个master机器,他就是负责去邀请我们链路上的主机结点,过来问声:节点兄弟,你要不要发数据呀?发的话我可以帮你开路哦~,如果他不发就问下一个。
    • 缺点
      缺点也很明显,单点失效,就是万一他的这个master有一天down机,那我链路上的结点也就传不了数据了。
      而且要一个个问你很烦的呀,节点多的时候很久都可能轮不到你发。
  • 令牌传递
    在链路中发一个令牌,然后我们主机之间形成一个传递令牌的链路,就类似于现在炸弹游戏,一个个的轮流拿着令牌,在这个网络协议中只有拿令牌那一方可以发送数据。

    • 这个令牌是一个特殊帧,由一个主节点发放
    • 假如令牌在一定时间内还没轮传递,就会默认该令牌丢失了,主节点就会重新传一个特殊帧继续让主机们轮流传递令牌
    • 缺点:依旧是延迟,依旧单点故障,还有就是开销问题(令牌也要占据链路带宽)。

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

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

相关文章

Docker学习笔记11

Docker容器镜像&#xff1a; 1&#xff09;docker client 向docker daemon发起创建容器的请求&#xff1b; 2&#xff09;docker daemon查找本地有客户端需要的镜像&#xff1b; 3&#xff09;如无&#xff0c;docker daemon则到容器的镜像仓库中下载客户端需要的镜像&#…

线性代数基础--向量

目录 向量的概念 基本概念 抽象概念 向量的意义 几何意义 物理意义 欧式空间 特点和性质 行向量与列向量 行向量 列向量 两者的关系 向量的基本运算与范数 向量的基本运算 向量的加法 数乘运算&#xff08;实数与向量相乘&#xff09; 转置 向量的范数 向量…

echart 设置柱状图y轴最大刻度

start 最近接到需求希望柱状图 y轴最大高度可以略高一些&#xff1b;柱状图的数据能展示在柱状图的上方 记录一下相关配置项 解决方案 官方文档说明 https://echarts.apache.org/zh/option.html#xAxis.max 效果 代码 {key: business,title: {text: 业务领域分类,textSt…

DAY32:回溯算法(七)全排列+全排列Ⅱ(排列问题)

文章目录 46.全排列思路树形图used数组的作用 伪代码完整版时间复杂度总结 47.全排列Ⅱ思路树形图 完整版时间复杂度总结 46.全排列 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xf…

C#和LABVIEW的对决:哪种上位机编程语言更适合你?

今天&#xff0c;我们将谈论主流的上位机编程语言。你听说过C#和LABVIEW吗&#xff1f;它们是的上位机编程语言&#xff0c;C#作为自动化主流编程语言特别受欢迎&#xff0c;LABVIEW用于自动化测试&#xff0c; 首先&#xff0c;我们来了解C#语言。C#是一种文本语言&#xff0c…

2023年江西省研究生数模竞赛植物的多样性

2023年江西省研究生数模竞赛 植物的多样性 原题再现 植物作为食物链中的生产者&#xff0c;通过光合作用吸收二氧化碳&#xff0c;制造氧气&#xff0c;同时为其他生物提供食物和栖息地&#xff0c;支持它们的生存。植物在生态系统中还起到防止水土流失、缓解温室效应等作用。…

新手小白编程利器!Debug 断点调试工具IDEA

前言 很多新手小白在学习的时候总会遇到一个问题&#xff1a; 我们一运行程序&#xff0c;只能看到程序最后的结果&#xff0c;但是这个程序究竟是怎么一步步运行出这样的结果呢&#xff1f;如果有一个工具能够让我们看到我们程序的执行流程该有多好~ 这就需要用到新手小白编程…

modbus转MQTT网关支持自定义JSON格式

在工业自动化系统中&#xff0c;Modbus是一种非常常见的通信协议&#xff0c;而OPC UA则是近年来兴起的一种新型通信协议。由于各种设备之间使用的通信协议不尽相同&#xff0c;因此需要一种能够实现多种协议转换的网关产品。BL110网关就是一款能够实现Modbus到OPC UA转换的产品…

硬件设计-PLL篇(下)

目录 概要 整体架构流程 技术名词解释 技术细节 1.环路滤波器采用有源滤波器还是无源滤波器&#xff1f;、 2.如何设计 VCO 输出功率分配器&#xff1f;、 3.如何设置电荷泵的极性&#xff1f; 4.锁定指示电路如何设计&#xff1f; 小结 概要 提示&#xff1a;这里可以添加技术…

学习Spring的补充

《JavaEE 框架整合开发入门到实践 》这本书还是太浅了 &#xff0c;需要补充一些基本的知识。 首先修改一下快捷键&#xff0c;使得可以像eclipse一样使用alt/ 快速补全代码。 参考博客&#xff1a; (33条消息) IDEA 设置代码提示或自动补全的快捷键_idea补全提示_thirty.st…

【Java核心技术】面向对象编程

面向对象编程 1、面向过程与面向对象面向过程(POP)与面向对象(OOP)面向对象的三大特征面向对象的思想概述 2、Java语言基本元素&#xff1a;类和对象类和对象类和对象的使用&#xff08;面向对象思想落地的实现&#xff09;对象的创建和使用&#xff1a;内存解析 3、类的成员之…

【瑞萨RA6系列】CoreMark移植完全指南——UART输出和SysTick计时

一、CoreMark简介 什么是CoreMark&#xff1f; 来自CoreMark首页的解释是&#xff1a; CoreMark is a simple, yet sophisticated benchmark that is designed specifically to test the functionality of a processor core. Running CoreMark produces a single-number scor…

tomcat进程注入

跟随上一篇《java进程注入》 这里使用memShell https://github.com/rebeyond/memShell 将agent.jar和inject.jar放到tomcta的web目录下 然后输入命令注入 效果&#xff1a; 注入成功后 可以看到agent.jar文件为了防止发现&#xff0c;自动清除&#xff0c;而且重启电脑之后&…

【Python数据分析】Python中axis的理解

axis用来为超过一维的数组定义属性。 理解时从数据变化的方向入手&#xff01; 以二维数据为例&#xff0c;在二维数据中&#xff0c;1表示横轴&#xff0c;方向从左到右&#xff1b;0表示纵轴&#xff0c;方向从上到下从数轴的方向入手&#xff0c;理解数据变化&#xff0c;a…

测试这碗饭,你还拿得稳吗?

今年测试行业格外寒冷&#xff0c;大部分人为了糊口饭吃&#xff0c;紧紧地捂住了本来已经很嫌弃的饭碗&#xff0c;以便挺过寒冬迎接春天。 公司天天加班&#xff0c;新出了各种扣款制度&#xff0c;为了上老下小我忍了。 2022年度的绩效&#xff0c;2023年都要过完了&#xf…

Windows同时安装两个版本JDK,并实现动态切换

1、载安装两个版本的JDK 安装后&#xff0c;默认路径C:\Program Files\Java。 实际上JDK8有两个包一个jdk1.8.0_311&#xff0c;一个jre1.8.0_311。 JDK11只有一个jdk-11.0.16.1。 2、系统环境配置 设置JAVA_HOME 在环境变量中选中Path&#xff0c;点击编辑 点击新建&…

DARAZ使用虚拟信用卡购物教程

Daraz为阿里巴巴南亚电商平台&#xff0c;市场覆盖巴基斯坦、孟加拉、斯里兰卡、尼泊尔和缅甸超过5亿人口级别市场&#xff0c;是南亚地区最受欢迎的在线购物网站&#xff0c;购物APP NO.1。 注册一个DARAZ的买家账号。 找到需要购买的商品&#xff0c;点击Buy Now进行购买 填…

Sip通话,qq通话,微信通话,普通的通话的条件和过程描述

SiP通话 SIP电话是基于SIP&#xff08;Session Initiation Protocol&#xff0c;会话初始化协议&#xff09;协议实现的通信。SIP是一种应用层协议&#xff0c;用于建立、修改和终止多媒体会话&#xff0c;如语音通话、视频通话等。SIP电话通过SIP协议进行信令交换和媒体流传输…

【MySQL学习笔记】(二)MySQL操作库基础

库的操作 1 创建数据库2 关于字符集和校验规则2.1 查看系统字符集以及校验规则2.2 查看数据支持的字符集2.3 查看数据库支持的字符集校验规则3 删除数据库4 查看并使用数据库5 修改数据库6 查看连接情况7 备份和恢复 1 创建数据库 1&#xff09;创建数据库 在学习笔记&#xf…

ChatGLM-6b本地安装手把手教学

什么是ChatGLM-6B ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型&#xff0c;基于 General Language Model (GLM) 架构&#xff0c;具有 62 亿参数。结合模型量化技术&#xff0c;用户可以在消费级的显卡上进行本地部署&#xff08;INT4 量化级别下最低只需 6GB 显存&…