一种水下网络的按需唤醒多址接入方法与流程

文档序号:20918995发布日期:2020-05-29 13:53阅读:310来源:国知局
一种水下网络的按需唤醒多址接入方法与流程

本发明涉及水下网络技术领域,是一种在水下实现高效节能的网络节点mac接入方法,适合于存在节点休眠模式的水下网络组网。



背景技术:

海洋中蕴藏着丰富的资源,水声传感器网络在海洋军事防卫、水下目标搜索、海洋资源勘探以及海洋环境监测等方面具有重要的应用。但是,海洋环境中网络节点大都由电池供电,且难以更换或者补充电源,因此,降低节点的能耗,延长整个网络的生存周期是水声传感器组网难点。针对这个问题,可利用节点的唤醒休眠技术来尽可能地增加节点的休眠时间,达到降低节点能耗,延长网络生存周期的目的。

网络节点的唤醒休眠技术针对节点的物理层和mac接入方法进行综合考虑。在mac层方面,协议的唤醒休眠机制可以分为需要唤醒和无需唤醒两类,其中需要唤醒的协议包括基于循环休眠的唤醒和基于按需休眠的唤醒两大类。

对于无需唤醒的mac接入方法,要求节点保持时间同步、周期性休眠和醒来,节点在醒来的时间完成通信,因此,这些协议的休眠策略是固定的。基于无需唤醒的mac接入方法其优点是可以通过设计节点的休眠时间表很好地避免数据之间的冲突,保持合理的吞吐量。但是这种协议也存在很大的缺陷:节点之间采用自己的调度表进行活跃和休眠状态的切换,因此需要保持精确的时间同步,这种同步开销不容小觑。并且,固定的唤醒休眠策略导致这种协议不能很好地适应网络流量的变化。

而基于循环休眠唤醒机制的mac接入方法允许各个节点的休眠时间表不相同,这样即可减去时间同步的开销,但是当节点之间需要传输数据时,发送节点需要先发射一个唤醒信号将接收节点唤醒,之后再发送数据完成通信。这种唤醒信号需要保持一个休眠周期的长度,才能保证被接收节点准确收到,较长的唤醒信号在水声环境下导致端到端时延的增加和发射能耗的浪费,同时发送大量的前导信息,导致信道压力的增大,从而降低了信道的整体利用率。



技术实现要素:

为了克服现有技术的不足,本发明提供一种水下网络的按需唤醒多址接入方法。为了克服现有mac接入方法中能量利用率和信道利用率较低的问题,给出一种高效节能的水声传感器网络mac接入方法,使得网络节点在相同的通信任务下,延长自身的服役寿命,并且可以提高信道利用率,避免数据冲突,本发明提出了一种基于按需唤醒的水声网络mac接入方法。

本发明解决其技术问题所采用的技术方案的具体步骤如下:

步骤1、按需唤醒mac接入过程中,定义如下五种包格式:

1.1、唤醒(wake_up)信号包,简称wu包,包长仅11bit,包内含有自身和接收节点的id信息,发送节点利用wu包将休眠状态中的接收节点唤醒进行数据的传输,wu包采用定向传输模式,避免其余邻居节点的无效唤醒;

1.2、对唤醒信号的确认包,简称ack包,是接收节点被成功唤醒后对发送节点回复的一个确认包,同时为tr技术获取信道信息发送给所有邻居节点,并宣告通信开始,ack包采用广播传输模式,包长仅21bit,包内含有wu包头、自身和接收节点的id信息、通信开始信息和信道信息,wu包头是为了将所有休眠状态的邻居节点唤醒接收ack包;

1.3、数据包,简称data包,包长256bit,包内包含自身和接收节点的id信息、数据包产生时间和数据信息,data包是发送节点需要传输的数据,data包采用定向传输模式,利用tr的时空聚焦性提高在接收节点处的信噪比;

