基于等待时间的MAC资源管理方法
技术领域
本发明属于无线通信技术领域,涉及一种MAC资源管理方法,特别是涉及一种基于等待时间的MAC资源管理方法。
背景技术
无线传感器网络(Wireless Sensor Networks,简称WSN)是由部署在监测区域内大量的廉价微型传感器节点组成,通过短距离无线通信方式形成的一个多跳的、自组织的、互联互通的传感网络系统,其目的是通过各种微型传感器协作地感知、采集和处理网络覆盖区域中感知对象的信息,由嵌入式计算对感知信息进行处理,并通过无线通信网络将信息发送给远程观察者,使得人们能在任何时间、任何地点和任何环境条件下都能获取大量详实而可靠的信息。由于无线传感器网络具有易扩展、自组织、分布式结构以及健壮性和实时性等特点,能够广泛地应用在家庭网络、环境检测、城市交通、生物医疗、抢险救灾、空间探索、危险区域远程控制等诸多领域。
在无线传感器网络中,媒介访问控制(medium access control,MAC)协议决定无线信道的使用方式,在传感器节点之间分配有限的无线通信资源(能耗,带宽)。无线传感器网络MAC协议处于传感器网络协议栈的底层,对无线传感器网络的性能有很大的影响,是保证无线传感器网络高效通信的关键网络协议之一。因为传感器节点体积很小,携带的电池的电量十分有限,又无法给电池充电或更换新电池,所以传感器节点常常由于电池的电量耗尽而失效或废弃。故在传感器网络设计过程中,任何资源管理算法或协议的使用都是要以节能为前提的。
根据无线传感器网络MAC层的不同特性的特点,可以将MAC层资源管理算法分为3类:一类是基于竞争的MAC资源管理算法;一类是基于调度的MAC资源管理算法;一类是混合型MAC资源管理算法。竞争算法无须全局网络信息,扩展性好、易于实现,但因退避产生的能耗大;调度算法有节省优势和延时保障,但帧长度和调度难以调整,扩展性差,且时钟同步要求高;混合算法具有上述两种MAC资源管理的优点,但通常比较复杂,实现难度大。其中,基于竞争MAC资源管理算法尝试通过使各传感器节点以最小复杂度、独立地进行运算的策略来保存能量、提高吞吐量、控制延时时间。其基本思想是:传感器节点需要发送数据时,以某种竞争机制访问无线信道;如果发送的数据产生了冲突,就按照某种策略(如IEEE8021.11 MAC协议的分布式协调工作模式DCF采用的是二进制退避重传机制)重新发送数据,直到数据发送成功或放弃发送为止。目前已提出为不同的业务提供不同优先级的接入,保证高级业务的实时性,主要考虑对不同业务采用不同的竞争窗口参数,满足业务QoS方面的要求。这些算法基于竞争机制,冲突难以避免,因此产生的能量消耗仍然很大。现有的基于竞争的MAC资源管理算法有:
1)SMAC:它是在IEEE802.11基础上做的改进,更适合无线传感器网络;其引入了周期工作/睡眠机制、竞争退避机制、RTS/CTS/DATA传输机制、消息分割机制来节省能量,但是由于睡眠机制的引入,使得网络的时延有所上升,吞吐量有所下降,而且还不能根据网络中的业务量变化进行适应性调整。
2)TMAC:它是在SMAC的基础上提出的,可以根据通信流量动态调整活动时间,但该算法引入了“早睡”问题,增加了通信时延。
3)Wise-MAC:它采用前导码采用技术控制节点处于空闲侦听状态时的能量消耗,与SMAC和TMAC相比,节能效果更加显著,但该算法会占用无线传感器节点本就不多的存储空间,增加算法实现的复杂度,在节点密度较高的网络内这种情况更加突出。
4)PMAC:它根据检测到的网络状况和流的权重来动态调整节点的竞争窗口CW值为最佳值;该算法在公平性和吞吐量性能方面得到了大幅度提高,但时延增加了,算法实现复杂度增加了。
5)FCR:它是在竞争节点还没在碰撞发生时就增加自己的竞争窗口CW,以此降低网络中的碰撞概率,同时又使系统相邻两次发送之间的退避时间尽可能少,从而提高系统吞吐量;但该算法不能保证高优先级业务的QoS,公平性差。
6)REBS:它根据节点的剩余能量来动态分配节点的接入优先级,以降低节点碰撞概率并延长网络工作时间,但公平性降低,不能保证各业务的QoS。
7)SDDB:它为不同的业务提供不同优先级的接入,保证高级业务的实时性,主要考虑业务QoS方面的要求,没有仔细考虑信道吞吐量,算法复杂度,能耗等性能。
因为无线传感器网络是资源严重受限的网络,现有改进的基于竞争的算法都不太能使无线传感器网络的所有性能指标能达到满意的结果。目前无线传感器网络中基于竞争的MAC资源管理算法大多数是集中在能耗资源的管理上面,而且支持的业务类型相对比较单一,少有算法是既能节能,又可以保证各种不同业务的带宽,还可以支持多业务的QoS(Quality ofService,服务质量)的。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于等待时间的MAC资源管理方法,用于解决现有技术中不同的业务无法得到应有的QoS服务以及网络冲突碰撞带来的能量消耗的问题。
为实现上述目的及其他相关目的,本发明提供一种基于等待时间的MAC资源管理方法。
一种基于等待时间的MAC资源管理方法,所述基于等待时间的MAC资源管理方法包括:管理节点为网内的所有待传输业务的普通节点分配NID;普通节点根据自身被分配的NID、所述待传输业务的优先级以及网内参与业务传输的节点的个数计算出等待时间W(n):
其中,n表示未被分配NID的普通节点的节点号;N表示活动节点的总个数;Ts表示长度为SLOT_TIME的一个时间单元;d=H(p(M)-p(i),N);H(p,N)表示一个由优先级决定的随机整数;p(i)表示节点i要发送帧的优先级;p(M)表示分配了NID的所有节点的最高优先级;
n(i)表示分配给节点i的NID;n(j)表示分配给节点j的NID;
普通节点等待所述等待时间W(n)后开始进行业务传输。
优选地,所述基于等待时间的MAC资源管理方法的一种具体实现步骤为:
S1,管理节点周期性的发送信标帧beacon给簇内的所有普通节点;
S2,普通节点接收到所述信标帧Beacon后,如果普通节点有数据准备要发送,则发送一个NID请求帧到管理节点;
S3,如果所述NID请求帧中的NID为0,则管理节点根据所述NID请求帧为所述普通节点分配一个NID,并将分配的NID通过应答帧广播给网内所有普通节点,接收到应答帧的普通节点比较该应答帧中的目的地址DA是否与自己的地址相同,如果相同,则所述应答帧中的NID的值为自身节点的NID值;如果不相同,则所述应答帧中的NID的值不是自身节点的NID值;所述NID的值为网内当前活动节点个数,所述当前活动节点个数为包括管理节点在内的参与数据收发的节点的总数量;
S4,所述普通节点从所述应答帧中提取帧优先级字段,并结合自身的NID和活动节点数计算出自身节点的等待时间,经过所述等待时间后,如果信道空闲,则所述普通节点进行数据传输,否则进行退避;
S5,所述普通节点传输数据结束后,等待数据传输的ACK应答信号;如果所述普通节点接收到ACK应答信号,则数据传输成功;如果没接收到ACK应答信号,则数据传输失败;若数据传输失败,ON所述普通节点则进行数据的重传;
S6,若数据传输成功,则进行NID的释放。
优选地,所述NID请求帧和所述应答帧均采用MPDU帧格式。
优选地,所述重传次数的最大值为5。
优选地,步骤S3中,所述管理节点为所述普通节点分配一个NID的具体实现过程为:设定一个网内活动节点的总数的最大值为16,定义为MAX_ACTIVE_ON_COUNT;设当前活动节点的个数为n,如果n小于MAX_ACTIVE_ON_COUNT,则管理节点分配一个值为n的NID给发送NID请求帧的普通节点;如果管理节点给普通节点分配了一个NID,则当前的活动节点总数加1;如果当前活动节点的个数n等于MAX_ACTIVE_ON_COUNT,则即使管理节点接收到来自普通节点的NID请求帧,也不会分配NID给该普通节点;没有分配到NID的普通节点的NID的值设为0,即NID的值设为0的普通节点不能参与业务的传输,直到该普通节点分配到一个NID为止;当普通节点完成业务的传输后,释放占用的NID;如果有NID被释放,则当前的活动节点总数减1。
优选地,所述信标帧Beacon包括:Active Node Count字段,即活动节点数字段,表示包括管理节点在内的活动节点的数目;Current Highest Priority字段,即当前优先级字段,表示包括管理节点在内的分配了NID的所有节点的最高优先级;Information Update Count字段,即接入控制字段,表示本发明参数集的序列号;当接入控制字段由NM启动时,该字段设置为0;当活动节点数字段或者至少一个活动节点地址字段改变时,该Information Update Count字段的值递增;Active Node Address字段,即活动节点地址字段,记录了所有活动节点的MAC地址。
优选地,所述NID由普通节点释放的情况为:1)所述普通节点接收到的信标帧Beacon中的Active Node Count字段的值小于自身的NID值;2)信标帧Beacon中的Active NodeAdddress字段没有该普通节点的MAC地址。
优选地,在所述周期的时间内,分配了NID的普通节点没有进行任何数据传输,则由管理节点删除该普通节点分配到NID;其中,所述周期的时间大于或者等于6s。
优选地,所述待传输业务的优先级与业务类型一一对应。
如上所述,本发明所述的基于等待时间的MAC资源管理方法,具有以下有益效果:
本发明在低复杂度的情况下,根据业务的优先级设置节点的等待时间,使网络中的碰撞概率尽可能少,降低了能耗,延长了网络的生命期,同时满足了不同业务的QoS要求。
附图说明
图1显示为现有的网络拓扑结构场景示意图。
图2显示为网络拓扑结构中每个区域的传感器节点的通信示意图。
图3显示为实施例一所述的基于等待时间的MAC资源管理方法的流程示意图。
图4显示为本发明所述的信标帧beacon的帧格式示意图。
图5显示为本发明所述的MPDU的帧格式示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
请参阅附图。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的目的在于克服现有技术的不足,在保证无线传感器网络的节能基础之上,提出一种基于等待时间的MAC资源管理方法。该方法不仅要保证各种不同业务(音视频类、数据类、突发业务类等)的QoS要求,还可以实现无线传感器网络的节能。
本发明是为了保障无线传感器网络中多种业务共同传输的要求,首先通过管理节点给有数据发送请求的节点分配NID号,然后根据业务优先级,活动节点数和NID号计算节点的等待时间W(n)。节点在等待W(n)时间后如果检测到信道空闲,则发送数据;否则启动退避机制。本发明所述方法可以和基于竞争的退避机制结合使用,通过等待时间减少碰撞,同时对优先级不同的业务实行区分服务,优先级高的业务等待时间短,接入信道快;优先级低的业务等待时间长,接入信道慢;这样在多个业务同时接入信道时,可以按需分配信道带宽,而不会出现低优先业务得不到服务的情况;该算法还可以保证不同的业务得到它们应有的QoS服务,降低无线传感器网络冲突碰撞带来的能量消耗,增加网络吞吐量,减少延迟时间。
下面结合实施例和附图对本发明进行详细说明。
实施例
本实施例以图1所示的网络拓扑结构场景为例对本发明所述的基于等待时间的MAC资源管理方法的具体实现过程进行详细描述。图1中每个区域由一个管理节点(Node Manager,NM)和若干普通节点(Ordinary Node,ON)组成。普通节点只负责数据的采集,而管理节点负责区域内所有普通节点的时隙分配,收集并处理普通节点发来的请求。管理节点之间再在逻辑上组成高一级的数据转发网络,完成信息的网间传递,并向汇聚节点(Sink)汇报。
图2为图1所示的拓扑结构中每个区域的传感器节点(包括管理节点普通节点、管理节点)的通信示意图,图中实线表示普通节点(ON)之间的数据传输,虚线表示普通节点(ON)向管理节点(NM)发送请求,箭头表示管理节点(NM)发送信标帧Beacon给所有的普通节点(ON)。
本实施例所述的基于等待时间的MAC资源管理方法的实现流程如图3所示,包括以下步骤:
S1,NM周期性的发送信标帧beacon给网内的所有ON。
其中,信标帧Beacon的帧格式如图4所示,包括:
Active Node Count字段(又称活动节点数字段)是一个4比特字段,它表示包括NM在内的活动节点的数目,该活动节点的数目可以为1~15;
Current Highest Priority字段(又称当前优先级字段)是一个4比特字段,它表示包括NM在内的分配了NID的所有节点的最高优先级,该最高优先级的取值大小可以为0~7;
Information Update Count字段(又称接入控制字段)是一个8比特字段,它表示本发明参数集的序列号;当接入控制字段由NM启动时,该字段设置为0;当活动节点数字段或者至少一个活动节点地址字段改变时,该Information Update Count字段的值递增。
Active Node Address字段(又称活动节点地址字段)是一个64比特字段,其记录了所有活动节点(包括NM在内)的MAC地址;所述Active Node Address字段的前48比特位提供NM的MAC地址,后面的16比特位通常设置为0。
S2,ON接收到NM发送过来的信标帧Beacon之后,如果ON有数据(或业务)准备要发送,则发送一个NID请求帧到NM。所述请求帧可以采用MPDU帧格式。
所述MPDU(MAC Protocol Data Unit,MAC协议数据单元)帧格式的结构如图5所示,包括:
Sync字段,用于节点之间同步;
DA字段,表示ON的目的地址;
SA字段,表示ON的源地址;
FrameType字段,表示帧类型,如请求帧、应答帧、数据帧;
Node ID字段,表示活动节点的NID值的大小;
Version子字段,表示当前版本号;
Protocol子字段,表示传输层用的协议类型;
Traffic ID子字段,表示业务流量类型,与用户优先级一一对应。
本发明所述的请求帧、应答帧以及数据帧的帧格式不限于本实施例提供的一种方式,凡是根据本发明所述的原理,对帧格式进行相应的变形而获得的帧格式均属于本发明保护的范围。
S3,如果所述NID请求帧中的NID为0,则NM根据所述NID请求帧为该ON分配一个NID(Node ID,节点号),并将分配的NID通过应答帧广播给区域内(即网内)所有普通节点(即ON),接收到应答帧的普通节点比较该应答帧中的目的地址DA是否与自己的地址相同;如果相同,则所述应答帧中的NID的值为自身节点的NID值;如果不相同,则所述应答帧中的NID的值不是自身节点的NID值;不论该NID的值是否是自身节点的NID值,该NID值都等于网内当前活动节点个数,且所述当前活动节点个数为包括NM在内的参与数据收发的节点的总数量;所述应答帧也可采用MPDU帧格式;其中,所述NID的值为当前活动节点个数,所示当前活动节点个数为包括NM在内的参与数据(或业务)收发的ON的总数量,即分配到NID的ON节点的个数。
其中,NM的NID的值始终为1。NM分配NID的过程为:
设定一个簇内活动节点的总数的最大值为16,定义为MAX_ACTIVE_ON_COUNT;
设当前活动节点的个数(即Active Node Count字段的值)为n,如果n<MAX_ACTIVE_ON_COUNT,则NM分配一个值为n的NID给ON;如果NM给ON分配了一个NID,则当前的活动节点总数加1,即Active Node Count字段的值加1;
如果当前活动节点的个数n等于MAX_ACTIVE_ON_COUNT,则即使NM接收到来自ON的NID请求帧,也不会分配NID给该ON;
没有分配到NID的ON,其NID的值设为0,即NID的值设为0的ON不能参与数据(或业务)的传输,直到该ON分配到一个NID为止;分配到NID的ON就可以进行数据(或业务)的传输与接收;
当ON完成数据的传输后,会释放占用的NID;如果有NID被释放,则当前的活动节点总数减1,即Active Node Count字段的值减1。
S4,该ON可以从所述应答帧中提取帧优先级字段(即指Traffic ID子字段),结合NID和活动节点数,计算出该节点的等待时间W(n),等待W(n)时间后,如果信道空闲,则该ON进行数据传输,否则进行退避。NID是给节点分配的活动节点号,而活动节点数是管理节点通过beacon和ACK广播给区域内节点当前的NID值。
本发明中,帧的用户优先级(4等级)与帧的业务类型(4类)是一一对应的,即所述待传输业务的优先级与业务类型一一对应;所以本发明可以采用帧的业务分类来支持帧传输的优先级设置。根据所要传输的帧的流量特性来确定业务类型,由帧的业务类型就可以得出帧传输的用户优先级等级,如表1所示的优先级映射。节点发送的业务由帧来传输,即节点的业务优先级可用节点的帧优先级p(i)来表示;p(M)为信标帧指示的当前节点的最高优先级字段,该最高优先级字段在图4中指的是信标帧的Current Highest Priority字段;即节点的优先级p(M)是由其发送帧的优先级决定的。
表1:业务类型与用户优先级映射表
用户优先级为2的帧相对用户优先级为0和1的帧在一同被处理的时,会获得优先处理的待遇。也就是说先处理高用户优先级的帧,接着处理低用户优先级的帧;如果ON有很多高用户优先级的帧要进行传输,低用户优先级的帧要等到高用户优先级的帧传输完之后才能进行传输,这样可能会导致低用户优先级的帧被推迟传输。为避免这一问题,本发明在控制周期,令ON可以利用用户优先级、活动节点个数以及NID一起确定等待时间W(n),然后根据W(n)的值来决定帧的发送顺序,即不再仅仅根据优先级这一单一条件来决定帧的发送顺序;W(n)值越小,数据就越早被发送,同时分配到的剩余时隙越多。
等待时间W(n)的计算方式如下:
ON可以利用帧优先级、活动节点个数以及NID一起确定等待时间W(n),ON的NID值为n的等待时间W(n)的计算公式如下:
其中,n表示未被分配NID的普通节点的节点号;N表示活动节点的总个数;Ts表示长度为SLOT_TIME(54μs)的一个时间单元(即系统的最小时隙单元);d=H(p(M)-p(i),N);H(p,N)表示一个由优先级决定的随机整数;p(i)表示节点i要发送帧的优先级;p(M)表示分配了NID的所有节点要发送帧的最高优先级(包括NM);因为节点的优先级p(M)是由其发送帧的优先级决定的,所以p(M)即表示包括管理节点在内的当前所有活动节点的最高优先级。
在上述方程中,n(i),n(j)的定义如下:n(i)表示分配给节点i的NID;n(j)表示分配给节点j的NID。
本发明所述的等待时间W(n)的计算方式不限于本实施例提供的一种方式,凡是根据本发明所述的原理,进一步扩展所述等待时间的影响因素而获得的等待时间均属于本发明保护的范围。
S5,ON传输数据结束后,等待数据传输的ACK应答信号;如果ON接收到ACK应答信号,则数据传输成功;如果ON没接收到ACK应答信号,则数据传输失败;若数据传输失败,ON则进行数据的重传,重传次数的最大值可为5。
S6,若数据传输成功,则进行NID的释放;NID的释放有两种情形,一种由ON释放,另一种是由NM释放;
A)由ON释放NID的情况为:
1、ON接收到的信标帧Beacon中的Active Node Count字段的值如果小于自身的NID值;
2、信标帧Beacon中的Active Node Adddress字段没有该ON的MAC地址,则由该ON自己释放NID;
除上述两种情况外,其它情况下均由NM来释放NID。
B)由NM释放NID的情况为:
在定义的周期DELETION_TIME内,分配了NID的ON如果没有进行任何数据传输,则由NM删除该ON分配到NID。其中,DELETION_TIME值应该大于或者等于6s。
图3显示的是一个工作周期内,管理节点(Node Manager,NM)和普通节点(OrdinaryNode,ON)的工作流程,其它工作周期可以为此周期的扩展,工作流程一致。
本发明所述的基于等待时间的MAC资源管理方法保障了无线传感器网络中多种业务共同传输,通过对优先级不同的业务实行区分等待,实现业务优先级区分服务,优先级高的业务等待时间短,接入信道快;优先级低的业务等待时间长,接入信道相对慢;在多个业务同时接入信道时,可以按需分配信道带宽,不会出现低优先业务得不到服务的情况。
此外,本发明还可以保证不同的业务得到它们应有的QoS(Quality of Service,服务质量),降低无线传感器网络冲突碰撞带来的能量消耗,增加网络吞吐量,减少延迟时间。
可见,本发明不仅可以解决无线传感器网络中碰撞带来的能量浪费问题,还可以满足不同业务的QoS要求。
综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。