若教眼底无离恨,不信人间有白头。
CSMA (载波监听多路访问)
- (Carrier Sense Multiple Access),载波监听多路访问,是一种允许多个设备在同一信道发送信号的协议,其中的设备监听其它设备是否忙碌,只有在线路空闲时才发送。
CSMA/CD(载波帧听多路访问/冲突检测)
- 载波侦听:多个计算机在发送数据帧前,首先帧听是否空闲,如果空闲,则发送数据帧;否则等待,继续帧听直到信道空闲。
- 多路访问:许多计算机以多点接入方式连接在一根总线上,都有访问总线的权利。
CSMA/CD 过程
- 终端设备不停地检测共享线路的状态。如果线路空闲,则可以发送数据;如果线路不空闲,则等待一段时间后继续检测(延时时间由退避算法决)。
- 如果有另外一个设备同时发送数据,两个设备发送的数据会产生冲突。
- 终端设备检测到冲突之后,会马上停止发送自己的数据,并发送特殊阻塞信息,以强化冲突信号,使线路上其他站点能够尽早检测到冲突。
- 终端设备检测到冲突后,等待一段时间之后再进行数据发送(延时时间由退避算法决定)。CSMA/CD 的工作原理可简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。
CSMA/CD 特点
- 使用 CSMA/CD 协议的以太网不能进行全双工通信,而只能进行双向交替通信(半双工通信)。
- 计算机发送数据帧之后的一小段时间内,存在着遭遇冲突的可能性。
- 冲突不确定性使整个以太网平均数据率远小于以太网最高数据率。
CSMA/CD 例子
- 很多人在一间黑屋子中举行讨论会,参加会议的人都是只能听到其他人的声音。每个人在说话前必须先倾听,只有等会场安静下来后,他才能够发言。人们将发言前监听以确定是否已有人在发言的动作称为”载波监听”;将在会场安静的情况下每人都有平等机会讲话成为“多路访问”;如果有两人或两人以上同时说话,大家就无法听清其中任何一人的发言,这种情况称为发生“冲突”。发言人在发言过程中要及时发现是否发生冲突,这个动作称为“冲突检测”。如果发言人发现冲突已经发生,这时他需要停止讲话,然后随机后退延迟,再次重复上述过程,直至讲话成功。如果失败次数太多,他也许就放弃这次发言的想法。通常尝试 16 次后放弃。
CSMA/CA
- CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) 即载波侦听多路访问/冲突避免。
- 采用该协议要求设备要主动避免冲突而非被动侦测的方式来解决冲突问题。避免冲突的方法主要有两个:
- 监听到信道空闲时,并不是立即发送,而是等待一段时间再发送数据。
- 先发送一个很小的信道侦测帧 RTS,如果收到最近的接入点返回的 CTS,就认为信道是空闲的,然后再发送数据
CSMA/CA 过程
- 首先检测信道是否有使用,如果检测出信道空闲,则等待一段随机时间后,才送出数据。
- 接收端如果正确收到此帧,则经过一段时间间隔后,向发送端发送确认帧 ACK。
- 发送端收到 ACK 帧,确定数据正确传输,在经历一段时间间隔后,再发送数据。
CSMA/CD 与 CSMA/CA 两者区别
- CSMA/CD 主要着眼点在冲突的侦测,当侦测到冲突时,进行相应的处理,要求设备能一边侦测一边发送数据。
- CSMA/CA 主要着眼点在冲突的避免,协议里也看到经常是等待一段时间再做动作,通过退避尽量去避免冲突,还有就是先发送一些特别小的信道侦测帧来测试信道是否有冲突。