水下无线传感器网络的介质访问控制协议的制作方法

文档序号:19131207发布日期:2019-11-15 20:55阅读:358来源:国知局

本发明涉及水下无线传感器网络通信技术领域,具体地说是涉及一种新型的水下无线传感器网络的介质访问控制协议。



背景技术:

水下无线传感器网络有着广阔的应用,如:海洋数据搜集,污染控制等,所以近年来水下无线传感器网络协议成为了一个新的研究热点。其中水下无线传感器网络介质访问控制协议作为网络底层协议,决定着信道资源分配,直接影响着网络整体性能。

在陆地无线网络中,通常使用光波与无线电波作为载波来传输信息。但在水下环境中,无线电波存在很大的衰减,光波会受到散射的影响,所以不适合采用以上两者作为水下信息传输的载波。相比较之下,声波在水中的衰减速度慢,能够进行远距离传输信息,所以水下无线传感器网络以声波为载波来传输信息。

然而水下环境与陆地环境有显著的差异:水声通信有较长的传播时延,水声信号的传播速度比电磁波的传播速度低了5个数量级;可用带宽窄,对于较长的传播距离,可用带宽只有几百赫兹;多径传输严重等。

尽管存在许多陆地无线网络的介质访问控制协议,但是由于水声环境的特性,使得现有的陆地无线网络的介质访问控制协议并不适用于水下无线传感器网络。

当前有许多水下无线传感器网络的介质访问控制协议被提出,其中水下多信道介质访问控制协议引起了研究学者的关注,该类协议将信道分为若干个子信道,通过节点间的控制报文的交换,完成信道协商,然后进行数据传输,从而可以使得更多的数据同时进行传输,极大提高了网络吞吐量。

为了节约成本,水下无线传感器大多只有一个收发器。而将多信道协议应用在单收发器的水下无线传感器网络中,在一段时间内节点只能切换到某一信道进行信息交换,当节点切换到相应信道进行数据接收时,节点就有可能错过其相邻节点发送的信道协商信息,这可能导致节点随后利用与相邻节点相同的信道进行数据传输,从而发生数据冲突,增加了传感器的能量开销,这一问题被称为多信道水下无线传感器网络的介质访问控制协议的“隐藏终端”问题。而水下传感器网络中的节点通常是由电池供电的,在恶劣的水下环境中难以更换电池,所以为了缓解多信道协议的“隐藏终端”问题带来的能量消耗,设计了一个节能的多信道水下无线传感器网络的介质访问控制协议,能够提高网络的使用寿命,具有重要意义。



技术实现要素:

为了解决水下无线传感器网络介质访问协议存在的“隐藏终端”问题,本发明提出了一种基于预约的水下无线传感器网络多信道介质访问控制协议,该协议将信道分为若干个子信道,其中一个为控制信道,即利用该信道进行控制报文的交换,其它均为数据信道,用这些数据信道进行数据的交换;该协议周期性工作在唤醒/睡眠主状态,将每个工作周期划分为信道协商期,预约请求收集期,睡眠期三个时期,并对控制报文和数据的传输进行调度,保证来自相邻节点的信道协商信息能够在每个工作周期的信道协商期内接收到,从而能够有效缓解“隐藏终端”问题带来不利影响,减少能量开销。

为达上述目的,本发明的一种水下无线传感器网络的媒体访问控制协议,在正式进行工作之前,需要网络中的每个节点保存与相邻节点间的传播时延l。接着协议将工作周期划分为信道协商期,预约请求收集期,睡眠期,节点周期性工作在唤醒/睡眠状态。该协议在信道协商期,节点始终工作在控制信道;在预约请求期如果没有进行数据传输,节点工作在控制信道以接收发送节点的预约请求,否则切换到相应的数据信道进行数据传输与接收;在睡眠期,如果节点没有进行数据传输,则节点进入睡眠状态,否则切换到相应的数据信道进行数据传输与接收。

进一步地,当节点有数据要发送时,发送预约请求报文到目的节点的预约请求收集期。控制报文包含发送节点当前可用的数据信道信息,数据开始传输的时刻与当前周期开始时刻的时间间隔t,数据包的传输时延ttran。

进一步地,还应该满足:

t>tn;

t+l+ttran<t0;

其中tn为信道协商期的时长,t0为一个工作周期的时长,l为发送节点与目的节点间的传播时延。

进一步地,当节点接收到若干个节点发送的预约请求报文req,节点随机选择一个req对其进行确认,即选择发送该req的节点为发送节点;将req控制报文中的数据传输时延ttran记为将要接收数据包的传输时延tdata;将t+l记为接收节点开始接收数据相对于周期开始的时间toffset,其中l为接收节点与发送节点间的传播时延,t为req数据包记录的发送节点数据开始传输的时刻与其周期开始时刻的时间间隔;随机选择一个发送节点可用的数据信道进行数据接收,并发送确认预约请求控制报文ack-req到邻节点的信道协商期,计算在发送完全部ack-req报文后的一个新周期开始的时刻t,则可计算开始接收数据的时刻为t+toffset。

进一步地,控制报文ack-req包含接收节点当前要利用的数据信道的信息,数据开始接收的时刻相对当前开始发送确认预约请求报文时刻的偏移量toffset,i,相应的数据包传输时延tdata,其中toffset,i是发送至节点i的ack-req携带的时间偏移量信息,节点传输完ack-req后在预定时刻切换至预定的数据信道进行数据接收,其中toffset,i的计算方式为:发送到节点i的ack-req的发送时刻记为ti,则toffset,i=t+toffset-ti。

