计算机网络学习笔记「CSMA协议」
CSMA协议(载波侦听多路访问)Carrier Sense Μultiple Access
-
非-坚持CSMA
- 发送数据时,先侦听信道,如果信道空闲就立即发送,如果信道忙就放弃侦听,等待一个随机的时间后再侦听
优点:等待一个随机事件可以减少再次碰撞冲突的可能性
缺点:如果在这个随机时间内介质上没有数据传输,则会发生浪费
-
1-坚持CSMA
- 发送数据时,先侦听信道,如果信道空闲就立即发送,如果信道忙则等待,同时继续侦听直至信道空闲;如果发送冲突,则随机等待一段时间后再重新侦听
优点: 持续式的延迟时间要少于非持续式
缺点:如果两个以上的站等待发送,一旦介质空闲就一定会发生冲突
-
P-坚持CSMA
- 发送数据时,先侦听信道,如果信道忙则等到下一个时隙再侦听,如果信道空闲,便以概率P发送数据,以概率1-P推迟到下一个时隙
CSMA/CD( Carrier Sense Multiple Access with Collison Detection)载波侦听多路访问/碰撞检测
collision detection(碰撞检测)
CSMA协议的改进方案
·先听后发,边听边发,冲突停发,随机重发
CSMA/CA (Carrier Sense Multiple Access with Collison Detection)载波侦听多路访问/碰撞比避免
collision avoidance(碰撞避免)
CSMA/CA 采用二进制指数退避算法。信道从忙态变为空闲时,任何一个站要发送数据帧时,不仅都须等待一个时间间隔,而且还要进入争用窗口,并计算随机退避时间以便再次试图接入信道,因此降低了发生碰撞的概率。
CSMA/CA还使用预约信道、ACK帧、RTS/CTS帧等三种机制来实现碰撞避免:
-
预约信道:发送方再发送数据的同时通知其他站点直接传输数据需要的时间长度,以便让其他站点在这段时间内不发送数据,从而避免碰撞
-
ACK帧
所有站点在正确接收到发送给自己的数据帧后,都需要向发送方发回一个ACK数据帧
- 如果接收失败,则不采取任何行动
- 发送方在发送完一个数据帧后,在规定的时间内如果未收到ACK帧,那么认为发送失败,此时进行该数据帧的重发
- 直到收到ACK帧或达到规定重发次数为止
-
RTS/CTS帧
可选的碰撞避免机制,主要用于解决无线网中的“隐蔽站”问题