随机访问MAC协议 知识梳理(ALOHA,CSMA,CSMA/CD,CSMA/CA)

0、随机访问MAC的协议

数据链路层动态随机分配信道时对随机访问MAC协议:ALOHA,CSMA,CSMA/CD,CSMA/CA

ALOHA,CSMA,CSMA/CD的区别仅在于是否对信道进行监听和是否有碰撞检测:

1、ALOHA:不监听,无碰撞检测;

2、CSMA:有监听,无碰撞检测;

3、CSMA/CD:有监听,有碰撞检测。

4、CSMA/CA:有监听,尽量避免冲突。

监听(CS):发送时先判断其他站点是否正在发送数据,监听到有数据正在发送就不发了,根据不同策略等待一段时间(即CSMA的三种退避算法)后再进行发送。但由于通道的传播延迟,仍然可能出现发送端发送完毕,数据帧正在传输中,接收端未接受到的情况,这种情况不会被监听到,此时发送数据依然有可能发生碰撞。

碰撞检测(CD):在无碰撞检测的情况下,发送方不知道信道上是否发生了碰撞。就算信道上发生了数据帧的碰撞,被破坏掉的帧依旧会持续发送到接收方,然后接受方提供反馈之后发送方才能发现产生了碰撞,浪费了时间。有碰撞检测即发生碰撞就立刻从碰撞点返回消息,发送方收到消息后立刻停止发送,等待一段时间后再重传,提高了信道利用率。碰撞检测需要对信道持续监听。

冲突避免(CA):发送包的同时不能检测到信道上有无冲突,只能尽量“避免”。

0.1 CSMA vs ALOHA

Aloha是一种简单的通信方案,最初由夏威夷大学开发,用于卫星通信。在Aloha方法中,通信网络中的每个源在每次有帧要发送时发送数据。如果帧成功到达目的地,则传输下一帧。如果目的地没有接收到帧,则会再次发送该帧。CSMA(Carrier Sense Multiple Access)是一种媒体访问控制(MAC)协议,其中节点只有在验证没有其他通信量之后才能在共享传输媒体上传输数据。

0.2 ALOHA协议

如前所述,Aloha是一个简单的通信协议,网络中的每个源只要有一个帧要发送,就发送数据。如果帧传输成功,则将发送下一帧。如果传输失败,源将再次发送相同的帧。半双工无线链路或两个无线广播系统都能很好地工作。但是,当网络变得更复杂时,例如具有多个源和目的地的以太网使用一个公共数据路径时,就会出现由于数据帧冲突而导致的问题。当通信量增大时,碰撞问题变得更严重。这会降低网络的效率,因为帧碰撞会导致两个帧中的数据丢失。时隙Aloha是对原始Aloha协议的改进,其中引入了离散时隙来提高最大吞吐量,同时减少冲突。这是通过只允许信源在时隙开始时传输来实现的。

0.3 CSMA协议

CSMA协议是一种概率MAC协议,其中节点在共享信道(如电气总线)上传输之前验证信道是否空闲。在发送之前,发送器尝试检测通道中是否有来自另一个站的信号。如果检测到信号,则发射器等待持续传输完成,然后再开始传输。这是协议的“载波感知”部分。“多址”定义多个站点在信道上发送和接收信号,并且由单个节点发送的信号通常由使用该信道的所有其他站点接收。载波感知多址碰撞检测(CSMA/CD)和载波感知多址避碰(CSMA/CA)是CSMA协议的两种改进。CSMA/CD通过在检测到碰撞时立即停止传输,从而提高CSMA的性能,CSMA/CA通过在信道被检测到繁忙时将传输延迟一个随机间隔来改善CSMA的性能。

1、ALOHA

分为纯ALOHA协议和时隙ALOHA两种,无监听,直接发,检测到碰撞后等待一段随机时间后再重传。

1.1 纯ALOHA

工作原理:站点只要产生帧,就立即发送到信道上;规定时间内若收到应答,表示发送成功,否则重发。

重发策略:等待一段随机的时间,然后重发;如再次冲突,则再等待一段随机的时间,直到重发成功为止

优点:简单易行

缺点:极容易冲突

竞争系统:多个用户以某种可能导致冲突的方式共享公用信道的系统

