基于令牌环的无线自组网MAC层信道接入和资源预留方法与流程

文档序号:15982797发布日期:2018-11-17 00:31阅读:623来源:国知局

本发明涉及无线自组网技术领域,特别是涉及一种基于令牌环的无线自组网mac层信道接入和资源预留方法。

背景技术

无线自组网也称为adhoc网络,是由一组采用无线通信方式具有终端和路由功能的节点组成,不依赖预设的基础设施,能够临时、快速、自动组网。具有分布式、自组织、多跳传输等特征。adhoc网络由于其组网灵活、抗干扰、投资成本低等优势广泛应用于协同作战通信、抢险救灾、野外科考、传感器网络等领域。

随着自组网技术的发展,adhoc网络呈现多样化、复杂化、体系化的趋势。如今人们对多媒体业务需求不断增加,利用adhoc网络传输语音、图像等实时性业务,保证服务质量(qualityofservice,qos)是一个研究热点。在多跳网络中端到端时延(end-to-enddelay)是衡量服务质量的重要指标。针对qos,目前主要从路由协议[3-4]、mac接入机制与资源预留[5-6]等方面入手。而mac层技术主要解决无线信道共享、接入控制、冲突避免等问题,对数据传输性能和网络总体性能具有重大影响。mac层保证qos主要通过设计混合接入控制机制来实现。当前主流接入机制主要基于csma机制和tdma机制实现的混合接入机制。在多跳网络中隐藏终端和暴露终端问题严重影响了服务质量。

考虑现有机制存在的不足,针对两跳网络重新设计了帧结构(将一个超帧分为四段子帧),提出了一种基于令牌环的接入方案,并对每个子帧的时隙数目和超帧的总时隙数目提出了优化方案。网络模型如图1所示。一个两跳网络被分为三个区域,areaa,areab和areac。虚线圆圈内的节点可以互相监听到数据帧和控制帧,虚线圆圈外的节点对虚线圆圈内的节点不会造成干扰,即areaa和areac中的节点构成全连通网络,areab和areac中的节点构成全连通网络,但areaa(areab)中的节点不在areab(areaa)中节点的传输范围之内。

针对mac层接入机制与资源预留问题,研究者进行了大量研究工作并提出了一些解决方案。

dtsa方案适用于多跳网络,数据包携带发送节点的帧长,分配的时隙,最大帧长,其邻居节点和数据。新节点通过向邻居节点发送req包(requestpacket)询问竞争区(两跳范围内)所有节点的帧长和时隙分配信息。竞争区内节点在其时隙发送inf(informationpacket)包回复新节点。新节点根据得到的信息发送sug包(suggestionpacket)声明其占用的时隙。其邻居节点回复rep包(replypacket)。至此新节点获得时隙资源。而la-mac方案是dtsa方案的改进,通过负载信息和丢包率确定策略,在丢包率达到阈值时,使所有可能的隐藏节点静默,减少冲突提高传输效率。但在两跳网络模型下,端到端时延和吞吐率均不理想。

ta-mac方案网络模型如图1所示。方案将超帧划分为三段子帧tac,tbc和tab,超帧结构如图2所示,其中ts表示最小传输时隙,为传输一个数据包所需的时间,mac、mbc和mab分别表示每个子帧的时隙数目,超帧总长为m个时隙。

但是,超帧结构按照ta-mac方案划分,存在令牌无意义轮询时隙浪费的情况,比如当areac中的节点在tac(tbc)子帧没有发往areaa(areab)的数据而有发往areab(areaa)的数据时,令牌将被多次无意义循环到这些节点。



技术实现要素:

本发明所要解决的技术问题是提供一种基于令牌环的无线自组网mac层信道接入和资源预留方法,获得较小的端到端时延。

本发明解决其技术问题所采用的技术方案是:提供一种基于令牌环的无线自组网mac层信道接入和资源预留方法,将网络中的时隙资源划分为一个个的超帧tf,而每一个超帧tf划分为tac、tbc、tc和tab四段子帧,并规定每段子帧的数据传输方向;定义允许在tac子帧发送数据的节点构成的令牌环为rac,tbc子帧发送数据的节点构成的令牌环为rbc,tc子帧发送数据的节点构成的令牌环为rc;tab子帧有两个令牌环,即分别由areaa中节点和areab中节点构成的令牌环ra和rb;令牌在令牌环中循环一圈为一轮,具体包括以下步骤:

(1)节点初始化后,与其一跳节点同步,然后监听一个超帧,确定其在网络中所处的位置;

(2)如果节点要加入网络,在信道空闲时间等于t2时激活回退计数器,如果回退计数器值等于0,节点根据其所处区域,加入相应的令牌环;如果回退计数器大于0,则执行csma退避过程;如果节点已经加入过网络,则进入步骤(4);

(3)如果发生冲突,则执行csma退避过程,否则此节点的一跳邻居节点收到它的加入网络控制帧后,将它加入到对应的令牌环中,并将其标记为当前令牌轮未获得过令牌;

(4)如果节点要离开网络,在信道空闲时间等于t2时重新激活回退计数器;如果回退计数器值等于0,节点广播离开网络控制帧;如果回退计数器大于0,则执行csma退避过程;如果节点不离开网络,则进入步骤(6);

(5)如果发生冲突,则执行csma退避过程,否则在相应的令牌环中去除节点;

(6)如果有新节点成功加入网络或有节点离开网络则执行时隙数目优化算法,并更新各个子帧的时隙数目,否则进入下一步;

(7)判断当前子帧是否属于节点所在令牌环循环时间,如果属于节点监听其他节点发送的分组,并进入下一步,否则返回到步骤(4);

(8)如果前一令牌获得者发送的分组中包含指定本节点为当前时隙令牌获得者信息,则节点发送分组,并在帧头包含下一时隙令牌获得者信息;节点等概地在本轮令牌环未获得过令牌的节点中选择一个节点作为下一时隙令牌获得者;如果节点收到的分组还包含丢失令牌的节点信息,则在相关的令牌环中删除此节点;如果节点收到一般分组则返回步骤(4);

(9)如果在下一个时隙,指定的令牌获得者并没有发送分组,即令牌丢失,则此节点重新发送分组并在帧头包含下一时隙令牌获得者信息,并返回步骤(4)。

所述步骤(1)具体为:如果节点的邻居既在tc子帧发送分组,又在tac和tbc子帧发送分组,则此节点位于areac中;如果其邻居既在tac子帧发送分组,又在tc子帧发送分组,则此节点位于areaa中;如果其邻居既在tbc子帧发送分组,又在tc子帧发送分组,则此节点位于areab中。

所述步骤(2)具体为:如果节点位于areaa区域,则节点在tac或tab子帧广播加入网络控制帧,指示节点需加入的令牌环为rac和ra;如果节点位于areab区域,则节点在tbc或tab子帧广播加入网络控制帧,指示节点需加入的令牌环为rbc和rb;如果节点位于areac区域,则节点在tc子帧广播加入网络控制帧,指示节点需加入的令牌环为rc。

所述时隙数目优化算法具体为:每个子帧的长度用令牌环轮数和令牌环中节点数表示,即tac=kac·lac·ts,tbc=kbc·lbc·ts,tc=kc·lc·ts,tab=ka·la·ts或tab=kb·lb·ts;其中,kj为令牌环循环的轮数,lj表示令牌环中节点数目,j=ac、bc、c、a、b;ts表示最小传输时隙;设dab为数据包从areaa发送到areab所需的时延;dac为数据包从areaa发送到areac所需的时延;dc为数据包从areac发送到areaa或areab所需的时延;da为数据包的源节点和目的节点都在areaa中的延时;db为数据包的源节点和目的节点都在areab中的延时;假设每个节点的数据到达假设为参数为λ数据包/时隙的泊松过程;以端到端延时最小为目标函数,建立优化模型:

其中,dab=dac+tbc+dc,ρj表示令牌环ra或rb中节点的缓存队列利用率,μj为令牌环rj中分组的平均传输速率、dth为初始设定的本地传输时延da和db的最大值、ρn表示areac中节点的缓存队列利用率,λ为数据包达到率。

