数据链路层:媒体接入控制

news2024/10/7 0:26:48

1.数据链路层:媒体接入控制

笔记来源:
湖科大教书匠:媒体接入控制的基本概念
湖科大教书匠:随机接入–CSMA/CD协议
湖科大教书匠:随机接入–CSMA/CA协议

声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考

共享信道着重考虑的问题是:如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC

媒体接入控制的划分

下图来自:3.21.频分多路复用(FDM)

1.1静态划分信道

信道复用概念

“复用”是一种将若干个彼此独立的信号,合并为一个可在同一信道上同时传输的复合信号的方法。

1.1.1 频分复用FDM

每个频率的信号都独占一个信道,类似并行
下图来自:3.21.频分多路复用(FDM)

1.1.2 时分复用TDM

在一个周期中第一个时间段内红色信号独占信道,第二个时间段内黄色信号独占信道,类似并发
时分复用的所有用户在不同时间占用同样的频带宽度
下图来自:3.22.时分多路复用(TDM)

1.1.3 波分复用WDM

波分复用就是光的频分复用
不同波长(频率)的光在同一信道中不会干扰
下图来自:3.24.波分多路复用(WDM)

光信号传输一段距离后会衰减,所以使用了放大器

1.1.4 码分复用CDM(码分多址CDMA)

给每个主机进行编码(此主机的唯一标识),若该主机发送比特1就用这个编码代表,若发送比特0就用这个编码的反码代表。
下图来自:3.25.码分多路复用(CDMA)
下图中如果主机A和主机B发送的数据不在同一个子信道(子频带)上则不会产生冲突,若在同一个子信道(子频带)上则会产生冲突。该如何解决这种情况?线性相加。相加后的数据到达目的地后如何处理?叠加后的数据与源站规格化内积

比特时间是发送一比特所需的时间,它是数据传输速率的倒数

两个主机可以共享同一个信道的前提是:两站码片序列规格化内积为0



例1:

例2:

1.2 动态划分信道

1.2.1 ALOHA协议

下图来自:ALOHA协议

1.2.2 CSMA协议(载波监听多址接入)

载波监听:每个站在发送帧之前先检测总线上是否有其他站发送帧
多址接入:多个站连接到一条总线,竞争使用总线

CSMA比ALOHA多了监听,先监听信道是否被占用,若信道忙,则推迟发送,若信道闲,则发送
下图来自:CSMA协议

1.2.3 随机接入–CSMA/CD协议(载波监听多址接入/碰撞检测)

碰撞检测:正在发送帧的站点边发送帧边检测碰撞(先听再发)
发送过程中实时检测(边听边发)
检测过程中一旦发现冲突则停止发送(冲突停发)
停发之后剩余的数据再随机重发
共享式以太网的媒体接入控制协议CSMA/CD


CSMA/CD协议不能进行全双工通信(A->B同时A<-B),只能进行半双工通信(只能A->B或者A<-B)

发送端A的信号与B的信号发生碰撞,B的信号被A端收到时检测到碰撞,碰撞点可能在总线中任意一个位置
发送端检测到碰撞最长耗时的情况为:碰撞点无限接近于终点,这样的话收到B的信号就需要B的信号在整个总线上的传播时延,这样从发送端A发出信号的传播时延(整个总线上的传播时延)+碰撞后B信号到A的传播时延 = 两倍传播时延
无限趋于 2 τ 2\tau 2τ 也叫冲突窗口、争用期,主机最多经过 2 τ 2\tau 2τ的时长就可检测到本次发送是否遭受了碰撞,经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发送碰撞。

怎么保证“碰撞停发”?
在争用期内检测到碰撞,而当前帧还没有发送完毕,则主机A立即中止发送,保证了碰撞停发(发送一个帧的过程中检测到碰撞,而不是发完一帧后检测到碰撞),则接收端将该帧作为无效帧丢弃。
最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞
最小帧长=2×传播时延×数据率= 2 τ ×数据率 \text{最小帧长=2×传播时延×数据率=$2\tau$×数据率} 最小帧长=2×传播时延×数据率=2τ×数据率
若发送的数据非常少,必须加入一些填充字节,使得帧长不小于64字节(以太网规定最小帧长为64字节)
若在争用期内没有检测到碰撞,那后续发送的数据一定不会发生碰撞
若在争用期内检测到了碰撞,就立即中止发送,这时发送出去的数据一定小于64字节,因此长度小于64字节的帧都是由于碰撞而异常中止的无效帧
如何重发(重发时机及次数)?
截断二进制指数退避算法:
随机推迟/退避r倍争用期: r ∗ 2 τ r*2\tau r2τ(争用期作为基本退避时间)
r ∈ [ 0 , 1 , … … , 2 k − 1 ] r\in[0,1,……,2^k-1] r[0,1,……,2k1] k = m i n ( 重传次数,10 ) k=min(\text{重传次数,10}) k=min(重传次数,10)