1.4、对数据的确认包,简称ackd包,包长15bit,包含id信息和数据确认信息,当接收节点正确接收data包,对发送节点回复ackd包,表示数据已正确接收,采用定向传输模式;

1.5、通信结束包,简称channel包,当发送节点收到ackd包后,则发送channel包,通知所有节点本次通信已结束,此时其他节点对本节点进行通信,并且再次获取信道信息给所有邻居节点,采用广播传输模式,包长为21bit,包含wu包头、地址信息、通信结束信息和信道信息,wu包头是为了将所有休眠状态的邻居节点唤醒接收channel包;

当没有通信任务时,所有节点处于休眠状态,此时节点只能由wu包唤醒,当获取到包流后,需要对包流进行判断:

i)若是wu包,则进行初始化,进入步骤2;

ii)若不是wu包,则重新进入休眠状态;

步骤2、判断节点是否属于发送节点、接收节点或者邻居节点:

i)若wu信号来自于应用层,则节点属于发送节点,因此节点需要利用tr发送一个wu信号至接收节点将其唤醒,之后进入步骤4;

ii)若wu信号来自于物理层,则节点属于接收节点,本节点转换为活跃状态,此时根据接收包的类型判断是接收节点或者邻居节点,之后进入步骤3;

步骤3、接收节点在接收到包后,需要判断包的类型:

i)如果只有一个wu包,则表示本节点为接收节点,处理wu包并确认目的节点id与本节点id相同后,广播回复ack,通知发送节点自己准备好接收数据,之后进入步骤6;

ii)如果是携带wu包的ack包,则表示本节点为邻居节点,接收到的是接收节点广播的且不是发给自己的ack包,处理信道信息后进入休眠状态;

iii)如果是携带wu包的channel包,则表示本节点为邻居节点,收到某发送节点的通知,表示本次通信已完成,之后进入步骤7;

步骤4、此时节点处于等待ack的状态:

i)若在两个传播时延+两个传输时延内没有收到ack,则随机退避0-5s后重新发送wu信号,等待ack回复;

ii)若收到ack,则利用tr发送data至接收节点,之后进入步骤5;

步骤5、此时节点处于等待ackd的状态;

i)若在两个传播时延+两个传输时延内没有收到ackd,则随机退避0-5s后重新发送data包,等待ackd回复;

ii)若收到了ackd,则查看数据队列是否为空,若不为空,则继续发送data,之后重复步骤5;若队列为空,则广播发送channel包,通知接收节点数据已发送完成,同时通知邻居节点本次通信已结束,之后进入休眠状态;

步骤6、此时节点处于等待data的状态;

i)若在两个传播时延+两个传输时延内没有收到data,则随机退避0-5s后重新发送ack信号,继续等待data;

ii)若收到了data,并确定data包的信息无误后,利用tr将ackd包回复给发送节点,之后进入步骤8,等待后续数据的到来;

步骤7、当收到channel包,读取channel包的字段,判断包是否发给本节点:

i)若是发给本节点,则表示本次通信过程结束,进入休眠状态;

ii)若不是发给本节点,则检测队列是否有数据,如果没有数据,则直接进入休眠状态;如果有数据,则利用tr发送wu包,将接收节点唤醒,之后进入步骤3;

步骤8、判断后续收到的是data包还是channel包:

i)若收到的是data包,则进入步骤6;

ii)若收到的是channel包,则进入步骤7。

本发明的有益效果在于:

采用按需唤醒mac接入方法的唤醒信号长度极短,这在水下发射能耗远远高于接收能耗的环境中来说具有重要的意义,信号长度的降低可以大大降低节点的发射能耗,从而有效利用能量,延长节点的使用寿命。

该协议通过合理的设计,有效地避免各类信号之间的冲突,从而减少数据重发的次数,提高网络吞吐量和能量利用率,这对于实施多址接入尤其在水下网络这种冲突较多的环境来说更具有优势。

该协议采用时反技术完成对于wu和ackd包的指向性传输,避免网络中不在通信任务内的邻居节点的过度侦听问题,减少了接收无效信息的能耗,从而提高了节点的能量利用率。