1.2 时隙ALOHA(S-ALOHA)

基本思想:把信道时间分成离散的时间槽,槽长为一个帧所需的发送时间。每个站点只能在时槽开始时才允许发送。其他过程与纯ALOHA协议相同。

可以避免冲撞到发送了一半的帧,但依然有可能多个帧同时在在一个时间槽开始时进行发送,然后再在信道中产生碰撞。比纯ALOHA的信道利用率提升一倍。

2、CSMA

载波监听多路访问CSMA的技术,也称做先听后说LBT(Listen Before Talk)。要传输数据的站点首先对媒体上有无载波进行监听,以确定是否有别的站点在传输数据。假如媒体空闲,该站点便可传输数据;否则,该站点将避让一段时间后再做尝试。这就需要有一种退避算法来决定避让的时间,常用的退避算法有非坚持、1-坚持、P-坚持三种。

2.1 非坚持算法

算法规则为:

⑴假如媒本是空闲的,则可以立即发送。

⑵假如媒体是忙的,则等待一个随机时间后,再次监听进行发送。采用随机的重发延迟时间可以减少冲突发生的可能性。

优点:减少冲突

缺点是:即使有几个站点都有数据要发送,但有可能大家可能等待时延都比较长,致使媒体仍可能处于空闲状态,使用率降低。

2.2 1-坚持算法

算法规则:

⑴假如媒体空闲的,则可以立即发送。

⑵假如媒体是忙的,则继续监听,直至检测到媒体是空闲,立即发送。

优点是:只要媒体空闲,站点就立即可发送,避免了白白浪费空闲时间,减少媒体空闲时间;

其缺点是:假若有两个或两个以上的站点有数据要发送,那么检测到媒体是空闲时候这些站点会同时发送数据,一定会产生冲突。

2.3 P-坚持算法

算法规则:

⑴监听总线,假如媒体是空闲的,则以P的直接发送,而以(1-P)的概率延迟一个时间单位再次监听进行发送。一个时间单位通常等于最大传播时延的2倍。

P-坚持算法是一种既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的折中方案,P取1时就是1-坚持,P取0时就是非坚持。系统忙的时候可以选择P小一些,闲的时候选择P大一些。

CSMA的三种算法是监听时的退避算法,与碰撞时的不同,发生碰撞时都是等待一段随机时间再重传(个人理解)。

3、载波监听多路访问/冲突检测(CSMA/CD)

由于CSMA在产生碰撞后会依然传送被破坏掉的帧,这样会白白浪费信道容量,一种改进方法是增加碰撞检测。

CSMA/CD比CSMA增加了碰撞检测,在传输时间继续监听媒体,一旦检测到冲突,就立即停止发送,并向总线上发一串短的阻塞报文(Jam),通知总线上各站冲突己发生,停止发送数据,可以提高总线的利用率,这就称作载波监听多路访问/冲突检测协议,简写为CSMA/CD。

CSMA/CD的代价是用于检测冲突所花费的时间。对于基带总线而言,最坏情况下用于检测一个冲突的时间等于任意两个站之间传播时延的两倍(即快要发送到终点时发生碰撞再折回,花了两倍时间)。

3.1 二进制指数回退算法

二进制指数回退算法是CSMA/CD检测到碰撞后需要重传时的回退算法,独有的,与前面不一样:

是从离散的整数集合[0,1,2,……,(2k-1)]中随机的取出一个数r,等待的时延为r倍的基本退避时间,k为碰撞的次数,最大取10,基本退避时间为2倍的传播时延(即争用期)。

当冲突次数超过16次后,发送失败,认为网络过于拥挤,无法发送,丢弃传输的帧,发送错误报告。

3.2 最小帧长

如果帧长过小,信道上就可能存在多个数据帧,当发生冲撞时收到返回时不知道究竟是哪个发生了冲撞,所以规定了最小帧长。

最小帧长等于:2倍的传播时延*传播速率

这样可以在发现碰撞时保证信道上只发出了一条数据。为什么取2倍的传播时延2t,是因为如果发生碰撞,碰撞反馈信息会最晚在2t时间内返回。收到反馈消息后最多只需要判断2t时间内发出的是哪一条帧进行重发就可以了。

