首页> 中国专利> 一种基于6LoWPAN邻居发现的树状路由方法

一种基于6LoWPAN邻居发现的树状路由方法

摘要

一种基于6LoWPAN邻居发现的树状路由方法,涉及无线传感网领域,包括如下步骤:a.在6LoWPAN传感器节点加入网络时,建立树状拓扑的根节点,对所述根节点配置网络的基本信息;b.在网络中加入其它普通节点;c.路由的形成;且在所述步骤c中,若发生叶子节点失效或离开、非叶子节点失效或离开、节点的移动三种情况之一时,则触发路由修复过程;若没有情况发生,则保持处理结束,所述基于6LoWPAN邻居发现的树状路由方法无需发送和接收额外的路由协议报文,既降低了带宽和路由计算的开销,又节省了节点发送报文时产生的能耗,进而降低整个网络的能耗和路由开销。

著录项

  • 公开/公告号CN102148756A

    专利类型发明专利

  • 公开/公告日2011-08-10

    原文格式PDF

  • 申请/专利权人 武汉邮电科学研究院;

    申请/专利号CN201110027515.7

  • 发明设计人 郝俊瑞;

    申请日2011-01-26

  • 分类号H04L12/56(20060101);H04L29/12(20060101);H04W40/00(20090101);

  • 代理机构北京捷诚信通专利事务所(普通合伙);

  • 代理人魏殿绅;庞炳良

  • 地址 430074 湖北省武汉市洪山区邮科院路88号

  • 入库时间 2023-12-18 03:00:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-25

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/58 变更前: 变更后: 申请日:20110126

    专利权人的姓名或者名称、地址的变更

  • 2013-11-20

    授权

    授权

  • 2011-09-21

    实质审查的生效 IPC(主分类):H04L12/56 申请日:20110126

    实质审查的生效

  • 2011-08-10

    公开

    公开

说明书

技术领域

本发明涉及无线传感网领域,尤其是一种基于6LoWPAN邻居发现的树状路由方法。

背景技术

互联网工程任务组(IETF)于2004年成立了6LoWPAN(IPv6overLow power Wireless Personal Area Networks,在低功耗无线个域网上的IPv6协议栈)工作组,该工作组的目标是研究制定在低功耗无线个域网上运行IPv6协议栈的一系列技术与标准。与传统的因特网TCP/IP协议体系结构相比,6LoWPAN在层次结构上多了一个适配层,6LoWPAN在低层采用的是IEEE 802.15.4的MAC(媒体访问控制子层)和物理层,而在网络层及以上使用IETF的IPv6协议栈。由于IPv6协议栈不能直接运行于802.15.4之上,6LoWPAN适配层的目的是在IPv6与无线传感网之间实现无缝连接。6LoWPAN适配层的关键技术主要包括:链路层的分片和重组、头部压缩、多播支持、网络拓扑构建和地址分配、以及MAC层路由。

传统的路由方法主要是在传统IP网设备上运行,没有考虑节点的能耗和带宽的限制,因此不能用在能耗极其敏感的无线传感网上。

目前提出的6LoWPAN路由方法,主要有LOAD(6LoWPAN Ad HocOn-Demand Distance Vector Routing,基于6LoWPAN的无线自组网按需距离矢量路由算法)和HiLow(Hierarchical Routing over6LoWPAN,6LoWPAN上的层次化路由算法)两种。

LOAD是基于AODV(Ad-hoc On-demand Distance Vector,无线自组网按需距离矢量路由协议)简化的按需路由方法,使用广播方式来查找路由,恳求节点通常以广播方式,向目的节点扩散路由恳求报文,并由目的节点对该恳求报文进行响应。由于路由表和广播方式的消耗,使得LOAD开销较高,虽然AODV和LOAD等均为轻量化的路由协议,但由于都使用广播方式查找路由,使得其路由开销仍然很高。

