一种改进的CARP路由协议转让专利

申请号 : CN201510546938.8

文献号 : CN105246123B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周长兵邢日良舒磊

申请人 : 广东石油化工学院

摘要 :

本发明公开了一种改进的CARP路由协议,其特征在于,选择最优数据传输中继节点的具体步骤如下:步骤1:每当传感器节点nvsn广播一个PING控制信息包时,计算与节点nvsn相邻的传感器节点的信道质量参数g(nvsn)值;步骤2:上一次数据传输中继节点和所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点都回复PONG包,其中,阈值β是范围在0‑1之间的浮点数;步骤3:在所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点中,选择g(nvsn)值最大的上一层节点uvz,若则选择uvz为当前数据传输的中继节点,否则,继续使用上次中继节点选择最优数据传输中继节点时,减少PING‑PONG冗余控制信息包;进一步的,提出一种数据包上传算法,高效节能使用传感器收集的数据。

权利要求 :

1.一种改进的CARP路由协议,其特征在于,选择最优数据传输中继节点的具体步骤如下:步骤1:每当传感器节点nvsn广播一个PING控制信息包时,计算与节点nvsn相邻的传感器节点的信道质量参数g(nvsn)值;

步骤2:上一次数据传输中继节点 和所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点都回复PONG包,其中,阈值β是范围在0-1之间的浮点数,g(ω)是上一次最优的节点的信道质量参数值;

步骤3:在所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点中,选择g(nvsn)值最大的上一层节点nvz,若 则选择nvz为当前数据传输的中继节点,否则,继续使用上次中继节点

信息包上传的具体步骤如下:

步骤a:当传感器节点nvsn收集到新数据包 后,与存储在本地节点的上一次收集的数据 进行比较;

步骤b:若改变量小于设定的阈值αatr,则向中继节点 发送INFORM控制包;若改变量大于设定的阈值αatr,则将数据包上传,并将存储在本地节点的数据更新为新收集的数据其中,INFORM控制包定义为:表示传感器节点

uvsn的ID标识号, 表示中继节点 的ID标识号,HC(uvsn)表示传感器节点uvsn的跳数,pid表示上一次上传的数据包id,Lpkt表示数据包标识集合,包括产生该数据包节点和转发该数据包节点。

2.根据权利要求1所述的一种改进的CARP路由协议,其特征在于,信道质量参数g(nvsn)值的计算公式如下:g(nvsn)=goodness(nvsn)+1/HC(nvsn)

式中:g(nvsn)表示节点uvx和节点nvsn的通信质量,HC(nvsn)表示传感器节点nvsn的跳数,goodness(nvsn)=lq(uvx,nvsn)×lq(nvsn,uvz),lq(uvx,nvsn)代表节点uvx和节点nvsn的链路质量,lq(nvsn,uvz)代表节点nvsn和节点uvz的链路质量,uvz是nvsn的相邻节点中具有最佳的链路质量的传感器节点。

3.根据权利要求1所述的一种改进的CARP路由协议,其特征在于,中继节点 接收到INFORM包回复ACK包,表示正确接收INFORM包。

4.根据权利要求1所述的一种改进的CARP路由协议,其特征在于,根据地区、季节水流湍急和缓慢的程度,更新阈值β的大小。

5.根据权利要求1所述的一种改进的CARP路由协议,其特征在于,在基站设置缓存CAH用来存储节点上传的数据,CAH定义为 定义为一个向量,即:其中, 表示传感器节点uvsn感兴趣的属性,一个传感器节点可以装备一个或多个设备,用来探测一种或多种感兴趣的属性;参数 记录了标识为 的传感器节点uvsn最近一次上传到水面基站的探测数据。

说明书 :

一种改进的CARP路由协议

技术领域

[0001] 本发明涉及一种改进的CARP路由协议。

背景技术

[0002] 海洋覆盖了地球表面面积的70%以上,地球环境深受海洋的影响,人类的生活严重依赖于海洋。水下传感器网络(将耗能低、短距离中通信的水下传感器节点部署到指定海域中从而建立起的网络)被认为是探索水下环境的可靠选择。其中,绝大多数的传感器节点是靠电池供电的。所以,设计收集探测数据并上传这些数据到水面基站的路由协议时,提高能源效率是最基本的原则。
[0003] CARP(Common Access Redundancy Protocol:共用地址冗余协议)是一个位置无关和逐层贪婪的路由协议,使用传感器节点的跳数来表示网络拓扑结构,可以有效避免连通性漏洞和阴影区域。CARP持续监测相邻传感器节点之间的链路质量,并把它作为数据传输中继节点选择过程中一个重要因素加以考虑。数据包上传过程中,CARP采用的是逐层贪婪和全包上传的方式。
[0004] CARP的性能和适用性已经在实际的海洋环境中被评估,当网络拓扑结构相对稳定时,CARP的最优数据传输中继节点选择策略,即PING-PONG策略,会产生大量的冗余控制信息包,造成网络的拥塞,降低了数据传输的效率。另外,CARP不考虑重用之前收集到的探测数据,来支持某些特定领域的应用程序(当探测数据数值的变化在一定的阈值范围内时,某些应用依然能够很好的工作)。

