首页> 中国专利> 一种在传感器网络中实现路由的方法和传感器网络

一种在传感器网络中实现路由的方法和传感器网络

摘要

本发明提供一种在传感器网络中实现路由的方法和传感器网络,传感器网络包括一个网关和多个节点,根据各个所述节点到达所述网关的跳数对各个所述节点进行分级,方法包括:网关发送第一报文,该第一报文会先后到达各个级别上的各个节点,使得接收到第一报文的节点能够产生第二报文,且第二报文在通过该节点的上一级节点回到网关的过程中,能够形成记录了网关到达该节点的路由路径,因此当网络中的节点发生改变时,仍可以通过这一技术获取各个节点的路由路径,使得网络具有灵活性;同时,网关在全网路由路径表中记录了各个节点的路由路径,因此在根据全网路由路径表传输新的数据时不产生额外的传输延时,节省了能耗。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-03-11

    授权

    授权

  • 2012-12-26

    实质审查的生效 IPC(主分类):H04W40/02 申请日:20110504

    实质审查的生效

  • 2012-11-07

    公开

    公开

说明书

技术领域

本发明涉及无线网络技术,特别是指一种在传感器网络中实现路由的方法 和传感器网络。

背景技术

无线个人局域网(WPAN,Wireless Personal Area Network Communication  Technologies)是一种采用无线连接的个人局域网。IEEE为LR-WPAN推出了 IEEE802.15.4技术标准,该标准定义了物理层(PHY)和媒体访问控制层(MAC) 的协议,主要应用场合是自动化读表、自动化控制和传感器网络,其专注于低 速率、低功耗的短距离无线连接,最高速率仅250kbps,电池寿命可达6个月 到2年,是一种经济高效、低复杂度、低功耗、低数据率和低成本的无线网络 技术。

现有技术中,ZigBee和6LoWPAN是基于IEEE802.15.4发展起来的比较 著名的两个协议体系。ZigBee是一种低功耗,低传输速率、架构简单的短距 离无线通信技术,它在自动控制领域的应用十分广泛,ZigBee的传输距离为 数十米,使用频段为免费的2.4GHz与900MHz频段,传输速率为20kbps至 250kbps。相对于现有的各种无线通信技术,ZigBee技术的低功耗和低速率是 最适合作为传感器网络的标准。6LowPAN技术也采用符合IEEE802.15.4规定 的物理层和MAC层,不同之处在于6LowPAN技术在网络层上使用IETF规 定的IPv6协议栈,6LoWPAN在IPv6的网络层和MAC层之间加入一个适配 层,以解决IEEE802.15.4MAC层与IPv6层的适配问题。与ZigBee协议相比, 6LoWPAN体系结构的优势在于IP网络标准的开放性以及可以利用的各种基 于IP的成熟技术。

现有技术中,IPv6拥有丰富的地址空间,这恰恰满足了部署大规模、高 密度LR-WPAN网络设备的需要。IPv6支持自动地址配置,当节点启动时,可 以自动读取MAC地址,并根据相关规则配置好所需IPv6地址。同时IPv6提 供了更好的移动性、安全性和QoS。采用6LoWPAN体系结构来构建无线传感 器网络,能够大大简化网关复杂度,并使无线传感器网络更平滑的连接到 Internet。由于6LoWPAN技术支持IPv6技术和无线传感器网络间的无缝连接, 因此特别适合应用于嵌入式IPv6这一领域,它使大量电子产品不仅可以在彼 此之间组网,还可以通过IPv6协议接入下一代互联网。使人们与周围环境更 紧密的结合,实现IPv6协议所倡导的IP Anywhere理念。在已经提出的 6LoWPAN动态路由协议中,主要有Mesh路由和分级式路由,Mesh路由利用 子路由表查找下一跳节点地址来转发数据;分级式路由通过建立树状路由结构 来转发数据;两者都运行于6LowPAN体系结构的适配层。

考虑到6LoWPAN的自组网特性和节点的有限资源,Mesh路由协议通常 参考和修改传统Ad-hoc网络中的路由协议,现有Mesh结构路由协议主要包 括DYMO-Low和LoWPAN-AODV,两者都属于按需式(on-demand)的路由协 议。按需路由就是当源节点要发送数据而子路由表中没有所需要的子路由表项 时,通过广播RREQ(route request)报文来查找目的节点,每个收到RREQ的节 点都会建立一条到源节点的反向路由,当目的节点收到该RREQ后就会按照 已经建立的反向路由向源节点单播回一个RREP(route reply)报文,每个收到 RREP报文的节点会建立一条到目的节点的路由,直到源节点收到该RREP后, 一条所需的路由就建立起来了,然后源节点再将数据发送出去。

6LoWPAN中的分级式路由协议与Mesh路由协议一样,利用链路层地址 转发数据,目前提出的分级式路由协议为HiLow协议。在HiLow中,每个节 点在加入网络时都会记录自己在树型路由树中的父节点和子节点的地址,当某 节点要向其父节点或子节点发送数据时,则直接根据对应的地址信息发送至目 的节点,当目的节点不是其父节点或子节点时,一般分为3种情况处理:1, 通过比较当前节点和目的节点的地址,如果发现前者是后者的祖先节点,那么 当前节点就选择包含目的节点的那条分支上的子节点作为下一跳转发,沿着分 支向下转发至目的节点;2,如果当前节点是目的节点的子孙节点,那么就选 择当前节点的父节点作为下一跳,沿着分支向上转发至目的节点;3,如果不 是以上2种情况,那么就选择当前节点的父节点作为下一跳,首先转发到根节 点,然后再沿着目的节点所在的分支转发。