HiLow是一种分级式路由方法,不需要建立和维护路由表,依靠动态地址分配算法在树状网络中转发数据。HiLow虽然降低了开销,但是路由效率不高,因为有可能即使是两个相邻的节点通信,也要通过父节点多跳进行,而且一旦某些关键节点,如父节点失效时则可能造成大面积的网络重构,使得开销大幅度增加。

无线传感网是一种低能耗和低开销的自组织网络。在当前无线传感网的应用环境中大多数的通信模式都是树状通信模式:具有监测功能的传感器节点通过单跳或者多跳将数据传送到位于根节点的网关;而网关通过中间节点充分利用无线传感网树状通信的特点,采用了树状拓扑,树状拓扑有大量的叶子节点,叶子节点本身使用较低的能耗,因此拓扑中较多的叶子节点有利于降低整个网络的能耗。因此研究基于树状拓扑的无线传感网的路由协议具有广泛的实践意义,和实用价值。

发明内容

针对现有技术中存在的缺陷,本发明的目的在于提供一种基于6LoWPAN邻居发现的树状路由方法,无需发送和接收额外的路由协议报文,既降低了带宽和路由计算的开销,又节省了节点发送报文时产生的能耗,进而降低整个网络的能耗和路由开销。

为达到以上目的,本发明采取的技术方案是:1.一种基于6LoWPAN邻居发现的树状路由方法,包括如下步骤:

a.在6LoWPAN传感器节点加入网络时,建立树状拓扑的根节点,对所述根节点配置网络的基本信息;

b.在网络中加入其它普通节点,要加入的节点向网络原有的所有节点发送请求,收到请求的节点发出响应,要加入节点只能选择其中一个发出响应的节点作为它的父亲节点,再同样方式选择一个备份父亲节点;

c.所述加入的节点根据自身EUI-64地址或媒体访问控制子层地址生成接口标识,形成链路本地单播地址,所述节点向根节点发送路由器请求消息,所述节点成为注册节点;根节点收到该路由请求消息后,在路由表中增加一个到注册节点的临时路由条目,然后响应一个单播的路由通告消息;注册节点收到路由通告消息后,根据IPv6前缀和EUI-64接口标识自动配置一个全局单播IPv6地址,所述注册节点向根节点发送邻居请求消息进行节点注册;所述根节点直接将新注册的IPv6全局地址写入到地址缓存表中,将所述临时路由条目改为正式路由条目,并向注册节点发送邻居通告消息,邻居通告消息中设置状态为0代表注册成功,处理结束;

且所述步骤c中,若发生叶子节点失效或离开、非叶子节点失效或离开、节点的移动三种情况之一时,则触发路由修复过程;若没有情况发生,则保持处理结束。

在上述技术方案的基础上,所述步骤b中要加入的节点在所有收到请求的节点中,选择深度最小的收到请求的节点作为父亲节点,若所有收到请求的节点的深度相同,则选择ID最小的收到请求的节点作为父亲节点。

在上述技术方案的基础上,所述树状路由方法采用下层网状方式在传感网范围内传送数据帧和控制帧。

在上述技术方案的基础上,所述步骤c中注册节点向根节点发送的路由器请求消息沿途经过中间节点,中间节点都有到根节点的缺省路由,缺省路由的下一跳为该节点的父亲节点,中间节点所做的处理如下:

c1.在路由表中加入一个目的地址为注册节点的临时路由条目,该路由的目的地址为注册节点地址,路由的下一跳为媒体访问控制子层报头中的源地址;

c2.判断注册节点地址中的终点地址是否与该节点媒体访问控制子层地址相同,如果相同,则终止转发;如果不相同,则转到c3;

c3用缺省路由表中的下一跳地址替换消息中的媒体访问控制子层目的地址,将节点本身的媒体访问控制子层地址作为源地址,然后向下一跳发送该报文。