该协议采用时反技术对data包进行传输,可以实现多对通信节点同时进行信息交互,提高了信道利用率,这对于带宽资源十分有限的水下网络具有必要的价值。

附图说明

图1是本发明的协议流程图。

图2是本发明的网络节点场景示意图。

图3是本发明的能耗比较仿真图。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

本发明的mac接入方法根据网络的流量变化,在任意时刻产生通信任务后,可以即时按照需要将休眠状态的节点唤醒进行数据的传输,达到“按需唤醒”的目标,从而克服了无需唤醒mac接入方法的不足,很好地适应网络流量的变化。并且,基于该接入方法的网络节点之间不需要同步,避免了同步开销。

发送节点在发送数据之前利用唤醒信号将接收节点唤醒,此时接收节点处于休眠状态,无法接收唤醒信号,因此可以利用一种节点外部模块——唤醒电路,通过能量的门限值区分信道中的唤醒信号和噪声,一旦成功识别,就将接收节点唤醒来进行通信,所以本接入方法所需要的唤醒信号很短,只需要达到能量的门限值即可,不需要覆盖一个休眠周期,很大程度上降低了节点的发射能耗和数据的端到端时延。

同时,本接入方法采用两种传输模式:基于时间反转(tr)的定向传输和广播传输,时间反转技术的时空聚焦性可以实现包对指定节点的传输,从而实现不同包类型的发送,通过避免数据冲突提高了信道的利用率。

本接入方法利用tr发送wu包定向唤醒目的节点,通过广播ack宣告本次通信开始并更新信道信息,其余节点不再发送信息至这对收发节点;之后利用tr发送data包和回复ackd包,提高数据发送成功的概率,并且减少对其他节点处的干扰,通信结束后通过广播channel包再次更新信道信息以保证tr的准确性,并通知所有邻居节点本次通信已结束。

基于按需唤醒的mac接入方法在降低节点能耗方面从两部分考虑:

采用linquestmodem的参数,基于循环休眠唤醒机制的mac接入方法,唤醒信号长度为5s,与其相比按需唤醒mac接入方法的唤醒信号则很短,通过计算可知唤醒信号长度为0.0375s即可满足要求,在很大程度上降低了发射功耗。

利用tr发送wu信号,可以通过避免各类包之间的冲突从而提高信道的利用率,通过减少数据重发的次数,从而降低能耗的浪费。

步骤1、按需唤醒mac接入方法的流程图如附图1所示,在此过程中,定义了五种包格式:

1.1、唤醒(wake_up)信号包,简称wu包,包长仅11bit,包内含有自身和接收节点的id信息,发送节点利用wu包将休眠状态中的接收节点唤醒进行数据的传输,wu包采用定向传输模式,避免其余邻居节点的无效唤醒;

1.2、对唤醒信号的确认包,简称ack包,是接收节点被成功唤醒后对发送节点回复的一个确认包,同时为tr技术获取信道信息发送给所有邻居节点,并宣告通信开始,ack包采用广播传输模式,包长仅21bit,包内含有wu包头、自身和接收节点的id信息、通信开始信息和信道信息,wu包头是为了将所有休眠状态的邻居节点唤醒接收ack包。

1.3、数据包,简称data包,包长256bit,包内包含自身和接收节点的id信息、数据包产生时间和数据信息,data包是发送节点需要传输的数据,本包能否正确接收十分重要,因此data包采用定向传输模式,利用tr的时空聚焦性提高在接收节点处的信噪比,提高data包被成功接收的概率,避免和其他控制包产生冲突。

1.4、对数据的确认包,简称ackd包,包长15bit,包含id信息和数据确认信息,当接收节点正确接收data包,对发送节点回复ackd包,表示数据已正确接收,由于此包仅需要对发送节点回应,因此采用定向传输模式,减少对其他节点的干扰。