所述步骤(7)具体为:tac子帧仅有rac令牌环循环,tbc子帧仅有rbc令牌环循环,tc子帧仅有rc令牌环循环,tab子帧有ra和rb两个令牌环循环;如果当前子帧属于节点所在令牌环循环时间,节点监听其他节点发送的分组。

所述csma退避过程具体为:在[0,w-1]之间随机生成回退计数器,w为竞争窗口;对于第一次发送尝试,w=cwmin,在每次发送失败后,w扩大2倍,直到w=cwmax;回退计数器以时隙δ为单位,每检测到信道空闲长达时隙δ,回退计数器减1,当监测到信道忙时,回退计数器保持。

有益效果

由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明通过合理设计帧结构,使得网络中的冲突仅在多个节点同时发送加入网络帧的情况才会发生。采用令牌环的方式,获得令牌的节点发送数据不会受到隐藏节点的干扰。本发明以端到端时延最小为目标函数建立优化模型,获得在不同节点数目下最佳的超帧时隙总数、各个子帧时隙数目,各个令牌环轮询圈数等系统参数。与动态时隙分配方案相比,由于减少了冲突,在节点数较多的情况下,获得了更高的吞吐率。每个令牌环中的节点以等概地方式获得令牌(发送机会),拥有下一个时隙,保证了公平性。

附图说明

图1是两跳网络模型示意图;

图2是ta-mac的超帧结构示意图;

图3是本发明的超帧结构示意图;

图4是节点流程图;

图5是实施例的网络场景图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

为了解决隐藏终端问题,重新设计了帧结构。将网络中的时隙资源划分为一个个的超帧tf,而每一个超帧tf划分为tac,tbc,tc和tab四段子帧,如图3所示。ts表示最小传输时隙,简称时隙,为传输一个数据包所需的时间,且节点总是在时隙的开始部分发送数据。mac、mbc、mc和mab分别表示每个子帧的时隙数目。超帧总长为m个时隙,m=mac+mbc+mc+mab。

规定tac子帧仅允许areaa中的节点向areac中的节点传输数据包;tbc子帧仅允许areab中的节点向areac中的节点传输数据包;tc子帧仅允许areac中的节点发送数据;tab子帧仅允许areaa(areab)中的节点向areaa(areab)中的节点传输数据。在节点间流传着令牌,获得令牌的节点占据一个时隙,具有发送机会,可以发送一个数据包或者仅仅是指定下一个令牌获得者。网络中流传着5个令牌形成5个令牌环。定义允许在tac子帧发送数据的节点(即areaa中所有节点)构成的令牌环为rac,tbc子帧发送数据的节点(即areab中所有节点)构成的令牌环为rbc,tc子帧发送数据的节点(即areac中所有节点)构成的令牌环为rc。由于areaa中的节点与areab中的节点互不干扰,tab子帧有两个令牌环,即分别由areaa中节点和areab中节点构成的令牌环ra和rb。定义令牌在令牌环中循环一圈为一轮,则每个子帧的长度可以用令牌环轮数和令牌环中节点数表示,即tac=kac·lac·ts,tbc=kbc·lbc·ts,tc=kc·lc·ts,tab=ka·la·ts(或tab=kb·lb·ts)。其中kj表示令牌环循环的轮数且不一定为整数,lj表示令牌环中节点数目,j=ac,bc,c,a,b。lac=na,lbc=nb,lc=nc,la=na,lb=nb。na,nb和nc分别表示areaa,areab和areac中的节点数目。令牌获得者等概选择当前轮令牌环中未获得过令牌的节点为下一个令牌获得者。网络中传输三种分组:1)令牌数据帧,2)仅令牌,3)加入/离开网络控制帧。第三种分组具有较高优先级,检测到信道空闲长达t2时长即可发送,其他两种分组检测到信道空闲长达t1时长(t2<t1)才能发送。

节点具体步骤如下:

步骤1:节点初始化后,与其一跳节点同步。然后监听一个超帧,确定其在网络中所处的位置(areaa,areab还是areac中)。如果其邻居既在tc子帧发送分组,又在tac和tbc子帧发送分组,则此节点位于areac中;如果其邻居既在tac子帧发送分组,又在tc子帧发送分组,则此节点位于areaa中;如果其邻居既在tbc子帧发送分组,又在tc子帧发送分组,则此节点位于areab中。转步骤2。

步骤2:如果节点要加入网络,在信道空闲时间等于t2时激活回退计数器。如果回退计数器值等于0,节点根据其所处区域,加入相应的令牌环。具体的,如果节点位于areaa区域,则节点在tac或tab子帧广播加入网络控制帧,指示节点需加入的令牌环为rac和ra。如果节点位于areab区域,则节点在tbc或tab子帧广播加入网络控制帧,指示节点需加入的令牌环为rbc和rb。如果节点位于areac区域,则节点在tc子帧广播加入网络控制帧,指示节点需加入的令牌环为rc。转步骤3。如果回退计数器大于0,转步骤12。如果节点已经加入过网络,转步骤4。

步骤3:如果发生冲突,则执行csma退避过程(步骤12),否则此节点的一跳邻居节点收到它的加入网络控制帧后,将它加入到对应的令牌环中,并将其标记为当前令牌轮未获得过令牌。转步骤4。

步骤4:如果节点要离开网络,如同步骤2一般,在信道空闲时间等于t2时重新激活回退计数器。如果回退计数器值等于0,节点广播离开网络控制帧,转步骤5。如果回退计数器大于0,转步骤12。如果节点不离开网络,转步骤6。

步骤5:如果发生冲突,则执行csma退避过程(步骤12),否则在相应的令牌环中去除节点。转步骤6。

步骤6:如果有新节点成功加入网络(或有节点离开网络)执行步骤7,否则转步骤8。

步骤7:每个节点执行时隙数目优化算法,分布式计算出tac、tbc、tc和tab子帧的时隙数目,并更新各个子帧的时隙数目。转步骤8。

步骤8:判断当前子帧是否属于节点所在令牌环循环时间。具体的,tac子帧仅有rac令牌环循环,tbc子帧仅有rbc令牌环循环,tc子帧仅有rc令牌环循环,tab子帧有ra和rb两个令牌环循环。如果当前子帧属于节点所在令牌环循环时间,节点监听其他节点发送的分组,转步骤9;如果不属于,则转步骤4。

步骤9:如果前一令牌获得者发送的分组中包含指定本节点为当前时隙令牌获得者信息,则转步骤10,如果节点收到的分组还包含丢失令牌的节点信息,则在相关的令牌环中删除此节点。如果节点收到一般分组则转步骤4。

步骤10:节点发送分组,并在帧头包含下一时隙令牌获得者信息。节点等概地在本轮令牌环未获得过令牌的节点中选择一个节点作为下一时隙令牌获得者。转步骤11。

步骤11:如果在下一个时隙,指定的令牌获得者并没有发送分组,即令牌丢失,则此节点重新发送分组并在帧头包含下一时隙令牌获得者信息和丢失令牌的节点信息。转步骤4。

步骤12:csma退避过程。在[0,w-1]之间随机生成回退计数器,w为竞争窗口,与加入/离开网络控制帧的传送失败次数有关。对于第一次发送尝试,w=cwmin,在每次发送失败后,w扩大2倍,直到w=cwmax。回退计数器以时隙δ为单位(δ=传播延迟+收、发转换时间+忙诊断时间),每检测到信道空闲长达时隙δ,回退计数器减1,当监测到信道忙时,回退计数器保持。转步骤2。

时隙数目优化方法是为给定areaa,areab和areac中节点数目,求解得出使得端到端时延最小的超帧总时隙数m*;子帧时隙数m*i,i=ac、bc、c、ab;令牌环循环的轮数k*j,j=ac、bc、c、a、b;以及最小端到端时延d*

