适用于水下无线传感器网络的媒体访问控制方法及系统
技术领域
本发明属于信息技术领域,特别涉及适用于水下无线传感器网络的媒体访问控制协议。
背景技术
近年来,基于短距离无线通信的陆地无线传感器网络的发展非常迅速,水下无线传感器网络(UWSN)是陆地传感器网络概念向水下应用的延伸。作为水声通信的一个重要应用,水下无线传感器网络对于水下环境的目标跟踪、海洋水文环境要素监测等具有重要价值,因此开展水下无线传感器网络的相关研究具有重要的应用价值。
水下无线传感器网络采用声波作为信号载体。声波在水中的传播特性与无线电在空气中的传播差异巨大,导致了陆上的媒体访问控制(MAC)协议不适用于水下无线传感器网络。水下无线传感器网络中媒体访问控制协议的设计主要受到以下3个方面的挑战:
(1)信号传播延迟大,声波在海水中的平均速度大约为1500米每秒,比无线电的传播速度低数个数量级,并且声波的传播速度受温度、盐度、压强、水流和洋流等多个环境因素的影响。
(2)通信带宽低,在常用的通信距离上带宽只有几十Kbps。
(3)水下通信所花费的能量是陆上通讯的100多倍,并且水下无线传感器网络是能量受限的网络,功耗问题始终是协议设计面临的核心问题之一。
在媒体访问控制中,为了实现信道的复用,避免数据冲突,一般采用基于握手的协议,例如RTS/CTS机制,实现信道的预留。但是,由于水下传播延迟很大,完成一次握手,需要付出很大的代价,大大的降低了信道的利用率。然而目前还没有一种很好的方法能够解决上述问题。
发明内容
为了解决上述问题,本发明的目的在于,从降低控制包占所有通信包的比例和提高信道时空复用率这两个方向出发,提出一种适用于水下无线传感器网络的媒体访问控制协议,能够降低控制数据包占所有数据包的比例,大幅减少控制数据包的花销,提高信道时空复用率,有效提高信道利用率并提高通信效率。
本发明的适用于水下无线传感器网络的媒体访问控制方法,包括以下步骤:
步骤1,使水下无线传感器网络中所有节点时间同步,并使接收节点通过侦听周围邻居节点的通信包来建立该周围邻居节点的延迟图和通信过程表;
步骤2,该接收节点根据该延迟图和通信过程表判断发起会话是否会引起冲突,如果否,则发起会话,否则随机退避一段时间再发起会话;
步骤3,该接收节点计算该周围邻居节点的剩余带宽及给该周围邻居节点应该分配的时隙数目;
步骤4,该接收节点按照控制包的内容要求,向该周围邻居节点发送请求报文;
步骤5,该周围邻居节点根据该请求报文内容,发送数据包给该接收节点;
步骤6,该接收节点收到该数据包后,广播发送应答报文给该周围邻居节点,同时结束本次会话,并转向步骤2。
本发明的适用于水下无线传感器网络的媒体访问控制方法,其中,步骤1中以如下方式使水下无线传感器网络中所有节点时间同步:
假设水面上的浮标节点发射功率足够大,且可以跟网络中的所有节点通信,采用集中式的时间同步算法,浮标节点周期性的广播本地时间,网络中的所有节点收到浮标节点的广播包后,把本地时间调节成跟浮标节点一致,达到整个网络时间同步。
本发明的适用于水下无线传感器网络的媒体访问控制方法,其中,步骤3所述该周围邻居节点的剩余带宽Ri的计算公式如下:
其中,i代表某一节点,Ci是节点i能分配的最大时隙数,Tp是观测时间,Tidle是观测时间内节点i的空余时间。
本发明的适用于水下无线传感器网络的媒体访问控制方法,其中,步骤3所述该周围邻居节点应该分配的时隙数目B'i的计算公式如下:
B'i=ε(Ri/m+Bi)(ε∈[0,1]),
其中,Bi为当前节点i分配的时隙数目,m为节点i的邻居节点,ε为[0,1]区间的值,用于保证每次分配的时隙只能为总时隙数的一部分。
本发明的适用于水下无线传感器网络的媒体访问控制方法,其中,
该请求报文至少包括源地址、所有目的地址、给每个目的地址分配的发送时隙数、请求报文发送的时间和源地址和每个目的地址的估计传播延迟;
该数据包至少包括源地址、目的地址、数据包发送时间、源地址、目的地址的估计传播延迟和源地址缓冲队列的长度;
该应答报文至少包括源地址、所有目的地址、应答报文发送时间和源地址和每个目的地址的估计传播延迟。
本发明还涉及一种适用于水下无线传感器网络的媒体访问控制系统,其中,包括以下模块:
延迟图和通信过程表的建立模块,用于使水下无线传感器网络中所有节点时间同步,并使接收节点通过侦听周围邻居节点的通信包来建立该周围邻居节点的延迟图和通信过程表;
会话判断模块,用于该接收节点根据该延迟图和通信过程表判断发起会话是否会引起冲突,如果否,则发起会话,否则随机退避一段时间再发起会话;
时隙分配计算模块,用于该接收节点计算该周围邻居节点的剩余带宽及给该周围邻居节点应该分配的时隙数目;
发送请求模块,用于该接收节点按照控制包的内容要求,向该周围邻居节点发送请求报文;
数据包发送模块,用于该周围邻居节点根据该请求报文内容,发送数据包给该接收节点;
本次会话结束模块,用于该接收节点收到该数据包后,广播发送应答报文给该周围邻居节点,同时结束本次会话,并转向步骤2。
本发明的适用于水下无线传感器网络的媒体访问控制系统,其中,
该延迟图和通信过程表的建立模块中以如下方式使水下无线传感器网络中所有节点时间同步:
假设水面上的浮标节点发射功率足够大,且可以跟网络中的所有节点通信,采用集中式的时间同步算法,浮标节点周期性的广播本地时间,网络中的所有节点收到浮标节点的广播包后,把本地时间调节成跟浮标节点一致,这样就做到了整个网络时间同步。
本发明的适用于水下无线传感器网络的媒体访问控制系统,其中,该时隙分配计算模块所述该周围邻居节点的剩余带宽Ri的计算公式如下:
其中,i代表某一节点,Ci是节点i能分配的最大时隙数,Tp是观测时间,Tidle是观测时间内节点i的空余时间。
本发明的适用于水下无线传感器网络的媒体访问控制系统,其中,该时隙分配计算模块所述该周围邻居节点应该分配的时隙数目B'i的计算公式如下:
B'i=ε(Ri/m+Bi)(ε∈[0,1]),
其中,Bi为当前节点i分配的时隙数目,m为节点i的邻居节点,ε为[0,1]区间的值,用于保证每次分配的时隙只能为总时隙数的一部分。
本发明的适用于水下无线传感器网络的媒体访问控制系统,其中,
该请求报文至少包括源地址、所有目的地址、给每个目的地址分配的发送时隙数、请求报文发送的时间和源地址和每个目的地址的估计传播延迟;
该数据包至少包括源地址、目的地址、数据包发送时间、源地址、目的地址的估计传播延迟和源地址缓冲队列的长度;
该应答报文至少包括源地址、所有目的地址、应答报文发送时间和源地址和每个目的地址的估计传播延迟。
本发明的积极效果在于,
(1)通过采用使接受者发起的握手协议,能够降低控制数据包占所有数据包的比例,相较于发送者发起的握手协议具有如下优势:1)大幅减少了控制数据包的花销。对于发送者发起的握手协议,虽然3种控制数据包(RTS/CTS/ACK)的长度比数据包要短很多,但是由于水下传播延迟比传输延迟要大的多,在点对点网络中,控制包的花销是数据包的1.67倍,而在接收者发起的握手协议中此比例降为0.83;2)数据融合工作能在数据链路层完成。
(2)本发明利用水中传递延迟大这一特性,在同一信道中,同时发起多个会话,每个会话中传输多个数据包,有效的提高信道的利用率,并能够提高信道时空复用率。
附图说明
图1是本发明的接收节点和周围邻居节点的一次完整会话过程的示意图;
图2是本发明的适用于水下无线传感器网络的媒体访问控制协议的流程图。
具体实施方式
为了使发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明适用于水下无线传感器网络的媒体访问控制协议进行进一步详细说明。
如图1所示,为了描述清楚,我们把图1中,圆圈节点R代表接收节点,方块节点S代表周围邻居节点,本发明的接收节点和周围邻居节点的一次完整会话的握手协议包括以下三个步骤,
(A)接受节点广播发送请求报文RTR,通知周围邻居节点其要接收数据包;
(B)周围邻居节点收到该请求报文RTR后,根据自己的状态,把数据包发送给接收节点;
(C)接收节点收到数据包后,广播发送应答报文ACK给周围邻居节点。
我们把这三个步骤称为一次会话。为了提高信道利用率,在保证数据无冲突的情况下,应该在同一时间,发起多个会话,并且在同一会话中,发送尽量多的数据包。
为了有效避免由于多会话引起的数据冲突,网络中所有节点可以通过侦听周围邻居的通信获取周围邻居节点的延迟图和通信进程,通过这些信息可以合理调度自己的通信进程,有效的避免与邻居节点的通信冲突。
为了实现本发明的由接收节点发起的多会话媒体访问控制协议,本申请对数据包的内容做了如下规定:
请求报文至少包括源地址、所有目的地址、给每个目的地址分配的发送时隙数、请求报文发送的时间和源地址和每个目的地址的估计传播延迟。每个时隙可以发送一个数据包,分配的时隙数越多,可以发送的数据包数越多,这样就保证了一个会话可以发送多个数据包。
数据包至少包括源地址、目的地址、数据包发送时间、源地址、目的地址的估计传播延迟和源地址缓冲队列的长度。接收者根据周围邻居缓冲队列的长度,合理的安排分配给每个邻居节点的发送时隙数。
应答报文至少包括源地址、所有目的地址、应答报文发送时间和源地址和每个目的地址的估计传播延迟。
本申请适用的网络模型必须要求整个网络时间同步,假设水面上的浮标节点发射功率足够大,可以跟网络中的所有节点通信,采用集中式的时间同步算法,浮标节点周期性的广播本地时间,网络中的所有节点收到浮标节点的广播包后,把本地时间调节成跟浮标节点一致,这样就做到了整个网络时间同步。
在此网络模型下,节点可以通过侦听周围邻居节点的通信包,绘制一个周围邻居节点的延迟图和通信进程表,这些信息可以作为是否发起一个新的会话的有力证据。
那些采用随机退避策略的媒体访问控制协议,由于不能获得网络拥塞的状态,容易造成空间的不公平。网络中的一些节点,由于地理位置和数据包产生频率等特点,会出现一直占用通信信道或一直退避的状态,造成网络中出现节点不公平的现象。为了解决这个问题,保证网络节点的公平性,通过在一个竞争域里面控制每个节点占用的带宽来保证节点间的公平性,以控制在一个竞争域里面每个接收节点发起的会话的数目和一次会话中发送的数据包的数目来保证节点间的公平性。
节点i剩余的带宽由公式1给出。Ci是节点i能分配的最大时隙数,Tp是观测时间,Tidle是观测时间内节点i的空余时间。
节点i给新分配的时隙数目B'i由公式2给出。Bi为当前节点i分配的时隙数目,m为节点i的邻居节点,ε为[0,1]区间的值,保证了每次分配的时隙只能为总时隙数的一部分。
B'i=ε(Ri/m+Bi)(ε∈[0,1]) (2)
如图2所示,为本发明的适用于水下无线传感器网络的媒体访问控制协议的流程图。该方法包含以下步骤:
步骤101:运行时间同步算法,使得网络中所有节点时间同步。
步骤102:侦听周围邻居的通信过程,根据侦听到的通信包的内容,建立周围邻居延迟图和通信过程表。
步骤103:根据周围邻居延迟图和通信过程表,判断发起会话是否会引起冲突,如果不会,则发起会话,否则就放弃。
步骤104:如果可以发起会话,根据周围邻居延迟图和通信过程表,新发起的会话,可能与周围邻居正在进行的会话发送数据冲突,则随机退避一段时间,再进行103步骤。
步骤105:根据公式1和公式2,计算出给邻居节点应该分配的时隙数目。
步骤106:接收者按照控制包的内容要求,向周围邻居发送请求报文。
步骤107:周围邻居根据收到请求报文的内容,发送数据包给接收者。
步骤108:接收者收到数据包后,向发送者发送应答报文,同时结束本次会话,并且跳向步骤103。
另外,本发明还涉及一种适用于水下无线传感器网络的媒体访问控制系统,包括以下模块:
延迟图和通信过程表的建立模块,用于使水下无线传感器网络中所有节点时间同步,并使接收节点通过侦听周围邻居节点的通信包来建立该周围邻居节点的延迟图和通信过程表;
会话判断模块,用于该接收节点根据该延迟图和通信过程表判断发起会话是否会引起冲突,如果否,则发起会话,否则随机退避一段时间再发起会话;
时隙分配计算模块,用于该接收节点计算该周围邻居节点的剩余带宽及给该周围邻居节点应该分配的时隙数目;
发送请求模块,用于该接收节点按照控制包的内容要求,向该周围邻居节点发送请求报文;
数据包发送模块,用于该周围邻居节点根据该请求报文内容,发送数据包给该接收节点;
本次会话结束模块,用于该接收节点收到该数据包后,广播发送应答报文给该周围邻居节点,同时结束本次会话,并转向步骤2。
本发明的适用于水下无线传感器网络的媒体访问控制系统,其中,
该延迟图和通信过程表的建立模块中以如下方式使水下无线传感器网络中所有节点时间同步:
假设水面上的浮标节点发射功率足够大,且可以跟网络中的所有节点通信,采用集中式的时间同步算法,浮标节点周期性的广播本地时间,网络中的所有节点收到浮标节点的广播包后,把本地时间调节成跟浮标节点一致,这样就做到了整个网络时间同步。
本发明的适用于水下无线传感器网络的媒体访问控制系统,其中,该时隙分配计算模块所述该周围邻居节点的剩余带宽Ri的计算公式如下:
其中,i代表某一节点,Ci是节点i能分配的最大时隙数,Tp是观测时间,Tidle是观测时间内节点i的空余时间。
本发明的适用于水下无线传感器网络的媒体访问控制系统,其中,该时隙分配计算模块所述该周围邻居节点应该分配的时隙数目B'i的计算公式如下:
B'i=ε(Ri/m+Bi)(ε∈[0,1]),
其中,Bi为当前节点i分配的时隙数目,m为节点i的邻居节点,ε为[0,1]区间的值,用于保证每次分配的时隙只能为总时隙数的一部分。
本发明的适用于水下无线传感器网络的媒体访问控制系统,其中,
该请求报文至少包括源地址、所有目的地址、给每个目的地址分配的发送时隙数、请求报文发送的时间和源地址和每个目的地址的估计传播延迟;
该数据包至少包括源地址、目的地址、数据包发送时间、源地址、目的地址的估计传播延迟和源地址缓冲队列的长度;
该应答报文至少包括源地址、所有目的地址、应答报文发送时间和源地址和每个目的地址的估计传播延迟。
目前在UWSN中,一般采用发送者发起的握手的协议,避免数据冲突。但是,由于水下传播延迟很大,为了完成一次数据传输,需要进行四次握手(RTS/CTS/DATA/ACK),这种较低的传输效率,明显的降低了信道的利用率。为了提高信道利用率,提高一次握手传输的数据包的数目和信道时空复用率是两种有效的途径。从这两个方向入手,本所申请提出的适用于水下无线传感器网络的接收者发起的多会话媒体访问控制协议,其具有如下优点:
接收者发起握手协议,一次握手协议可以完成与周围多个邻居的数据通信;利用水中传播延迟大这一特性,变废为宝,在同一空间,同一时间内,发起多个会话;通过给周围邻居合理分配时隙的方法,使得一次会话,完成多个数据包的传输;