今天看到了关于冲突检测的方案,突击补了一下,不是太全。只有两个关键字,CSMA/CA和CSMA/CD。
CSMA/CD的控制过程包含四个处理内容:侦听、发送、检测、冲突处理。就是先听后说,边听边说; 一旦冲突,立即停说;等待时机,然后再说;
CSMA/CA的工作方式为
1.送出数据前,监听媒体状态,等没有人使用媒体,维持一段时间后,再等待一段随机的时间后依然没有人使用,才送出数据。由於每个设备采用的随机时间不同,所以可以减少冲突的机会。
2.送出数据前,先送一段小小的请求传送报文(RTS : Request to Send)给目标端,等待目标端回应 CTS: Clear to Send 报文后,才开始传送。 利用RTS-CTS握手(handshake)程序,确保接下来传送资料时,不会被碰撞。 同时由於RTS-CTS封包都很小,让传送的无效开销变小。
CSMA/CA通过这两种方式来提供无线的共享访问,这种显式的ACK机制在处理无线问题时非常有效。然而不管是对于802.11还是802.3来说,这种方式都增加了额外的负担,所以802.11网络和类似的Ethernet网比较总是在性能上稍逊一筹。
两者的主要差别
CSMA/CD:带有冲突检测的载波监听多路访问,可以检测冲突,但无法“避免”
CSMA/CA:带有冲突避免的载波侦听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量“避免”;
1.两者的传输介质不同,CSMA/CD用于总线式以太网,而CSMA/CA则用于无线局域网802.11a/b/g/n等等;
2.检测方式不同,CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式; 3.WLAN中,对某个节点来说,其刚刚发出的信号强度要远高于来自其他节点的信号强度,也就是说它自己的信号会把其他的信号给覆盖掉;
4.本节点处有冲突并不意味着在接收节点处就有冲突。
综上,在WLAN中实现CSMA/CD是比较困难的。