发明内容

[0005] 针对上述问题,本发明提供一种改进的CARP路由协议,选择最优数据传输中继节点时,减少PING-PONG冗余控制信息包;进一步的,提出一种数据包上传算法,高效节能使用传感器收集的数据。
[0006] 为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
[0007] 一种改进的CARP路由协议,其特征在于,选择最优数据传输中继节点的具体步骤如下:
[0008] 步骤1:每当传感器节点nvsn广播一个PING控制信息包时,计算与节点nvsn相邻的传感器节点的信道质量参数g(nvsn)值;
[0009] 步骤2:上一次数据传输中继节点 和所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点都回复PONG包,其中,阈值β是范围在0-1之间的浮点数,g(ω)是上一次最优的节点的信道质量参数值;
[0010] 步骤3:在所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点中,选择g(nvsn)值最大的上一层节点uvz,若 则选择uvz为当前数据传输的中继节点,否则,继续使用上次中继节点
[0011] 优选,信息包上传的具体步骤如下:
[0012] 步骤a:当传感器节点uvsn收集到新数据包 后,与存储在本地节点的上一次收集的数据 进行比较;
[0013] 步骤b:若改变量小于设定的阈值αatr,则向中继节点 发送INFORM控制包;若改变量大于设定的阈值αatr,则将数据包上传,并将存储在本地节点的数据更新为新收集的数据
[0014] 其中,INFORM控制包定义为:
[0015] 表示传感器节点uvsn的ID标识号, 表示中继节点 的ID标识号,HC(uvsn)表示传感器节点uvsn的跳数,pid表示上一次上传的数据包id,Lpkt表示数据包标识集合,包括产生该数据包节点和转发该数据包节点。
[0016] 其中,信道质量参数g(nvsn)值的计算公式如下:
[0017] g(nvsn)=goodness(nvsn)+1/HC(nvsn)
[0018] 式中:g(nvsn)表示节点uvx和节点nvsn的通信质量,HC(nvsn)表示传感器节点nvsn的跳数,goodness(nvsn)=lq(uvx,nvsn)×lq(nvsn,uvz),lq(uvx,nvsn)代表节点uvx和节点nvsn的链路质量,lq(nvsn,uvz)代表节点nvsn和节点uvz的链路质量,uvz是nvsn的相邻节点中具有最佳的链路质量的传感器节点。
[0019] 本发明的有益效果是:在CARP路由协议基础上提出一种优化路由协议E-CARP,从高效节能的角度出发,优化CARP路由协议,提出一种更加高效节能的路由协议E-CARP。其中,E-CARP路由协议在网络初始化沿用CARP的思想,而在中继节点选择和数据包的传送上进行了改进:
[0020] 第一、选择最优数据传输中继节点时,减少PING-PONG冗余控制信息包,上一次数据传输中继节点 和所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点都回复PONG包,范围之外的相邻节点无需回复PONG包,减少部分PONG包冗余。而且,数据传输中继节点的选择程序不是每一次都是必须更新的,再次使用前一段时间使用的数据传输中继节点可能更加合适。这种策略将显著减少网络中的PONG控制信息包的数量,从而减少水下传感器网络能量消耗。
[0021] 第二、数据包重用:在两个相邻的时间片段内,监测海域环境变化相对稳定情况下,探测数据在一定阈值范围内变化时,某些特定领域的应用程序依然能够很好的工作。而大多数情况,探测数据只会在小范围内变化,探测数据轻微的变化对一些不需要高精度数据的应用程序来说价值不大。以INFORM包代替部分变化范围在阈值之内数据包上传,从而减少整个网络数据包传送,减低传感器网络的耗能。

附图说明

[0022] 图1是本发明水下传感器节点的部署图;
[0023] 图2是本发明改进的CARP路由协议的工作流程图。

具体实施方式