发明人发现现有技术存在如下问题:虽然Mesh路由协议具备快速重路由 能力,可以使网络更加灵活并且具有很好的修复能力,但是由于节点的子路由 表中只能存储很少的表项-通常为1条,所以每次传输新数据都要重新建立新 的传输路径,增加了传输数据的延时并浪费能源;分级式路由协议依靠动态地 址分配算法虽然能可靠地在树状网络中转发数据,且不必建立和维护子路由 表,但是其传输路径固定而缺乏灵活性,特别是不在同一分枝上的节点之间传 输数据时,传输数据路径较长。

发明内容

本发明要解决的技术问题是提供一种在传感器网络中实现路由的方法和 传感器网络,用于在无线网络中每次传输以及转发数据时能够不必重新建立和 维护节点中的子路由表,而是使用已有的路由路径在不局限于树状路由结构的 传感器网络中灵活的实现数据报文的路由。

为解决上述技术问题,本发明的实施例提供一种在传感器网络中实现路由 的方法,所述传感器网络包括一个网关和多个节点,根据各个所述节点到达所 述网关的跳数对各个所述节点进行分级;所述方法包括:步骤一,所述网关向 所述节点广播第一报文;步骤二,多个节点中的第一节点接到所述第一报文后, 获取所述第一报文经过的跳数以确定所述第一节点的级别,并获取所述第一报 文的传输路径中与所述第一节点相邻的第二节点作为所述第一节点的上一级 节点;步骤三,所述第一节点生成并发送第二报文,在所述第二报文传输到所 述网关的过程中,每一个接收到所述第二报文的节点都在所述第二报文中记录 自身的地址,并向上一级节点发送所述第二报文,直至所述第二报文到达所述 网关,其中,以所述网关的地址作为所述第二报文中的目标地址;步骤四,所 述网关接到所述第二报文后,获取所述第二报文中记录的地址形成第一路由路 径,所述第一路由路径用于转发数据报文到所述第一节点时使用。

所述的方法中,还包括:所述第一节点接到所述第一报文后,获取并保存 所述第二节点的剩余能量;所述第一节点发送所述第二报文时,当存在多个上 一级节点时,选择剩余能量最大的上一级节点进行发送;其中,以所述网关的 地址作为所述第二报文中的目标地址。

所述的方法中,还包括:多个节点中的所述第一节点接收到多个所述第一 报文时,所述第一节点的级别为所述多个第一报文的跳数的最小值。

所述的方法中,还包括:所述第一节点接收到由与所述第一节点相邻的新 增节点发送的第三报文后,在所述第三报文中记录自身的地址,并向所述第一 节点的上一级节点发送所述第三报文;所述网关接到所述第三报文后,获取所 述第三报文中记录的地址形成第二路由路径,所述第二路由路径用于转发数据 报文到所述新增节点时使用;所述第三报文与所述第二报文是同一类型的报 文。

所述的方法中,所述步骤一还包括:当所述传感器网络中有节点被删除时, 或者,当所述传感器网络中有新增节点时,或者,预先设定的时间点到达时, 由所述网关向所述节点广播第一报文。

所述的方法中,还包括:所述第一节点接收到来自下一级节点的第一数据 报文;所述第一节点获取所述第一数据报文中的数据报文类型和目的地址,并 判定将所述第一数据报文发送至自身的上一级节点,直至所述第一数据报文到 达所述网关。

所述的方法中,还包括:所述第一节点接收到来自上一级节点的第二数据 报文,所述第二数据报文由所述网关经过该网关与所述第一节点之间的各级节 点发送至所述第一节点;所述第一节点获取所述第二数据报文中的数据报文类 型和目的地址,并判定将所述第二数据报文发送至自身的下一级节点,直至所 述第二数据报文到达目的节点,或者判定所述第一节点自身为所述第二数据报 文的目的节点;所述第一数据报文和所述第二数据报文承载的数据相同。

所述的方法中,所述第一路由路径存放在所述网关的全网路由路径表中; 所述全网路由路径表中包括多个记录,一个记录包括多个表项,各个表项分别 为:目的节点的地址,下一跳地址,网关到目的节点的路径和生存时间;一个 所述节点的子路由表中存放了节点到达网关的跳数、上一级节点的地址和上一 级节点的剩余能量;所述第一报文具体为路由广告报文,所述第二报文具体为 路由请求报文。

所述的方法中,还包括:所述全网路由路径表中的各个记录,以及所述子 路由表的表项均有存活时间,所述记录或者所述子路由表的表项在超过所述存 活时间时将被自动删除。