1.5、通信结束包,简称channel包,当发送节点收到ackd包后,则发送channel包,通知所有节点本次通信已结束,此时其他节点可以对本节点进行通信,并且再次获取信道信息给所有邻居节点,采用广播传输模式,包长为21bit,包含wu包头、地址信息、通信结束信息和信道信息,wu包头是为了将所有休眠状态的邻居节点唤醒接收channel包;

当没有通信任务时,所有节点处于休眠状态,此时节点只能由wu包唤醒,当获取到包流后,需要对包流进行判断:

i)若是wu包,则进行初始化,进入步骤2;

ii)若不是wu包,则重新进入休眠状态;

步骤2、判断节点是否属于发送节点、接收节点或者邻居节点:

i)若wu信号来自于应用层,则节点属于发送节点,因此节点需要利用tr发送一个wu信号至接收节点将其唤醒,之后进入步骤4;

ii)若wu信号来自于物理层,则节点属于接收节点,本节点转换为活跃状态,此时根据接收包的类型判断是接收节点或者邻居节点,之后进入步骤3;

步骤3、接收节点在接收到包后,需要判断包的类型:

i)如果只有一个wu包,则表示本节点为接收节点,处理wu包并确认目的节点id与本节点id相同后,广播回复ack,通知发送节点自己准备好接收数据,之后进入步骤6;

ii)如果是携带wu包的ack包,则表示本节点为邻居节点,接收到的是接收节点广播的且不是发给自己的ack包,处理信道信息后进入休眠状态;

iii)如果是携带wu包的channel包,则表示本节点为邻居节点,收到某发送节点的通知,表示本次通信已完成,之后进入步骤7;

步骤4、此时节点处于等待ack的状态:

i)若在两个传播时延+两个传输时延内没有收到ack,则随机退避0-5s后重新发送wu信号,等待ack回复;

ii)若收到ack,则利用tr发送data至接收节点,之后进入步骤5;

步骤5、此时节点处于等待ackd的状态;

i)若在两个传播时延+两个传输时延内没有收到ackd,则随机退避0-5s后重新发送data包,等待ackd回复;

ii)若收到了ackd,则查看数据队列是否为空,若不为空,则继续发送data,之后重复步骤5;若队列为空,则广播发送channel包,通知接收节点数据已发送完成,同时通知邻居节点本次通信已结束,之后进入休眠状态;

步骤6、此时节点处于等待data的状态;

i)若在两个传播时延+两个传输时延内没有收到data,则随机退避0-5s后重新发送ack信号,继续等待data;

ii)若收到了data,并确定data包的信息无误后,利用tr将ackd包回复给发送节点,之后进入步骤8,等待后续数据的到来;

步骤7、当收到channel包,读取channel包的字段,判断包是否发给本节点:

i)若是发给本节点,则表示本次通信过程结束,进入休眠状态;

ii)若不是发给本节点,则检测队列是否有数据,如果没有数据,则直接进入休眠状态;如果有数据,则利用tr发送wu包,将接收节点唤醒,之后进入步骤3;

步骤8、判断后续收到的是data包还是channel包:

i)若收到的是data包,则进入步骤6;

ii)若收到的是channel包,则进入步骤7;

以上mac接入方法的实现可以通过避免以下几类冲突:

一个wu包唤醒所有邻居节点:采用tr技术,避免非目的节点无效被唤醒,节省能量;

多个wu包唤醒同一个目的节点:当多个唤醒信号同时到达时,无法识别id信息,则不做任何处理,继续处于判断包类型的状态,等待发射节点随机退避后重新发送唤醒信号;如果多个唤醒信号没有同时到达,那么接收节点在接收到第一个唤醒信号后,广播回复ack,通知本次通信已开始。而其他节点发送wu包之后收到第一个ack,表示已经知道该节点正在进行通信,则进入休眠状态,等待收到channel包之后才会醒来,如果队列中有数据,则发送wu信号开始自己的通信过程。

