面向混合拓扑结构无线传感器网络的两级包聚合方法 技术领域 本发明涉及无线通信组网技术, 具体地说是一种面向混合拓扑结构无线传感器网 络的两级包聚合方法。
背景技术 人 类 进 入 二 十 一 世 纪 以 来, 微 机 电 系 统 (Micro-Electro-MechanismSystem, MEMS)、 计算机、 通信、 自动控制和人工智能等学科的飞速发展孕育了一种新型的测控网 络——无线传感器网络 (Wireless Sensor Network, WSN)。
无线传感器网络是由大量无处不在的, 具有通信与计算能力的微小传感器节点密 集布设在无人值守的监控区域而构成的能够根据环境自主完成指定任务的 “智能” 自治测 控网络系统。无线传感器网络是一种超大规模、 无人值守、 资源严格受限的全分布系统, 采 用多跳对等的通信方式, 其网络拓扑动态变化, 具有自组织、 自治、 自适应等智能属性。 无线 传感器网络是继因特网之后, 将对二十一世纪人类生活方式产生重大影响的 IT 热点技术。 如果说因特网改变了人与人之间交流、 沟通的方式, 那么无线传感器网络则将逻辑上的信 息世界与真实物理世界融合在一起, 将改变人与自然交互的方式。无线传感器网络的出现 引起了全世界范围的广泛关注。
无线传感器网络的一个主要问题是能耗问题。 包聚合可以降低包头的开销和减少 包的数量, 是一个有效的节能方法。 无线传感器网络在工业监测等方面的应用, 要求节点采 用电池供电, 网络寿命要达到 2-3 年, 能耗问题更为突出。此外, 这些应用具有周期性特征, 通常采用层次化拓扑结构的网络, 网络可配置, 适合进行包聚合。 面向对象方法以其良好的 可重用性、 可维护性和稳定性, 是一种理想的设计与实现方法。 但目前还未见针对这类应用 的无线传感器网络的两级包聚合方法。
发明内容
针对无线传感器网络的节能要求, 本发明要解决的技术问题是提供一种在保证数 据无损的前提下, 降低包的数量和包头开销, 提高网络寿命的面向混合拓扑结构无线传感 器网络的两级包聚合方法。
为解决上述技术问题, 本发明采用的技术方案是 :
本发明一种面向混合拓扑结构无线传感器网络的两级包聚合方法包括以下步 骤:
将无线传感器网络中的各种节点搭建成网状及星型混合拓扑结构 ;
基于上述拓扑结构, 对周期性传感器数据, 建立两级包聚合架构 ;
基于上述拓扑结构和聚合架构, 确定包格式, 进行两级包聚合和解聚, 过程如下 :
网络中的汇聚节点根据应用配置路由节点和节点上的聚合属性 ;
根据聚合属性, 传感器节点进行一级聚合, 产生一级聚合包 ;
根据聚合属性, 路由器节点进行二级聚合, 产生二级聚合包 ;汇聚节点负责对聚合的包进行解聚。
所述网状及星型混合拓扑结构为 :
星型网络 : 由路由节点和传感器节点构成, 又称为簇 ; 传感器节点之间不直接通 信, 每个传感器节点只和一个路由节点通信 ;
网状网络 : 由路由节点和汇聚节点构成 ; 路由节点至少和一个传感器节点通信, 和汇聚节点通信或者至少和一个其它路由节点通信 ;
其中, 传感器节点可携带多个传感器, 负责采集应用数据 ; 路由节点负责将传感器 节点的数据转发到汇聚节点 ; 汇聚节点负责收集网络中所有传感器节点的数据。
所述两级包聚合架构为 :
一级包聚合 : 当传感器节点有超过一个传感器时, 根据传感器节点的聚合标志, 选 择启用传感器节点的一级包聚合机制 ;
二级包聚合 : 当路由节点接收超过一个传感器节点的数据包时, 根据路由节点的 聚合标志, 选择启用路由节点的二级包聚合机制。
所述聚合属性包括聚合标志、 聚合包的最大长度和聚合周期, 其中聚合标志用于 指示传感器节点或路由器节点是否支持聚合 ; 传感器节点的聚合周期为所有传感器数据更 新周期的最小值 ; 路由节点的聚合周期为所有传感器节点的传感器数据更新周期最小值。
所述一级包聚合过程为 : 判断传感器节点的聚合标志是否有效, 如果有效, 则判断传感器的数量是否大于1; 如果传感器的数量大于 1, 则传感器节点将多个传感器的包进行聚合后, 发送给路 由节点, 结束一次聚合过程。
如果传感器节点的聚合标志无效, 则该传感器节点不聚合, 将没有聚合的传感器 节点的非聚合包发送给路由节点 ;
或者传感器的数量不大于 1, 则将非聚合包发送给路由节点。
所述传感器节点的非聚合包由包头和载荷组成, 包头至少包括源地址、 目的地址、 包长度信息、 聚合标志位 ; 载荷是该传感器节点的某个传感器的数据, 用传感器的 ID 和数 据表示。
所述一级聚合包由包头和载荷组成, 包头至少包括源地址、 目的地址、 包长度信 息、 聚合标志位 ; 载荷包括聚合传感器的数量及所有传感器的数据, 每个传感器的数据用传 感器的 ID、 数据长度和数据表示。
所述二级包聚合过程为 :
判断路由节点的聚合标志是否有效, 如果有效, 则判断簇内是否只有一个传感器 节点 ;
如果路由节点的簇内的传感器节点多于一个, 则路由节点判断是本簇内传感器节 点的包还是其它簇首转发来的包 ;
如果是本簇内传感器节点的包, 则路由节点进行二级包聚合, 即在每个聚合周期 内, 从收到第一个包开始, 在等待所允许的最大聚合时间之后, 将收到的包进行聚合 ;
将上述聚合包发送给汇聚节点, 结束一次二级包聚合过程。
如果路由节点的聚合标志无效、 簇内只有一个传感器节点或者是其它簇首转发来
的包, 则不聚合, 直接转发包。
所述二级聚合包由包头和载荷组成, 包头少包括源地址、 目的地址、 包长度信息、 聚合标志位 ; 载荷包括聚合传感器节点的数量及所有传感器节点的数据, 每个传感器的数 据用传感器节点地址, 包长度和数据表示, 其中, 如果传感器节点支持聚合, 则数据为一级 聚合包的载荷域, 否则为传感器节点非聚合包的载荷域。
所述的二级解聚过程为 :
汇聚节点接收到包, 首先判断是传感器节点的包还是路由节点的包 ;
如果是路由节点的包, 则需要两级解聚的判断, 首先根据包头中的聚合标志位判 断是否需要解聚 ;
如需要解聚, 则解聚路由节点的二级聚合包 ;
解聚过程中, 再根据路由节点的二级聚合包中的每个 “传感器节点的聚合标志位” 判断传感器节点的数据是否需要解聚 ;
如需要解聚, 则解聚二级聚合包中每个传感器节点的一级聚合包, 解聚过程结束。
如果根据每个传感器节点的聚合标志位判断传感器节点的数据不需要解聚, 则不 要二次解聚, 解聚过程结束 ; 或者根据包头中的聚合标志位判断不需要解聚, 则结束。
如果是传感器节点的包, 则根据包头的聚合标志位判断传感器节点的数据是否需 要解聚, 如果需要解聚, 则按照包格式解聚传感器节点的一级聚合包 ; 否则结束。
本发明提出的包方法, 是在充分考虑工业等监测应用特点的前提下提出的, 具有 无损聚合、 低能耗和易于实现等优点, 具体表现在 :
1. 本发明方法采用网状及星型 (Star+Mesh) 混合拓扑结构, 一方面通过星型 (Star) 结构简化了网络结构, 降低了维护和管理的难度, 提高了系统的灵活性, 另一方面, 利用网状 (Mesh) 结构, 提高了网络的可靠性 ;
2. 本发明设计了两级包聚合方法, 降低了通信次数, 减少了包头开销, 一方面降低 了节点的能量消耗 ; 另一方面也降低了节点间的干扰, 节省了通信资源。
3. 本发明设计了两级包聚合方法, 该方法简单易行。
附图说明
图 1 为一个典型的网状及星型混合拓扑结构的无线传感器网络示意图 ; 图 2 为聚合属性示意图 ; 图 3 为一级包聚合过程流程图 ; 图 4 为传感器节点的非聚合包格示意图 ; 图 5 为一级聚合包格式示意图 ; 图 6 为二级包聚合过程流程图 ; 图 7 为一级聚合包格式示意图 ; 图 8 为解聚过程示意图。具体实施方式
下面结合附图对本发明进一步详细说明。本发明方法包括以下步骤 :
将无线传感器网络中的各种节点搭建成网状及星型混合拓扑结构 ;
基于上述拓扑结构, 对周期性传感器数据, 建立两级包聚合架构 ;
基于上述拓扑结构和聚合架构, 确定包格式, 进行两级包聚合和解聚, 两级包聚合 过程如下 :
网络中的汇聚节点根据应用配置路由节点和节点上的聚合属性 ;
根据聚合属性, 传感器节点进行一级聚合, 产生一级聚合包 ;
根据聚合属性, 路由器节点进行二级聚合, 产生二级聚合包 ;
汇聚节点负责对聚合的包进行解聚。
本发明的无线传感器网络由如下类型的节点构成 : 传感器节点、 路由节点和汇聚 节点。 传感器节点可携带多个传感器, 负责采集应用数据 ; 路由节点负责将传感器节点的数 据转发到汇聚节点 ; 汇聚节点负责收集网络中所有传感器节点的数据。
本发明采用如图 1 所示的网状及星型 (mesh+star) 混合拓扑结构, 其具有两层 :
第一层为星型 (star) 网络, 由路由节点和传感器节点构成, 又称为簇, 路由节点 是簇首, 传感器节点是簇成员 ; 传感器节点之间不直接通信, 传感器节点只和一个路由节点 通信 ; 第二层为网状 (mesh) 网络, 由路由节点和汇聚节点构成 ; 路由节点至少和一个传 感器节点通信, 和汇聚节点通信或者至少和一个其它路由节点通信。
针对上述网状及星型混合拓扑结构和周期性传感器数据, 本发明设计了两级包聚 合方法, 基本架构如下 :
一级包聚合。 当传感器节点有超过一个传感器时, 根据传感器节点的聚合标志, 选 择启用传感器节点的一级包聚合机制以减少通信频率, 提高网络效率。
二级包聚合。当路由节点接收超过一个传感器节点的数据包时, 根据路由节点的 聚合标志, 选择启用路由节点的二级包聚合机制, 以减少了路由节点到网关的数据包数目, 提高网络效率。
如图 2 所示, 聚合属性主要包括聚合标志、 聚合包的最大长度和聚合周期。其中聚 合标志用于指示传感器节点或路由器节点是否支持聚合, 聚合标志 AGG_FLAG 为 1 则聚合, 否则不聚合。传感器节点的聚合周期为所有传感器数据更新周期的最小值 ; 路由节点的聚 合周期为所有传感器节点的传感器数据更新周期最小值。
一级包聚合过程如图 3 所示, 针对传感器节点是否支持聚合功能, 具体工作过程 如下 :
判断传感器节点的聚合标志是否有效 ( 即传感器节点的聚合标志 AGG_FLAG = 1 ? ), 如果有效 ( 即传感器节点的聚合标志 AGG_FLAG = 1), 则判断传感器的数量是否大于 1;
如果传感器的数量大于 1, 则传感器节点将多个传感器的包进行聚合后, 发送给路 由节点, 结束一次聚合过程。
如果传感器节点的聚合标志无效 ( 即传感器节点的聚合标志 AGG_FLAG 不为 1), 则 该传感器节点不聚合, 将没有聚合的传感器节点的非聚合包发送给路由节点 ; 或者传感器 的数量不大于 1, 则将非聚合包发送给路由节点。
传感器节点的非聚合包格式见图 4 所示, 由包头和载荷组成, 包头至少包括源地 址、 目的地址、 包长度信息、 聚合标志位 ; 载荷是该传感器节点的某个传感器的数据, 用传感 器的 ID 和数据表示。
传感器节点的一级聚合包格式见图 5 所示, 由包头和载荷组成。包头至少包括源 地址、 目的地址、 包长度信息、 聚合标志位。载荷包括聚合传感器的数量及所有传感器的数 据, 每个传感器的数据用传感器的 ID, 数据长度和数据表示。
二级包聚合过程如图 6 所示, 针对路由节点是否支持聚合功能, 具体工作过程如 下:
判断路由节点的聚合标志是否有效 ( 即路由节点聚合标志路由节点的聚合标志 AGG_FLAG = 1 ? ), 如果有效 ( 即路由节点聚合标志路由节点的聚合标志 AGG_FLAG = 1), 则判断簇内是否只有一个传感器节点 ;
如果路由节点的簇内的传感器节点多于一个, 则路由节点判断是本簇内传感器节 点的包还是其它簇首转发来的包 ;
如果是本簇内传感器节点的包, 则路由节点进行二级包聚合, 即在每个聚合周期 内, 从收到第一个包开始, 在等待所允许的最大聚合时间之后, 将收到的包进行聚合 ;
将上述聚合包发送给汇聚节点, 结束一次二级包聚合过程。
如果路由节点的聚合标志无效 ( 即路由节点聚合标志路由节点的聚合标志 AGG_ FLAG 不为 1)、 簇内只有一个传感器节点或者是其它簇首转发来的包, 则不聚合, 直接转发 包。
路由节点的二级聚合包格式见图 7 所示, 由包头和载荷组成。包头至少包括源地 址、 目的地址、 包长度信息、 聚合标志位。载荷包括聚合传感器节点的数量及所有传感器节 点的数据, 每个传感器的数据用传感器节点地址, 包长度和数据表示。 其中的数据可以是传 感器节点的聚合包, 也可以是非聚合包。 如果传感器节点支持聚合, 则数据为一级聚合包的 载荷域, 否则为传感器节点的非聚合包的载荷域。
如图 8 所示, 汇聚节点的解聚过程如下 :
汇聚节点接收到包, 首先判断是传感器节点的包还是路由节点的包 ;
如果是路由节点的包, 则需要两级解聚的判断, 首先根据包头中的聚合标志位判 断是否需要解聚 ( 即聚合标志是否为 1) ;
如需要解聚 ( 即聚合标志为 1), 则解聚路由节点的聚合包 ;
再根据每个传感器节点的聚合标志位判断传感器节点的数据是否需要解聚 ( 即 传感器节点的聚合标志是否为 1) ;
如需要解聚 ( 即传感器节点的聚合标志是否为 1), 则解聚传感器节点的聚合包, 一次解聚过程结束。
如果根据每个传感器节点的聚合标志位判断传感器节点的数据不需要解聚 ( 即 传感器节点的聚合标志不为 1), 则返回至根据包头中的聚合标志位判断是否需要解聚步 骤;
如果是传感器节点的包, 则转至根据每个传感器节点的聚合标志位判断传感器节 点的数据是否需要解聚步骤。
如图 8 所示, 汇聚节点的解聚过程如下 :汇聚节点接收到包, 首先判断是传感器节点的包还是路由节点的包 ;
如果是路由节点的包, 则需要两级解聚的判断, 首先根据包头中的聚合标志位判 断是否需要解聚 ( 即聚合标志是否为 1) ;
如需要解聚 ( 即聚合标志为 1), 则解聚路由节点的二级聚合包 ;
解聚过程中, 再根据路由节点的二级聚合包中的每个 “传感器节点的聚合标志位” 判断传感器节点的数据是否需要解聚 ( 即 “传感器节点的聚合标志位” 是否为 1) ;
如需要解聚 ( 即 “传感器节点的聚合标志” 为 1), 则解聚二级聚合包中每个传感器 节点的一级聚合包, 解聚过程结束。
如果根据每个传感器节点的聚合标志位判断传感器节点的数据不需要解聚 ( 即 传感器节点的聚合标志不为 1), 则不要二次解聚, 解聚过程结束 ;
根据包头中的聚合标志位判断不需要解聚 ( 即聚合标志不为 1), 则结束 ;
如果是传感器节点的包, 则根据包头的聚合标志位判断传感器节点的数据是否需 要解聚 ( 即 “包头的聚合标志” 是否为 1), 如果需要解聚 ( 即 “包头的聚合标志” 为 1), 则 按照包格式解聚传感器节点煌一级聚合包 ;
如果不需要解聚 ( 即 “包头的聚合标志” 不为 1), 则结束。