一种无线网络路径切换方法
技术领域
本发明涉及一种无线通信技术,特别是公开一种无线网络路径切换方法,适用于无线集抄、无线物联网、智能家居和无线传感器网络。
背景技术
无线自组织网络(mobile ad-hoc network)是一个由几十到上百个节点组成的、采用无线通信方式的、动态组网的多跳的移动性对等网络。其目的是通过动态路由和移动管理技术传输具有服务质量要求的多媒体信息流。通常节点具有持续的能量供给。
由于Adhoc网络具有节点节电、减少带宽消耗、拓扑快速变化、适应单向信道环境等多方面的要求,使得现有的IP路由协议,如RIP(选路信息协议)和OSPF(开放最短路径优先协议)等不能满足要求,Adhoc网络路由协议的设计具有很大难度。IETF的MANET工作组重点研究无线Adhoc中的路由协议。主要有如下几种草案:
1.AODV(AdhoconDemandDistmceVectorRouting)Adhoc网络的距离矢量路由算法。
2.TORA(TemporallyOrderedRoutingAlgorithm)临时顺序路由算法。
3.DSR(DynamicSourceRouting)动态源路由协议。
4.OLSR(OptimizedLinkStateRoutingProtocol)优化的链路状态路由协议。
5.TBRPF(TopologyBroadcastBasedonReversePathForwarding)基于拓扑广播的反向路径转发。
6.FSR(FisheyeStateRoutingProtocol)鱼眼状态路由协议。
7.IERP(theInterzoneRoutingProtocol)区域间路由协议。
8.IARP(theIntrazoneRoutingProtocol)区域内路由协议。
9.SDV(DestinationSequencedDistanceVector)目标序列距离路由矢量算法。
这些协议的路径选择是基于路径查找过程,过程需要路径中的的每个节点参与,一次查找过程可以获取到多条路径,中心节点(ZigBee中称为全功能节点)并没有新路径生成能力。通讯过程中第一条路径失败后启用第二条,如此循环,全部失败后,再启动广播查找过程。这种方法缺点:一是受限于单片机的资源,路径数量不能太多,通常只保存1-3条路径,频繁的路径查找过程会干扰通信的效率;二是多条路径只是一种备份机制,系统无法判断哪一条路径更合理。三是路径故障无法定位到故障点,无法保证切换后的路径成功绕过了故障点。
发明内容
本发明的目的是解决现有技术中无线路由算法需要动态获取路径加上备份路径用于切换,切换后的路径质量无法评估,也无法定位故障点,切换后的路径不能确定已经绕过了故障点的问题,提供一种线网络路径切换方法。本发明针对每个点计算父节点的成功率,父节点出现故障后切换到另一个无故障的父节点,因为路径中所有中继均采用此原理,整条路径的中继质量可以得到保证。
本发明是这样实现的:一种无线网络路径切换方法,所述的方法包括以下步骤:
1、路径可靠性收集,无线传输过程兼容单跳重传与应用重传两种机制实现传输过程的鲁棒性;单跳重传是发送方在未接收到接收方发送的确认包时进行多次尝试,仍然失败的情况下,会向中心节点报告一个节点故障信息,这样中心节点可以明确知道故障的位置,路径错误计数器记录子节点与父节点关系故障一次;应用重传机制是发送方发送后并不用等接收方的确认包,发送完成后任务就结束了,如果传送过程中出现故障,中心节点在等待一段时间超时后认为此路径无效,路径错误计数器记录路径中所有父子节点故障一次;如果通信成功完成,则路径成功计数器记录路径中所有父子关系成功次数累加一次,这样就建立了路径中每个父子关系的可靠性数据;
2、可靠性数据归零,随着成功次数与失败次数的逐渐累加,会出现一个数累加到路径错误计数器或路径成功计数器的最大值,那么中心节点将所述路径错误计数器的数值或路径成功计数器的数值较小的值归零,将所述路径错误计数器的数值或路径成功计数器的数值较大的值变更为两者的差值的绝对值,路径错误计数器或路径成功计数器的数值大于或等于计数器最大值时触发可靠性数据归零动作,计数器最大值是一个常量,取值范围为[1,255],数值越小代表路径切换越快,数值越大,路径切换越慢;
3、节点故障切换,如果失败次数增长较快,并且与成功次数的差值超过了错误允许阀值,则将父节点移动至下一个父节点,如果当前父节点已经是最后一个,则移动到第一个父节点,移动父节点后,成功次数与失败次数的累加次数需要全部归零;当路径错误计数器的数值减去路径成功计数器的数值的差值大于或等于错误允许阀值时,启动父节点切换过程,错误允许阀值是一个常量,其取值小于路径错误计数器最大值,范围是[1,10],数值越小代表路径切换越快,数值越大,路径切换越慢。
本发明的有益效果是:本发明针对每个点计算父节点的成功率,父节点出现故障后切换到另一个无故障的父节点,从而保证切换后的路径可靠,维护过程简单,需求的资源少,是低成本无线通信的理想方案。
附图说明
图1 是本发明的单跳重传机制示意图。
图2 是本发明的重传机制示意图。
图3 是本发明网络关系实例示意图。
图4 是本发明路径切换判断流程图。
图中:-C-是中心节点,A1、A2、A3、B1、B2、B3、D是子节点。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明具体步骤如下:
1、路径可靠性收集,无线传输过程兼容单跳重传与应用重传两种机制实现传输过程的鲁棒性;单跳重传是发送方在未接收到接收方发送的确认包时进行多次尝试,仍然失败的情况下,会向中心节点报告一个节点故障信息,这样中心节点可以明确知道故障的位置,路径错误计数器记录子节点与父节点关系故障一次;应用重传机制是发送方发送后并不用等接收方的确认包,发送完成后任务就结束了,如果传送过程中出现故障,中心节点在等待一段时间超时后认为此路径无效,路径错误计数器记录路径中所有父子节点故障一次;如果通信成功完成,则路径成功计数器记录路径中所有父子关系成功次数累加一次,这样就建立了路径中每个父子关系的可靠性数据;
2、可靠性数据归零,随着成功次数与失败次数的逐渐累加,会出现一个数累加到路径错误计数器或路径成功计数器的最大值,那么中心节点将所述路径错误计数器的数值或路径成功计数器的数值较小的值归零,将所述路径错误计数器的数值或路径成功计数器的数值较大的值变更为两者的差值的绝对值,路径错误计数器或路径成功计数器的数值大于或等于计数器最大值时触发可靠性数据归零动作,计数器最大值是一个常量,取值范围为[1,255],数值越小代表路径切换越快,数值越大,路径切换越慢;
3、节点故障切换,如果失败次数增长较快,并且与成功次数的差值超过了错误允许阀值,则将父节点移动至下一个父节点,如果当前父节点已经是最后一个,则移动到第一个父节点,移动父节点后,成功次数与失败次数的累加次数需要全部归零;当路径错误计数器的数值减去路径成功计数器的数值的差值大于或等于错误允许阀值时,启动父节点切换过程,错误允许阀值是一个常量,其取值小于路径错误计数器最大值,范围是[1,10],数值越小代表路径切换越快,数值越大,路径切换越慢。
根据附图1,中心节点发送一个通讯包给一级节点,一级节点收到数据包后返回确认包,中心收到确认包后认为任务已经结束。一级节点发送确认包后,会立即将通讯包传递给下一个节点,下一个节点未收到或下一个节点发送的确认包一级节点未收到的情况下,一级节点在等待超时后会再次发送。多次尝试成功后链路通畅,不成功的情况下,一级节点向中心返回一个节点故障数据包。中心节点收到此数据包后,将子节点的路径错误计数器加1。这是单跳确认机制。
根据附图2,中心节点发送一个通讯包给一级节点,不用等待回复。一级节点接收到数据包后转发给二级节点,不用等待回复。在指定时间内中心收到返回的数据包,认为通讯成功,否则认为通信不成功。通信成功后将路径中的所有子节点路径成功计数器加1。通讯不成功时,中心节点将所有子节点的路径错误计数器加1,且再次发送通讯包。这是应用重传机制。
下表是本发明子节点信息组成表。
根据上表,一个简单的网络,-C-表示中心节点,A1、A2、A3、B1、B2、B3、D是子节点。D的完整路径是-C- →A1 → B1 → D,B3的完整路径是-C- → A1 → B2 → B3;图中A1可作为关键节点。D的父节点是B1、B2、B3,最优父节点是B1。B1的父节点是A1、B2、D。B1与D是双向父子关系,D是比较差的父节点,但在极端情况下,B1通过D、B3、A3也可以与中心通讯。这是网络实例,用于说明路径的关系与路径切换。
路径切换是两种切换逻辑的综合方法。一种逻辑是单跳连续错误一定次数后更换父节点,路径中其它节点也在不断进行这样的过程,因此每个节点的路径是快速不断更新的。第二个逻辑是链路错误后故障点的识别上,本发明中路径错误后将整条路径中的节点路径错误计数器加1,成功后整条路径中所有节点的路径成功计数器加1。对照附图4来看,A1点是两条路径的交叉点,实际情况是5条路径的交叉点,这5条路径是:D的路径、B1的路径、B2的路径、B3的路径、A1的路径。在网络通讯过程中,这5条路径通讯结果的不断叠加,故障点的错误因为累加效应而凸显出来,当然凸显出来的还有状况良好的节点,只是方案只关注故障点,无需考虑良好节点。
根据附图4,每次路径错误计数器或路径成功计数器变化后触发一个检查流程。流程中,先判断哪个计数器数值较大。如果路径成功计数器数值较大,后续流程只是检查路径成功计数器不要溢出,在路径成功计数器达到最大值时,将路径错误计数器归零,路径成功计数器设为两者的差额。如果是路径失败计数器大于路径成功计数器,那么需要判断路径错误计数器与路径成功计数器的差值是否已经超出了阀值,如果超出了阀值,需要切换父节点,同时将路径错误计数器与路径成功计数器归零。如果差值没有超出阀值,检查路径错误计数器是否已经超出路径错误计数器最大值,超出后将路径错误计数器的数值置为两者的差值,将路径成功计数器归零。切换父节点后,下次计算路径时将不再使用第一个父节点,而是当前邻居序号对应的父节点。当路径错误计数器-路径成功计数器≥错误允许阀值时,启动父节点切换过程。错误允许阀值是一个常量,取值小于计数器最大值,范围是[1,10],数值越小代表路径切换越快,数值越大,路径切换约慢。
作为优化,切换父节点时,重新计算剩余父节点的路径消耗指标后,选择一个路径消耗指标最小的节点作为父节点也是可行方法。