一种改进的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 :每当传感器节点nvsrJ^播一个PING控制信息包时,计算与节点nv sn相邻 的传感器节点的信道质量参数g (nvsn)值;
[0009] 步骤2 :上一次数据传输中继节点和所有g(nvsn)值在范围(β Xg(CO),〇〇) 内的相邻节点都回复PONG包,其中,阈值β是范围在0-1之间的浮点数,g(co)是上一次 最优的节点的信道质量参数值;
[0010] 步骤3 :在所有g(nvsn)值在范围(β Xg(CO),〇〇 )内的相邻节点中,选择g(nvsn) 值最大的上一层节点uvz:
则选择UVz为当前数据传输的中继节 点,否则,继续使用上次中继节点。
[0011] 优选,信息包上传的具体步骤如下:
[0012] 步骤a :当传感器节点UVsn收集到新数据包爾4?^后,与存储在本地节点的上一 次收集的数据进行比较;
[0013] 步骤b :若改变量小于设定的阈值a a&,则向中继节点发送INFORM控制包; 若改变量大于设定的阈值a a&,则将数据包上传,并将存储在本地节点的数据更新为新收 集的数据皿;
[0014] 其中,INFORM控制包定义为:
表示传感器 节点仍^的ID标识号,
表示中继节点
的ID标识号,HC(Uvsn)表示传感器节 点UvsJ^跳数,pid表示上一次上传的数据包id,Lpkt表示数据包标识集合,包括产生该数 据包节点和转发该数据包节点。
[0016] 其中,信道质量参数g(nvsn)值的计算公式如下:
[0017] g(nvsn) = goodness (nvsn)+l/HC(nvsn)
[0018] 式中:g(nvsn)表示节点uvjP节点nvsn的通信质量,HC(nv sn)表示传感器节点nvsn 的跳数,g〇〇dness(nvsn) = lq(uvx,nvsn)Xlq(nvsn,uvz),lq(uv x,nvsn)代表节点 uv,节点 nvsn的链路质量,Iq (nv sn, uvz)代表节点nvsn和节点uv z的链路质量,uv 2是nv sn的相邻节点 中具有最佳的链路质量的传感器节点。
[0019] 本发明的有益效果是:在CARP路由协议基础上提出一种优化路由协议E-CARP,从 高效节能的角度出发,优化CARP路由协议,提出一种更加高效节能的路由协议E-CARP。其 中,E-CARP路由协议在网络初始化沿用CARP的思想,而在中继节点选择和数据包的传送上 进行了改进:
[0020] 第一、选择最优数据传输中继节点时,减少PING-PONG冗余控制信息包,上一次数 据传输中继节点
值在范围(β Xg(?),-〇内的相邻节点都回复PONG 包,范围之外的相邻节点无需回复PONG包,减少部分PONG包冗余。而且,数据传输中继节 点的选择程序不是每一次都是必须更新的,再次使用前一段时间使用的数据传输中继节点 可能更加合适。这种策略将显著减少网络中的PONG控制信息包的数量,从而减少水下传 感器网络能量消耗。
[0021] 第二、数据包重用:在两个相邻的时间片段内,监测海域环境变化相对稳定情况 下,探测数据在一定阈值范围内变化时,某些特定领域的应用程序依然能够很好的工作。而 大多数情况,探测数据只会在小范围内变化,探测数据轻微的变化对一些不需要高精度数 据的应用程序来说价值不大。以INFORM包代替部分变化范围在阈值之内数据包上传,从而 减少整个网络数据包传送,减低传感器网络的耗能。
【附图说明】
[0022] 图1是本发明水下传感器节点的部署图;
[0023] 图2是本发明改进的CARP路由协议的工作流程图。
【具体实施方式】
[0024] 下面结合附图和具体的实施例对本发明技术方案作进一步的详细描述,以使本领 域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限 定。
[0025] -种改进的CARP路由协议,从高效节能的角度出发,优化CARP路由协议,提出一 种更加高效节能的路由协议E-CARP,E-CARP路由协议在网络初始化沿用CARP的思想。在 中继节点选择和数据包的传送上进行两点改进,下面分别对改进点进行详细描述。
[0026] 选择最优数据传输中继节点的具体步骤如下:
[0027] 步骤1 :每当传感器节点nvsrJ^播一个PING控制信息包时,计算与节点nv sn相邻 的传感器节点的信道质量参数g (nvsn)值;
[0028] 信道质量参数g (Iivsn)值(即g值)的计算公式如下:
[0029] g(nvsn) = goodness (nvsn)+l/HC(nvsn)
[0030] 式中:g (nvsn)表示节点uvx和节点nv sn的通信质量,HC (nv sn)表示传感器节点nvsn 的跳数,g〇〇dness(nvsn) = lq(uvx,nvsn)Xlq(nvsn,uvz),lq(uv x,nvsn)代表节点 uv,节点 nvsn的链路质量,Iq (nv sn, uvz)代表节点nvsn和节点uv z的链路质量,uv 2是nv sn的相邻节点 中具有最佳的链路质量的传感器节点。显而易见,在所有相邻传感器节点中,最大g(rw sn) 值的传感器节点是最适合被选为数据传输中继节点。
[0031] 步骤2 :上一次数据传输中继节点和所有g(nvsn)值在范围(β Xg(CO),〇〇 ) 内的相邻节点都回复PONG包,其中,阈值β是范围在0-1之间的浮点数,g(co)是上一次 最优的节点的信道质量参数值;
[0032] 节点位置随着水流而变化。因此,根据特定地区、特定季节水流湍急和缓慢的程 度,适当地更新阈值β,更好地减少水下无线传感器网络的耗能。
[0033] 步骤3 :在所有g (nvsn)值在范围(β X g (ω),〇〇 )内的相邻节点中,选择g (nvsn) 值最大的上一层节点uvz,
则选择UVz为当前数据传输的中继节 点,否则,继续使用上次中继节点·
[0034] 在选择中继节点算法中,使用基于接收到EPING包算法来回复PONG包。在此过程 中,数据传输中继节点的选择程序不是每一次都是必须更新的,再次使用前一段时间使用 的数据传输中继节点可能更加合适。这种策略将显著减少网络中的PONG控制信息包的数 量,从而减少水下传感器网络能量消耗。
[0035] 信息包上传的具体步骤如下:
[0036] 步骤a :当传感器节点集到新数据包Vdxipsn后,与存储在本地节点的上一 次收集的数据进行比较;
[0037] 步骤b :若改变量小于设定的阈值a a&,则向中继节点发送INFORM控制包; 若改变量大于设定的阈值a a&,则将数据包上传,并将存储在本地节点的数据更新为新收 集的数据Fa/Ws?i,以便下次新探测数据做比较,确定改变量;
[0038] 其中,a a&是变化因子,规定了重用数据的数据改变量范围:(〇, a at上INFORM控 制包定义为:
表示传感器 节点UVsnBtl ID标识号,'表示中继节点的ID标识号,HC(UVsn)表示传感器节 点UvsJ^跳数,pid表示上一次上传的数据包id,Lpkt表示数据包标识集合,包括产生该数 据包节点和转发该数据包节点。
[0040] 使用INFORM控制包来通知基站,若新收集的数据与上一次上传到基站的数据 改变量在阈值aa&范围内,应用程序可以继续使用上一次数据。中继节点接收到 INFORM包回复ACK包,表示正确接收INFORM包。提出一种数据包上传算法,让应用程序确 定需求数据精度,来高效节能使用传感器收集的数据。
[0041] 当监测海域在相对稳定的环境下,探测数据的变化有很大可能在阈值a a&的范围 内,此时应向水面基站发送INFORM控制信息包,而不是数据信息包。因此,在网络中传输的 数据总量显著减少,网络的能量消耗大幅降低。
[004