换个说法:现在正在发送一条帧,还没从发送端发完时收到了一条碰撞反馈,此时从前找2t个时间内只可能存在一个数据帧,就知道是哪个帧出现了问题。假如帧长过短的话,2t时间内可能存在好多帧,就不知道是哪个出现问题了。

10MB/S以太网以51.2us为争用期,一秒可发送512bit数据,即64Byte,所以一般选择64B作为最小帧长。

4、CSMA/CA 协议

CSMA/CD适用于小规模有线以太网,在大规模无线局域网中由于碰撞过多并不适用,由此可以采用避免碰撞的CA协议。

CSMA/CA(Carrier Sense Multiple Access with Collision Avoid,即带有冲突避免的载波侦听多路访问)是一种数据传输是避免各站点之间数据传输冲突的算法,其特点是发送包的同时不能检测到信道上有无冲突,只能尽量“避免”。

利用此协议时,先向信道发送一个RTS帧,承载地址、大概传输时间等信息,接收方会相应一个CTS帧,与发送方预约信道,此时信道就只允许这两方之间进行数据传输,避免了冲突。接收方收到数据后进行CRC循环冗余检验,没有问题返回ACK确认帧,有问题重传。

CA协议无法完全避免冲突,只是预约好信道后不会产生冲突。因为发送RST帧时也有可能与其他的RST帧产生冲突,不过控制消息要比数据短的多,冲突后等待随机重发,二次冲突的概率也小很多。

5、其他

随机控制访问协议优点是负载轻的时候效率高,负载重的时候冲突开销大,其他协议还有:

同为动态分配信道协议的轮询访问协议,优点是动态划分,没有冲突,缺点是有轮询开销或令牌开销、等待延迟、单点故障。

还有基于多路复用技术的静态信道划分协议,有FDM,TDM,WDM,CDM,优点是没有冲突,负载时都得到利用效率高,缺点是负载低时无法利用全部带宽效率低。

贴个总结图,来源见水印:
在这里插入图片描述

————————————————
原文链接:
https://www.tl80.cn/article/17323
https://blog.csdn.net/qq_41547603/article/details/105476967

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

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

相关文章

认识CUBA平台的CLI

毫无疑问,软件开发人员(尤其是Java开发人员)的世界充满了键盘狂热者,最好是一次单击即可键入10-15个字母。 而且我们的社区也不例外,因此经常有人问我们“如何在没有CUBA Studio的情况下启动项目?”之类的问…

将matlab中数据输出保存为txt或dat格式

一、将matlab中数据输出保存为txt或dat格式的三种方法。 第一种方法:save(最简单基本的) 具体的命令是:用save *.txt -ascii x x为变量 *.txt为文件名,该文件存储于当前工作目录下,再打开就可以打开后,数据有可能是以…

马尔可夫链笔记