在上述技术方案的基础上,所述邻居通告消息被转发到注册节点的过程中,中间节点根据收到邻居通告消息的状态来进行处理,如果状态为注册成功,则将临时路由条目写入到正式路由表中;如果状态为不成功,则删除临时路由条目。

在上述技术方案的基础上,所述步骤c中,叶子节点失效或离开时,路由修复过程为:

c11.根节点向中间节点发送ICMPv6的不可到达消息;该消息中的不可达节点为失效节点,该消息的目的地址为路由表中到达失效节点的路由中的下一跳地址;

c12.根节点删除地址缓存表中失效节点对应的表项,同时删除路由表中以失效节点为目的地址和以失效节点为下一跳的路由条目;

c13.中间节点收到根节点发来的不可到达消息后,检查失效节点是否为本节点的子节点,若是,则直接转到c15,若不是,则转到c14;

c14.中间节点查找路由表中以失效节点为目的地址的路由的下一跳地址,将ICMPv6消息的目的地址替换为该下一跳地址,然后转到c15;

c15.中间节点删除路由表中以失效节点为目的地址和以失效节点为下一跳的路由条目;

c16.如果失效节点是本节点的子节点,则节点发送一个ICMPv6的响应给根节点。

在上述技术方案的基础上,所述步骤c中,非叶子节点失效或离开时,路由修复过程为:

c21.根节点向中间节点发送ICMPv6不可到达消息,该消息的目的地址为路由表中到达失效节点的路由中的下一跳地址;

c22.根节点删除地址缓存表中失效节点对应的表项,同时删除路由表中以失效节点为目的地址和以失效节点为下一跳的路由条目;

c23.中间节点收到ICMPv6的不可达消息后,检查失效节点是否为本节点的子节点,如果是,则直接转到c25,如果不是,则转到c24;

c24.中间节点查找路由表中以失效节点为目的地址的路由的下一跳地址,将ICMPv6消息的目的地址替换为该下一跳地址;然后发送ICMPv6不可达消息;然后转到Step3;

c25.中间节点删除路由表中以失效节点为目的地址和以失效节点为下一跳的路由条目;

c26.如果失效节点是本节点的子节点,则节点发送一个ICMPv6的响应给根节点;并将以失效节点为下一跳的路由条目中的目的地址,放在ICMPv6响应消息中将其向上传送一直到根节点。

在上述技术方案的基础上,所述步骤c中,节点的移动时,路由修复过程为:节点通过路由器请求消息重新注册,当根节点接收到路由器请求消息后,检查发送路由器请求消息的节点的EUI-64地址,如果在根节点的地址缓存表中发现有相同的EUI-64地址,根节点将该EUI-64地址对应的地址缓存表中的条目进行覆盖。

本发明的有益效果在于:本发明充分利用无线传感网树状通信的特点,采用了树状拓扑,树状拓扑有大量的叶子节点,叶子节点本身使用较低的能耗,因此拓扑中较多的叶子节点有利于降低整个网络的能耗;另外路由生成过程中,直接利用了6LoWPAN的邻居发现协议,没有使用额外的路由协议报文,这样节省了无线传感节点发送和接收路由协议报文时的能耗,同时降低了无线传感网网络中的带宽消耗,使得本发明比其他的无线传感网路由协议具有更低的能耗。

附图说明

图1为本发明基于6LoWPAN邻居发现的树状路由方法所采用的网络拓扑图;

图2为本发明中叶子节点离开网络的示意图;

图3为本发明中非叶子节点离开时根节点向离开节点的父节点发送报文的示意图;

图4为本发明中非叶子节点离开时其父节点向根节点发送报文的示意图;

图5为本发明中路由修复中节点移动的示意图。

具体实施方式

以下结合附图对本发明的实施例作进一步详细说明。

本发明基于6LoWPAN邻居发现的树状路由方法,包括如下步骤:

