两个通讯中常用的决定对媒体访问权的协议,看上去差不多,其实差别不小。我们先来看看他的字面解释:
CSMA(Carrier Sense Multiple Access) 载波(媒体)监听多重存取
CD(Collision Detection) 冲突侦测
CA(Collision Avoidance) 冲突避免
下面看一下他们的具体原理机制:
CSMA:当装置传送数据到网络线之前,会先监听网络上是否有其它装置传出的讯号,如果有则不发送自己的信息,以防止冲突(collision)产生。管制将碰撞的机率降至最低的机制便称为载波监听多重存取CSMA。
CSMA/CD:冲突侦测。监听媒体上是否有传输讯号,如果没有便进行传输。如果有碰撞产生,便送出讯号告知其它计算机暂时停止传输数据。再次传输前,先等候一段随机时间,再行传输。如果又发生碰撞,便按照退避算法计算延迟时间,再次延迟,直到总线空闲,成功传输数据为止。
CSMA/CA:冲突避免。先检查媒体是否有其它数据在传输,如果媒体空闲,便发出要求传送的讯息,等待服务器发出允许传送的讯息后,并接收到该讯息后便开始传送数据。数据传完发出结束讯号,表示完成数据传输。当然,如果检测到媒介非空闲,则依旧按照退避算法等待随机时间,再次检测通道是否空闲。
两者的差别:
1.两者的传输介质不同,CSMA/CD用于总线以太网,而CSMA/CA则用于无线局域网802.11b;
2.监测方式不同,CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式;
为什么WLAN中使用CSMA/CA而不能使用CSMA/CD?
有几点我们首先要清楚:
1.在WLAN中,对某个节点来说,其刚刚发出的信号强度要远高于来自其他节点的信号强度,也就是说它自己的信号会把其他的信号给覆盖掉;