CSMA-CA 简介


    载波侦听(Carrier Sense):任何连接到介质的设备在欲发送帧前,必须对介质进行侦听,当确认其空闲时,才可以发送。
    多路访问(Multiple Access):多个设备可以同时访问介质,一个设备发送的帧也可以被多个设备接收。
    所以,CSMA ( Carrier Sense Multiple Access) 就是载波侦听多路访问。 CSMA 工作在OSI参考模型的数据链路层的介质访问控制子层,是一种抢占型的半双工介质访问控制协议。CSMA 扔旧无法解决数据发送的碰撞问题。若考虑具体解决碰撞问题的策略,CSMA则分为:
-----CSMA/CD --载波侦听多路访问/碰撞检测
-----CSMA/CA --载波侦听多路访问/碰撞避免
-----CSMA/BA -- 载波侦听多路访问/位仲裁

    不同的应用场景会使用不同的策略。 总线型局域网在MAC层的标准协议是CSMA/CD。 由于无线产品的适配器不易检测信道是否存在冲突,因此802.11全新定义了一种新的协议,即载波侦听多点接入/避免冲撞CSMA/CA(with Collision Avoidance)。CSMA/CA 采用主动避免碰撞而非被动侦测的方式来解决碰撞问题,可以满足例如无线网域一类的不易准确侦测是否有碰撞发生的需求。 一方面,载波侦听----查看介质是否空闲;另一方面,避免冲撞----通过随机的时间等待,使信号冲突发生的概率减到最小,当介质被侦听到空闲时,优先发送。不仅如此,为了系统更加稳固,802.11还提供了带确认帧ACK的CSMA/CA。也就是说,只有当客户端收到网络上返回的ACK信号后才确认送出的数据已经正确到达目的地址。在一旦遭受其他噪声干扰,或者由于侦听失败时,信号冲突就有可能发生,而这种工作于MAC层的ACK此时能够提供快速的恢复能力。
CSMA/CA协议主要使用两种方法来避免碰撞:
    1.设备欲发送讯框,且讯框听到通道空闲时,维持一段时间后,再等待一段随机的时间依然空闲时,才提交数据。由于各个设备的等待时间是分别随机产生的,因此很大可能有所区别,由此可以减少碰撞的可能性。
    2.RTS-CTS三向握手:设备欲发送讯框前,先发送一个很小的RTS(Request to Send)讯框给目标端,等待目标端回应CTS(Clear to Send)帧后,才开始传送。此方式可以确保接下来传送数据时,不会发生碰撞。同时由于RTS帧与CTS帧都很小,让传送的无效开销变小。此方案应用于无线局域网的IEEE 802.11标准。

    现在来看 IEEE 802.15.4 中的CSMA/CA机制。 
    在IEEE 802.15.4 CSMA/CA机制中,协调器在网络中,会向所在信道发出信标给所有的节点,而对于有数据需传送的设备来说,它们会向网络协调器要求进行传送,由于在一个时间内只能有一个设备进行传输,因此所有想要传输的节点设备就会通过CSMA/CA机制来竞争传输媒体的使用权。也就是说CSMA/CA 算法是在数据发送前进行的。所有准备传输数据的设备,会监测目前的信道是否有其他设备在使用中,如果为空闲,此时,这些设备会产生一个倒退延迟时间,来错开这些设备同时送出数据从而造成碰撞的可能。若目前的无线传输媒体是忙碌中的,则这些设备将会在监测到媒体为空闲后,再进行CSMA/CA的竞争。zigbee网络组建后,信道是不会变的,只是需要在数据发送时对其进行判断是否可用。 CSMA/CA算法是用于节点数据传输时的信道争用机制


你可能感兴趣的:(Zigbee,&,Freakz)