基于虚拟分簇和路径预约的自适应同步MAC协议

文档序号:26835402发布日期:2021-09-29 07:46阅读:210来源:国知局
基于虚拟分簇和路径预约的自适应同步MAC协议
基于虚拟分簇和路径预约的自适应同步mac协议
技术领域
1.本发明涉及无线通信技术领域,特别涉及一种基于虚拟分簇和路径预约的自适应同步mac协议。


背景技术:

2.无线传感器网络(wireless sensor networks,wsn)是由大量以自组织和多跳方式的微型传感器节点构成的网络,网络能够通过传感器节点之间的交互来实现对于监测区域内被监测对象信息的感知、采集、处理和传输等一系列操作,具有大规模、自组织、动态拓扑以及多跳路由等特点,广泛地应用于环境监测、军事领域、智能家居、医疗健康以及交通管理等方面。但由于wsn中传感器节点采用电池供电,存在电池能量有限且不易更换的问题,其在一定程度上影响了wsn网络和节点的生命周期,阻碍了wsn网络的进一步发展。因此,如何解决网络的节能问题成为了设计wsn网络协议所要考虑的关键因素。
3.在wsn中,网络能耗来源除了必要的事件监测和数据收发外,mac层还面临着空闲侦听、碰撞冲突和控制开销大等问题。网络节点在进行数据收发时,一直使无线通信模块处于打开状态,来判断传输信道是否可用,因而在此过程中节点过多的空闲侦听增加了节点的能耗。而媒质访问控制(media access control,mac)层决定着无线信道获取方式和节点数据收发方式,所以网络中mac协议的能量有效性将对网络节点的性能产生直接影响。因此,为了平衡网络的能耗和传输时延,设计出一种低耗能低延时的mac协议是非常必要的。
4.已有mac协议中,其中一个典型的同步mac协议是s

mac协议。在s

mac协议中,节点采用周期性休眠/唤醒工作方式,在网络的初始化阶段节点被划分为不同的虚拟簇,同一个虚拟簇中的所有节点都具有相同的调度。s

mac协议中节点只在唤醒阶段进行数据传输,而后进入睡眠阶段等待下一个调度周期的到来。通过这种调整节点占空比的方式,s

mac协议减少了节点的空闲侦听,实现了节能的目的。但在唤醒阶段不需要进行数据传输的节点也一直保持唤醒状态监听信道,从而引入了不必要的空闲侦听能量消耗。此外每一个调度周期数据包只能被转发一跳,因此也会产生大量的时延。t

mac协议基于s

mac协议进行改进,在保持s

mac协议原有调度周期不变的基础上,将节点调度周期的唤醒和休眠阶段划分为可变时间长度,根据网络中的通信流量动态地调整节点唤醒时间,进而调整节点的占空比,通过动态改变节点处于唤醒阶段的时间来保持网络负载均衡。并且t

mac采用突发方式发送数据,减少节点的空闲侦听时间和节点的能量消耗。但t

mac协议仍具有时延较大、吞吐量低等问题,尤其是在网络流量大的时候。
5.作为经典的低功耗自适应分簇协议,leach协议将网络运行过程的生命周期分成若干轮,每一轮又细分为成簇和稳定数据传输阶段。在成簇阶段,网络采用随机簇头选举算法将节点随机划分成若干个虚拟簇;在数据传输阶段,要进行传输的数据由簇内的成员节点发送到簇头节点,簇头节点在接收到数据后对数据进行融合操作,融合完成后再将数据发送到基站。但由于leach算法的簇头选取采用随机选择簇首的方式,剩余能量较低的节点也可能被选为簇首节点,这样会导致节点的更快死亡。此外,leach算法是一种均匀分簇路
由协议算法,这种算法大都存在热区问题。产生热区问题的原因是,在以多跳方式进行数据传输时,基站附近的簇头不仅要将自身数据传输给基站,还需要多次充当中继节点转发其他簇头的数据,从而导致该区域的簇头能量消耗比其他簇头更多,加速了这类簇头的死亡速度。