一种传感器网络,包括一个网关和多个节点,其中:网关,用于向所述节 点广播第一报文;第一节点,用于接到所述第一报文后,获取所述第一报文经 过的跳数以确定所述第一节点的级别,并获取所述第一报文的传输路径中与所 述第一节点相邻的第二节点作为所述第一节点的上一级节点;生成并发送第二 报文,在所述第二报文传输到所述网关的过程中,每一个接收到所述第二报文 的节点都在所述第二报文中记录自身的地址,并向上一级节点发送所述第二报 文,直至所述第二报文到达所述网关;其中,以所述网关的地址作为所述第二 报文中的目标地址;网关,还用于接到所述第二报文后,获取所述第二报文中 记录的地址形成第一路由路径,所述第一路由路径用于转发数据报文到所述第 一节点时使用。

本发明的上述技术方案的有益效果如下:网关发送第一报文,该第一报文 会先后到达各个级别上的各个节点,使得接收到第一报文的节点能够产生第二 报文,且第二报文在通过该节点的上一级节点回到网关的过程中,能够形成记 录了网关到达该节点的路由路径,因此当网络中的节点发生改变时,仍可以通 过这一技术获取各个节点的路由路径,使得网络具有灵活性;同时,网关在全 网路由路径表中记录了各个节点的路由路径,因此在根据全网路由路径表传输 新的数据时不产生额外的传输延时,节省了能耗。

附图说明

图1为本发明实施例无线传感器网络结构示意图;

图2为本发明实施例在传感器网络中实现路由的方法流程示意图;

图3为本发明实施例RA报文结构示意图;

图4为本发明实施例RS报文结构示意图;

图5为本发明实施例子路由表结构示意图;

图6为本发明实施例全网路由路径表结构示意图;

图7为本发明实施例传感器节点发送的数据报文结构示意图;

图8为本发明实施例网关发送的数据报文结构示意图;

图9为本发明实施例获取网关到各个节点的路由路径流程示意图;

图10为本发明实施例新节点加入传感器网络后对网络更新流程示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附 图及具体实施例进行详细描述。

6LoWPAN动态路由协议中,6LoWPAN体系结构使用链路层地址实现网 络内的路由查找和报文转发。IEEE802.15.4标准提供了2种链路层地址:16 位短地址和EUI-64位扩展地址,两者都能为同一个WPAN内的每个节点提供 唯一标识。6LoWPAN中的分级式路由协议与Mesh路由协议一样,利用链路 层地址转发数据。其中,分级式路由通过建立树状路由结构来转发数据,运行 于6LowPAN体系结构的适配层。分级式路由协议具体为HiLow协议,HiLow 协议中,每个节点在加入网络时都会记录自己在树型路由树中的父节点和子节 点的地址,当某节点要向其父节点或子节点发送数据时,则直接根据记录的地 址发送至目的节点,当目的节点不是其父节点或子节点时,一般分为3种情况 处理:1,通过比较当前节点和目的节点的地址,如果发现当前节点是目的节 点的祖先节点,那么当前节点就选择包含目的节点的那条分支上的子节点作为 下一跳转发,沿着分支向下转发至目的节点;2,如果当前节点是目的节点的 子孙节点,那么就选择当前节点的父节点作为下一跳,沿着分支向上转发至目 的节点;3,如果不是以上2种情况,那么就选择当前节点的父节点作为下一 跳,首先转发到根节点,然后再从根节点沿着目的节点所在的分支转发。分级 式路由具有网络拓扑稳定,路径选择灵活,可扩展性较好等特点。

如图1所示的无线传感器网络中,基于IPv6的无线传感器网络通常包括: 传感器节点以及网关。网关,又称为边界网关,用于完成传感器网络与其它传 感器网络或Internet的互联功能;传感器节点,简称节点,用于和网关进行通 信,并且很少需要和网内的其余传感器节点进行通信。

本发明为使网络达到负载均衡,针对基于IPv6的传感器网络的特点,借 鉴了IPv6邻居发现协议并结合Mesh路由与分级式路由的特点,同时将剩余 能量作为选择路由的标准之一,提出了由网关向传感器节点的分级式网状路由 的技术方案。

本发明实施例提供一种在传感器网络中实现路由的方法,如图2所示,所 述传感器网络包括一个网关和多个节点,根据各个所述节点到达所述网关的跳 数对各个所述节点进行分级;

方法包括:

步骤101,所述网关向所述节点广播第一报文;

步骤102,多个节点中的第一节点接到所述第一报文后,获取所述第一报 文经过的跳数以确定所述第一节点的级别,并获取所述第一报文的传输路径中 与所述第一节点相邻的第二节点作为所述第一节点的上一级节点;

步骤103,所述第一节点生成并发送第二报文,在所述第二报文传输到所 述网关的过程中,每一个接收到所述第二报文的节点都在所述第二报文中记录 自身的地址,并向上一级节点发送所述第二报文,直至所述第二报文到达所述 网关,其中,以所述网关的地址作为所述第二报文中的目标地址;

步骤104,所述网关接到所述第二报文后,获取所述第二报文中记录的地 址形成第一路由路径,所述第一路由路径用于转发数据报文到所述第一节点时 使用。

应用所提供的技术手段,网关发送第一报文,该第一报文会先后到达各个 级别上的各个节点,使得接收到第一报文的节点能够产生第二报文,且第二报 文在通过该节点的上一级节点回到网关的过程中,能够形成网关到达该节点的 路由路径,因此当网络中的节点发生改变时,仍可以通过这一方法获取各个节 点的路由路径,使得网络具有灵活性;同时,网关在全网路由路径表中存放了 各个节点的路由路径,因此在根据全网路由路径表传输新的数据时不产生额外 的传输延时,节省了能耗。