1 引言 之前学习了伯努利过程和泊松过程,它们是无记忆性,不依赖于过去的状态,今天学习了马尔可夫链,它会依赖于过去的过程,更准确的说是依赖于过去的某种状态。 2 离散时间的马尔可夫链(Markov Chain, MC…

「协方差」与「相关系数」的概念

一、协方差: 可以通俗的理解为:两个变量在变化过程中是同方向变化?还是反方向变化?同向或反向程度如何? 你变大,同时我也变大,说明两个变量是同向变化的,这时协方差就是正的。 你…

垃圾收集 java_关于Java垃圾收集

垃圾收集 java本文讨论的是使用的最流行的框架之一带来的开销–我敢打赌,几乎没有应用程序不使用java.util.Collections。 本文基于以下事实:框架为例如集合的初始大小提供了默认值。 因此,我们有一个假设,即大多数人不会费心地自…

Latex \bibliographystyle+修改字体字号的大小

1. bibliography style LaTeX 标准选项及其样式共有以下8种: plain ,按字母的顺序排列,比较次序为作者、年度和标题. unsrt ,样式同plain,只是按照引用的先后排序. alpha ,用作者名首字母年份后两位作标号…

boxplot

1. 简介 箱形图,又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。箱形图于1977年由美国著名统计学家约翰图基(John Tukey)发明。它能显示出一组数据的最大值、最小值、中位数、上下四分位数及…

Java 11的期望

过去的几年对Java世界一直是动荡不安的,在相当多的发行版中添加了各种各样的功能。 在开发人员社区中,人们逐渐意识到Java的开发速度不够快。 在最初的20年中,Java平台和Java开发工具包(JDK)经历了庞大,不…

martingale与Markov Process的关系

鞅过程与马尔科夫过程是什么关系? 1.鞅代表的是公平游戏,马尔可夫过程侧重过程无记忆性 总而言之:鞅和马尔可夫过程没有包含的关系。因为鞅代表的是公平游戏,而马尔可夫过程侧重过程无记忆性。两者没有内在联系。 注&#xff1…

LaTeX双栏模板插入通栏公式(跨栏插图)

1. 利用带星号的浮动体环境 带星号的浮动体figure和table环境可以在双栏模板中使用,例如我们以IEEEtran为例,插入通栏公式 \documentclass{IEEEtran} \usepackage{amsmath,lipsum} \begin{document} \lipsum[1] \begin{figure*} \begin{ali…

renew process 更新过程

一个泊松过程可以分解成一系列 i.i.di.i.di.i.d 的指数分布随机变量相加,如果把指数分布换成其他 i.i.di.i.di.i.d 的分布就得到了更新过程。 更新过程本身是泊松过程的一种扩长,同时更新过程也可以发展出一套更新理论,包括更新方程等。 htt…

离散时间信号,连续时间信号,模拟信号,数字信号区别

连续时间信号 : 在时间t 上是连续的值 时间连续, 幅值连续。 定义为模拟信号。时间连续, 幅值离散。 比如脉冲信号。 离散时间信号 : 在时间t上 是离散的值 时间离散, 幅值连续。 (在任意两个离散时间点…

java8 javafx_Java8中的外观(JavaFX8)

java8 javafxJavaFX8在外观方面进行了一些更改 ,其中最相关的是新CSS API ,它允许您为控件以及已公开的Skin类创建新CSS属性和伪类。 使用CSS可以更改控件的很多外观,但是CSS可以实现很多功能,这就是Skin类的用处。从“ UI控件体…

如何通俗易懂地解释卷积?

马同学 从数学上讲,卷积就是一种运算。 某种运算,能被定义出来,至少有以下特征: 首先是抽象的、符号化的 其次,在生活、科研中,有着广泛的作用 比如加法: [公式] ,是抽象的&…

具有中央异常处理和VO验证的Spring Data JPA –框架

1.简介 一段时间以来,Spring框架已成为事实上的标准,可以创建任何基于REST API的应用程序。 Spring提供了各种现成的组件,以避免编写重复而繁琐的样板代码。 另外,关于Spring的美丽之处在于,如果有现成的解决方案&…

初识斯蒂尔杰斯积分(Stieltjes integral)

https://blog.csdn.net/Northernland/article/details/83051415

drools6.5_使用Drools 6.0进行部署

drools6.5KieScanner 6.0 KieScanner取代了5.x KnowledgeAgent。 它使用嵌入式Maven允许在运行时解析和检索jar。 6.0应用程序现在可以轻松支持依赖关系和可传递依赖关系; 使用众所周知的Maven语义进行版本控制。 它允许在类路径上部署,也可以在运行时动…

双子(Dioid)

双子代数是若其对任意无限多元的 “和”封闭且乘法对此无限和具分配律。 https://baike.baidu.com/item/%E5%8F%8C%E5%AD%90%E4%BB%A3%E6%95%B0

具有外部Zookeeper集成并使用SOLRJ API访问数据的SOLR cloud 7.4集群配置

SOLR是最流行且高度可扩展的搜索引擎之一,它基于分布式索引技术运行。 Solr索引几乎可以基于任何类型的数据源(CSV数据或XML数据或从RDBMS数据库或标准文件系统中提取的数据)构建。 对于以RDBMS数据库作为后端构建的任何Web应用程序&#xf…

随机过程及其稳态stability

1. 为什么要研究随机过程? 人类认识世界的历史,就是一认识和描绘各种运动的历史,从宏观的天体运动到分子的运动,到人心理的运动-我们通称为变化,就是一个东西随时间的改变。 人们最成功的描绘运动的模型是牛顿的天体…