一种物联网中的层次式Chord分组网络及其组织方法

文档序号:7758348阅读:261来源:国知局

专利名称::一种物联网中的层次式Chord分组网络及其组织方法
技术领域
:本发明涉及物联网中对象名字服务
技术领域
,更具体地,本发明涉及一种物联网中的层次式Chord分组网络及其组织方法。
背景技术
:在物联网技术中,对象名字解析服务用于将对象名字映射到物品制造商提供的信息服务地址(isURL),为用户提供关于这个物品的相关信息。现有EPC(ElectronicProductCode,产品电子代码,提供对物理世界对象的唯一标识)网络的0NS(0bjectNamingkrvice,对象名字服务)系统中应用了物联网的对象名字解析服务技术,ONS系统将EPC码映射到一个或多个URL(统一资源定位符),通过这些URL查找到在EPCIS服务器上关于此产品的详细信息,例如物品制造商提供的信息服务。EPC-ONS是一个类似于DNS的分布式层次结构,包括映射信息、根ONS服务器、ONS服务器、ONS本地缓存和本地ONS解算器。其中,ONS服务器用于回应本地软件的ONS查询;根ONS服务器处于ONS层次结构最高层,拥有EPC名字空间中的最高层域名;ONS本地缓存保存经常查询和最近查询的“EPC-URL”值,作为ONS查询的第一入口点;本地ONS解算器负责ONS查询前的编码和查询语句格式化工作;映射信息是ONS系统提供服务的实际内容,制定EPC编码与URI的映射关系,并且存储在不同层次的ONS服务器中。EPC-ONS利用了DNS现有的体系结构,ONS查询过程可以分为查询本地服务器(0NSCache)和查询ONS服务器两部分,前一部分工作是利用一个与DNS相同结构的系统完成的,后一部分查询工作完全是由现有的DNS系统完成的。总之,现有的方法都是采用类似DNS的层次树状结构实现物联网中对象名称服务,这种结构不支持多种编码方式,并且存在高层性能瓶颈、抗攻击性弱、配置错误频繁和负载不均衡的问题。
发明内容为克服现上述各种缺陷,本发明提供一种物联网中的层次式Chord分组网络及其组织方法。根据本发明的一个方面,提出了一种物联网中的层次式Chord分组网络,包括两级网络,其中,第一级是Chord网络,该第一级Chord网络是基于分布式散列表由各个分组的超级节点组构成的网络;第二级网络是由各个分组单独构成的子网络,每个分组负责一个组织的对象名字服务,第一级网络和第二级网络通过各分组的超级节点组相关联。其中,对于节点数小于Ml的分组,第二级网络采用非结构化P2P的(Gnutella网络,该分组的超级节点维护第一级网络的指针表,各普通节点存储邻居节点信息;其中Ml是50、100、200或者500。其中,对于具有中等规模节点数的分组,第二级网络采用简化Chord网络SChord,其中,所述khord采用Chord的环状结构组织散列表,由超级节点维护分组的全网视图和包含Chord环上所有节点的指针表,普通节点只存储<key,value)对。其中,对于具有大规模节点数的分组,第二级网络采用结构化P2P的Chord网络。根据本发明的另一方面,提出了一种物联网中的层次式Chord分组网络的组织方法,包括构造两级网络,将第一级网络构造为Chord网络,该第一级网络是基于分布式散列表由各个分组的超级节点组构成的网络;将第二级网络构造为由各个分组单独构成的子网络,每个分组负责一个组织的对象名字服务,第一级和第二级网络通过各分组的超级节点组相关联。本发明对层次式Chord的对象名字解析系统的组织进行扩展,针对不同规模的分组,分别采取不同的网络结构和路由算法,对于peer数目小于100的分组采用纯粹P2P网络GnutelIa;对于peer数目介于100和1000之间的分组采用简化后的Chord网络khord;对于peer数目大于1000的分组采用Chord网络。本发明提供了一种灵活的规模可扩展的分组网络组织方法,更加适应于分组的底层实际网络,提高了分组中名字查询效率。图1是根据本发明的层次式Chord分组网络结构示意图;图2是根据本发明的层次式Chord分组网络动态扩展过程示意图。具体实施例方式下面结合附图和具体实施例对本发明提供的一种物联网中的层次式Chord分组网络及其组织方法进行详细描述。在对本发明具体描述前,对本发明涉及的概念加以介绍,以方便理解。物联网物联网就是把传感器与传感器网络技术、通信网与互联网技术、智能运算技术等融为一体,实现全面感知、可靠传送、智能处理为特征的并且连接物理世界的网络。对象名字服务将物品的电子编码映射到一个或者多个URL,在这些URL中可以查找到关于这个物品的详细信息,通常是物品制造商提供的信息服务。对象名字按照某种编码规则赋予物品唯一的电子编码表示,现有的物品编码格式将物品编码分为产品制造厂商标识码或者组织标识码Cl(ManagerNumber)和产品标识码C2(SerialNumber)两部分。分组(group):—个企业或组织的所有对象名字服务节点构成的网络,用Gi表示分组,用&表示分组的ID。节点(peer):P2P网络中的对等端,分为超级节点(superpeer)和普通节点(regularpeer),分别记作s和r。超级节点和普通节点只是逻辑上的区别,各个分组中一个或多个超级节点组建成上层Chord网络,同时作为下层分组中节点访问其他分组的入口节点。因此,超级节点相比普通节点,除了维护所在分组的Chord指针表外,还需要维护一张上级Chord网络的指针表。超级节点组(superpeers)同一分组中的一组超级节点,用来连接上下两层P2P网络,记作Si,普通节点集Ri=Gi-Si0负责(responsibility)如果分组&是所有分组中距离关键字key最近的后继,即&为successor(key),就说&负责key的名字服务。Chord美国MIT大学的研究人员提出的结构化P2P覆盖网,Chord采用环来组织地址空间,是一个存储关键字-值对的分布式散列表。关键字被散列到一个m位的标识符环。节点按ID从小到大排列在一个逻辑环上,每一节点维护一个路由表,即指针表(fingertable)。一个节点将查找关键字k的请求转发到k的最近先驱,当请求到达一个节点η,满足k位于η及标识符环上η的后继之间时,节点η汇报其后继作为请求的应答。指针表(fingertable)每个节点维护一个路由表,即指针表,指向标识符环上的其他节点。给定一个环,具有m位的标识符,一个指针表最多有m个表项。在节点η上,在行i的表项标识η后至少远的第一个节点,即successor(11+211),其中1<i<m。每条指针表项由一个节点ID、一个IP地址和端口对及可能的一些记录信息组成;该指针表概念是指Chord系统指针表。在清楚本发明的一些具体概念之后,下面对本发明的实现过程做详细说明。层次式Chord网络结构基于层次Chord的P2P(HierarchicalPeer-to-Peer)网络中将物联网中的对象名字解析系统组织为两级Chord网络。上层网络TChord是基于DHT(DistributedHashTable,分布式散列表)的结构化P2P网络,DHT允许节点基于对象的关键字key来访问对象,是分布式系统中的一种底层基础,其采用Chord协议,TChord中的每个节点是由一个超级节点组构成的虚节点,所有分组中的超级节点组构成TChord。TChord根据组织标识码Cl将一个对象名字解析请求发送到负责该名字服务的分组。节点通过维护一个TChord算法的指针向量表,将一个对象名字解析请求迅速发送到负责该名字服务的超级节点。Chord协议查询效率高并且支持负载均衡,还具有简单、可靠等其他DHT模型所不具备的特点,所以上层网络采用Chord协议。第二层包括各个相互独立的分组,根据各个生产厂商或组织的对象名字服务的具体情况,按照节点规模的大小,将其组织为Chord系统或者非结构化P2P系统。本实施例只考虑分组中节点数目超过1000的大规模网络,将分组组织为Chord系统。但对于节点数目较小的网络,不排除使用非结构化P2P系统。每个分组按照一定的规则选出一组超级节点,目前PC机的处理能力已经比较强大,对于一般的P2P应用可以满足要求,因此选择最早加入分组的节点,即在线时间最长的节点作为超级节点,每一个超级节点组作为TChord中一个虚节点,构成上级TChord网络。上层Chord环(TChord)在TChord网络中,每个节点包括一个超级节点组,通过超级节点组中的节点冗余,以提高TChord网络的可靠性。首先对Chord系统进行简单介绍,Chord算法在2001年由Moica等人发表,它的完美性源自于它的简单性。DHT的关键字是一个m位的标识符,即在W,2m-1]区间中的整数。标识符形成一个一维的对2m取模的标识符环,范围为Qm-I)O。标识符可以通过对一个节点的名字进行散列获得,例如标识符P=hash(IP)。关键字K(key)是一个对象独一无二的标识符,它可以通过对对象名进行散列来获得,K=hash(V)。标识符分为节点ID和关键字,分别标识节点和对象,对象即数据项目,在本申请中可以是物品的信息服务地址URL。在Chord中,对象被关联到Key,节点由节点ID标识,每个节点拥有一部分散列空间,负责保存某个范围的key。节点按ID从小到大排列在一个逻辑环上,<key,value〉值对<k,v>存储在k的后继结点successor(k)上,successor(k)是从K开始顺时针方向距离K最近的节点,即在一个Chord环中具有顺时针增长ID的一个节点负责其逆时针方向之前的所有关键字。每一节点维护一个路由表,即指针表(fingertable),指针表的路由信息提供了邻近节点和远距离连接粗粒度视图的信息,其中远距离连接是以2的次幂为间隔增长的。Chord路由算法的基本原理根据存储于每个节点指针表中的信息,一个节点将查找关键字k的请求转发到k的最近先驱,该先驱根据节点的指针表来确定标识符环上的k的先驱。当请求到达一个节点n,满足k位于η及标识符环上η的后继之间时,节点η汇报其后继作为请求的应答。由于以指针ID的2的次幂的距离间隔,每一跳至少覆盖标识符环上当前节点和目的标示符之间剩余距离的一半。对于具有N个参与节点的Chord环,会产生平均Iog2N个路由跳。TChord针对分组group的特点在Chord上做了一些修改,TChord中的每个虚节点包含一个超级节点组Si,因此指针表需要做相应的修改。原指针表中第i行表项标识η后至少2i-l远的第一个节点,TChord指针表中第i行表项标识η后至少2〔1远的第一个虚节点,即TChord指针表中每个表项所包含的节点地址信息不再是一个节点的地址信息,而是一个指向超级节点组Sid的地址向量。例如指向节点Si的表项所包含的Si的地址信息是一个地址向量Vector[Si],向量Vector[Si]中各个元素依次是指向Si中各个超级节点的地址。下面具体详细介绍TChord的查找、加入和稳定算法。查找Chord节点查找算法是利用各个节点的指针表在标识符环上寻找距离关键字key最近的后继节点。本算法是TChord的查找算法,它同Chord查找算法基本相同,区别在于TChord采用指针向量表的结构,该指针向量表中,路由一个查询请求到目标分组,从目标分组中的地址向量中随机选择一个IP地址,将查询请求发送到该超级节点,在超级节点之间实现负载均衡。TChord查找算法实现了搜索指针表的功能,其具体实现与原Chord算法的不同之处在于节点地址的返回上。它相对于原来的Chord算法增加了地址向量的随机选择过程,只要一个地址向量中的对等端没有全部失效,就能保证算法查找的有效性。另外,通过在地址向量中随机选择一个返回地址实现了超级节点间的负载均衡。节点加入TChord中的一个虚节点代表包括g个超级节点(超级节点组中的节点可以为空)的一个超级节点组Si,当分组中有节点加入时,可能引起TChord中一个新虚节点的加入。假设η为加入节点,n'=n.find_successor()(n'eS^jPn'是η的后继节点。当节点η请求加入分组Gi时,有以下三种可能情况(1)如果n.Cl=n'.Cl并且Si.length=g,即Gi就是η应当加入的分组并且Si已满,此时η作为一个普通节点(regularpeer)力口入Gi,调用函数join_as_regularpeer()。(2)若η.Cl=η'.Cl并且Si.length<g,即Gi就是η应当加入的分组并且Si未满,此时首先调用joiruasjegularpeerO将η加入分组。然后调用超级节点插入函数insert()将节点η加入到Si中,更新地址向量Vector[Si],即在Vector[Si]增加一个新元素η。(3)如果n.Cl兴n'.Cl,即η不属于TChord中的任意一个分组,此时需要调用creategroupO创建一个新分组(;」,初始化超级节点集。、地址向量Vector[Sj]。然后调用虚节点加入函数join_in_TChord(),向TChord中加入一个新的虚拟接点。分组网络结构分组网络通过存储〈Hash(C1+C2),IS地址>这样的<key,value)对,向用户提供对象名字到对象信息服务地址的映射。本申请的方法是对上述层次式Chord网络结构中的分组网络进一步扩展。图1示出根据本发明的层次式Chord分组网络结构,其中,对于上层TChord网络,它的结构和路由算法与上述层次式Chord网络相同,采用结构化P2P结构;下层网络中针对分组规模大小进行了动态扩展,分为三种分组网络结构,①(Gnutella网络,其是一种目前广泛应用的非结构化P2P系统网络,是Chord的一种简化网络,其中去除指针表,引入中心节点,构成中心式P2P系统;③传统Chord网络。对于一个分组Gi,Gi包括超级节点组Si和普通节点集Ri两部分,其中Si除了同Ri一样提供对象名字解析功能外,还负责Tchord网络的路由和分组查找,Ri中的节点只需要存储组内节点的路由信息,并且维护一个所在分组的超级节点组的地址向量Vector[S]。根据生产厂商或组织的对象名字服务具体情况,按照Gi节点规模的大小,可以将Gi组织为Chord系统或者非结构化P2P网络。具体策略如下(1)对于网络中节点数小于100的小规模group,采用非结构化P2P网络(inutella,如图G1所示,进行消息洪泛,此时路由表只要存储其邻居节点信息;(2)对于网络中节点数目介于100和1000之间的中等规模group,采用简化后的Chord网络SChord(SimpleChord),如图(所示。khord采用Chord的环状结构组织散列表,但引入了超级节点,由超级节点维护&的全网视图和一张包含Chord环上所有节点的指针表,而&中的节点只要存储<key,value)对,不再需要维护路由信息;(3)对于网络中节点数目超过1000的大规模group,采用结构化P2P网络Chord如图&所示,此时节点需要存储指针表等路由信息。每类分组的最大节点数目M是预先定义好的,具体如表1所示。表权利要求1.一种物联网中的层次式Chord分组网络,包括第一级和第二级的两级网络,其中,第二级网络是由负责一个组织的对象名字服务的各个分组单独构成的子网络,第一级网络是基于分布式散列表由对应于第二级网络的各个分组的超级节点组构成的Chord网络;第一级网络和第二级网络通过各分组的超级节点组相关联。2.权利要求1的网络,其中,所述分组包括一个企业或组织的所有对象名字服务节点构成的网络。3.权利要求1的网络,其中,所述超级节点包括最早加入该分组的节点,并且作为第二级网络的分组中节点访问其他分组的入口。4.权利要求1的网络,其中,对于节点数小于Ml的分组,第二级网络采用非结构化P2P的(Gnutella网络,该分组的超级节点维护第一级网络的指针表,各普通节点存储邻居节点信息;其中Ml是50、100、200或者500。5.权利要求1的网络,其中,对于具有中等规模节点数的分组,第二级网络采用简化Chord网络SChord,其中,所述khord采用Chord的环状结构组织散列表,由超级节点维护分组的全网视图和包含Chord环上所有节点的指针表,普通节点只存储<key,value)对。6.权利要求1的网络,其中,对于具有大规模节点数的分组,第二级网络采用结构化P2P的Chord网络。7.权利要求4、5或者6的网络,其中,当一个节点加入第二级网络的分组时,该分组的超级节点将当前分组的节点数目和预定阈值相比较,等于该阈值时,动态扩展第二级网络并且加入扩展后的网络分组;否则将该节点加入当前分组。8.权利要求7的网络,其中,当节点要加入的Gnutella网络已满时,Gnutella网络的超级节点发出重构消息,在重构消息中加入自己的节点ID和地址信息,将该消息在Gnutella网络中洪泛,普通节点将状态切换为khord网络状态并将自身的节点ID和地址信息添加到重构消息,普通节点根据收到的节点ID和节点地址信息将存储的<key,value〉值对发送到相应的节点;超级节点持有分组中所有节点的节点ID和地址信息,所有的<key,value)值对分布于各个节点中。9.权利要求7的网络,其中,所述khord网络中,普通节点加入时,迁移相应的<k,v>对到该普通节点上,并将节点ID和地址信息通知超级节点。10.权利要求7的网络,其中,当节点加入khord网络已满时,超级节点向每个节点分别发出重构通知,各节点收到重构消息后,将状态变量切换为Chord网络状态,通过超级节点下载其他节点的地址信息,构造指针表,形成Chord网络的分组。11.权利要求4、5或者6的网络,其中,当有超级节点失效后,在第二级网络中更新超级节点;对于(Gnutella网络,通过在网络中洪泛地址替换消息来更新每个节点中的地址向量;对于^^01~(1网络,由超级节点向网络中的每个节点分别发送地址替换消息;对于Chord分组,通过在Chord环上顺序传递地址替换消息更新环上每个节点的地址向量。12.一种物联网中的层次式Chord分组网络的组织方法,包括构造两级网络,由负责一个组织的对象名字服务的各个分组单独构成的子网络构成第二级网络,基于分布式散列表由对应于第二级网络的各个分组的超级节点组构成第一级网络,将第一级网络构造为Chord网络,第一级和第二级网络通过各分组的超级节点组相关联。13.权利要求12的方法,其中,所述分组包括一个企业或组织的所有对象名字服务节点构成的网络。14.权利要求12的方法,其中,所述超级节点包括最早加入该分组的节点,并且作为第二级网络的分组中节点访问其他分组的入口。15.权利要求12的方法,其中,对于节点数小于Ml的分组,采用非结构化P2P的(Gnutella网络构造第二级网络,该分组的超级节点维护第一级网络的指针表,各普通节点存储邻居节点信息;其中Ml是50、100、200或者500。16.权利要求12的方法,其中,对于具有中等规模节点数的分组,采用简化Chord网络SChord构造第二级网络,其中所述khord采用Chord的环状结构组织散列表,由超级节点维护分组的全网视图和包含Chord环上所有节点的指针表,普通节点存储<key,value〉对。17.权利要求12的方法,其中,对于具有大规模节点数的分组,采用结构化P2P网络Chord构造第二级网络。18.权利要求15、16或者17的方法,其中,当一个节点加入第二级网络的分组时,该分组的超级节点将当前分组的节点数目和预定阈值相比较,等于该阈值时,动态扩展第二级网络并且加入扩展后的网络分组;否则将该节点加入该分组。19.权利要求18的方法,其中,当节点要加入的Gnutella网络已满时,Gnutella网络的超级节点发出重构消息,在消息中加入自己的节点ID和地址信息,将该消息在(Gnutella网络中洪泛,普通节点将状态切换为khord网络状态并将自身的节点ID和地址信息添加到重构消息,普通节点根据收到的节点ID和节点地址信息将存储的<key,value)值对发送到相应的节点,超级节点持有分组中所有节点的节点ID和地址信息,所有的<key,value)值对分布于各个节点中。20.权利要求18的方法,其中,所述khord网络中,普通节点加入时,迁移相应的<k,v>对到该普通节点上,并将节点ID和地址信息通知超级节点。21.权利要求18的方法,其中,当节点加Akhord网络已满时,超级节点向每个节点分别发出重构通知,各节点收到重构消息后,将状态变量切换为Chord网络状态,通过超级节点下载其他节点的地址信息,构造指针表,形成Chord网络的分组。22.权利要求15、16或者17的方法,其中,当有超级节点失效后,在第二级网络中更新超级节点;对于(Gnutella网络,通过在网络中洪泛地址替换消息更新每个节点中的地址向量;对于^^01~(1网络,由超级节点向网络中的每个节点分别发送地址替换消息;对于Chord分组,通过在Chord环上顺序传递地址替换消息更新环上每个节点的地址向量。全文摘要本发明提供一种物联网中的层次式Chord分组网络及其组织方法,包括构造两级网络,将第一级网络构造为Chord网络,该第一级网络是基于分布式散列表由各个分组的超级节点组构成的网络;将第二级网络构造为由各个分组单独构成的子网络,每个分组负责一个组织的对象名字服务,第一级和第二级网络通过各分组的超级节点组相关联。本发明提供了一种灵活的规模可扩展的分组网络组织方法,更加适应于分组的底层实际网络,提高了分组中名字查询效率。文档编号H04W84/18GK102378409SQ201010265950公开日2012年3月14日申请日期2010年8月26日优先权日2010年8月26日发明者于海宁,何力,刘文懋,周斌,方滨兴,樊华,殷丽华,谭霜,贾焰,陈娟,韩伟红申请人:中国人民解放军国防科学技术大学,北京合天智汇信息技术有限公司,北京哈工大计算机网络与信息安全技术研究中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1