1.一种基于动态窗口的连续传输方法,其特征在于,所述方法包括以下步骤:
S1:在网络饱和流量情景下,即每个节点都始终有分组等待发送的情况,计算随节点数目变化的动态最小竞争窗口;
S2:当一个节点加入网络第一个分组到达时,该节点先初始化NB和CW的值,使NB=0,CW=wmin-csma,并且初始化动态最小竞争窗口的最大扩大次数的值为d;其中,NB为本次传输过程中该节点已经执行的退避算法的次数,CW表示动态最小竞争窗口的大小,wmin-csma表示现有CSMA/CA方案中最小竞争窗口的大小;
S3:节点在0到(CW-1)内随机选择退避时间的值,即延时aBackoffperiod的数目,当退避时间计时减为0时,节点开始做空闲信道评估:
如果发现信道空闲,则节点可以开始发送数据,然后等待接收端回复确认帧。
如果发现信道忙,则更新NB和CW的值,重新选择退避时间开始进入下一个退避阶段;
S4:NB与macMaxRABackoff比较,如果NB≤macMaxRABackoff则进入下一个退避阶段,反之则此次接入失败,等待下一次新的接入;
S5:如果节点在macAckWaitDuration时间内收到了确认帧,表示该次发送成功,那么分别计算下次发送分组时动态最小竞争窗口的大小以及下次首次退避时间;然后等待下一个分组到来并且准备就绪准备执行接入算法时,除了同样的初始化NB=0外,应使CW=wopt(n),其中,wopt(n)归一化的网络吞吐量取得最大值时动态最小竞争窗口大小,退避时间取上次传输结束的计算值而非随机在竞争窗内选择;
如果确认帧等待超时,则执行和空闲信道评估检测到信道忙一样的程序。
2.根据权利要求1所述的基于动态窗口的连续传输方法,其特征在于,步骤S1中,计算随节点数目变化的动态最小竞争窗口,其具体方法为:
用tp,tbackoff,tcca和tack分别表示节点发送一个分组所用的时间,发送该分组前用于退避的平均时间,发送该分组前用于空闲信道评估的平均时间和一次“接收或等待ACK”状态的时间;
在饱和流量情况下,用p表示该节点的传输概率,计算得:
因为退避时间在竞争窗中的选择是均匀的,故退避阶段0的平均退避时间为:
其中,Wmin表示竞争窗中的大小,同理一个周期内节点处于退避阶段的平均时间可表示为:
其中为节点发送数据时处于退避阶段i的概率,M为最大退避次数,则上式可近似表示为:
其中γ与一个周期内节点经历的退避阶段次数有关,同理定义参数δ为一个周期内CCA执行的次数,Tcca为执行一次CCA所用时间,可得到:
tcca=δTcca。 (5)
将(29)(30)代入(26),我们得到节点传输概率的表达式:
用S表示归一化的网络吞吐量,可计算得:
S=np(1-p)n-W (7)
其中,n表示网络中节点的个数,求S关于p的偏导数得S最大时的p值为:
S′=n(1-p)n-2(1-np)=0
令wopt(n)表示S取得最大值时动态最小窗口的大小,并将
(33)代入(31)可得:
另一方面,周期时延,即节点经历一整周期所用时间可表示为:
由(35)可知dc与Wmin成反比,公式(34)表明wopt(n)随着n的增大而增大,为了在节点数目n的增大时控制dc的增加,为Wmin设置上限;由(26)式可得令wmin-csma表示现有CSMA/CA方案中最小竞争的大小,考虑pcsma=popt的情况,即wmin-csma=wopt(n),求得此时的n值为
由于ncri可能为非整数,我们将其向上取整,得到动态最小竞争窗口的上界:
从而得到随节点数目变化的动态最小竞争窗口大小为:
Wdcw(n)=min(wopt(n),wub)。