1.2.4 随机接入–CSMA/CA协议(载波监听多址接入/碰撞避免)

802.11局域网的媒体接入控制协议CSMA/CA,在CSMA基础上增加一个 碰撞避免(CA) 功能,不再实现碰撞检测功能


如何尽可能避免碰撞?
发送前通知其他节点,在某段时间内不要发送
实现碰撞避免的三种机制:

发送数据帧之前先发送RTS帧(请求发送帧),在收到响应CTS帧(允许发送帧)后,就可发送数据帧

虽然C收不到A发送的RTS帧,但能收到B发送的CTS帧,这样C就知道信道被占用多长时间了,在这段时间内C不能向信道发送帧

802.11的MAC层中定义的两种不同媒体接入控制方式:

帧间间隔(IFS):所有站点必须在持续检测到信道空闲一段指定时间后才能发送帧
短帧间间隔(SIFS):用来分隔开属于一次对话的各帧
DCF帧间间隔(DIFS):比SIFS长得多,在DCF方式中用来发送数据帧和管理帧

源站为什么在检测到信道空闲后还要等待DIFS?
考虑到有其他高优先级的帧要发送,若有,就要让高优先级帧先发送
目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?
在SIFS这段时间内,一个站点应当能够从发送方式切换到接收方式
信道由忙转为空闲且经过DIFS后,为什么还要退避一段随机时间才能使用信道?
防止多个站点同时发送数据而产生碰撞

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

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

相关文章

微信小程序——监听页面滑动(二)判断用户在做向上滑动还是向下滑动(onScrollPage scroll-view)

手把手教你学会判断用户在做向上滑动还是向下滑动 知识回调&#xff08;不懂就看这儿&#xff01;&#xff09;场景复现核心干货onPageScroll结合scrollTop实现了解touch方法 知识回调&#xff08;不懂就看这儿&#xff01;&#xff09; 知识专栏专栏链接微信小程序专栏https:…

1.WebGL与Shader介绍

webgl介绍 WebGL是一种用于在网页浏览器中创建交互式3D图形的技术。它基于OpenGL ES 2.0&#xff0c;这是一个广泛使用的嵌入式系统3D图形API。以下是webgl的发展史&#xff1a; WebGL允许开发人员使用JavaScript编写代码来控制GPU&#xff08;图形处理单元&#xff09;&…

字符集、字符编码格式检测和转码

目录 1 locale与字符集 1.1 locale 1.2 字符集 2 常见字符集 2.1 Native ANSI 字符集 2.1.1 ASCII 2.1.2 ISO-8859-1 2.1.3 GB2312&#xff0c;GBK&#xff0c;GB18030 2.2 Unicode 字符集 2.2.1 UCS 2.2.2 UTF - Unicode Transformation Format 2.2.3 UTF-8 2.2.4 B…

Spring Boot如何实现分布式消息队列

Spring Boot如何实现分布式消息队列 在分布式系统中&#xff0c;消息队列是非常重要的一部分&#xff0c;可以帮助开发人员实现异步处理、解耦系统、提高系统可靠性等。本文将介绍如何使用 Spring Boot 实现分布式消息队列。 1. 消息队列的设计 消息队列是一种存储消息的容器…

一键禁掉WIN10自动更新

工作了很久&#xff0c;没备份睡觉去了&#xff0c;一觉起来我东西呢&#xff1f; 正玩着游戏&#xff0c;激战正嗨的时候&#xff0c;蓝屏转圈圈开始更新。 无数次搜索怎么去除WIN10自动更新&#xff0c;每次按照网上的教程操作&#xff0c;结果都是无功而返。 下载了很多工…

Java开发 - 让你少走弯路的Redis主从实现单节点哨兵模式

前言 前一篇中&#xff0c;我们讲解了Redis主从的搭建方式&#xff0c;其实很简单呐有木有&#xff0c;都是配置&#xff0c;连句代码都没有&#xff0c;是不是感觉高估了Redis主从的搭建方式&#xff1f;哈哈&#xff0c;没关系&#xff0c;跟着博主&#xff0c;包你全会。今…

Postgre 提示could not determine data type of parameter $4

目录 场景&#xff1a; 现象&#xff1a; 版本&#xff1a; 分析&#xff1a; 解决方式&#xff1a; 场景&#xff1a; 今天遇到现场环境连接Postgre数据库&#xff0c;日志提示could not determine data type of parameter $4&#xff0c;通过日志复制出完整sql&#xff…

软件测试练手项目,可以写进简历里面的(银行:金融:商城:外卖等等)