网关的等级为0,若节点到达网关要经过L次跳,则节点的等级是L。节 点能够与上一级节点之间进行通信,并能够与下一级节点之间进行通信。即, 等级为L的节点只可以直接和L+1级和L-1级的节点进行通信。每一个节点 的子路由表中具体记录了该节点到达网关的跳数、上一级节点的地址、下一级 节点的地址和上一级节点的剩余能量。

步骤101中,网关发送第一报文具体是网关定时广播路由广告报文(RA, Route Advisement),如图3所示,RA报文中包括:RA.type记录节点类型, RA.hop count记录网关到节点的跳数,RA.source address记录RA源地址, RA.destination address记录RA目标地址。

步骤102中,节点收到RA报文后,通过RA报文获取自己到达网关的跳 数,上一级节点的地址以及上一级节点的剩余能量信息。

节点向上一级节点发送的第二报文具体为路由请求(RS,Route Solicitation) 报文,如图4所示,RS报文中包括:RS.type记录节点类型,RS.length记录 RS报文长度,RS.source address记录RS源地址,RS.destination address记录 RS报文目标地址,路由路径RS.routing记录RS报文经过的路径;

步骤103中,由于对于每一个节点而言,其对应的第二报文中记录了该节 点到网关的路由路径,而第二报文是根据第一报文产生的,又,第一报文最终 会通过网关与各个节点之间的链路,以及节点之间的链路到达各个节点;因此 可知网关在接收到来自各个节点的第二报文之后,能够获取网关到达该节点的 路由路径,并且,网关在全网路由路径表中记录了到达这些节点的路由路径。

如图5所示,子路由表中各个表项分别为:级数Level,上一级节点的地 址,上一级节点的剩余能量Residual energy,下一级节点的地址,下一级节点 的剩余能量Residual energy和生存时间Survive time;

如图6所示,全网路由路径表中包括多个记录,一个记录包括多个表项, 各个表项分别为:目的节点的地址,下一跳地址,网关到目的节点的路径和生 存时间Survive time。

如图7所示,传感器节点发送的数据报文load包括:

类型域load.type,包括:第一类型、第二类型、第三类型、第四类型、第 五类型和第六类型;以及,

报文长度域load.length存放数据报文的长度,源地址域load.source  address,目的地址域load.destination address,负载域load.load。

如图8所示,网关发送的数据报文load包括:类型域load.type,包括: 第一类型、第二类型、第三类型、第四类型、第五类型和第六类型;以及,报 文长度域load.length存放数据报文的长度,源地址域load.source address,目的 地址域load.destination address,路由路径域load.routing,负载域load.load。

在一个优选实施例中,第一节点接到所述第一报文后,获取并保存所述第 二节点的剩余能量;所述第一节点发送所述第二报文时,当存在多个上一级节 点时,选择剩余能量最大的上一级节点进行发送;其中,以所述网关的地址作 为所述第二报文中的目标地址。

多个节点中的所述第一节点接收到多个所述第一报文时,所述第一节点的 级别为所述多个第一报文的跳数的最小值。

对步骤102和步骤103中的技术特征进行详细的描述,其中,步骤102 具体包括:

步骤A1,所述节点收到了所述RA报文;所述节点的子路由表中存放了 该节点的级数为N,所述跳数为M;

若M>N,不更新子路由表;

若M=N,不更新级数,并检查所述RA源地址是否在所述子路由表中, 若在则不更新子路由表;若不在,将所述子路由表的上一级节点的地址更新为 所述RA源地址,将所述子路由表的上一级节点的剩余能量更新为所述RA剩 余能量;

若M<N,所述级数更新为M,清空原子路由表并创建新的子路由表,其 中上一级节点的地址更新为所述RA源地址,上一级节点的剩余能量更新为所 述RA剩余能量;

步骤A2,所述节点将所述网关到节点的跳数加1,将所述RA源地址更 新为该节点的地址并再次广播所述RA报文;

所述步骤三具体包括:

步骤A3,所述节点向所述上一级节点发送所述RS报文;

对所述RS报文赋值:RS节点类型为第一类型,RS源地址为所述节点的 地址,RS报文中的RS目标地址为所述网关的地址,所述RS报文经过的路径 为空;

步骤A4,每一个收到所述RA报文的节点均会执行步骤A1~步骤A3。

在一个应用场景中,传感器网络启动并初始化之后,各节点的级数设为∞; 各节点的子路由表为空,网关中的全网路由路径表为空;全网路由路径表和子 路由表中每一个表项都有生存时间Survive time,当一个表项超过生存时间后 将被自动删除,以保持各个表项在当前传输数据报文过程中均可用。采用实施 例给出的技术手段获取网关到各个节点的路由路径并记录在全网路由路径表 中,如图9所示,包括:

步骤201,网关广播RA报文;RA报文通过网关与节点之间的链路,以 及各个节点之间的链路到达每一个所述节点;

RA报文中的各个表项:RA.type值为0000,RA.hop count设为0,RA.source  address为网关的E-64地址,RA.destination address为广播地址。

步骤202,一个传感器节点收到了RA报文,RA.hop count存放了网关到 该节点的跳数,设其值为M;

