用于环境监测物联网的动态路由实现方法
技术领域
本发明涉及信息技术领域,尤其涉及一种用于环境监测物联网的动态路由实现方法。
背景技术
随着世界工业化的不断发展,环境问题越来越受到人们的关注。如石油泄漏、太湖蓝藻等许多人为的环境污染事件时有发生,因此急需一套环境监测物联网系统来取代现有的环境监测系统。
新型的环境监测物联网系统利用节点无线自组网技术,将所需要的环境信息采集起来,并与互联网技术相结合,使得采集到的数据被存储、筛选、分析,最终能够得到精确的区域环境参数,为环境保护和环境治理提供科学的依据。
环境监控物联网系统的无线自组织网络采用多跳无线通信技术,各监控节点将采集到的数据通过多跳接力的方式发送监控网关,即汇聚节点。环境监控系统的实际工作环境较为复杂,系统易受到外界环境因素的干扰,所以需要建立一种动态的路由方法,能够快速的如入已有网络,而且能够在已知路由毁坏的情况下,快速建立新路由。
发明内容
本发明提供的一种用于环境监测物联网的动态路由实现方法,此路由方法是优化按需路由方法而实现的一种多源单汇方法,是一种动态的路由方法,能够快速的如入已有网络,而且能够在已知路由毁坏的情况下,快速建立新路由。
为了达到上述目的,本发明提供一种用于环境监测物联网的动态路由实现方法,该方法包含以下步骤:
步骤1、发送源节点准备发送数据,调用路由层发送接口;
步骤2、节点查找路由表中的路由信息以获得最优下一跳节点,如果找到下一跳节点,则进行步骤3,如果没有找到下一跳节点,则进行步骤7;
步骤3、尝试将数据发送给下一跳节点,判断是否发送成功,若是,进行步骤4,若否,进行步骤5;
步骤4、整个数据发送操作结束,返回发送成功;
步骤5、清空此路由信息,判断是否超过了重试次数,若是,进行步骤6,若否,进行步骤2,开始重试;
步骤6、整个数据发送过程结束,返回发送失败;
步骤7、如果没有找到下一跳节点,即路由表为空,则进行路由请求;
步骤8、在设定的等待时间内,等待周围节点对路由请求的回复,若等待超时,进行步骤9,若等待未超时,进行步骤10;
步骤9,待超时,则整个数据发送过程结束,返回发送失败;
步骤10,等待过程中,收到周围节点的回复,则将回复的信息加入路由表中,进行步骤11;
步骤11、成功更新路由表之后,进行步骤2,开始重试数据发送操作。
所述的步骤2中,路由表包含:邻居节点号、邻居节点的父节点、邻居节点的通讯质量、邻居节点到网关的跳数、邻居节点数据转发的缓存压力指数。
所述的步骤2包含以下步骤:
步骤2.1、筛选出不低于最低通讯质量要求,且不大于最大数据转发的缓存压力指数的路由信息;
步骤2.2、判断符合步骤2.1的路由信息是否存在;
若不存在,则查找失败,进行步骤7;
如果存在且只有一个,则查找成功,返回该路由信息,作为最优下一跳信息,进行步骤3;
如果存在且不只一个,则在所有符合步骤2.1的路由信息中查找具有最小到网关的跳数,并筛选出具有最小跳数的路由信息,进行步骤2.3;
步骤2.3、在所有由步骤2.2筛选出的路由信息中,计算通讯质量和数据转发的缓存压力指数的加权值;
如果最优加权值唯一,则以该加权值对应的路由信息作为最优下一跳信息,进行步骤3;
如果最优加权值不唯一,则在最优加权值对应的路由信息中随机取出一个路由信息作为最优下一跳信息,进行步骤3。
所述的步骤2中,每次节点收到其它邻居节点广播的路由信息,会利用该信息更新路由表,每次节点收到其它节点的路由请求信息时,如果自身有路由信息也会将自身的路由信息广播发送出去。
所述的步骤7包含以下步骤:
步骤7.1、步骤1中的发送源节点发起路由请求操作,即向周围节点广播路由请求包;
步骤7.2、接收到路由请求包的节点,如果自身有路由信息,则立即返回给请求节点自身的路由信息;如果自身没有路由信息,则等待请求节点的路由请求取消操作;
步骤7.3、路由请求发起节点接收到周围节点返回的路由信息,则立即更新自身路由表,并向周围节点广播一条路由请求取消操作的数据包;
步骤7.4、在步骤7.2中,接收到路由请求操作且自身没有路由信息的节点,如果在等待超时的时间内收到请求节点的请求取消操作的数据包,则恢复正常状态;如果等待超时,则该节点将进行步骤7.1,发起路由请求操作,并在得到路由信息后返回给请求自己的节点。
所述的步骤7中,当发送数据失败或者发送时路由表为空都将驱动一次路由请求过程。
本发明对按需路由进行反向补偿,要求以获得路由的节点间歇向周围节点广播路由信息,接收到此信息的节点都将主动更新自身路由表,这也使得环境监控中的无需主动发送数据的中继节点能够较快的被动加入网络,也能加快其他节点加入网络的速度。本发明的方法能够充分的利用按需路由来保证环境监控的数据能够完整的发送到环境监控网关节点,又优化了路由建立过程,实现了节点的快速自组网,适合在实际的环境监控物联网系统中使用,并在Tinyos下实现了该路由方法。
附图说明
图1是本发明的流程图;
图2是本发明提供的路由表的内容示意图;
图3是本发明中路由请求过程的示意图;
图4是已有路由节点驱动的路由建立过程的示意图。
具体实施方式
以下根据图1~图4,具体说明本发明的较佳实施例。
如图1所示,本发明提供的一种用于环境监测物联网的动态路由实现方法,包含以下步骤:
步骤1、发送源节点准备发送数据,调用路由层发送接口;
步骤2、节点查找路由表中的路由信息以获得最优下一跳节点,如果找到下一跳节点,则进行步骤3,如果没有找到下一跳节点,则进行步骤7;
如图2所示,是每个节点的路由表的内容示意图,该路由表包含:邻居节点号、邻居节点的父节点(下跳节点)、邻居节点的通讯质量(RSSI)、邻居节点到网关的跳数(hop count)、邻居节点数据转发的缓存压力指数。
每次节点收到其它邻居节点广播的路由信息,会利用该信息更新路由表。每次节点收到其它节点的路由请求信息时,如果自身有路由信息也会将自身的路由信息广播发送出去。
步骤2.1、筛选出不低于最低通讯质量要求,且不大于最大数据转发的缓存压力指数的路由信息;
步骤2.2、判断符合步骤2.1的路由信息是否存在;
若不存在,则查找失败,进行步骤7;
如果存在且只有一个,则查找成功,返回该路由信息,作为最优下一跳信息,进行步骤3;
如果存在且不只一个,则在所有符合步骤2.1的路由信息中查找具有最小到网关的跳数,并筛选出具有最小跳数的路由信息,进行步骤2.3;
步骤2.3、在所有由步骤2.2筛选出的路由信息中,计算通讯质量和数据转发的缓存压力指数的加权值;
如果最优加权值唯一,则以该加权值对应的路由信息作为最优下一跳信息,进行步骤3;
如果最优加权值不唯一,则在最优加权值对应的路由信息中随机取出一个路由信息作为最优下一跳信息,进行步骤3;
步骤3、尝试通过MAC层(介质访问控制层)将数据发送给下一跳节点,判断是否发送成功,若是,进行步骤4,若否,进行步骤5;
步骤4、整个数据发送操作结束,返回发送成功;
步骤5、清空此路由信息,判断是否超过了重试次数,若是,进行步骤6,若否,进行步骤2,开始重试;
步骤6、整个数据发送过程结束,返回发送失败;
步骤7、如果没有找到下一跳节点,即路由表为空,则进行路由请求;
如图3所示,本发明提出的路由方法是基于按需路由优化而来,当发送数据失败或者发送时路由表为空都将驱动一次路由请求过程;
步骤7.1、步骤1中的发送源节点发起路由请求操作,即向周围节点广播路由请求包;
步骤7.2、接收到路由请求包的节点,如果自身有路由信息,则立即返回给请求节点自身的路由信息;如果自身没有路由信息,则等待请求节点的路由请求取消操作;
步骤7.3、路由请求发起节点接收到周围节点返回的路由信息,则立即更新自身路由表,并向周围节点广播一条路由请求取消操作的数据包;
步骤7.4、在步骤7.2中,接收到路由请求操作且自身没有路由信息的节点,如果在等待超时的时间内收到请求节点的请求取消操作的数据包,则恢复正常状态;如果等待超时,则该节点将进行步骤7.1,发起路由请求操作,并在得到路由信息后返回给请求自己的节点;
步骤8、在设定的等待时间内,等待周围节点对路由请求的回复,若等待超时,进行步骤9,若等待未超时,进行步骤10;
步骤9,待超时,则整个数据发送过程结束,返回发送失败;
步骤10,等待过程中,收到周围节点的回复,则将回复的信息加入路由表中,进行步骤11;
步骤11、成功更新路由表之后,进行步骤2,开始重试数据发送操作。
如图4所示,是已有路由节点驱动的路由建立过程的示意图,本发明提出的路由方法对按需路由进行了反向补偿,使有路由的节点也要间隔进行路由信息的广播,加快网络的建立速度。已有路由信息的节点将定时广播自己的路由信息给邻居节点,邻居节点根据收到的广播路由信息来更新自身的路由表;而没有路由信息的节点也可通过这种方式更快的获得路由信息,从而加入网络,同时在其获得路由信息之后,也将继续广播路由信息,帮助其他点获得路由。
本发明提出的路由方法基于Tinyos嵌入式操作系统开发实现,用户层通过API(应用编程接口)调用实现路由层的数据发送,系统将通过路由方法找到下一跳节点,然后将数据通过MAC层点对点发送到下一跳节点,MAC最终调用CC2430射频电路将数据以电磁波的方式发送出去。
硬件上采用基于TI公司的CC2430无线射频芯片自行开发的无线监控节点,软件上采用Tinyos作为开发环境,实现路由方法。Tinyos是一款自由和开源的基于组件的操作系统和平台,它主要针对无线传感器网络。Tinyos是用nesC程序编写的嵌入式操作系统,其作为一系列合作项目的结果,被广泛的运用在无线传感器网络开发,特别是路由方法的开发与验证上。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。