a.树根的建立,在6LoWPAN传感器节点加入网络时,建立树状拓扑的根节点,如图1所示,为本发明所采用的拓扑图,其中Root节点为根节点,它和IPv6网关相连,也可能是网关的一个端口,A1、A2、A3为根节点的子节点,B1~B3为A1节点的子节点,B4、B5为A2节点的子节点,B6~B9为A3节点的子节点,C1、C2为B1的子节点,C3为B2的子节点,在本发明实施例中根节点由管理人员指定,指定根节点后,要对树根节点配置该网络的基本信息,如该网络所支持的最大深度、每个节点所允许连接的子节点个数、网络的PANID(Personal Area Network ID,个人局域网ID),且所述树根节点本身的深度为0。

b.普通结点的加入,在所述根节点确定后,开始向网络中加入其它普通节点。如图1中所示,当一个未加入网络的节点C1想要加入该网络时,首先扫描信道,发送加入请求,收到请求的节点B1如果有能力接受节点C1为其子节点,就会发出一个响应,该响应消息中包含B1节点的ID、深度、根节点的ID、还有关于该树的配置信息:该树的最大深度和最大宽度。C节点可能会收到来自不同节点的多个响应,比如B1、B2、B3都可以成为C1节点的父亲节点,这些节点被称为C1的候选父亲节点,C1节点只能选择一个节点作为自己的父亲节点。这时C1节点首先比较候选父亲节点B1、B2、B3三个节点的深度,C1节点选择具有最小深度的父亲节点作为自己的父亲节点,如果两个候选父亲节点的深度相同则比较其ID的大小,ID小的作为父亲节点。在选择父亲节点之后,按同样的规则在候选父亲节点集合中选择一个备份父亲节点,在C1确定父亲节点之后,会向自己的父亲节点返回一个确认消息,父亲节点收到确认消息之后会将C1节点记录在邻居列表中;同时C1节点也将父亲节点记录在自己的路由表中,作为缺省路由,并记录该网络的配置信息。在加入该网络的所有每个节点的路由表中都有一个缺省路由的条目,该缺省路由的下一跳指向本节点的父亲节点,本发明中的节点只能与自己的父亲节点和子女节点进行通信,不能与其它节点通信,这是保证树状拓扑的条件。

c.路由生成过程,当一个节点加入到网络中后,它要进行IPv6的邻居发现过程,节点根据自己的EUI-64地址或媒体访问控制子(MAC)地址生成接口标识,形成链路本地单播地址,然后节点向根节点发送RS(Router Solicitation,路由器请求)消息,为方便描述,称发送该请求的节点成为注册节点。

本发明实施例中采用Mesh-Under(下层网状)方式在传感网范围内传送数据帧和控制帧,表1为Mesh-Under的帧格式。

表1

所述Mesh-Under的帧格式包含媒体访问控制子层报头、网状报头、压缩的IPv6报头及净荷三个部分。其中媒体访问控制子层报头的目的地址(Dst MAC)8个字节,采用EUI-64格式,媒体访问控制子层报头的源地址(Src MAC)8个字节;网状报头的第一个字节中的前两个比特为“10”,代表采用网状报头;“V”比特为0,代表源端地址采用EUI-64格式;F比特为0,代表终点地址采用EUI-64格式;Hops表示该报文的跳数,当跳数等于0时,丢弃该报文。所述Mesh-Under传送需要在6LoWPAN封装中包含一个网状报头,此报头的源端地址(Original Address)为注册节点的链路层地址,终点地址(Final Address)为根节点链路层地址;而媒体访问控制子层报头中的源地址(Src MAC)为每一跳的发送端的链路层地址,目的地址(Dst MAC)为接收端的链路层地址。

所述注册节点向根节点发送的路由器请求消息沿途经过中间节点,中间节点都有到根节点的缺省路由,缺省路由的下一跳为该节点的父亲节点,中间节点所做的处理如下:

c1.在路由表中加入一个目的地址为注册节点的临时路由条目,该路由的目的地址为网状(Mesh)报头中的源端地址,也就是注册节点地址,路由的下一跳为MAC层报头中的源地址;