节点的子路由表中存放了该节点的级数为N:

若M>N,N和子路由表不变;

若M=N,N不变,检查RA.source address是否在子路由表中,若在,子 路由表不变;若不在,在子路由表中加入新的表项:E-64address为RA.source  address,Residual energy为RA.residual energy;RA.source address中记录了该 节点的上一级节点的地址;

若M<N,将原N值更新为M,同时清空原有子路由表并创建新的表项: E-64address为RA.source address,Residual energy为RA.residual energy。 RA.source address中记录了该节点的上一级节点的地址。

步骤203,传感器节点将RA.hop count加1,将RA.source address改为该 节点自己的E-64地址并再次广播RA报文。

步骤204,传感器节点向子路由表中记录的上一级节点发送RS报文。

RS报文的各个表项:RS.type为0001,RA.length为RS报文长度,RS.source  address为节点自己的E-64地址,RS.destination address为网关的E-64地址, 路由RS.routing为空。

其中,每一个收到RA报文的节点均会执行步骤202~步骤204。

步骤205,上一级节点收到RS报文,检查表项RS.type;

若RS.type=0001,则将该上一级节点自己的E-64地址加入路由RS.routing, 并向自己所有的上一级节点发送该RS报文;

若RS.type=0010或0011,则从自身的子路由表中挑选剩余能量最多的上 一级节点转发该RS报文。

步骤206,网关收到RS报文,在全网路由路径表中添加新的表项。包括:

检查RS.type;

若RS.type=0001,转情形I;若RS.type=0010,转情形II;若RS.type= 0011,转情形III。

情形I,RS.type=0001,检查RS报文中的表项RS.source address和表项 RS.routing中记录的信息是否已经存在于全网路由路径表中;

若不存在,在全网路由路径表中添加新的表项:全网路由路径表中的表项 address为RS.source address,表项next hop为RS.routing中最后一跳的地址, 表项routing为RS.routing中除去最后一跳的路由路径;同时设定survive time。

若存在,更新该表项的survive time。

情形II,RS.type=0010,网关广播RA报文,RA报文中:RA.type值为 0000,RA.hop count设为0,RA.source address为网关的E-64地址, RA.destination address为广播地址。

情形III,RS.type=0011,网关广播RA报文,RA报文中:RA.type值为 0000,RS.hop count设为0,RA.source address为网关的E-64地址,RA.destination  address为广播地址,并且删除全网路由路径表中满足条件address=RS.source  address的表项,网关等待各个节点返回的RS报文,并用RS报文报文中新的 RS.source address填写全网路由路径表的address表项。

在一个优选实施例中,当有新增节点A加入到传感器网络中时,所述第 一节点接收到由与所述第一节点相邻的新增节点发送的第三报文后,在所述第 三报文中记录自身的地址,并向所述第一节点的上一级节点发送所述第三报 文;所述网关接到所述第三报文后,获取所述第三报文中记录的地址形成第二 路由路径,所述第二路由路径用于转发数据报文到所述新增节点时使用;

所述第三报文与所述第二报文是同一类型的报文。如图10所示,包括:

步骤B1,新增节点A向与该新增节点A连接的一个中间节点发送所述 RS报文,并在所述RS报文中将所述RS节点类型标识为第二类型;

步骤B2,所述中间节点的上一级节点收到该RS报文,根据所述RS节点 类型执行:

若所述RS节点类型为第一类型,将所述上一级节点的地址加入所述RS 报文经过的路径,并向所述上一级节点所有的上一级节点发送所述RS报文;

若所述RS节点类型为第二类型或第三类型,则从所述上一级节点的子路 由表中选择所述上一级节点转发所述RS报文;

步骤B3,当所述网关收到来自所述新增节点A的所述RS报文时,根据 所述RS节点类型执行:

若所述RS节点类型为第一类型转情形I;若所述RS节点类型为第二类型 转情形II;所述RS节点类型为第三类型转情形III;

情形I,检查所述RS源地址和所述RS报文经过的路径中记录的信息是否 已经存在于所述全网路由路径表中;

若不存在,在所述全网路由路径表中添加所述节点A的表项,其中,所 述目的节点的地址为所述RS源地址,所述下一跳地址为所述RS报文经过的 路径中最后一跳的地址,所述网关到目的节点的路径为所述RS报文经过的路 径中除去最后一跳的路径,设定所述生存时间;

若存在,更新所述节点A的表项中的所述生存时间;

情形II,所述网关广播所述RA报文:所述RA节点类型为第零类型,所 述网关到节点的跳数为0,RA源地址为网关的地址,RA目标地址为广播地址;

情形III,所述网关广播所述RA报文:所述RA节点类型为第零类型,所 述网关到节点的跳数为0,RA源地址为网关的地址,RA目标地址为广播地址;

步骤B4,执行步骤A4。

对应的一个应用场景中,传感器网络中有新的节点A加入,已存在的各 传感器节点的级数已经确定,各节点的子路由表不为空;包括:

步骤401,节点A向离自己最近的节点发送RS报文;

RS报文中RS.type为0010,RS.length为RS报文长度,RS.source address  为节点A自己的E-64地址,RS.destination address为网关的E-64地址, RS.routing为空。