多个wu包唤醒多个目的节点:由于wu、data和ackd信号是采用tr发送的,因此可以存在多对通信节点同时进行通信(通信的信道不可以相同),与传统只有一个信道的协议相比,大大地提高了信道利用率,从而提高网络吞吐量。

wu包和data之间的冲突:wu和data包都是采用tr发送,因此信道之间不存在干扰和冲突问题;当接收节点收到wu包后,会将信道置忙,此时不会在收到其他节点发来的wu包。

wu、ack、ackd和channel等控制包的长度远远小于data包的长度,能够有效避免控制包与data之间的冲突,从而提高data传输的效率。

通过matlab对基于三种不同唤醒休眠机制的mac接入方法进行发射节点的能耗仿真比较,包括:无需唤醒mac接入方法、基于循环休眠唤醒的mac接入方法和基于按需唤醒的mac接入方法,最终的仿真结果见图2。由附图2可知,基于按需唤醒的mac接入方法的发射节点所消耗的能耗是三种机制中最低的,因此采用基于按需唤醒的mac接入方法网络的服役周期最久。

以图3的网络场景为例,给出相应实施基于按需唤醒的mac接入方法方案。

在按需唤醒mac接入方法里,由于节点在任意时刻都可以被唤醒,因此节点在网络进行初始化后,没有通信任务的节点全部处于休眠状态。假设水声传感器网络的节点场景见附图3,网络中共有5个节点,s1、s2为发送节点,r1、r2为接收节点,n为邻居节点,通信的节点之间均单跳可达。s1和s2的通信任务开始时间是随机的,在这里假设s1第1秒开始通信,s2第2秒开始通信,一个通信周期大于1秒。

具体步骤如下:

1、在第1秒的时刻,s1被应用层的wu1包唤醒,确认自己作为发射节点

后,利用tr技术将wu1包定向发送至接收节点r1,等待r1的ack回复,记为ack1;

2、r1收到wu1包后,从休眠状态转换为活跃状态,确认自己作为接收节点并且此包是发给自己后,对wu1包进行处理,之后广播回复ack1包,此时s1、r2和n节点都可以收到ack1包;

3、r2和n节点收到ack1包后,对包进行处理,通过id信息确认此包不是发给自己的,将包中的信道信息记录后,重新进入休眠状态;

4、s1收到ack1包后,确认是对自己的ack回复,则对ack1包进行处理,之后利用tr定向发送data包至r1,等待r1的ackd回复,记为ackd1;

5、r1收到data包后,确认包中的数据信息无误,则利用tr定向回复数据确认包ackd1至s1;

6、s1收到ackd1包后,对ackd1包进行处理,确认数据发送成功后,广播channel1包通知本次通信已结束,之后重新进入休眠状态;

7、r1收到channel1包后,确认本次通信已结束,之后进入休眠状态;

8、在s1与r1的通信过程中,利用tr技术,s2与r2也可以进行通信,在第2秒的时刻,s2被应用层的wu2包唤醒,重复步骤1,将wu2包发送至接收节点r2,等待r2的ack回复,记为ack2;

9、r2收到wu2包后,重复步骤2,广播回复ack2包,此时s2和r1节点都可以收到ack2包;

10、r1节点收到ack2包后,重复步骤3,如果在通信过程中,则继续保持当前状态,否则重新进入休眠状态;

11、s2收到ack2包后,重复步骤4;

12、r2收到data包后,确认包中的数据信息无误,则利用tr定向回复数据确认包ackd2至s2;

13、s2收到ackd2包后,对ackd2包进行处理,确认数据发送成功后,广播channel2包通知本次通信已结束,此时r2和n节点都可以收到channel2包,之后重新进入休眠状态;

14、r2收到channel2包后,确认本次通信结束,重新进入休眠状态;

15、n节点收到广播的channel2包后,确认s2与r2已完成通信,如果此时有数据需要向s2或r2发送,则发送wu包开始通信,否则记录信道信息后进入休眠状态。

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