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

目录

1、ALOHA

纯ALOHA

时隙ALOHA(S-ALOHA)

2、CSMA

非坚持算法

1-坚持算法

P-坚持算法

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

二进制指数回退算法:

最小帧长:

4、CSMA/CA 协议


刚刚接触计算机网络的学习,学到数据链路层动态随机分配信道时对随机访问MAC协议,ALOHA,CSMA,CSMA/CD,CSMA/CA的区别与联系有点混乱,写一篇博客自己梳理一下知识点。


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

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

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

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

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

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

 

1、ALOHA

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

纯ALOHA

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

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

优点:简单易行

缺点:极容易冲突

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

时隙ALOHA(S-ALOHA)

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

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

 

2、CSMA

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

非坚持算法

算法规则为:

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

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

优点:减少冲突

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

1-坚持算法

算法规则:

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

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

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

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

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

二进制指数回退算法:

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

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

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

最小帧长:

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

最小帧长等于: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,优点是没有冲突,负载时都得到利用效率高,缺点是负载低时无法利用全部带宽效率低。

贴个总结图,来源见水印:

评论 3 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

kan木

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值