步骤402,执行:一个传感器节点(作为上一级节点)收到该RS报文,检 查RS.type:

若RS.type=0001,则将该上一级节点自己的E-64地址加入RS.routing地 址列表,并向自己所有的上一级节点发送该RS报文;

若RS.type=0010或0011,则从自身的子路由表中挑选剩余能量最多的上 一级节点转发该RS报文。

步骤403,执行:

网关收到来自节点的RS报文,检查RS.type;

若RS.type=0001,转情形I;若RS.type=0010,转情形II;若RS.type= 0011,转情形III。

情形I,RS.type=0001,检查RS中的表项RS.source address和表项 RS.routing中记录的信息是否已经存在于全网路由路径表中;

若不存在,在全网路由路径表中添加新的表项,其中,全网路由路径表中 的表项address为RS.source address,表项next hop为RS.routing中最后一跳的 地址,表项routing为RS.routing中除去最后一跳的路由路径;同时设定survive  time。

若存在,更新该表项的survive time。

情形II,RS.type=0010,网关广播RA报文;其中RA.type值为0000,RA.hop  count设为0,RA.source address为网关的E-64地址,RA.destination address 为广播地址。

情形III,RS.type=0011,网关广播RA报文;其中RA.type值为0000, RS.hop count设为0,RA.source address为网关的E-64地址,RA.destination  address为广播地址并删除全网路由路径表中满足address=RS.source address 的表项。

步骤404,执行:

一个传感器节点收到了RA报文,RA.hop count记录了网关到该节点的跳 数,设其值为M;

传感器节点的子路由表中记录了该节点的级数为N:

若M>N,N和子路由表不变;

若M=N,N不变,检查RA.source address是否在子路由表中,若在,子 路由表不变;若不在,在子路由表加入新的表项,其中:E-64address为RA.source  address,Residual energy为RA.residual energy;

若M<N,N值更新为M,同时清空原有子路由表,并创建新的表项,其 中E-64address为RA.source address,Residual energy为RA.residual energy。

传感器节点将RA.hop count加1,将RA.source address改为该节点自己的 E-64地址并再次广播RA报文。

传感器节点向其子路由表中记录的上一级节点发送RS报文。

RS报文的各个表项:RS.type为0001,RA.length为RS报文长度,RS.source  address为节点自己的E-64地址,RS.destination address为网关的E-64地址, RS.routing列表为空。

其中,每一个收到RA报文的节点均会执行步骤404。

在一个优选实施例中,当传感器网络中有节点B被删除时,或者,当所 述传感器网络中有新增节点时,或者,预先设定的时间点已经到达时,由所述 网关向所述节点广播第一报文。以有节点B被删除为例,包括:

步骤C1,节点B脱离该传感器网络之前向上一级节点发送所述RS报文;

步骤C2,所述上一级节点收到所述RS报文,根据所述RS节点类型执行:

若所述RS节点类型为第一类型,将所述上一级节点的地址加入RS报文 经过的路径,并向所述上一级节点所有的上一级节点发送所述RS报文;

若所述RS节点类型为第二类型或第三类型,则向所述上一级节点的上一 级节点转发所述RS报文;

步骤C3,网关执行步骤B3。

对应的应用场景中,传感器网络中有节点B脱离该传感器网络,已存在 的各传感器节点的级数N已经确定,各节点的子路由表不为空;包括:

步骤501,节点B在脱离该传感器网络之前向自身子路由表中的剩余电量 最多的上一级节点发送RS报文。

RS报文中:RS.type为0011,RS.length为RS报文长度,RS.source address 为节点B自己的E-64地址,RS.destination address为网关的E-64地址, RS.routing列表为空。

步骤502,上一级节点收到RS报文,检查表项RS.type;

若RS.type=0001,则将该上一级节点自己的E-64地址加入RS.routing地 址列表,并向自己所有的上一级节点发送该RS报文;

若RS.type=0010或0011,则从该上一级节点自身的子路由表中挑选剩余 能量最多的上一级节点转发该RS报文。

步骤503,执行步骤302,包括:

网关收到来自节点的RS报文,检查RS.type;

若RS.type=0001,转情形I;若RS.type=0010,转情形II;若RS.type= 0011,转情形III。

情形I,RS.type=0001,检查RS中的表项RS.source address和表项 RS.routing中记录的信息是否已经存在于全网路由路径表中;

若不存在,在全网路由路径表中添加新的表项,其中,全网路由路径表中 的表项address为RS.source address,表项next hop为RS.routing中最后一跳的 地址,表项routing为RS.routing中除去最后一跳的路由路径。同时设定survive  time;

若存在,更新该表项的survive time。

情形II,RS.type=0010,广播RA报文;其中RA.type值为0000,RA.hop  count设为0,RA.source address为网关的E-64地址,RS.destination address为 广播地址。

情形III,RS.type=0011,广播RA报文;其中RA.type值为0000,RS.hop  count设为0,RA.source address为网关的E-64地址,RA.destination address 为广播地址并且删除全网路由路径表中满足条件address=RS.source的表项。

步骤504,执行步骤202~步骤204的操作。

一个传感器节点收到了RA报文,RA.hop count记录了网关到该节点的跳 数,设其值为M;

传感器节点的子路由表中记录了该节点的级数为N:

若M>N,N和子路由表不变;