进一步地,节点维护一个一维数组,分别记录当前数据信道是否可用的数组a[],数组的下标对应于信道的编号。当a[i]为1时表示数据信道i被占用,节点不能使用该信道来传输数据,a[i]为0表示数据信道i可用,其中i为信道编号。

进一步地,当接收节点的邻节点(除发送节点外)接收到确认预约请求报文ack-req后,将a[i]置为1,其中i为确认预约请求报文中指出的接收节点使用的数据信道,经过toffset,i时间后,将a[i]重新置为0。

进一步地,当发送节点接收到确认预约请求报文后,在toffset,i-2l时间后,节点切换至确认预约请求中指定的数据信道,并发送数据包,其中l为接收节点与发送节点间的传播时延,i为发送节点的编号。

本发明的一种水下无线传感器网络的介质访问控制协议的优点是:该协议设置一个信道协商时隙,用来接收信道协商信息,保证节点能够获得相邻节点的信道使用情况,从而有效缓解了由多信道协议的“隐藏终端”问题带来的数据冲突问题,节省了能量;而且该协议采用了周期性睡眠/唤醒机制,大大减少了信道在空闲时用于侦听而浪费的能量,这一措施也大幅降低了网络的能量消耗。

附图说明

图1是节点时延探测示意图;

图2是节点一个工作周期示意图;

图3是req帧格式示意图;

图4是发送req的示意图;

图5是发送ack-req的示意图;

图6是ack-req帧格式示意图。

具体实施方式

以下通过结合附图与具体实例说明本发明的具体实施方式。

本发明的水下无线传感器网络的介质访问控制协议要求时间同步,要求每个节点获取与其相邻节点间的传播时延。

节点可通过与邻节点交换控制报文来计算它们之间的传播时延。如图1所示,节点a发送控制报文nd,nd记录了nd控制报文的发送的时刻,节点b发送确认预约报文ack-nd,ack-nd记录了从接收完nd到发送ack-nd之间的时间间隔i2,节点a接收到来自节点b的ack-nd后,计算从发送nd报文到接收到对应的ack-nd报文之间的时间间隔i1,则可计算节点a与节点b间的传播时延其中tt为控制报文的传输时延。

本发明的水下无线传感器网络的介质访问控制协议将信道分为若干个子信道,其中一个为控制信道,即利用该信道进行控制报文的交换,其它均为数据信道,用这些数据信道进行数据的交换。

如图2所示,协议周期性工作在信道协商期,预约请求收集期,睡眠期。在信道协商期,节点工作在控制信道;在预约请求收集期,如果节点没有数据的传输与接收,则节点工作在控制信道,否则切换到相应的数据信道进行数据传输与接收;在睡眠期,如果节点没有进行数据传输,则节点进入睡眠状态,否则切换到相应的数据信道进行数据传输与接收。

当节点有数据要发送时,发送预约请求报文req到目的节点,req报文的帧格式如图3所示,其中t为数据包发送的时刻相对于周期开始时刻的偏移,ttran为数据包的传输时延,同时还应满足:

t>tn;

t+l+ttran<t0;

tn其中为信道协商期的时长,t0为一个工作周期的时长,l为发送节点与目的节点间的传播时延。

节点发送的req必须到达接收节点的预约请求收集期,如图4所示,节点b为发送节点,节点a为接收节点,假设节点b预计req到达节点a的预约请求收集期的时刻为tarrive,则发送req的时刻为tarrive-lab,lab为节点a与节点b间的传播时延。需要指出的是时刻tarrive是能够到达接收节点的预约请求收集期的任意时刻,但tarrive+treq不能超出接收节点的预约请求收集期,treq是控制报文req的传输时延。

如图5所示,当节点接收到来自其它节点的req请求报文,随机选择一个req对其进行确认,即选择发送该req的节点为发送节点;将req的数据传输时延ttran记为将要接收数据包的传输时延tdata;将t+l记为接收节点开始接收数据相对于周期开始的时间toffset,其中l为接收节点与发送节点间的传播时延同,t为req数据包记录的发送节点数据开始传输的时刻与其周期开始时刻的时间间隔;同时随机选择一个发送节点可用的数据信道进行数据接收,并发送确认预约请求控制报文ack-req到它的邻节点的信道协商期,计算在发送完ack-req后的一个新周期开始的时刻t,则可计算开始接收数据的时刻为t+toffset。需要指出的是为了将ack-req发送到邻节点的信道协商期,采用的方式与将req发送至接收节点的预约请求收集期的方式相同。

如图5,图6所示,ack-req报文中指出了接收节点当前要使用的信道id;指出数据包接收时刻相对于当前发送ack-req时刻的偏移量toffset,i,其中i为当前ack-req将要发送到的节点id号,例如,节点b发送到节点d的ack-req中指出了节点b的数据包接收时刻相对于当前ack-req发送时刻的偏移量toffset,d;ack-req还指出了数据包的传输时延tdata。

每个节点维护一个一维数组a[],a[i]为0时表示信道i可用,a[i]为1时表示信道i不可用,其中i为信道id号。当某一节点接收到ack-req时,如果节点不是发送节点,则将a[i]置为1,假设i为ack-req指出的接收节点使用的数据信道,且在toffset,j后,将a[i]重新置为0,j为接收到该ack-req的节点的id;如果接收到ack-req的节点是发送节点,则节点在toffset,i–2l后,将信道切换到ack-req指定的数据信道,并发送数据包,其中l为发送节点与接收节点间的传播时延。

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