技术实现要素:

6.本发明提供了一种基于虚拟分簇和路径预约的自适应同步mac协议,其目的是为了解决传统的mac协议空闲侦听能量消耗大、时延大和吞吐量低的问题。
7.为了达到上述目的,本发明的实施例提供了一种基于虚拟分簇和路径预约的自适应同步mac协议,包括:
8.步骤1,根据各个节点剩余能量水平和各个节点与基站之间的距离设计基于节点的剩余能量和基站距离的簇头选取机制;
9.步骤2,基于节点的一个调度周期设计路径预约机制和数据传输机制;
10.步骤3,确定节点发送的数据包的优先级;
11.步骤4,将数据包的优先级嵌入待传输的数据帧中,根据数据包的优先级构建数据退避传输函数。
12.其中,所述步骤1具体包括:
13.在分簇的初始化调度周期t
p
过程中,其中,调度周期t
p
的长度由网络中节点的总数量决定,所有节点全部唤醒处于侦听状态,等待发送或接收网络中的预约同步帧,其中,预约同步帧的信标帧结构包括fl字段、fcf字段、fcs字段、源节点地址字段src、目标地址字段dst、预约总跳数字段t
ah
、下一跳地址字段neh、上一跳地址字段lah、剩余跳数字段r
eh
和剩余能量字段e
en
;节点从调度周期t
p
中随机选择一个时刻t
rand
(i)发送预约同步帧,将当前发送预约同步帧的节点作为簇头节点,若网络中其余节点在收到簇头节点发送的预约同步帧前并未发送预约同步帧,则将接收并转发簇头节点的预约同步帧的节点成为簇头节点的成员节点,转发完成后的成员节点进入休眠状态。
14.其中,所述步骤1还包括:
15.计算节点i的随机唤醒时刻t
rand
(i),如下所示:
[0016][0017]
其中,i表示节点,r(i)表示节点i产生的一个随机数,t
syn
表示发送一个预约同步帧所需要的时间,e
energy
表示节点归一化剩余能量,n表示网络中节点的总数量;
[0018]
计算节点i产生的随机数r(i),如下所示:
[0019]
r(i)=random(1,dis+c) 1≤i≤n
ꢀꢀꢀ
(2)
[0020]
其中,dis表示节点i和基站之间的距离,c表示根据网络负载情况提前确定的一个常数;
[0021]
计算节点归一化剩余能量e
energy
,如下所示:
[0022]
[0023]
其中,e
remain
表示当前节点的剩余能量,e
total
表示节点初始状态的总能量。
[0024]
其中,所述步骤2具体包括:
[0025]
将节点的一个调度周期分为路径预约阶段和数据传输阶段,在路径预约阶段同一虚拟簇节点全部唤醒准备接收和转发预约同步帧进行传输路径预约:发送节点对预约同步帧进行初始化并设置传输跳数值t
ah
字段后发送,对传输路径进行预约,传输路径中间节点在接收到预约同步帧后,根据预约同步帧中的传输跳数字段t
ah
和剩余跳数字段r
eh
为传输路径分配数据传输时间段,并将剩余跳数字段r
eh
减1后再次进行转发继续传输路径预约,若中间节点在当前时间段被占用,则依次向后推延直到找到能够预约的空闲时间段,并将剩余跳数字段r
eh
在减1的基础上额外减去向后推延的跳数后继续转发,其中,预约同步帧作为下一跳节点的传输路径预约的预约同步帧和上一节点的确认传输路径预约的预约同步帧;当中间节点对应r
eh
减1的时间段和之后的时间段均被占用时,则直接将预约同步帧中的剩余跳数字段r
eh
置0并转发,当预约同步帧中剩余跳数字段r
eh
为0或1时,传输路径预约结束,传输路径节点进入数据传输阶段开始传输数据,未被预约的传输路径节点进入睡眠状态等待下一个调度周期的到来。
[0026]
其中,所述步骤2还包括:
[0027]
在数据传输阶段开始时,预约的传输路径上的接收节点首先在被预约到的跳数所对应的时间段前唤醒,预约的传输路径上的接收节点唤醒后发送一个ack确认帧,其中,预约的传输路径上的接收节点的正确唤醒时间t
wakeup
的计算,如下所示:
[0028]
t
wakeup
=(t
ah

r
eh
)*t
onetime
ꢀꢀꢀ
(4)
[0029]
其中,t
ah
表示数据包在当前路径已经传输的跳数,r
eh
表示待传输的剩余跳数,t
onetime
表示数据包传输一跳花费的总时间;
[0030]
计算数据包传输一跳的总时间t
onetime
,如下所示:
[0031]
t
onetime
=t
ack
+sifs+t
data
+sifs
ꢀꢀꢀ
(5)
[0032]
其中,t
ack
表示发送ack帧的时间,t
data
表示发送单个数据帧的时间,sifs表示两次传输之间的最短间隔,当网络中传输的数据帧大小相同时,将t
data
设置为一个预设值;当网络中传输的数据帧大小不相同时,将t
data
包含在预约同步帧中。
[0033]
其中,所述步骤3具体包括:
[0034]
数据包包括传输数据的信息量、数据包数量和节点剩余能量水平,分别对传输数据的信息量、数据包数量和节点剩余能量水平进行优先等级划分:
[0035]
网络中传输的数据的类型为:网络中出现突发状况时节点发送的重要信息、网络中进行传输的具有较大信息量的数据和节点日常工作时发送的具有一般信息含量的普通数据;根据信息含量优先原则,将网络中传输数据的信息量划分成三种优先级:当传输数据的信息量等级为level1,优先等级为d
infor
=00时,退避窗口大小设置为bw
00
;当传输数据的信息量等级为level2,优先等级为d
infor
=01时,退避窗口大小设置为bw
01
;当传输数据的信息量等级为level3,优先等级为d
infor
=1x时,退避窗口大小设置为bw
1x
,其中,d
infor
=10,退避窗口大小设置为bw
10
,d
infor
=11,退避窗口大小设置为bw
11
,当d
infor
的值为00时,该帧数据传输按照最优先级别进行;当d
infor
的值为01时,该帧内包含着网络中信息含量较大的传输数据;当d
infor
的值为1x时,该帧数据传输或指令按照最末位优先级别进行;
[0036]
退避窗口bw
00
、bw
01
和bw
1x
之间的关系为:
[0037]
bw
00
<bw
01
<bw
1x
ꢀꢀꢀ
(6)
[0038]
退避窗口bw的初始数值为bw
min
,退避窗口bw的数值上限为bw
max
,各退避窗口bw数值之间的关系为:
[0039]
bw
00max
<bw
01min
<bw
01max
<bw
1xmin
ꢀꢀꢀ
(7)
[0040]
其中,bw
00max
表示退避窗口bw
00
的数值上限,bw
01min
表示退避窗口bw
01
的初始数值,bw
01max
表示退避窗口bw
01
的数值上限,bw
1xmin
表示退避窗口bw
1x
的初始数值。
[0041]
其中,所述步骤3还包括:
[0042]
数据包数量pt
num
的优先等级划分:发送节点在发送数据之前,对节点的传输队列长度进行检测,检测发送节点的传输队列中等候传输的数据包数量pt
wait
,并根据发送节点的传输队列中等候传输的数据包数量pt
wait
计算得到该节点的数据包数量优先等级;当数据包数量等级为level1,发送节点的传输队列中等候传输的数据包数量为pt
wait
大于n
rfactor
时,对应的优先等级d
infor
为3;当数据包数量等级为level2,发送节点的传输队列中等候传输的数据包数量为n
sfactor
小于pt
wait
小于或等于n
rfactor
时,对应的优先等级d
infor
为2;当数据包数量等级为level3,发送节点的传输队列中等候传输的数据包数量为pt
wait
小于或等于n
sfactor
时,对应的优先等级d
infor
为1;其中,n
rfactor
表示接收节点的负载因子,n
sfactor
表示发送节点的负载因子。
[0043]
其中,所述步骤3还包括:
[0044]
节点剩余能量水平e
energy
的优先等级划分:当数据包等级为level1,节点剩余能量水平为e
energy
小于30%时,将预约同步帧中的e
en
字段设置为0;当数据包等级为level2,节点剩余能量水平为30%小于或等于e
energy
小于70%时,将预约同步帧中的e
en
字段设置为1;当数据包等级为level3,节点剩余能量水平为e
energy
大于或等于70%时,将预约同步帧中的e
en
字段设置为2;
[0045]
节点的能耗包括节点在发送数据包时的能耗p
send
与节点在接收数据包时的能耗p
receive
、节点在低功耗状态下侦听信道时的能耗p
listen
和节点处于睡眠状态下的能耗p
sleep