c2.判断Mesh地址中的终点(Final)地址是否与本节点MAC地址相同,如果相同则说明该报文到达了目的节点,终止转发;如果不相同,则转到c3;

c3.用缺省路由表中的下一跳地址替换消息中的目的MAC,将节点本身的MAC地址作为源MAC地址;然后向下一跳发送该报文。

当根节点收到该路由请求消息,会在路由表中增加一个到注册节点的临时路由条目,然后响应一个单播的路由通告消息(RouterAdvertisement,RA),路由通告消息中包含本网段的IPv6路由前缀。RA消息同样采用Mesh-Under格式,RA消息的Final地址为注册节点地址,Original地址为根节点地址。由于中间节点在转发RS消息时建立起了到注册节点的临时路由,因此中间节点对于RA的转发按照路由表转发即可。

当注册节点收到路由通告消息后,会根据IPv6前缀和EUI-64接口标识自动配置一个全局单播IPv6地址,采用EUI-64接口标识可以防止地址冲突的发生。然后,节点向根节点发送邻居请求消息(Neighbor Solicitation,NS)进行节点注册,消息包含节点想注册的地址,NS消息发送到根节点的过程与RS消息的过程相同,在6LoWPAN中NS消息的作用主要是两个:注册地址和进行定期的地址刷新。根节点中有一个地址缓存表,该表中记录着所有已经注册节点的IPv6全局单播地址。当根节点收到NS消息所做的处理如下:

由于采用EUI-64的地址所以不存在地址冲突问题,所以直接将新注册的IPv6全局地址写入到地址缓存表中;然后将在RS注册时生成的临时路由条目改为正式路由条目;并向注册节点发送邻居通告消息(Neighbor Advertisement,NA),NA消息中设置状态为0代表注册成功,处理结束。在NA消息被转发到注册节点的过程中,中间节点根据收到NA消息的状态来进行处理,如果状态为注册成功,则将临时路由条目写入到正式路由表中;如果状态为不成功,则删除临时路由条目。

在所述步骤c中,若发生叶子节点失效或离开、非叶子节点失效或离开、节点的移动三种情况之一时,则触发路由修复过程;若没有情况发生,则保持处理结束。

所述节点失效一般是由于传感器节点的能源耗尽或者出现故障所致,在这种情况下该节点不会主动通知其父亲节点和根节点。图2中的C1节点离开就是这种情况。为了节约能耗,本实施例的中间路由器节点不设置定时器,只在根节点中设置定时器。根节点的地址缓存表中的每个表项都有超时机制,网络中的每个注册节点都应在设定的时间内发送NS消息进行地址的刷新。如果在设定时间内没有收到该表项的刷新消息,则认为该节点失效,触发路由修复过程:

c11.根节点向中间节点发送ICMPv6的不可到达消息;该消息中的不可达节点为失效节点,该消息的目的地址为路由表中到达失效节点的路由中的下一跳地址;

c12.根节点删除地址缓存表中失效节点对应的表项,同时删除路由表中以失效节点为目的地址和以失效节点为下一跳的路由条目;

c13.中间节点收到根节点发来的不可到达消息后,检查失效节点是否为本节点的子节点,若是,则直接转到c15,若不是,则转到c14;

c14.中间节点查找路由表中以失效节点为目的地址的路由的下一跳地址,将ICMPv6消息的目的地址替换为该下一跳地址,然后转到c15;

c15.中间节点删除路由表中以失效节点为目的地址和以失效节点为下一跳的路由条目;

c16.如果失效节点是本节点的子节点,则节点发送一个ICMPv6的响应给根节点。