若M=N,N不变,检查RA.source address是否在子路由表中,若在,子 路由表不变;若不在,在子路由表加入新的表项,其中:E-64address为RA.source  address,Residual energy为RA.residual energy;

若M<N,N值更新为M,同时清空原有子路由表,并创建新的表项,其 中E-64address为RA.source address,Residual energy为RA.residual energy。

传感器节点将RA.hop count加1,将RA.source address改为该节点自己的 E-64地址并再次广播RA报文。

传感器节点向其子路由表中记录的上一级节点发送RS报文。

RS报文的各个表项:RS.type为0001,RA.length为RS报文长度,RS.source  address为节点自己的E-64地址,RS.destination address为网关的E-64地址, RS.routing列表为空。

其中,每一个收到RA报文的节点均会执行步骤504。

在一个优选实施例中,第一节点接收到来自下一级节点的第一数据报文; 所述第一节点获取所述第一数据报文中的数据报文类型和目的地址,并判定将 所述第一数据报文发送至自身的上一级节点,直至所述第一数据报文到达网 关。

当从节点向所述网关传输数据报文时,包括:

步骤D1,所述节点向上一级节点发送数据报文,数据报文类型为第四类 型,数据报文源地址为该节点地址,数据报文目的地址为网关的地址;

步骤D2,所述上一级节点收到所述数据报文,根据所述数据报文类型:

若数据报文类型为第四类型,该上一级节点向上一级节点转发该数据报 文;

若数据报文类型为第五类型或第六类型,该上一级节点根据数据报文路由 路径转发该数据报文;

步骤D3,接到所述数据报文的节点重复执行步骤D2,直至所述网关收到 所述数据报文;

步骤D4,所述网关收到所述数据报文后转换为第一数据报文,根据所述 第一数据报文的数据报文类型:

若第一数据报文的数据报文类型为第四类型,所述网关提取第一数据报文 的内容;

若第一数据报文的数据报文类型为第六类型,所述网关从所述全网路由路 径表中选择一条网关到目的节点的路径发送一第二数据报文;

其中,所述数据报文、第一数据报文、第二数据报文的内容一致。

对应的应用场景中,传感器节点要向网关发送数据报文,已存在的各传感 器节点的级数N已经确定,并且各节点的子路由表不为空;包括:

步骤601,传感器节点向自身的子路由表中剩余电量最多的上一级节点发 送数据报文,其中load.type为0100,load.length为数据报文的长度,load.source  address为该传感器节点E-64地址,load.destination address为网关的E-64地址, load.load为负载信息。

步骤602,上一级节点收到数据报文load,检查load.type;

若load.type=0100,该上一级节点向子路由表中剩余电量最多的上一级节 点转发该数据报文load;

若load.type=0101或0110,该上一级节点根据load.routing中的路径路由 转发该数据报文load。

步骤603,接到该数据报文load的传感器节点重复执行步骤602;直至网 关收到数据报文load。

步骤604,网关收到数据报文load后设为load1,检查load1.type;

若load1.type=0100,网关提取load1.load做进一步处理;

若load1.type=0110,网关从全网路由路径表中选择一条路由路径发送数 据报文load2,其中load2.type为0100,load2.length=load1.length,load2.source  address=load1.source address,load2.destination address=load1.destination  address2,load2.routing为所选的路径路由,load2.load为负载信息。

在一个优选实施例中,第一节点接收到来自上一级节点的第二数据报文, 所述第二数据报文由所述网关经过该网关与所述第一节点之间的各级节点发 送至所述第一节点;所述第一节点获取所述第二数据报文中的数据报文类型和 目的地址,并判定将所述第二数据报文发送至自身的下一级节点,直至所述第 二数据报文到达目的节点,或者判定所述第一节点自身为所述第二数据报文的 目的节点;所述第一数据报文和所述第二数据报文承载的数据相同。从网关向 节点C传输数据报文时,包括:

步骤E1,所述网关从所述全网路由路径表中选择一条网关到目的节点的 路径发送数据报文,其中数据报文类型为第五类型;

步骤E2,一节点收到所述数据报文,根据数据报文类型:

若数据报文类型为第四类型,向所述节点的上一级节点转发该数据报文;

若数据报文类型为第五类型或第六类型,根据数据报文路由路径转发该数 据报文;

步骤E3,接到该数据报文的节点执行步骤E2,直至所述节点C收到所述 数据报文。

对应的应用场景中,网关要向传感器节点C发送数据报文,已存在的各 传感器节点的级数N已经确定,并且各节点的子路由表不为空;包括:

步骤701,网关从全网路由路径表中选择一条路径发送数据报文load,其 中load.type为0101,load.length为数据报文的长度,load.source address为网 关的E-64地址,load.destination address为节点C的E-64地址,load.routing  为所选择的路由路径,load.load为负载信息。

步骤702,下一级节点收到数据报文load,检查load.type;

若load.type=0100,该下一级节点向子路由表中剩余电量最多的上一级节 点转发该数据报文load;

若load.type=0101或0110,该下一级节点根据load.routing中的路径路由 转发该数据报文load。

步骤703,接到该数据报文load的下一级传感器节点重复执行步骤702。

步骤704,节点C收到数据报文load。

在一个优选实施例中,从第一节点向第二节点传输数据报文时,包括:

步骤F1,第一节点向上一级节点发送数据报文,其中数据报文类型为第 六类型;

步骤F2,所述上一级节点收到数据报文,根据数据报文类型:

若数据报文类型为第四类型,向所述上一级节点的上一级节点转发该数据 报文;

若数据报文类型为第五类型或第六类型,根据数据报文路由路径转发该数 据报文;

接到该数据报文的节点重复执行步骤F2,直至网关收到数据报文;

步骤F3,网关收到数据报文后转换为第一数据报文,根据所述第一数据 报文的数据报文类型:

若第一数据报文的数据报文类型为第四类型,所述网关提取第一数据报文 的内容;

若第一数据报文的数据报文类型为第六类型,所述网关从所述全网路由路 径表中选择一条网关到目的节点的路径发送第二数据报文;

其中,所述数据报文、第一数据报文、第二数据报文的内容一致;

步骤F4,接到所述第二数据报文的节点根据所述第二数据报文的数据报 文类型:

若数据报文类型为第四类型,向上一级节点转发该第二数据报文;

若数据报文类型为第五类型或第六类型,根据数据报文路由路径转发该第 二数据报文;

接到该第二数据报文的节点重复执行步骤F4中上述操作,直至所述第二 节点收到所述第二数据报文。

对应的应用场景中,传感器节点D向传感器节点E发送数据报文,已存 在的各传感器节点的级数N确定,各节点的子路由表不为空;包括:

步骤801,传感器节点向子路由表中剩余电量最多的上一级节点发送数据 报文load,其中load.type为0110,表明这是普通节点之间发送数据报文, load.length为数据报文的长度,load.source address为节点D的E-64地址, load.destination addressl为网关的E-64地址,load.destination address2为节点E 的E-64地址,load.load为负载信息。

步骤802,执行:

上一级节点收到数据报文load,检查load.type;

若load.type=0100,该上一级节点向子路由表中剩余电量最多的上一级节 点转发该数据报文load;

若load.type=0101或0110,该上一级节点根据load.routing中的路径路由 转发该数据报文load。

接到该数据报文load的传感器节点重复执行步骤602;直至网关收到数据 报文load。

网关收到数据报文load后设为load1,检查load1.type;

若load1.type=0100,网关提取load1.load做进一步处理;

若load1.type=0110,网关从全网路由路径表中选择一条路由路径发送数 据报文load2,其中load2.type为0100,load2.length=load1.length,load2.source  address=load1.source address,load2.destination address=load1.destination  address2,load2.routing为所选的路径路由,load2.load为负载信息。

步骤803,执行:

下一级节点收到数据报文load,检查load.type;

若load.type=0100,该下一级节点向子路由表中剩余电量最多的上一级节 点转发该数据报文load;

若load.type=0101或0110,该下一级节点根据load.routing中的路径路由 转发该数据报文load。

接到该数据报文load的下一级传感器节点重复执行上述操作。

步骤804,节点E收到数据报文load。

本发明实施例提供一种传感器网络,如图1所示,包括一个网关和多个节 点,其中:网关,用于向所述节点广播第一报文;

第一节点,用于接到所述第一报文后,获取所述第一报文经过的跳数以确 定所述第一节点的级别,并获取所述第一报文的传输路径中与所述第一节点相 邻的第二节点作为所述第一节点的上一级节点;

生成并发送第二报文,在所述第二报文传输到所述网关的过程中,每一个 接收到所述第二报文的节点都在所述第二报文中记录自身的地址,并向上一级 节点发送所述第二报文,直至所述第二报文到达所述网关;其中,以所述网关 的地址作为所述第二报文中的目标地址;

网关,还用于接到所述第二报文后,获取所述第二报文中记录的地址形成 第一路由路径,所述第一路由路径用于转发数据报文到所述第一节点时使用。

本发明的上述技术方案的有益效果如下:根据传感器节点到达网关的跳数 距离把传感器网络进行分级,等级为L的节点只可以直接和L+1级和L-1级 的节点进行通信。每一个节点都要维护一个子路由表,表中记录了其上一级节 点的地址以及剩余能量信息。网关的全网路由路径表记录了到达各个节点的路 由路径,其中,每一个表项都有生存时间,当该表项超过生存时间会被自动删 除;网关发送第一报文-RA报文,该第一报文会先后到达各个级别上的各个节 点,使得接收到第一报文的节点能够产生第二报文-RS报文,且第二报文在通 过该节点的上一级节点回到网关的过程中,能够形成记录了网关到达该节点的 路由路径,因此当网络中的节点发生改变时,仍可以通过这一技术获取各个节 点的路由路径,使得网络具有灵活性;同时,网关在全网路由路径表中记录了 各个节点的路由路径,因此在根据全网路由路径表传输新的数据时不产生额外 的传输延时,节省了能耗。在传输数据报文的过程中,传感器节点向网关发送 数据报文,从自身维护的子路由表中挑选剩余能量最多的上一级节点发送信 息,如此逐级向上直至网关;网关向传感器节点发送数据报文时,则从自身维 护的全网路由路径表中挑选目标节点的路由路径发送,并且发送的数据报文中 带有路由路径信息,收到该数据报文的传感器节点根据数据报文中的路由路径 信息转发报文,直至达到目标节点。

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号