每个节点的数据到达假设为参数为λ数据包/时隙的泊松过程。到达areaa(areab)中的数据又分为两种,一种为源节点和目的节点都在areaa(areab)中,这种情况的数据包达到率设为λa(λb),另一种为源节点在areaa(areab)中,经过areac中节点转发到达areab(areaa)中的目的节点,这种情况的数据包达到率设为λac(λbc)。为简化优化模型,假设λa=λb=λac=λbc=λ/2数据包/时隙。到达areac中节点的数据包又可以分为两种,一种是节点上层产生的数据,另一种是来自areaa或者areab中节点的数据。假设areac中的节点来自areaa(areab)的数据包为参数λar(λbr)。基于等概选择areac中的节点作为转发节点,可得:

areac中的节点的数据包到达率λc=λar+λbr+λ。

建立最小端到端时延(end-to-enddelay)的优化模型。系统可以看做m/g/1排队模型。根据pollaczek-khinchin公式,应用little定理,可得平均时延的计算公式为:

其中为平均服务时间,为平均服务时间的二阶矩。服务时间定义为数据包在缓存队列头的时刻到数据包成功发送的时刻。由于每子帧中令牌环循环轮数可能不是整数,引入变量q(1≤q≤lj,lj表示令牌环中节点数目,j=ac,bc,c,a,b)和随机变量hj(j=ac,bc,c,a,b),hj=0时表示数据包在第kj(j=ac,bc,c,a,b)轮令牌环发送数据,否则hj=1。当hj=1时的服务时间ws,j的概率分布函数可以表示为

其中,lj-q+1≤i≤2lj-q,1≤q≤lj。由此可以推得hj=1时的服务时间ws,j的数学期望。

当hj=0时的服务时间wsj的概率分布函数可以表示为:

其中,uj-q+1≤i≤uj-q+lj,1≤q≤lj,uj=m-(kj-1)lj。由此可以推得hj=0时的服务时间ws,j的数学期望。

由此可得其服务时间的数学期望为:

其中j=ac,bc,c,a,b。

当hj=1时服务时间的二阶矩表示为:

当hj=0时服务时间的二阶矩表示为:

服务时间的二阶矩表示为:

根据上述平均时延计算公式,以及平均服务时间、平均服务时间二阶矩等可得端到端时延。dab为数据包从areaa发送到areab所需的时延。dac为数据包从areaa发送到areac所需的时延。dc为数据包从areac发送到areaa或areab所需的时延。da为数据包的源节点和目的节点都在areaa中的延时。db为数据包的源节点和目的节点都在areab中的延时。

dab可以表示为:

dab=dac+tbc+dc

数据包从areaa传输到areab会经过tac子帧,而,areaa发到areac中转发节点的数据包在tac子帧期间等待服务,所以dab包含整个tac子帧。

dj(j=ac,c,a,b)可以表示为:

其中

基于以上分析,可以建立使dab最小的优化模型,表示如下:

p:mindab

目标函数p并非凸函数,找不到最小值。分析得知子帧中时隙数越多,时延越小,为使dab最小,可先求出使得tab子帧时隙数目最小且满足时延要求的ka和kb。设da,db的最大时延为dth,所以可将上述目标函数拆分为两个p1和p2:

p1:minkala

p2:mindab

其中,ρj表示令牌环ra或rb中节点的缓存队列利用率,μj为令牌环rj中分组的平均传输速率、dth为初始设定的本地传输时延da和db的最大值、ρn表示areac中节点的缓存队列利用率,

其中ka*为目标函数p1求解出来的最佳ka值。

一种简单的算法伪代码如下描述,但不限于此算法:

输入:lac,lbc,lc,la,lb,λ,dth。

输出:k*ac,k*bc,k*c,k*a,k*b,m*,m*ac,m*bc,m*c,m*ab,d*,dth*

初始化:m=lac+lbc+lc+max(la,lb)

whiledab–max(da,db)≥θ(θ为一满足精度要求的阈值)

for总时隙数目从m每次循环增加一个时隙直到设置的最大时隙数

求解优化模型p1,当前总时隙数下,da最大时对应的ka,kb为最佳ka,kb

求解优化模型p2,得当前总时隙数下最佳kac,kbc,kc,以及端到端时延dab

end

找到dab的最小值,以及对应的kac,kbc,kc,ka,kb,m,mac,mbc,mc,mab。

