一种基于公平竞争的RTS碰撞解决方法
技术领域
本发明提出一种基于公平竞争的RTS(requset to send)碰撞解决方法,属于无线通信系统技术领域。
背景技术
无线局域网络中,基站又被称为接入站点(AP,access point)。在无线局域网中,信道接入的分布式本质使得载波侦听机制对于无碰撞的操作至关重要,然而在某些情况下物理载波侦听有可能无法探测到所有站点的传输。如图1所示,站点(STA,station)A发出的传输可以被基站AP和站点C检测到。而另一个远端节点站点B可以检测到基站AP,却检测不到站点A,反之亦然,所以站点A与站点B互为隐藏节点。
网络分配向量(NAV,network allocation vecror)是用来克服隐藏节点问题的一种机制。提供一种虚拟载波侦听机制来增强物理载波侦听。每个MAC帧都承载有一个“时长”字段,用以更新其他所有站点的NAV。“时长”字段包含一个时间值,该值标示发送站点预计从承载该MAC的最后一个物理层协议数据单元(PPDU)结束算起媒体有多长时间会处于繁忙状态。
图2所示即为要保护站点A的传输不受隐藏节点影响所使用的RTS/CTS握手机制。由于站点B,站点C和站点D在接收到CTS(clear to send)帧后设置了相应的NAV,这个设定值被设置为RTS中的“时长”字段减去SIFS(short interframe space)以及CTS响应自身的时长。设置NAV后,相应站点会为后续的帧交换进行延时,因而隐藏节点B不会影响到站点A与基站AP之间的数据传输。
通过引入RTS/CTS握手机制,有效解决了隐藏节点问题,但同时引入了新的问题:当站点A向基站AP发送一个RTS帧时,站点B有可能仍认为信道处于空闲状态,从而也向基站AP发送一个RTS帧,此时如图3-4所示,RTS帧碰撞,基站AP范围内站点并不会收到CTS帧,握手失败。A,B站点发送RTS帧时,周边站点已经根据RTS帧中的“时长”字段设定了其NAV,这个设定值包括CTS响应时间加上下一个帧交换所需要的时间。因而站点A,站点B的周边站点需要后延其NAV时长才能够竞争接入信道,这就影响了系统整体的公平性。
发明内容
发明目的:本发明针对无线局域网中互为隐藏节点的两个站点同时向AP发送RTS帧发生冲突的问题,提出了一种基于公平竞争的RTS碰撞解决方法。
技术方案:一种基于公平竞争的RTS碰撞解决方法,包括以下步骤:
步骤1,站点A使用RTS/CTS握手机制,发送RTS帧;
步骤2,站点A周边的站点根据收到的RTS帧里包含的“时长”字段设置NAV;
步骤3,如果站点A在CTSTimeout时间内没有收到周边站点发送的CTS帧,则说明CTS帧与隐藏节点发生碰撞,此时站点A发送CF-End帧;
步骤4,曾收到站点A发送的RTS帧的周边站点在收到CF-End帧后将其NAV设为0;
步骤5,站点A竞争窗口加倍,站点A使用两步回退竞争接入机制竞争信道;其中两步回退竞争接入机制具体如下:所有侦听到DIFS(distributed interframe space)时间内信道是空闲的站点,接着依次进入如下两个回退阶段,只有经过第一回退阶段的站点才能进入第二回退阶段,只有进入第二个回退阶段的站点才能发包。
进一步地,所述步骤5中第一回退阶段的竞争机制如下:
发起传输的站点首先初始化自己的回退计数器,然后按该数目的时隙长度后延;其中第一回退阶段的回退计数器记为BC1,BC1随机均匀分布在区间[0,CW1]上;CW1是第一回退阶段的竞争窗口,其最小值为CW1min,最大值为CW1max,CW1的初始值为CW1min。
进一步地,所述步骤5中第二回退阶段的竞争机制如下:
进入第二回退阶段后,站点设置自己的第二回退阶段的回退计数器,然后按该数目的时隙长度后延;第二回退阶段的回退计数器记为BC2,BC2随机均匀分布在区间[0,CW2]上;CW2是第二回退阶段竞争窗口,其最小值为CW2min,最大值为CW2max,CW2的初始值为CW2min。
更进一步地,所述BC1进行回退方法如下:
站点通过对媒体进行一个DIFS(distributed interframe space)固定时长的侦听确定信道空闲后,在每一个回退时隙(SlotTime)内站点继续监测媒体,如果媒体空闲,则BC1的值减1;如果媒体繁忙,则回退进程挂起,继续停留在第一回退阶段,无论是在竞争周期开始时或是竞争周期中,当站点的BC1值减为0时,站点进入第二个回退阶段。
更进一步地,所述BC2进行回退方法如下:
在每一个回退时隙(SlotTime)内站点持续监测媒体,如果媒体空闲,则BC2的值减1,当BC2的值减为0时,此节点开始它的传输;如果检测到媒体繁忙,即有站点竞争到信道,则其他处于第二回退阶段且未竞争到信道的站点回到第一回退阶段,且CW1值翻倍后随机设置BC1值,参与下一次两步回退竞争;
当发生数据冲突时,发生冲突的站点重新回到第一回退阶段,竞争窗口CW1的值加倍,而后在[0,CW1]内随机选择新的BC1值。
有益效果:本发明解决了无线局域网中由于隐藏节点发送RTS帧碰撞导致的NAV误设而引起的系统不公平性问题,在改进机制下,不同节点数下的公平性指数都明显提升,系统的公平性问题得到改善,这使得各个站点可以更加公平地接入信道。
附图说明
图1为本发明现有技术的RTS冲突场景示意图;
图2为本发明现有技术的RTS/CTS交换机制图;
图3为本发明现有技术的RTS碰撞效果图;
图4为本发明现有技术的RTS竞争重传示意图;
图5为本发明实施例的基于公平竞争的RTS重传流程图;
图6为本发明实施例的系统吞吐率对比图;
图7为本发明实施例的系统公平性指数对比图;
图8为本发明实施例的两步回退竞争接入机制示意图。
具体实施方式
下面结合具体实施方式,进一步阐明本发明。
如图5-7所示,一种基于公平竞争的RTS碰撞解决方法,包括以下步骤:
步骤1,站点A使用RTS/CTS握手机制,发送RTS帧;
步骤2,站点A周边的站点根据收到的RTS帧里包含的“时长”字段设置NAV;
步骤3,如果站点A在CTSTimeout时间内没有收到周边站点发送的CTS帧,则说明CTS帧与隐藏节点发生碰撞,此时站点A发送CF-End帧;
步骤4,曾收到站点A发送的RTS帧的周边站点在收到CF-End帧后将其NAV设为0;
步骤5,A竞争窗口加倍,A使用两步回退竞争接入机制竞争信道;其中两步回退竞争接入机制具体如下:所有侦听到DIFS(distributed interframe space)时间内信道是空闲的站点,接着依次进入如下两个回退阶段,只有经过第一回退阶段的站点才能进入第二回退阶段,只有进入第二个回退阶段的站点才能发包;
第一回退阶段的竞争机制如下:
发起传输的站点首先初始化自己的回退计数器,然后按该数目的时隙长度后延;其中第一回退阶段的回退计数器记为BC1,BC1随机均匀分布在区间[0,CW1]上;CW1是第一回退阶段的竞争窗口,其最小值为CW1min,最大值为CW1max,CW1的初始值为CW1min。
BC1进行回退方法如下:
在一个新的竞争周期开始时,除了刚刚成功接入信道的站点外,每个站点的BC1都减去阀值T,当BC1减去阀值T后的值小于或等于0时,站点进入第二回退阶段。公平性起见,一个站点处于第一回退阶段的时间越长,减去的阀值T应该越大,以让它有更多的机会进入第二个回退阶段,因而将T设置为(CW1+1)T0/(CW1min+1)(T0可以随着网络负载情况动态调整)。站点成功传送后竞争窗口CW1将重新设为CW1min,显然,如果BC1再减去T值,此站点会有更多的机会进去第二回退阶段,这会引起不公平竞争;
站点通过对媒体进行一个DIFS(distributed interframe space)固定时长的侦听确定信道空闲后,在每一个回退时隙(SlotTime)内站点继续监测媒体,如果媒体空闲,则BC1的值减1;如果媒体繁忙,则回退进程挂起,继续停留在第一回退阶段,无论是在竞争周期开始时或是竞争周期中,当站点的BC1值减为0时,站点进入第二个回退阶段。
第二回退阶段的竞争机制如下:
进入第二回退阶段后,站点设置自己的第二回退阶段的回退计数器,然后按该数目的时隙长度后延;第二回退阶段的回退计数器记为BC2,BC2随机均匀分布在区间[0,CW2]上;CW2是第二回退阶段竞争窗口,其最小值为CW2min,最大值为CW2max,CW2的初始值为CW2min。
BC2进行回退方法如下:
在每一个回退时隙(SlotTime)内站点持续监测媒体,如果媒体空闲,则BC2的值减1,当BC2的值减为0时,此节点开始它的传输;如果检测到媒体繁忙,即有站点竞争到信道,则其他处于第二回退阶段且未竞争到信道的站点回到第一回退阶段,且CW1值翻倍后随机设置BC1值,参与下一次两步回退竞争;
当发生数据冲突时,发生冲突的站点重新回到第一回退阶段,竞争窗口CW1的值加倍,而后在[0,CW1]内随机选择新的BC1值。
如图8所示,主要参数为CW1min=7,T0=4,CW2min=6,在竞争周期初始,即t0时刻,所有站点的BC1值减去T值。根据T值的计算公式,站点A减去的T值为32,站点B减去的T值为16,站点C减去的T值为4,站点D减去的T值为8。因为站点B和D此时BC1值≤0,所以他们进入第二回退阶段,并分别设定了各自的BC2值。在一个空闲时隙后,即在时间t1,站点C的BC1值减为0,所以站点C也进去第二回退阶段。从时间t1到t2,站点B,C,D按照CSMA/CA机制竞争信道访问权。在时间t2,站点D赢得了信道访问权,传输数据。同时站点B,C的竞争窗口CW1值翻倍,并返回第一个阶段,同时,他们也随机设置了[0,CW1]区间内的BC1的值。在t3时刻,站点D完成传输,一个新的两步回退竞争周期开始。站点D返回第一个回退阶段,其竞争窗口CW1置为最小值CW1min(7),并在[0,CW1]区间内随机设置了BC1值。在t3时刻,除了站点D外,所有其他站点的BC1值都减去他们相应的T值。此时站点A,B的BC1值≤0,因此在新的两步回退竞争周期初始时,他们进入第二个回退阶段开始竞争信道访问权。
为评估所提方案的性能,主要考虑以下两个参数:
系统吞吐率:用数据时长/仿真时长来计算。
公平性指数FI:公式如下,
式中N表示网络中所有业务流的数目,Ti和分别表示业务流i的吞吐量和权重。在仿真中,所有业务流的权重均设置为相同。FI的取值在[0,1]之间,FI越接近1,表示公平性越好。仿真结果如图6-7所示,基于该技术方案,不同节点数下的公平性指数都明显提升,系统的公平性问题得到改善,使各个站点可以更加公平地接入信道。
因此本发明在增强系统公平性的基础上,为了进一步减少竞争所带来的碰撞,又提出了两步回退竞争接入机制,该方法通过两步筛选有效解决了网络高负荷条件下,由于冲突造成的信道资源的浪费,同时,通过差异化设定不同站点的T值,让由于碰撞等原因而使竞争窗口变长的站点有更多的机会进入第二回退阶段,进一步提高了系统的公平性。