如图2所示,为C1离开网络的情况。首先根节点通过超时机制发现C1在设定时间内没有进行NS消息的刷新,认为C1已经离开网络。则根节点根据路由表查得到达C1的下一跳为A1节点,因此向A1发送ICMPv6不可达消息,消息中包含C1不可达信息,消息的目的地址是A1节点。当A1节点收到ICMPv6不可达消息后,在A1的路由表中找出目的为C1的路由得到其下一跳为B1,然后将ICMPv6消息的目的地址改为B1;将消息发送到B1。根节点查找以C1为目的地址的路由条目和以C1节点为下一跳的路由条目,对这些条目进行删除。当B1收到该消息时,发现C1是自己的孩子节点;而且知道C1离开了网络,所以不再向下发送,在路由表中找到C1对应的条目对其进行删除。

对于非叶子节点失效的情况,主要问题是非叶子节点的失效会导致其子女节点一起离开网络,这时触发路由修复过程:

c21.根节点向中间节点ICMPv6发送不可到达消息,该消息的目的地址为路由表中到达失效节点的路由中的下一跳地址;

c22.根节点删除地址缓存表中失效节点对应的表项,同时删除路由表中以失效节点为目的地址和以失效节点为下一跳的路由条目;

c23.中间节点收到ICMPv6的不可达消息后,检查失效节点是否为本节点的子节点,如果是,则直接转到c25,如果不是,则转到c24;

c24.中间节点查找路由表中以失效节点为目的地址的路由的下一跳地址,将ICMPv6消息的目的地址替换为该下一跳地址;然后发送ICMPv6不可达消息;然后转到Step3;

c25.中间节点删除路由表中以失效节点为目的地址和以失效节点为下一跳的路由条目;

c26.如果失效节点是本节点的子节点,则节点发送一个ICMPv6的响应给根节点;并将以失效节点为下一跳的路由条目中的目的地址,放在ICMPv6响应消息中将其向上传送一直到根节点。

如图3和图4所示,为非叶子节点B1离开网络的情况。首先根节点根据超时机制发现B1离开网络后,向到达B1节点的下一跳A1发送ICMPv6消息,消息中包含B1不可达的消息;然后删除B1对应的地址表项,并删除以B1为目的地址和以B1为下一跳的路由表项。当A1收到该ICMPv6不可达消息后,查找路由表,找出以B1为目的地址和以B1为下一跳的路由条目;发现B1是A1的孩子节点,而且B1节点是到达C1和C2节点的下一跳,说明B1是C1和C2的父亲节点,C1和C2是除B1之外的两个不可达节点,要将该信息通告给根节点。那么A1不再向下发送ICMPv6消息,把路由表中相关的条目删除,然后向根节点发送ICMPv6消息,在消息中包含根节点未发现的失效节点C1,C2。当根节点收到ICMPv6消息后,发现消息中包含C1和C2节点,那么它将删除C1和C2的路由条目。

所述节点移动,就是节点从一个父亲节点重新加入到另一个父亲节点,导致路由改变的情况。这可能是由于某节点发现自己的父亲节点失效导致不能正常的发送消息,因此该节点重新加入到另一个候选父亲节点中。当非叶子节点离开时就很容易产生节点移动的情况,如图3和图4,当根节点还没有及时发现B1节点离开的时候,如果C1和C2首先发现B1离开了网络,那么他们就会向B2进行重新注册,这种情况下就导致了节点移动的情况发生。由于在重新注册过程中节点通过RS消息重新注册,当根节点接收到RS消息后,检查发送RS消息的节点的EUI-64地址,如果在根节点的地址缓存表中发现有相同的EUI-64地址,那么说明是由节点移动造成的节点重新注册过程。根节点将该EUI-64地址对应的地址缓存表中的条目进行覆盖。对于路由的处理与新节点加入时的处理一样。中间节点对于节点移动导致的重新注册过程的处理与新节点的注册过程做相同的处理。

如图5所示,B1节点离开网络,在根节点还没有发现B1离开网络的情况下,C1和C2首先发现其父亲节点B1失效,因此选择向备份父亲节点B2进行重新注册;注册的后续过程与新节点注册过程相同,此处不再做详细描述。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号