[0046]
计算节点在一个调度周期内的总能耗p
total
,如下所示:
[0047]
p
total
=p
self
+p
receive
+p
send
ꢀꢀꢀ
(8)
[0048]
其中,p
self
表示节点睡眠和侦听时的固有能耗;
[0049]
计算节点睡眠和侦听时的固有能耗p
self
,如下所示:
[0050]
p
self
=p
listen
*t
duty
+p
sleep
*(1

t
duty
)
ꢀꢀꢀ
(9)
[0051]
其中,t
duty
表示节点在一个调度周期内的占空比;
[0052]
计算节点在一个调度周期内发送数据产生的能耗p
send
,如下所示:
[0053]
p
send
=p
send
×
n
send
ꢀꢀꢀ
(10)
[0054]
其中,n
send
表示节点在一个调度周期内发送的数据包数量;
[0055]
计算节点一个调度周期内接收数据产生的能耗p
receive
,如下所示:
[0056]
p
receive
=p
receive
×
n
receive
ꢀꢀꢀ
(11)
[0057]
其中,n
receive
表示节点在一个调度周期内接收到的数据包数量。
[0058]
其中,所述步骤4具体包括:
[0059]
将数据信息量、数据包数量和节点剩余能量水平的优先级嵌入到待传输的数据帧中,根据数据信息量、数据包数量和节点剩余能量水平的优先级设计退避窗口bw,如下所
示:
[0060][0061]
本发明的上述方案有如下的有益效果:
[0062]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,将节点的一个调度周期分为路径预约阶段和数据传输阶段,在路径预约阶段发送一个预约同步帧以实现对于传输路径进行提前预约,在数据传输阶段预约传输路径上的节点开始依次唤醒完成数据传输,在保证节能的前提下实现在一个调度周期传输多跳的目的,大量减少了时延,将数据包进行优先等级划分,根据划分的数据信息量、数据包数量和节点剩余能量水平的优先等级确定退避函数,并计算出对应的退避窗口大小,数据包的优先级越高则退避窗口越小,更加符合实际情况中对紧急数据的传输,进而实现网络周期寿命最大化。
附图说明
[0063]
图1为本发明的流程图;
[0064]
图2为本发明的分簇示意图;
[0065]
图3为本发明的预约同步帧结构示意图;
[0066]
图4为本发明的网络节点调度周期示意图。
具体实施方式
[0067]
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0068]
本发明针对现有的mac协议空闲侦听能量消耗大、时延大和吞吐量低的问题,提供了一种基于虚拟分簇和路径预约的自适应同步mac协议。
[0069]
如图1至图4所示,本发明的实施例提供了一种基于虚拟分簇和路径预约的自适应同步mac协议,包括:步骤1,根据各个节点剩余能量水平和各个节点与基站之间的距离设计基于节点的剩余能量和基站距离的簇头选取机制;步骤2,基于节点的一个调度周期设计路径预约机制和数据传输机制;步骤3,确定节点发送的数据包的优先级;步骤4,将数据包的优先级嵌入待传输的数据帧中,根据数据包的优先级构建数据退避传输函数。
[0070]
其中,所述步骤1具体包括:在分簇的初始化调度周期t
p
过程中,其中,调度周期t
p
的长度由网络中节点的总数量决定,所有节点全部唤醒处于侦听状态,等待发送或接收网络中的预约同步帧,其中,预约同步帧的信标帧结构包括fl字段、fcf字段、fcs字段、源节点地址字段src、目标地址字段dst、预约总跳数字段t
ah
、下一跳地址字段neh、上一跳地址字段lah、剩余跳数字段r
eh
和剩余能量字段e
en
;节点从调度周期t
p
中随机选择一个时刻t
rand
(i)发送预约同步帧,将当前发送预约同步帧的节点作为簇头节点,若网络中其余节点在收到簇头节点发送的预约同步帧前并未发送预约同步帧,则将接收并转发簇头节点的预约同步帧的节点成为簇头节点的成员节点,转发完成后的成员节点进入休眠状态。
[0071]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,节点所发送的预约同步帧(synchronous reservation frame,srf)基于r