[0024] 下面结合附图和具体的实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0025] 一种改进的CARP路由协议,从高效节能的角度出发,优化CARP路由协议,提出一种更加高效节能的路由协议E-CARP,E-CARP路由协议在网络初始化沿用CARP的思想。在中继节点选择和数据包的传送上进行两点改进,下面分别对改进点进行详细描述。
[0026] 选择最优数据传输中继节点的具体步骤如下:
[0027] 步骤1:每当传感器节点nvsn广播一个PING控制信息包时,计算与节点nvsn相邻的传感器节点的信道质量参数g(nvsn)值;
[0028] 信道质量参数g(nvsn)值(即g值)的计算公式如下:
[0029] g(nvsn)=goodness(nvsn)+1/HC(nvsn)
[0030] 式中:g(nvsn)表示节点uvx和节点nvsn的通信质量,HC(nvsn)表示传感器节点nvsn的跳数,goodness(nvsn)=lq(uvx,nvsn)×lq(nvsn,uvz),lq(uvx,nvsn)代表节点uvx和节点nvsn的链路质量,lq(nvsn,uvz)代表节点nvsn和节点uvz的链路质量,uvz是nvsn的相邻节点中具有最佳的链路质量的传感器节点。显而易见,在所有相邻传感器节点中,最大g(nvsn)值的传感器节点是最适合被选为数据传输中继节点。
[0031] 步骤2:上一次数据传输中继节点 和所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点都回复PONG包,其中,阈值β是范围在0-1之间的浮点数,g(ω)是上一次最优的节点的信道质量参数值;
[0032] 节点位置随着水流而变化。因此,根据特定地区、特定季节水流湍急和缓慢的程度,适当地更新阈值β,更好地减少水下无线传感器网络的耗能。
[0033] 步骤3:在所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点中,选择g(nvsn)值最大的上一层节点uvz,若 则选择uvz为当前数据传输的中继节点,否则,继续使用上次中继节点
[0034] 在选择中继节点算法中,使用基于接收到EPING包算法来回复PONG包。在此过程中,数据传输中继节点的选择程序不是每一次都是必须更新的,再次使用前一段时间使用的数据传输中继节点可能更加合适。这种策略将显著减少网络中的PONG控制信息包的数量,从而减少水下传感器网络能量消耗。
[0035] 信息包上传的具体步骤如下:
[0036] 步骤a:当传感器节点uvsn收集到新数据包 后,与存储在本地节点的上一次收集的数据 进行比较;
[0037] 步骤b:若改变量小于设定的阈值αatr,则向中继节点 发送INFORM控制包;若改变量大于设定的阈值αatr,则将数据包上传,并将存储在本地节点的数据更新为新收集的数据 以便下次新探测数据做比较,确定改变量;
[0038] 其中,αatr是变化因子,规定了重用数据的数据改变量范围:(0,αatr),INFORM控制包定义为:
[0039] 表示传感器节点uvsn的ID标识号, 表示中继节点 的ID标识号,HC(uvsn)表示传感器节点uvsn的跳数,pid表示上一次上传的数据包id,Lpkt表示数据包标识集合,包括产生该数据包节点和转发该数据包节点。
[0040] 使用INFORM控制包来通知基站,若新收集的数据与上一次上传到基站的数据改变量在阈值αatr范围内,应用程序可以继续使用上一次数据。中继节点 接收到INFORM包回复ACK包,表示正确接收INFORM包。提出一种数据包上传算法,让应用程序确定需求数据精度,来高效节能使用传感器收集的数据。
[0041] 当监测海域在相对稳定的环境下,探测数据的变化有很大可能在阈值αatr的范围内,此时应向水面基站发送INFORM控制信息包,而不是数据信息包。因此,在网络中传输的数据总量显著减少,网络的能量消耗大幅降低。
[0042] 下面完整的介绍一个实施例:
[0043] 1)在监测海域中,随机均匀部署若干无线传感器节点,传感器节点的疏密程度和探测属性可根据特定场景、特定的应用程序自行控制,其节点部署方式如图1所示,Sensor代表传感器节点,部署到不同深度的位置,Sink代表基站,部署在水面上。
[0044] 此路由协议所描述的工作原理是在实际水下探测区域部署无线传感器网络的传感器,应用程序根据需求,请求水下传感器收集和上传某种属性的数据。在基站中,设置集合缓存CAH存储节点上传输数据,传感器节点设置阈值β、缓存 数据变化因子αatr。完整的流程图如图2所示。
[0045] 在基站设置缓存CAH用来存储节点上传的数据,CAH定义为定义为一个向量,即:
[0046]
[0047] 其中, 表示传感器节点uvsn感兴趣的属性,一个传感器节点可以装备一个或多个设备,用来探测一种或多种感兴趣的属性;参数 记录了标识为 的传感器节点uvsn最近一次上传到水面基站的探测数据。参数 也被存储在传感器节点uvsn的存储器中,用来和新探测到的数据进行比较,看新探测到的数据是否显著变化。
[0048] 2)节点部署后,初始化整个水下无线传感器网络:从基站往下广播HELLO包,基站的跳数HC(SN)初始化为0,接收HELLO包节点为基站的相邻节点,即下一层节点,其HC为1,依次类推,初始化所有节点的跳数。初始化时,无数据包传送,因此,基站中CAH和节点中缓存都初始化时置空。
[0049] 3)若节点接收到基站的请求后,传感器节点收集应用所需的数据。
[0050] 4)根据特定应用程序对数据的精度要求或对实时数据的要求,设置符合应用程序数据变化因子阈值αatr,确定需要上传的信息包是数据包或INFORM包。
[0051] 5)确定信息包后选择中继节点。根据特定水域的水流模型或经验值,在节点中设置阈值β。根据中继节点选择算法,若选择g值(即信道质量参数)范围在(β×g,∞)中节点作为候选中继节点,从候选中继节点中选择上一层g值最大节点与上次数据传输中继节点作比较,选择g值大的为本次数据传输的中继节点。
[0052] 6)进行信息包上传。
[0053] 7)若中继节点是基站,则信息包上传结束;否则,继续往上选择中继节点,直至,信息包上传到基站节点。
[0054] 基站接收到传感器节点收集数据后,通过无线电的方式上传到服务上,应用程序可通过特定服务获取数据信息。
[0055] 为了便于进一步理解本发明,下面分别介绍一下各算法的伪代码。
[0056] 算法1是中继节点选择算法伪代码:
[0057] 算法1中继节点选择伪代码:
[0058]
[0059]
[0060]
[0061] 中继节点选择算法中,输入是集合 包含所有回复PONG包节点和对应的g值,输出是选为本次数据传输的中继节点 传感器节点探测到新数据,需要上传时,经过算法1选择,得到下一跳中继节点。
[0062] 算法2是基于接收到EPING算法伪代码:
[0063] 算法2基于接收EPING算法伪代码:
[0064]
[0065] 算法2中,输入是一个EPING包,输出是一个PONG包。基于接收到EPING算法确定一个传感器节点接收EPING后,是否需要回复PONG包。若g值不在范围(β×g,∞)内,则无需回复PONG包,否则,回复PONG包。
[0066] 算法3是数据包上传算法伪代码:
[0067] 算法3数据包上传伪代码:
[0068]
[0069]
[0070] 算法3中,输入是当前传感器节点探测到数据 节点缓存数据 预先设定变化因子αatr,输出是一个INFORM包或数据包。根据之前在节点中设置的变化因子αatr和数据包的改变量,使用算法3确定需要上传的是数据包或是INFORM包。当中继节点接收INFROM包或数据包时,会回复ACK给发包节点,确认已经接收。使用逐层贪婪的方式,将数据包或INFORM包上传到基站。
[0071] 本发明的有益效果是:在CARP路由协议基础上提出一种优化路由协议E-CARP,从高效节能的角度出发,优化CARP路由协议,提出一种更加高效节能的路由协议E-CARP。其中,E-CARP路由协议在网络初始化沿用CARP的思想,而在中继节点选择和数据包的传送上进行了改进:
[0072] 第一、选择最优数据传输中继节点时,减少PING-PONG冗余控制信息包,上一次数据传输中继节点 和所有g(nvsn)值在范围(β×g(ω),∞)内的相邻节点都回复PONG包,范围之外的相邻节点无需回复PONG包,减少部分PONG包冗余。而且,数据传输中继节点的选择程序不是每一次都是必须更新的,再次使用前一段时间使用的数据传输中继节点可能更加合适。这种策略将显著减少网络中的PONG控制信息包的数量,从而减少水下传感器网络能量消耗。
[0073] 第二、数据包重用:在两个相邻的时间片段内,监测海域环境变化相对稳定情况下,探测数据在一定阈值范围内变化时,某些特定领域的应用程序依然能够很好的工作。而大多数情况,探测数据只会在小范围内变化,探测数据轻微的变化对一些不需要高精度数据的应用程序来说价值不大。以INFORM包代替部分变化范围在阈值之内数据包上传,从而减少整个网络数据包传送,减低传感器网络的耗能。
[0074] 第三、通过减少冗余PING-PONG控制包和提高数据包重用率,很大程度上减少水下无线传感器网络数据收集和数据传送中的能量消耗,延长了整个水下无线传感器网络的生命周期。为水下无线传感器网络提供了一种高效节能的路由协议。以便人类更好探索海洋。
[0075] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或者等效流程变换,或者直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。