目录 一、引言 二、测试任务 三、测试进度 四、测试资源 五、测试策略 六、测试完成标准 七、风险和约束 八、问题严重程度描述和响应时间规范 九、测试的主要角色和职责 ​有需要实战项目的评论区留言吧&#xff01; 软件测试是使用人工或者自动的手段来运行或者测定…

旅游有哪些好玩的地方? 今天用python分析适合年轻人的旅游攻略

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 “旅”是旅行&#xff0c;外出&#xff0c;即为了实现某一目的而在空间上从甲地到乙地的行进过程&#xff1b; “游”是外出游览、观光、娱乐&#xff0c;即为达到这些目的所作的旅行。 二者合起来即旅游。所以&#…

文本三剑客——awk

文本编辑器awk 一、 awk工作原理1.命令格式2.awk常见的内建变量&#xff08;可直接用&#xff09;如下所示 二、awk的基础用法1.输出文件中的某一列2.根据特定条件筛选数据3.按照分隔符进行切割4.在匹配到特定字符串时执行操作5.BEGIN打印模式6.awk的分隔符用法 三、示例演示1.…

挖掘数百篇AR/VR专利,苹果XR全方位探索

近期大家也看了很多苹果XR的消息&#xff0c;与其看各种爆料、不如从专利入手来看看苹果XR头显可能会有哪些不同的玩法。于是&#xff0c;我们就从苹果近年来有关AR/VR的数百篇专利中&#xff0c;选出可能会直接决定和影响XR产品体验的部分汇总出来。当然&#xff0c;这些专利不…

智警杯赛前学习2.1--sql概述

绝大多数分析岗位&#xff0c;需要sql功能 sql是架起通往其它工具的桥梁 DDL数据定义语言 DML数据操纵语言&#xff0c;主要包括&#xff1a;insert&#xff0c;delete&#xff0c;update DQL数据查询语言 DCL数据库控制语言 关系型数据库&#xff0c;类似excel的二维表 …

windows中同时安装两个不同版本的mysql

文章目录 前言解压mysql新建所需目录及文件配置my.ini文件安装配置mysql8.0.25dll丢失错误解决问题 修改注册表启动mysql登录后修改密码总结 前言 有的时候&#xff0c;你是用的mysql版本和公司使用的mysql版本不一致&#xff0c;这样就会导致你不得不在你的电脑上安装两个版本…

Ansible基础四——变量、机密、事实

文章目录 一、变量二、机密2.1 创建加密文件2.2 查看加密文件2.3 编辑加密文件内容2.4 加密现有文件2.5 解密文件2.6 更改加密密码 三、事实3.1 收集展示事实3.2 展示某个结果3.3 新旧事实命令3.4 关闭事实3.5 魔法变量 一、变量 常设置的变量&#xff1a; 要创建的用户要安装的…

设计模式之~中介者模式

简述&#xff1a; 中介者模式又叫做调停者模式。其实就是中间人或者调停者的意思。 中介者模式&#xff08;Mediator&#xff09;&#xff0c;用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互调用&#xff0c;从而式其耦合松散&#xff0c;而且可以独立…

hive实战案例讲解

系列文章目录 hive进阶——在centos7里面配置mysql&#xff0c;将原来hive的客户端扩展 centos集群上安装hive客户端的操作步骤以及hive介绍 文章目录 Hive 实战 1、需求描述 2、数据结构 1&#xff09;视频表 2&#xff09;用户表 3、准备工作 3.1、准备表 3.2、创…

基于ATMEGA16单片机的空调控制器

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87853101 源码获取 主要内容&#xff1a; 本系统采用AVR单片机实现汽车空调的自动控制&#xff08;双位控制&#xff09;&#xff0c;具有电路结构简单、分立元件…

【大数据基石】Hadoop环境搭建

文章目录 前言配置hosts关闭防火墙配置SSH免密下载Hadoop解压Hadoop到指定目录添加环境变量修改Hadoop配置文件core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkershadoop-env.sh 其他2台服务器也这样配置初始化NameNode启动hdfs启动Yarn启动历史记录服务器 ✨这里…

[中间件漏洞]tomcat漏洞复现

目录 Tomcat 远程代码执行漏洞&#xff08;CVE-2017-12615&#xff09; 漏洞描述 漏洞原理 漏洞复现 漏洞修复 tomcat弱口令&war远程部署 漏洞原理 漏洞复现 漏洞修复 Apache Tomcat文件包含漏洞(CVE-2020-1938&#xff09; 漏洞复现 漏洞修复 Tomcat 远程代码执行漏洞…

ffmpeg之AVFormatContext详细解释

AVFormatContext 作用 AVFormatContext主要起到了管理和存储媒体文件相关信息的作用。它是一个比较重要的结构体&#xff0c;在FFmpeg中用于表示媒体文件的格式上下文&#xff0c;其中包含了已经打开的媒体文件的详细信息&#xff0c;包括媒体文件的格式、媒体流的信息、各个媒…