mac协议的先驱帧pion帧进行改进,其信标帧的结构包括fl字段、fcf字段和fcs字段等ieee 802.11协议中的
固有字段,以及发送srf帧的源节点地址字段src、目标地址字段dst、预约总跳数字段t
ah
、下一跳地址字段neh、上一跳地址字段lah、剩余跳数字段r
eh
和剩余能量字段e
en
,相较于r

mac协议,srf帧结构中增加了下一跳地址字段neh、总跳数字段t
ah
和剩余跳数字段r
eh
,用于在路径预约和数据传输阶段中的节点唤醒和发生碰撞时的优先级退避。为了避免节点间由于发送预约同步帧(srf)的时间重合产生碰撞从而节点能耗的问题,节点从t
p
周期中随机选择一个时刻t
rand
(i)广播预约同步帧,此时发送预约同步帧的节点成为簇头节点,若网络中其余节点在收到该节点发送的同步帧前并未发送预约同步帧,则接收并转发该节点的预约同步帧的节点成为簇头节点的成员节点,转发完成后的成员节点立即进入休眠状态减少能量浪费。
[0072]
其中,所述步骤1还包括:计算节点i的随机唤醒时刻t
rand
(i),如下所示:
[0073][0074]
其中,i表示节点,r(i)表示节点i产生的一个随机数,t
syn
表示发送一个预约同步帧所需要的时间,e
energy
表示节点归一化剩余能量,n表示网络中节点的总数量;
[0075]
计算节点i产生的随机数r(i),如下所示:
[0076]
r(i)=random(1,dis+c) 1≤i≤n
ꢀꢀꢀ
(2)
[0077]
其中,dis表示节点i和基站之间的距离,c表示根据网络负载情况提前确定的一个常数;
[0078]
计算节点归一化剩余能量e
energy
,如下所示:
[0079][0080]
其中,e
remain
表示当前节点的剩余能量,e
total
表示节点初始状态的总能量。
[0081]
其中,所述步骤2具体包括:将节点的一个调度周期分为路径预约阶段和数据传输阶段,在路径预约阶段同一虚拟簇节点全部唤醒准备接收和转发预约同步帧进行传输路径预约:发送节点对预约同步帧进行初始化并设置传输跳数值t
ah
字段后发送,对传输路径进行预约,传输路径中间节点在接收到预约同步帧后,根据预约同步帧中的传输跳数字段t
ah
和剩余跳数字段r
eh
为传输路径分配数据传输时间段,并将剩余跳数字段r
eh
减1后再次进行转发继续传输路径预约,若中间节点在当前时间段被占用,则依次向后推延直到找到能够预约的空闲时间段,并将剩余跳数字段r
eh
在减1的基础上额外减去向后推延的跳数后继续转发,其中,预约同步帧作为下一跳节点的传输路径预约的预约同步帧和上一节点的确认传输路径预约的预约同步帧;当中间节点对应r
eh
减1的时间段和之后的时间段均被占用时,则直接将预约同步帧中的剩余跳数字段r
eh
置0并转发,当预约同步帧中剩余跳数字段r
eh
为0或1时,传输路径预约结束,传输路径节点进入数据传输阶段开始传输数据,未被预约的传输路径节点进入睡眠状态等待下一个调度周期的到来。
[0082]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,路径预约阶段结束后,路径节点进入数据传输阶段开始传输数据,而没有被预约的节点则进入睡眠状态等待下一个调度周期的到来,节约网络的能量消耗。
[0083]
其中,所述步骤2还包括:在数据传输阶段开始时,预约的传输路径上的接收节点
首先在被预约到的跳数所对应的时间段前唤醒,预约的传输路径上的接收节点唤醒后发送一个ack确认帧,其中,预约的传输路径上的接收节点的正确唤醒时间t
wakeup
的计算,如下所示:
[0084]
t
wakeup
=(t
ah

r
eh
)*t
onetime
ꢀꢀꢀ
(4)
[0085]
其中,t
ah
表示数据包在当前路径已经传输的跳数,r
eh
表示待传输的剩余跳数,t
onetime
表示数据包传输一跳花费的总时间;
[0086]
计算数据包传输一跳的总时间t
onetime
,如下所示:
[0087]
t
onetime
=t
ack
+sifs+t
data
+sifs
ꢀꢀꢀ
(5)
[0088]
其中,t
ack
表示发送ack帧的时间,t
data
表示发送单个数据帧的时间,sifs表示两次传输之间的最短间隔,当网络中传输的数据帧大小相同时,将t
data
设置为一个预设值;当网络中传输的数据帧大小不相同时,将t
data
包含在预约同步帧中。
[0089]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,ack帧用于表明该接收节点已经唤醒可以接收数据,并且ack帧中包含此时对应的数据传输的发送节点地址,以指明当前发送数据的节点。
[0090]
其中,所述步骤3具体包括:数据包包括传输数据的信息量、数据包数量和节点剩余能量水平,分别对传输数据的信息量、数据包数量和节点剩余能量水平进行优先等级划分:
[0091]
网络中传输的数据的类型为:网络中出现突发状况时节点发送的重要信息、网络中进行传输的具有较大信息量的数据和节点日常工作时发送的具有一般信息含量的普通数据;根据信息含量优先原则,将网络中传输数据的信息量划分成三种优先级:当传输数据的信息量等级为level1,优先等级为d
infor
=00时,退避窗口大小设置为bw
00
;当传输数据的信息量等级为level2,优先等级为d
infor
=01时,退避窗口大小设置为bw
01
;当传输数据的信息量等级为level3,优先等级为d
infor
=1x时,退避窗口大小设置为bw
1x
,其中,d
infor
=10,退避窗口大小设置为bw
10
,d
infor
=11,退避窗口大小设置为bw
11
,当d
infor
的值为00时,该帧数据传输按照最优先级别进行;当d
infor
的值为01时,该帧内包含着网络中信息含量较大的传输数据;当d
infor
的值为1x时,该帧数据传输或指令按照最末位优先级别进行;
[0092]
退避窗口bw
00
、bw
01
和bw
1x
之间的关系为:
[0093]
bw
00
<bw
01
<bw
1x
ꢀꢀꢀ
(6)
[0094]
退避窗口bw的初始数值为bw
min
,退避窗口bw的数值上限为bw
max
,各退避窗口bw数值之间的关系为:
[0095]
bw
00max
<bw
01min
<bw
01max
<bw
1xmin
ꢀꢀꢀ
(7)
[0096]
其中,bw
00max
表示退避窗口bw
00
的数值上限,bw
01min
表示退避窗口bw
01
的初始数值,bw
01max
表示退避窗口bw
01
的数值上限,bw
1xmin
表示退避窗口bw
1x
的初始数值。
[0097]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,数据信息量的优先等级的具体划分和退避窗口bw的设置如表1所示:
[0098]
表1数据信息量优先等级
[0099][0100]
d
infor
使用2比特表示数据信息量优先等级,当d
infor
的值为00时,表示此时的数据传输必须按照最优先级别进行;当d
infor
的值为01时,代表数据帧内包含着网络中信息含量较大的传输数据;当d
infor
的值为1x(d
infor
=10或11)时表示该帧数据或指令具有最末位的优先级别,为网络传输的一般数据,在网络负载较大是允许适当的延迟传输;需要发送数据时,节点首先在[0,bw
00min
]范围内随机选择时间退避来争用信道,而当发送节点在传输数据包的过程中发生冲突时,bw
00
会根据碰撞发生的次数的增加而成倍增长,直到增加到上限bw
00max
时才停止,当此次数据传输顺利完成后,节点退避窗口的bw数值会还原到初始值bw
00min
,等待下一次数据传输的到来,相比较于bw
01
、bw
1x
两种优先级的数据,携带最高优先级数据包的节点退避时间较短,因此更够更快的建立通信,通过这种使用数据信息量优先级控制退避窗口的方式,可以使优先级高的数据在发生碰撞时,以最快的时间接入信道并与接收节点建立通信传输数据,从而达到缩短节点退避时间的目的。
[0101]
其中,所述步骤3还包括:数据包数量pt
num
的优先等级划分:发送节点在发送数据之前,对节点的传输队列长度进行检测,检测发送节点的传输队列中等候传输的数据包数量pt
wait
,并根据发送节点的传输队列中等候传输的数据包数量pt
wait
计算得到该节点的数据包数量优先等级;当数据包数量等级为level1,发送节点的传输队列中等候传输的数据包数量为pt
wait
大于n
rfactor
时,对应的优先等级d
infor
为3;当数据包数量等级为level2,发送节点的传输队列中等候传输的数据包数量为n
sfactor
小于pt
wait
小于或等于n
rfactor
时,对应的优先等级d
infor
为2;当数据包数量等级为level3,发送节点的传输队列中等候传输的数据包数量为pt
wait
小于或等于n
sfactor
时,对应的优先等级d
infor
为1;其中,n
rfactor
表示接收节点的负载因子,n
sfactor
表示发送节点的负载因子。
[0102]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,发送节点的传输队列中等待发送的数据包数量pt
wait
和节点负载因子n
factor
的关系及对应的该节点数据包数量pt
num
的优先等级,如下表3所示:
[0103]
表2待发送数据包优先等级
[0104][0105]
待发送数据包优先等级体现了节点对于队列中数据包数量的容忍度,可以根据网络应用环境中对于数据包传输延时的容忍度,对发送、接收节点负载因子数值进行适当调整,若网络对于传输时延有较大的容忍度,则可以适当增加负载因子的数值,若网络对于传
输时延的容忍度小,则可以适当减小负载因子的数值。
[0106]
其中,所述步骤3还包括:节点剩余能量水平e
energy
的优先等级划分:当数据包等级为level1,节点剩余能量水平为e
energy
小于30%时,将预约同步帧中的e
en
字段设置为0;当数据包等级为level2,节点剩余能量水平为30%小于或等于e
energy
小于70%时,将预约同步帧中的e
en
字段设置为1;当数据包等级为level3,节点剩余能量水平为e
energy
大于或等于70%时,将预约同步帧中的e
en
字段设置为2;
[0107]
节点的能耗包括节点在发送数据包时的能耗p
send
与节点在接收数据包时的能耗p
receive
、节点在低功耗状态下侦听信道时的能耗p
listen
和节点处于睡眠状态下的能耗p
sleep

