冲突检测
冲突检测即发送站点在发送数据时要边发送边监听信道,若监听到信道有干扰信号,则表示产生了冲突,于是就要停止发送数据,计算出退避等待时间,然后使用CSMA方法继续尝试发送。计算退避等待时间采用的是“二进制指数退避算法”。
中文名:冲突检测
外文名:collisiondetection
所属学科:计算机
1、冲突检测分类
载波侦听多路访问/碰撞检测(CSMA/CD)
此方案要求设备在发送帧的同时要对信道进行侦听,以确定是否发生碰撞,若在发送数据过程中检测到碰撞,则进行如下碰撞处理操作:
发送特殊阻塞信息并立即停止发送数据:特殊阻塞信息是连续几个字节的全1信号,此举意在强化碰撞,以使得其它设备能尽快检测到碰撞发生。
在固定时间(一开始是1contentionperiodtimes)内等待随机的时间,再次发送。
若依旧碰撞,则采用截断二进制指数避退算法进行发送。即十次之内停止前一次“固定时间”的两倍时间内随机再发送,十次后则停止前一次“固定时间”内随机再发送。尝试16次之后仍然失败则放弃发送。
此方案应用于
以太网(DIXEthernetV2)标准,IEEE802.3标准
载波侦听多路访问/碰撞避免(CSMA/CA)
此种方案采用主动避免碰撞而非被动侦测的方式来解决碰撞问题。可以满足那些不易准确侦测是否有碰撞发生的需求,如无线域名。
CSMA/CA协议主要使用两种方法来避免碰撞:
设备欲发送讯框(Frame),且讯框听到通道空闲时,维持一段时间后,再等待一段随机的时间依然空闲时,才提交数据。由于各个设备的等待时间是分别随机产生的,因此很大可能有所区别,由此可以减少碰撞的可能性。
RTS-CTS三向握手(英语:handshake):设备欲发送讯框前,先发送一个很小的RTS(RequesttoSend)讯框给最近的接入点(AccessPoint),等待目标端回应CTS(CleartoSend)帧后,才开始发送。此方式可以确保接下来发送数据时,不会发生碰撞。同时由于RTS帧与CTS帧都很小,让发送的无效开销变小。
此方案应用于
无线局域网的IEEE802.11标准。
CSMA/BA
载波侦听多路访问/位仲裁(英语:CarrierSenseMultipleAccesswithBitwiseArbitration,CSMA/BA)
2、CSMA/CP
载波侦听多路访问/载波优先(英语:CarrierSenseMultipleAccesswithCarrierPreemption,CSMA/CP)
3、二进制指数退避算法
在CSMA/CD协议中,一旦检测到冲突,为降低再冲突的概率,需要等待一个随机时间,然后再使用CSMA方法试图传输。为了保证这种退避维持稳定,采用了二进制指数退避算法的技术,其算法过程如下:
1.将冲突发生后的时间划分为长度为2t的时隙
2.发生第一次冲突后,各个站点等待0或1个时隙在开始重传
3.发生第二次冲突后,各个站点随机地选择等待0,1,2或3个时隙在开始重传
4.第i次冲突后,在0至2的i次方减一间随机地选择一个等待的时隙数,在开始重传
5.10次冲突后,选择等待的时隙数固定在0至1023(2的10次方减一)间
6.16次冲突后,发送失败,报告上层。