载波侦听多路访问(Carrier Sense Multiple Access,CSMA)是一种局域网的MAC方式,工作在OSI参考模型的数据链路层的介质访问控制子层。是一种抢占型的半双工介质访问控制协议,采用分布式控制方法。
载波侦听:指任何连接到介质的设备在欲发送帧前,必须对介质进行侦听,当确认其空闲时,才可以发送。
多路访问:指多个设备可以同时访问介质,一个设备发送的帧也可以被多个设备接收。
根据具体的侦听/发送策略,可将CSMA分为
非持续CSMA(non-persistent CSMA)
当要发送帧的设备侦听到线路忙或发生冲突时,会随机等待一段时间再进行侦听;若发现不忙则立即发送;此策略可以减少冲突,但会导致信道利用率降低,以及较长的延迟。
1-持续CSMA(1-persistent CSMA)
当要发送帧的设备侦听到线路忙或发生冲突时,会持续侦听;若发现不忙则立即发送。当传播延迟较长或多个设备同时发送帧的可能性较大时,此策略会导致较多的冲突,导致性能降低。
p-持续CSMA(p-persistent CSMA)
当要发送帧的设备侦听到线路忙或发生冲突时,会持续侦听;若发现不忙,则根据一个事先指定的概率p来决定是发送帧还是继续侦听(以p的概率发送,1-p的概率继续侦听);此种策略可以达到一定的平衡,但对于参数p的配置会涉及比较复杂的考量。
正确使用以上策略可以在一定程度上减少冲突的发生,但无法彻底解决冲突问题。 因为没有一种协议能够解决所有的问题,就像著名的“白蓝军问题”。
解决冲突问题的策略:
根据具体的解决冲突问题的策略,可将CSMA分为:
载波侦听多路访问/冲突检测(CSMA/CD):在发送时检测冲突,并采取适当措施进行补救。
载波侦听多路访问/冲突避免(CSMA/CA):在发送前进行试探握手,当确实不会引起冲突时再发送。
载波侦听多路访问/位仲裁(CSMA/BA)
载波侦听多路访问/载波优先(CSMA/CP)
CSMA/CD
载波侦听多路访问/冲突检测(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)
此方案要求设备在发送帧的同时要对信道进行侦听,以确定是否发生冲突,若在发送数据过程中检测到冲突,则进行退避处理,此方案应用于以太网(DIX Ethernet V2)标准,IEEE 802.3标准。
CSMA/CA
载波侦听多路访问/冲突避免(Carrier Sense Multiple Access with Collision Avoidance,CSMA/CA)
此种方案采用主动避免碰撞而非被动侦测的方式来解决冲突问题。可以满足那些不易准确侦测是否有冲突发生的需求,如无线局域网。
原文网址:http://cs.szpt.edu.cn/maxma/article.asp?id=235