[0108]
计算节点在一个调度周期内的总能耗p
total
,如下所示:
[0109]
p
total
=p
self
+p
receive
+p
send
ꢀꢀꢀ
(8)
[0110]
其中,p
self
表示节点睡眠和侦听时的固有能耗;
[0111]
计算节点睡眠和侦听时的固有能耗p
self
,如下所示:
[0112]
p
self
=p
listen
*t
duty
+p
sleep
*(1

t
duty
)
ꢀꢀꢀ
(9)
[0113]
其中,t
duty
表示节点在一个调度周期内的占空比;
[0114]
计算节点在一个调度周期内发送数据产生的能耗p
send
,如下所示:
[0115]
p
send
=p
send
×
n
send
ꢀꢀꢀ
(10)
[0116]
其中,n
send
表示节点在一个调度周期内发送的数据包数量;
[0117]
计算节点一个调度周期内接收数据产生的能耗p
receive
,如下所示:
[0118]
p
receive
=p
receive
×
n
receive
ꢀꢀꢀ
(11)
[0119]
其中,n
receive
表示节点在一个调度周期内接收到的数据包数量。
[0120]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,分析关于节点在传输数据包的过程中网络的平均能耗以及网络端到端时延的关系,可以得出将节点根据剩余能量水平e
energy
(0小于e
energy
小于或等于1)的不同能量范围,节点剩余能量水平可大致分为三个等级,如表3所示:
[0121]
表3节点剩余能量水平
[0122][0123]
从表3中可知,能量等级为level1的节点为了保证自身不会很快耗尽剩余能量,就需要将数据尽快转发出去并进入睡眠状态以减少能量损耗,因此根据节点的剩余能量水平设置其剩余能量字段e
en
,对于节点剩余能量水平e
energy
小于30%的节点,将预约同步帧中的e
en
字段设置为0;对于节点剩余能量水平30%小于或等于e
energy
小于70%的节点,将预约同步帧中的e
en
字段设置为1;对于节点剩余能量水平e
energy
大于或等于70%的节点,将预约同步帧中的e
en
字段设置为2。
[0124]
其中,所述步骤4具体包括:将数据信息量、数据包数量和节点剩余能量水平的优先级嵌入到待传输的数据帧中,根据数据信息量、数据包数量和节点剩余能量水平的优先
级设计退避窗口bw,如下所示:
[0125][0126]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,在确定节点发送的数据包优先级之后,还需要将数据包的优先级嵌入到需要传输的数据帧中,并根据数据包的优先级确定退避传输函数,使节点在发生冲突碰撞时,可以根据自身发送的数据优先级适应传输信道的竞争,从而提高重要信息在网络中的数据传输速率以及减少因冲突碰撞而造成的节点不必要的能量损耗,节点发送的数据优先级越高、自身剩余能量越少以及节点的数据队列长度越长,退避窗口越小,此时节点获得信道发送数据的概率越大,通过这种方式来降低数据传输过程中发生碰撞的频率,进而缓解整个网络对于信道退避造成的压力。
[0127]
本发明的上述实施例所述的基于虚拟分簇和路径预约的自适应同步mac协议,将节点的一个调度周期分为路径预约阶段和数据传输阶段,在路径预约阶段发送一个srf帧以实现对于传输路径进行提前预约,在数据传输阶段预约传输路径上的节点开始依次唤醒完成数据传输,在保证节能的前提下实现在一个调度周期传输多跳的目的,大量减少了时延,将数据包进行优先等级划分,根据划分的数据信息量、数据包数量和节点剩余能量水平的优先等级确定退避函数,并计算出对应的退避窗口大小,数据包的优先级越高则退避窗口越小,更加符合实际情况中对紧急数据的传输,进而实现网络周期寿命最大化。
[0128]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1