CSMA/CD与CSMA/CA的区别

CSMA/CD

英文Carrier Sense Multiple Access with Collision Detection,意思是载波侦听多路访问/冲突检测。
采用该协议要求设备在发送帧的同时要对信道进行侦听,以确定是否会发生信道冲突,若在发送数据过程中检测到冲突,则需要进行冲突处理。整个协议的处理规程如下:
1 监听当前信道上是否有数据再发送,如果信道空闲,直接发送数据,如果信道忙,则按照一定的退避算法进行延时监听。
2 当信道允许发送数据时,发送数据。
3 数据发送过程中,边发送边监听,如果发送过程中检测到冲突,则停止发送数据,并发送阻塞信息,强化冲突,并转入1。

CSMA/CA

英文Carrier Sense Multiple Access with Collision Avoidance,意思是载波侦听多路访问/冲突避免。
采用该协议要求设备要主动避免冲突而非被动侦测的方式来解决冲突问题。避免冲突的方法主要有两个:
一是监听到信道空闲时,并不是立即发送,而是等待一段时间再发送数据。
二是先发送一个很小的信道侦测帧RTS,如果收到最近的接入点返回的CTS,就认为信道是空闲的,然后再发送数据。
协议的主要流程如下:
1 首先检测信道是否有使用,如果检测出信道空闲,则等待一段随机时间后,才送出数据。
2 接收端如果正确收到此帧,则经过一段时间间隔后,向发送端发送确认帧ACK。
3 发送端收到ACK帧,确定数据正确传输,在经历一段时间间隔后,再发送数据。

区别

对设备硬件特性要求不同

CSMA/CD主要着眼点在冲突的侦测,当侦测到冲突时,进行相应的处理,要求设备能一边侦测一边发送数据。
CSMA/CA主要着眼点在冲突的避免,协议里也看到经常是等待一段时间再做动作,通过退避尽量去避免冲突,还有就是先发送一些特别小的信道侦测帧来测试信道是否有冲突。

适用场景不同

CSMA/CD主要适用以太网。
CSMA/CA主要适用无线局域网。

你可能感兴趣的:(Linux)