一种用于电力需求侧采集节点基于多播树的代码分发方法

文档序号:7804783阅读:86来源:国知局
一种用于电力需求侧采集节点基于多播树的代码分发方法【专利摘要】本发明公开了一种用于电力需求侧采集节点基于多播树的代码分发方法,基于此代码分发方法能够建立分发树将代码文件发送到网络中指定的目标节点上,使得在面向特定目标节点进行代码分发时,降低参与代码分发节点的数目,避免冗余代码数据的传输,本发明解决了冗余代码镜像带来的网络资源浪费问题,同时避免所有节点参与代码分发,从而进一步减轻网络负担。【专利说明】—种用于电力需求侧采集节点基于多播树的代码分发方法【
技术领域
】[0001]本发明是一种用于电力需求侧采集节点基于多播树的代码分发方法涉及电力需求侧管理领域,尤其涉及一种基于无线传感器网络中多播分发树的节点代码更新方法。【
背景技术
】[0002]无线传感器网络将现实的物理世界与逻辑的信息世界结合在一起,实现了物与物的互联,将人类的感知触角深入到现实世界的每一个角落,能够为人类的生产和生活提供最直接、最真实、最有效的信息。随着无线传感器网络应用规模的扩大,对传感器网络进行管理、维护和升级是提高网络实用性的重点。在无线传感器网络实地部署之后,不可避免地需要对传感器节点的软件功能进行更新。[0003]传统的节点重编程方式需要就节点与计算机上的串口等通信接口相连接,通过人工操作方式将计算机上编译好的代码镜像文件烧录到节点上。人工烧录的优点在于简单和易于实现,但在实际应用中存在着不可人工回收、或人工回收造成环境影响、或人工回收成本过高等局限性。[0004]无线重编程,也称为代码分发能够有效解决以上问题。该方法在传感器网络实地部署之后,通过无线方式对网络进行远程任务再分配、节点软件功能更新和网络功能再配置。然而目前的代码分发方法多采用泛洪法,分发效率低,代码冗余度高。在电力需求侧管理领域,无线传感器网络节点的选用和部署一方面解决了数据采集的问题,另一方面在功能更新和配置上提出了节能高效的需求,也对该领域的代码分发方法提出了新的要求。【
发明内容】[0005]本发明的目的是基于多播分发树的代码分发方法,解决冗余代码镜像带来的网络资源浪费问题,同时避免所有节点参与代码分发,从而进一步减轻网络负担。[0006]为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:[0007]—种用于电力需求侧采集节点基于多播树的代码分发方法,包括以下步骤:[0008]步骤I)全网广播代码版本信息[0009]完整的代码版本信息包括代码镜像文件和摘要信息,全网广播过程中,每个采集节点根据其邻居节点到汇聚节点的跳数,选择一个邻居节点作为其父节点,建立以汇聚节点为根节点的分发树;[0010]步骤2)请求代码数据[0011]网络中的节点对接收到的代码版本消息进行版本号对比,如果代码版本消息中的类型号与此节点自身的类型号相同,同时代码版本消息中的版本号比此节点自身的版本号新,说明汇聚节点正在分发新的代码文件给节点T所在类型的节点,节点T成为目标节点之一,目标节点通过发送代码请求消息(CodeRequestMessage)请求页面数据,代码请求消息沿着分发树反向进行页面数据请求,基站节点作为分发树的根节点逐页发送数据;[0012]步骤3)发送代码数据[0013]代码数据沿着分发树从汇聚节点先发送到离基站较近的中间节点,然后通过多跳传输到目标节点;实现上述机制的原因在于目标节点发送的代码请求消息沿着分发树转发回汇聚节点,即:当某一中间节点S接收到某一目标节点T的代码请求消息后,如果节点S没有该请求页的数据,且节点S也没有向其父节点请求该页数据,那么节点S将该代码请求消息转发给其父节点;如果节点S正在向其父节点请求该页数据,则节点S接收到完整的页后,将该页数据发送给目标节点T;如果节点S已经拥有该请求页的数据,在接收到该代码请求消息后,立即将该请求页的数据发送给目标节点T。[0014]进一步的,所述步骤I)中摘要信息包括:①标识号(WD),负责唯一标识该代码镜像文件;②类型号(TYPE),负责标识电力需求侧管理网络中不同类型的采集节点;③版本号码(CodeVersion),代表代码镜像文件的版本号码;④代码大小(CodeSize)和页数(PageNum),用来描述代码镜像文件的大小以及其包含的页数;⑤生存时间(TTL),用来描述代码版本消息的生存周期序列号(SequenceNum),用来区分不同广播周期发送的代码版本消息。[0015]进一步的,还包括对对多播分发树的定期维护,其维护过程为建立汇聚节点到目标节点之间的转发路径。[0016]进一步的,所述转发路径的建立基于两个表:邻居节点表(nodetable),维护本节点的邻居节点的状态信息;请求节点表(requesttable),维护下游请求节点的信息,邻居节点表中的每条记录包含邻居节点ID、邻居节点到汇聚节点的跳数、邻居节点到本节点的链路质量、以及邻居节点是否为本节点的父节点。网络中的节点通过代码版本消息来对邻居节点表进行更新;请求节点表中的每条记录包括请求节点ID、请求信息摘要、目标节点ID;请求节点ID即对本节点发送请求信息的节点的ID,请求信息摘要包括代码文件标识号(UID)、请求页的号码以及请求数据包的号码;当节点接收到下游节点的代码请求消息时,对自身请求节点表进行更新。[0017]本发明的有益效果是:[0018]与传统的基于传染病算法的代码分发方法(如Deluge协议)相比,本发明通过建立代码分发目标节点与汇聚节点之间的转发路径,减少了网络中参与代码分发节点的个数,有效提高电力需求侧中汇聚节点定向分发采集节点代码的效率。[0019]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的【具体实施方式】由以下实施例及其附图详细给出。【专利附图】【附图说明】[0020]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:[0021]图1为电力消费侧管理网络中的代码分发过程图;[0022]图2为代码镜像文件的划分方法图;[0023]图3为非目标节点代码分发处理流程图;[0024]图4为目标节点代码分发处理流程图。【具体实施方式】[0025]以一个部署完毕的基于无线传感器网络的电力需求侧管理系统为例,对具体技术的实施步骤进行详细说明,其中关键步骤的实现可参阅相关附图。[0026]1.基于多播树的代码广播、请求和分发过程[0027]本发明将代码镜像文件分发到电力需求侧管理网络中指定的目标节点中,其核心在于建立以汇聚节点(正方形所示)为树根节点的多播分发树。如图1所示,本发明通过广播发送代码版本消息,使网络中所有节点建立自身到基站节点的转发路径,从而形成以基站节点为根节点的多播分发树。目标节点(三角形所示)向其上游节点(圆形所示)发送代码请求消息,代码请求消息通过分发树多跳传输到汇聚节点。汇聚节点在接收到目标节点的代码数据请求后,沿着代码请求的路径将代码数据发送到目标节点。[0028]2.代码镜像数据的划分方法[0029]由于代码文件占用存储空间很大(10KB-50KB),远远超过节点的内存容量,因此代码镜像文件被划分为固定大小的页或段,段进一步被划分为固定大小的数据包,如图2所示。其中,i代表镜像文件的段数,j代表每段的数据包数,k为数据包的字节数。本发明将k设置为23字节,j设置为48,因此每段的固定大小为1104字节,数据量占用内存较小,能够满足节点的内存容量要求,汇聚节点到目标节点的数据传输以段为单位进行。[0030]3.非目标节点的代码分发处理流程[0031]本发明的网络中所有节点在起初都是普通节点,普通节点在接收到上游的代码版本消息后,如果代码版本消息中的Type号与自身相同,且代码版本消息中的代码版本号比自身新,那么此节点成为目标节点,否则保持普通节点角色。如图3所示,作为普通节点,当接收到代码请求消息后,对其自身的请求节点表进行更新。如果节点已经有请求页的数据,那么节点直接将请求页的数据发送给下游的请求节点;如果节点正在向父节点请求这个页的数据,那么等接收完请求页的数据后进行转发;否则,节点将代码请求消息转发给其父节点。当普通节点接收到代码数据消息时,通过查询自身的请求节点表,将代码数据转发给下游的请求节点。[0032]4.目标节点的代码分发处理流程[0033]每个目标节点接到代码版本广播后发送代码请求消息,代码请求消息中包含节点自身ID、父节点ID、目标节点ID、请求页号码和请求数据包号码。如图4所示,当目标节点接收到代码数据消息时,如果代码数据消息的目标节点不是本节点,那么节点根据其请求节点表将收到的代码数据消息转发给请求节点;如果代码数据消息的目标节点是本节点,那么将代码数据存储入外存中,同时若已接收到完整的代码页数据,那么发送代码请求消息进行下一个页的传输。当目标节点接收到完整的代码镜像后,目标节点停止发送代码请求消息,将新的代码文件载入到内存中,重启节点使用新代码执行新的角色任务,节点从目标节点变化为普通节点。[0034]请求节点表的每条记录都有一个有效时间,如果记录在有效时间内未进行更新,那么就将此条记录从请求节点表删除。目标节点在发送代码请求消息时会造成路径上各个中间节点的请求节点表的内容更新。当目标节点接收到完整镜像后,会停止发送代码请求消息,其上游节点的请求节点表中的记录在超过有效时间后被删除。[0035]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。【权利要求】1.一种用于电力需求侧采集节点基于多播树的代码分发方法,其特征在于,包括以下步骤:步骤I)全网广播代码版本信息完整的代码版本信息包括代码镜像文件和摘要信息,全网广播过程中,每个采集节点根据其邻居节点到汇聚节点的跳数,选择一个邻居节点作为其父节点,建立以汇聚节点为根节点的分发树;步骤2)请求代码数据网络中的节点对接收到的代码版本消息进行版本号对比,接到更新的版本号后转成目标节点,目标节点通过发送代码请求消息(CodeRequestMessage)请求页面数据,代码请求消息沿着分发树反向进行页面数据请求,基站节点作为分发树的根节点逐页发送数据;步骤3)发送代码数据代码数据沿着分发树从汇聚节点先发送到离基站较近的中间节点,然后通过多跳传输到目标节点。2.根据权利要求1所述的用于电力需求侧采集节点基于多播树的代码分发方法,其特征在于,所述步骤I)中摘要信息包括:①标识号(UID),负责唯一标识该代码镜像文件;②类型号(TYPE),负责标识电力需求侧管理网络中不同类型的采集节点;③版本号码(CodeVersion),代表代码镜像文件的版本号码;④代码大小(CodeSize)和页数(PageNum),用来描述代码镜像文件的大小以及其包含的页数;⑤生存时间(TTL),用来描述代码版本消息的生存周期序列号(SequenceNum),用来区分不同广播周期发送的代码版本消息。3.根据权利要求1所述的用于电力需求侧采集节点基于多播树的代码分发方法,其特征在于,还包括对对多播分发树的定期维护,其维护过程为建立汇聚节点到目标节点之间的转发路径。4.根据权利要求3所述的用于电力需求侧采集节点基于多播树的代码分发方法,其特征在于,所述转发路径的建立基于两个表:邻居节点表(nodetable),维护本节点的邻居节点的状态信息;请求节点表(requesttable),维护下游请求节点的信息。【文档编号】H04W4/06GK103974202SQ201410227974【公开日】2014年8月6日申请日期:2014年5月28日优先权日:2014年5月28日【发明者】刘琦,汤波,肖博申请人:苏州鸣伦电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1