CSMA/CD,即载波侦听多址接入/冲突检测(Cariier Sense Multiple Access with Collision Detection)为有线以太网中的MAC协议(802.3);
CSMA/CA,即载波侦听多址接入/冲突避免(Carrier Sense Multiple Access with Collision Avoidance)为无线网中的MAC协议(802.11)。
两种协议都采用了二进制指数退避算法,即等待r个时隙(r为0至2^i间的随机数,i为重传次数)。不同的是,CSMA/CD检测到冲突后执行退避算法,而CSMA/CA则是在信道从忙态转为空闲态时执行退避算法。
两种协议具有不同的检测方法:CSMA/CD采用电压检测,CSMA/CA采用能量检测、载波检测和能量载波混合检测。
此外,无线信道较有线信道还存在两个主要问题,即无线网络中的隐蔽站与暴露站的问题。这类问题由无线信号的传播距离造成:
隐蔽站即检测到无冲突而实际有冲突的情况(B位于A和C的中点,A和C的传播范围刚好等于到B的距离,此时A和C都检测不到冲突的存在,而最终到达B的信号是A和C的叠加,即存在冲突)。
暴露站即检测到有冲突而实际无冲突的情况(ABCD依次排列,且相邻两点间的距离即为电磁波的传播半径。那么当B要给A发送数据,C要给D发送数据时,A和D接收到来自B和C的数据其实是无冲突的,但B和C会因互相检测到对方的存在而启动不必要的退避机制。)
因此,无线信道下采用冲突检测的方法是很难实现的,采用冲突避免则较为可行,实现方法为:CSMA/CA协议利用ACK信号来避免冲突的发生,也就是说,只有当客户端收到网络上返回的ACK信号后,才确认送出的数据已经正确到达目的。
参考链接:
1,https://wiki.mbalib.com/wiki/CSMA/CA
2,https://blog.csdn.net/ljh618625/article/details/86151428
3,https://zhidao.baidu.com/question/581203417.html
4,https://blog.csdn.net/qq894040717/article/details/82426965
5,https://baike.baidu.com/item/CSMA%2FCA/10898090?fr=aladdin
6,https://www.cnblogs.com/nicephil/p/10802872.html
7,https://blog.csdn.net/cm_cyj_1116/article/details/52862696
8,https://www.cnblogs.com/FZfangzheng/p/10806732.html
9,https://www.cnblogs.com/LinQingYang/p/11880893.html
10,https://wenku.baidu.com/view/4571652625c52cc58bd6be59.html