将dab赋值给dth。

end

得到最佳参数k*ac,k*bc,k*c,k*a,k*b,m*,m*ac,m*bc,m*c,m*a。

下面通过一个具体的实施例来进一步说明本发明。

如图5所示,以节点50作为新节点加入网络。

步骤1:节点50初始化后,与其一跳节点同步。然后监听一个超帧,确定其在网络中所处的位置(areaa,areab还是areac中)。因为其邻居节点(areab和areac中的节点)既在tbc子帧发送分组,又在tc子帧发送分组,则节点50判断出位于areab中。转步骤2。

步骤2:节点50位于areab区域,所以节点50可以在tbc或tab子帧广播加入网络控制帧,指示节点需加入的令牌环为rbc和rb。转步骤3。如果回退计数器大于0,转步骤12。如果节点已经加入过网络,转步骤4。

步骤3:如果有其他新节点同时广播了加入网络控制帧发生了冲突,则发生冲突的节点都执行csma退避过程(步骤12),否则节点50的一跳邻居节点收到它的加入网络控制帧后,将它加入到rbc和rb令牌环中,并将其标记为当前令牌轮未获得过令牌。转步骤6。

步骤4:如果节点50要离开网络,根据其所处区域areab,在tbc或tab子帧段执行csma过程,检测信道空闲长达t2时,节点50广播离开网络控制帧,转步骤5。

步骤5:如果发生冲突,则执行csma退避过程(步骤12),否则在相应的令牌环rbc和rb中去除节点。转步骤6。

步骤6:如果有新节点成功加入网络(或离开网络)则执行步骤7,否则转步骤8。

步骤7:每个节点执行时隙数目优化算法,分布式计算出tac、tbc、tc和tab子帧的时隙数目,并更新各个子帧的时隙数目。转步骤8。

步骤8:判断当前子帧是否属于节点所在令牌环循环时间。具体的,tac子帧仅有rac令牌环循环,tbc子帧仅有rbc令牌环循环,tc子帧仅有rc令牌环循环,tab子帧有ra和rb两个令牌环循环。如果当前子帧属于节点所在令牌环循环时间,节点监听其他节点发送的分组,转步骤9;如果不属于,则转步骤4。

步骤9:如果前一令牌获得者发送的分组中包含指定本节点为当前时隙令牌获得者信息,则转步骤10,如果节点收到的分组还包含丢失令牌的节点信息,则在相关的令牌环中删除此节点。如果节点收到一般分组则转步骤4。

步骤10:节点发送分组,并在帧头包含下一时隙令牌获得者信息。节点等概地在本轮令牌环未获得过令牌的节点中选择一个节点作为下一时隙令牌获得者。转步骤11。

步骤11:如果在下一个时隙,指定的令牌获得者并没有发送分组,即令牌丢失,则此节点重新发送分组并在帧头包含下一时隙令牌获得者信息和丢失令牌的节点信息。转步骤4。

步骤12:csma退避过程。在[0,w-1]之间随机生成回退计数器,w为竞争窗口,与加入/离开网络控制帧的传送失败次数有关。对于第一次发送尝试,w=cwmin,在每次发送失败后,w扩大2倍,直到w=cwmax。回退计数器以时隙δ为单位(δ=传播延迟+收、发转换时间+忙诊断时间),每检测到信道空闲长达时隙δ,回退计数器减1,当监测到信道忙时,回退计数器保持。转步骤2。

不难发现,本发明通过合理设计帧结构,使得网络中的冲突仅在多个节点同时发送加入网络帧的情况才会发生。采用令牌环的方式,获得令牌的节点发送数据不会受到隐藏节点的干扰。本发明以端到端时延最小为目标函数建立优化模型,获得在不同节点数目下最佳的超帧时隙总数、各个子帧时隙数目,各个令牌环轮询圈数等系统参数。与动态时隙分配方案相比,由于减少了冲突,在节点数较多的情况下,获得了更高的吞吐率。每个令牌环中的节点以等概地方式获得令牌(发送机会),拥有下一个时隙,保证了公平性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1