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

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

Info

Publication number
CN102378409A
CN102378409A CN2010102659509A CN201010265950A CN102378409A CN 102378409 A CN102378409 A CN 102378409A CN 2010102659509 A CN2010102659509 A CN 2010102659509A CN 201010265950 A CN201010265950 A CN 201010265950A CN 102378409 A CN102378409 A CN 102378409A
Authority
CN
China
Prior art keywords
node
network
grouping
chord
super
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010102659509A
Other languages
English (en)
Other versions
CN102378409B (zh
Inventor
何力
谭霜
贾焰
方滨兴
殷丽华
韩伟红
周斌
樊华
刘文懋
于海宁
陈娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Computer Network And Information Security Research Center Of Harbin Institute Of Technology
Beijing Hetian Huizhi Information Technology Co Ltd
National University of Defense Technology
Original Assignee
Beijing Computer Network And Information Security Research Center Of Harbin Institute Of Technology
Beijing Hetian Huizhi Information Technology Co Ltd
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Computer Network And Information Security Research Center Of Harbin Institute Of Technology, Beijing Hetian Huizhi Information Technology Co Ltd, National University of Defense Technology filed Critical Beijing Computer Network And Information Security Research Center Of Harbin Institute Of Technology
Priority to CN 201010265950 priority Critical patent/CN102378409B/zh
Publication of CN102378409A publication Critical patent/CN102378409A/zh
Application granted granted Critical
Publication of CN102378409B publication Critical patent/CN102378409B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种物联网中的层次式Chord分组网络及其组织方法,包括:构造两级网络,将第一级网络构造为Chord网络,该第一级网络是基于分布式散列表由各个分组的超级节点组构成的网络;将第二级网络构造为由各个分组单独构成的子网络,每个分组负责一个组织的对象名字服务,第一级和第二级网络通过各分组的超级节点组相关联。本发明提供了一种灵活的规模可扩展的分组网络组织方法,更加适应于分组的底层实际网络,提高了分组中名字查询效率。

Description

一种物联网中的层次式Chord分组网络及其组织方法
技术领域
本发明涉及物联网中对象名字服务技术领域,更具体地,本发明涉及一种物联网中的层次式Chord分组网络及其组织方法。
背景技术
在物联网技术中,对象名字解析服务用于将对象名字映射到物品制造商提供的信息服务地址(IS URL),为用户提供关于这个物品的相关信息。
现有EPC(Electronic Product Code,产品电子代码,提供对物理世界对象的唯一标识)网络的ONS(Object Naming Service,对象名字服务)系统中应用了物联网的对象名字解析服务技术,ONS系统将EPC码映射到一个或多个URL(统一资源定位符),通过这些URL查找到在EPC IS服务器上关于此产品的详细信息,例如物品制造商提供的信息服务。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查询过程可以分为查询本地服务器(ONS Cache)和查询ONS服务器两部分,前一部分工作是利用一个与DNS相同结构的系统完成的,后一部分查询工作完全是由现有的DNS系统完成的。
总之,现有的方法都是采用类似DNS的层次树状结构实现物联网中对象名称服务,这种结构不支持多种编码方式,并且存在高层性能瓶颈、抗攻击性弱、配置错误频繁和负载不均衡的问题。
发明内容
为克服现上述各种缺陷,本发明提供一种物联网中的层次式Chord分组网络及其组织方法。
根据本发明的一个方面,提出了一种物联网中的层次式Chord分组网络,包括两级网络,其中,第一级是Chord网络,该第一级Chord网络是基于分布式散列表由各个分组的超级节点组构成的网络;第二级网络是由各个分组单独构成的子网络,每个分组负责一个组织的对象名字服务,第一级网络和第二级网络通过各分组的超级节点组相关联。
其中,对于节点数小于M1的分组,第二级网络采用非结构化P2P的Gnutella网络,该分组的超级节点维护第一级网络的指针表,各普通节点存储邻居节点信息;其中M1是50、100、200或者500。其中,对于具有中等规模节点数的分组,第二级网络采用简化Chord网络SChord,其中,所述Schord采用Chord的环状结构组织散列表,由超级节点维护分组的全网视图和包含Chord环上所有节点的指针表,普通节点只存储<key,value>对。其中,对于具有大规模节点数的分组,第二级网络采用结构化P2P的Chord网络。
根据本发明的另一方面,提出了一种物联网中的层次式Chord分组网络的组织方法,包括:构造两级网络,将第一级网络构造为Chord网络,该第一级网络是基于分布式散列表由各个分组的超级节点组构成的网络;将第二级网络构造为由各个分组单独构成的子网络,每个分组负责一个组织的对象名字服务,第一级和第二级网络通过各分组的超级节点组相关联。
本发明对层次式Chord的对象名字解析系统的组织进行扩展,针对不同规模的分组,分别采取不同的网络结构和路由算法,对于peer数目小于100的分组采用纯粹P2P网络Gnutella;对于peer数目介于100和1000之间的分组采用简化后的Chord网络Schord;对于peer数目大于1000的分组采用Chord网络。本发明提供了一种灵活的规模可扩展的分组网络组织方法,更加适应于分组的底层实际网络,提高了分组中名字查询效率。
附图说明
图1是根据本发明的层次式Chord分组网络结构示意图;
图2是根据本发明的层次式Chord分组网络动态扩展过程示意图。
具体实施方式
下面结合附图和具体实施例对本发明提供的一种物联网中的层次式Chord分组网络及其组织方法进行详细描述。
在对本发明具体描述前,对本发明涉及的概念加以介绍,以方便理解。
物联网:物联网就是把传感器与传感器网络技术、通信网与互联网技术、智能运算技术等融为一体,实现全面感知、可靠传送、智能处理为特征的并且连接物理世界的网络。
对象名字服务:将物品的电子编码映射到一个或者多个URL,在这些URL中可以查找到关于这个物品的详细信息,通常是物品制造商提供的信息服务。
对象名字:按照某种编码规则赋予物品唯一的电子编码表示,现有的物品编码格式将物品编码分为产品制造厂商标识码或者组织标识码C1(ManagerNumber)和产品标识码C2(Serial Number)两部分。
分组(group):一个企业或组织的所有对象名字服务节点构成的网络,用Gi表示分组,用gi表示分组的ID。
节点(peer):P2P网络中的对等端,分为超级节点(super peer)和普通节点(regular peer),分别记作s和r。超级节点和普通节点只是逻辑上的区别,各个分组中一个或多个超级节点组建成上层Chord网络,同时作为下层分组中节点访问其他分组的入口节点。因此,超级节点相比普通节点,除了维护所在分组的Chord指针表外,还需要维护一张上级Chord网络的指针表。
超级节点组(superpeers):同一分组中的一组超级节点,用来连接上下两层P2P网络,记作Si,普通节点集Ri=Gi-Si。
负责(responsibility):如果分组gi是所有分组中距离关键字key最近的后继,即gi为successor(key),就说gi负责key的名字服务。
Chord:美国MIT大学的研究人员提出的结构化P2P覆盖网,Chord采用环来组织地址空间,是一个存储关键字-值对的分布式散列表。关键字被散列到一个m位的标识符环。节点按ID从小到大排列在一个逻辑环上,每一节点维护一个路由表,即指针表(finger table)。一个节点将查找关键字k的请求转发到k的最近先驱,当请求到达一个节点n,满足k位于n及标识符环上n的后继之间时,节点n汇报其后继作为请求的应答。
指针表(finger table):每个节点维护一个路由表,即指针表,指向标识符环上的其他节点。给定一个环,具有m位的标识符,一个指针表最多有m个表项。在节点n上,在行i的表项标识n后至少2i-1远的第一个节点,即successor(n+2i-1),其中1≤i≤m。每条指针表项由一个节点ID、一个IP地址和端口对及可能的一些记录信息组成;该指针表概念是指Chord系统指针表。
在清楚本发明的一些具体概念之后,下面对本发明的实现过程做详细说明。
层次式Chord网络结构
基于层次Chord的P2P(Hierarchical Peer-to-Peer)网络中将物联网中的对象名字解析系统组织为两级Chord网络。上层网络TChord是基于DHT(Distributed Hash Table,分布式散列表)的结构化P2P网络,DHT允许节点基于对象的关键字key来访问对象,是分布式系统中的一种底层基础,其采用Chord协议,TChord中的每个节点是由一个超级节点组构成的虚节点,所有分组中的超级节点组构成TChord。TChord根据组织标识码C1将一个对象名字解析请求发送到负责该名字服务的分组。节点通过维护一个TChord算法的指针向量表,将一个对象名字解析请求迅速发送到负责该名字服务的超级节点。Chord协议查询效率高并且支持负载均衡,还具有简单、可靠等其他DHT模型所不具备的特点,所以上层网络采用Chord协议。第二层包括各个相互独立的分组,根据各个生产厂商或组织的对象名字服务的具体情况,按照节点规模的大小,将其组织为Chord系统或者非结构化P2P系统。本实施例只考虑分组中节点数目超过1000的大规模网络,将分组组织为Chord系统。但对于节点数目较小的网络,不排除使用非结构化P2P系统。每个分组按照一定的规则选出一组超级节点,目前PC机的处理能力已经比较强大,对于一般的P2P应用可以满足要求,因此选择最早加入分组的节点,即在线时间最长的节点作为超级节点,每一个超级节点组作为TChord中一个虚节点,构成上级TChord网络。
上层Chord环(TChord)
在TChord网络中,每个节点包括一个超级节点组,通过超级节点组中的节点冗余,以提高TChord网络的可靠性。
首先对Chord系统进行简单介绍,Chord算法在2001年由Stoica等人发表,它的完美性源自于它的简单性。DHT的关键字是一个m位的标识符,即在[0,2m-1]区间中的整数。标识符形成一个一维的对2m取模的标识符环,范围为(2m-1)~0。标识符可以通过对一个节点的名字进行散列获得,例如标识符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的一个节点负责其逆时针方向之前的所有关键字。
每一节点维护一个路由表,即指针表(finger table),指针表的路由信息提供了邻近节点和远距离连接粗粒度视图的信息,其中远距离连接是以2的次幂为间隔增长的。
Chord路由算法的基本原理:根据存储于每个节点指针表中的信息,一个节点将查找关键字k的请求转发到k的最近先驱,该先驱根据节点的指针表来确定标识符环上的k的先驱。当请求到达一个节点n,满足k位于n及标识符环上n的后继之间时,节点n汇报其后继作为请求的应答。由于以指针ID的2的次幂的距离间隔,每一跳至少覆盖标识符环上当前节点和目的标示符之间剩余距离的一半。对于具有N个参与节点的Chord环,会产生平均log2N个路由跳。
TChord针对分组group的特点在Chord上做了一些修改,TChord中的每个虚节点包含一个超级节点组Si,因此指针表需要做相应的修改。原指针表中第i行表项标识n后至少2i-1远的第一个节点,TChord指针表中第i行表项标识n后至少2i-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′=n.find_successor()(n′∈Si),即n′是n的后继节点。当节点n请求加入分组Gi时,有以下三种可能情况:
(1)如果n.C1=n′.C1并且Si.length=g,即Gi就是n应当加入的分组并且Si已满,此时n作为一个普通节点(regularpeer)加入Gi,调用函数join_as_regularpeer()。
(2)若n.C1=n′.C1并且Si.length<g,即Gi就是n应当加入的分组并且Si未满,此时首先调用join_as_regularpeer()将n加入分组。然后调用超级节点插入函数insert()将节点n加入到Si中,更新地址向量Vector[Si],即在Vector[Si]增加一个新元素n。
(3)如果n.C1≠n′.C1,即n不属于TChord中的任意一个分组,此时需要调用creategroup()创建一个新分组Gj,初始化超级节点集Sj、地址向量Vector[Sj]。然后调用虚节点加入函数join_in_TChord(),向TChord中加入一个新的虚拟接点。
分组网络结构
分组网络通过存储<Hash(C1+C2),IS地址>这样的<key,value>对,向用户提供对象名字到对象信息服务地址的映射。
本申请的方法是对上述层次式Chord网络结构中的分组网络进一步扩展。图1示出根据本发明的层次式Chord分组网络结构,其中,对于上层TChord网络,它的结构和路由算法与上述层次式Chord网络相同,采用结构化P2P结构;下层网络中针对分组规模大小进行了动态扩展,分为三种分组网络结构,①Gnutella网络,其是一种目前广泛应用的非结构化P2P系统;②Schord网络,是Chord的一种简化网络,其中去除指针表,引入中心节点,构成中心式P2P系统;③传统Chord网络。
对于一个分组Gi,Gi包括超级节点组Si和普通节点集Ri两部分,其中Si除了同Ri一样提供对象名字解析功能外,还负责Tchord网络的路由和分组查找,Ri中的节点只需要存储组内节点的路由信息,并且维护一个所在分组的超级节点组的地址向量Vector[S]。根据生产厂商或组织的对象名字服务具体情况,按照Gi节点规模的大小,可以将Gi组织为Chord系统或者非结构化P2P网络。
具体策略如下:
(1)对于网络中节点数小于100的小规模group,采用非结构化P2P网络Gnutella,如图G1所示,进行消息洪泛,此时路由表只要存储其邻居节点信息;
(2)对于网络中节点数目介于100和1000之间的中等规模group,采用简化后的Chord网络SChord(Simple Chord),如图G2所示。Schord采用Chord的环状结构组织散列表,但引入了超级节点,由超级节点维护G2的全网视图和一张包含Chord环上所有节点的指针表,而R2中的节点只要存储<key,value>对,不再需要维护路由信息;
(3)对于网络中节点数目超过1000的大规模group,采用结构化P2P网络Chord如图G3所示,此时节点需要存储指针表等路由信息。
每类分组的最大节点数目M是预先定义好的,具体如表1所示。
表1
  分组   最大节点数目   节点数目区间
  G1   M1=100   [1,100]
  G2   M2=1000   (100,1000]
  G3   M3>1000   (1000,∞)
当一个节点加入分组Gi时,Gi的超级节点s首先检查当前分组的节点数目mi是否小于Mi。如果等于Mi,即Gi是满的,此时需要扩展分组。否则Gi未满,不用扩展分组,将节点加入Gi。另外,可以理解M1、M2、M3的取值仅用于示例,根据不同需要,这三个值可以增大或者减小,例如M1=50、200或者500或者之间的任一整数,M2=500或者10000或者之间的任一整数。
下面参考图2分别对三种分组中的查询和节点加入方法进行详细介绍。
◆Gnutella分组
假设G1采用Gnutella网络结构,由于Gnutella网络没有任何中心单元,采用消息洪泛的路由机制,G1中的节点只需要知道邻居路由信息。因此,S1只需要维护上层Tchord指针表。此时G1的节点加入算法n.joinpeer(n′)非常简单,一个节点通过建立平均3条到其他活跃Gi网络的TCP连接,就能成为G1网络的成员,节点可以从一个启动服务器处接收到其他活跃节点的IP地址。
G1到G2的重构过程:如果G1节点已满,此时节点加入将引起G1的重构。首先超级节点s发出重构通知construction(),并在消息中加入自己的节点关键字和地址信息,该消息在G1中洪泛,所有收到消息的节点将自己的关键字ID和地址信息添加进消息,然后继续洪泛该消息。每个节点包含一个状态变量state,用以标识节点状态,对应于G1、G2、G3三种网络结构,state分别有G1、G2、G3三个取值。收到construction()消息的节点首先进行状态切换,将状态变量state=G1置为state=G2。然后每个节点根据收到的节点ID和节点地址信息将自身存储的<key,value>值对发送到相应的节点。最终,s将持有分组中所有节点的关键字ID和地址信息,所有的<key,value>值对正确地分布于各个节点中。重构过程结束,即所有节点完成状态转换后,向超级节点s注册自己的相关信息。
◆SChord分组
假设G2采用SChord网络结构,此时Si中的每个节点s均为一个中心服务器。超级节点s具有G2完整的网络视图,s存储G2中每个对等节点的关键字ID和地址信息。
(1)Schord关键字查询
对于一个关键字key查询请求,s通过本地查询就能获得key的后继节点n,然后将请求转发到n。
下面是Schord本地查询伪代码:
Schord本地查询算法find_successor()
输入:查找关键字-id
输出:负责关键字名字解析的节点
1:s.find_successor(id)
2:{
3:  for i=m-1 downto 1
4:    if(finger[i].node∈(s,id))
5:       return finger[i+1].node();
6:  }
(2)Schord节点加入和稳定
Schord分组中节点不需要建立和维护指针表,因此它的节点加入相比Chord较为简单,节点n加入时,只要迁移相应的<k,v>对到n上,并通知超级节点它的关键字ID和地址信息。
Schord节点n加入算法join_Schord()
输入:加入节点n
输出:空
1:n.join_Schord(s)
2:{
3:    n.notify(s);
4:    successor=s.find_successor(n);
5:   s.transfer_keys(successor,n);
6:   }
7:s.transfer_keys(n′,n)
8:{
9:   for key=min_key to n.ID
10:   if(<key,value>∈n′)
10:     move<key,value>from n′to n;
11:}
如果G2已满,此时节点加入将引起G2重构。超级节点s向每个节点分别发出重构通知,节点n收到重构消息后,首先进行状态切换,将状态变量state=G2置为state=G3,然后建立并初始化指针表,节点n通过从s下载其他节点的地址信息,从而构造正确的指针表,完成G3的重构过程,最终形成Chord分组。重构过程结束,即所有节点完成状态转换后,建立起正确的Chord指针表。
◆Chord分组
G3采用Chord网络结构,G3中关键字查询、节点的加入和稳定与传统Chord网络一致,不再详细介绍。
超级节点组维护算法
每个分组均需要维护一个超级节点组,以连接Tchord网络和分组,因此给出超级节点组Si的维护算法,fix_superpeers()算法通过检查超级节点组中每个节点是否依旧有效,然后替换Si中的失效节点,以确保Si的有效性。
下面是Gi中组维护算法的伪代码:
组维护算法fix_superpeers()
输入:分组Gi
输出:空
1:Gi.fix_superpeers()
2:{
3:   while(vector[k]!=nul)
4:   {
5:      if(vector[k]has failed)
6:         s′=the peer earliest joined Gi among Ri;
7:         s.vector[k]=s′
8:         s.update_vector(k);
9:       k++;
10:      }
11:      }
12:s.update_vector(k)
13:{
14:   switch(type)
15:    {
16:      case‘Gnutella’:
17:         forward s.update_vector(k)to all nodes;
18:      break;
19:      case‘Schord’:
20:         for i=m downto 1
21:         {
22:             n=finger[i].node;
23:             n.replace_vector(s′,k);
24:         }
25:      brea k;
26:      case‘Chord’:
27:         n=finger[1].node;
28:         while(n.ID!=s.ID)
29:         {
30:            n.replace_vector(s′,k);
31:            n=finger[1].node;
32:         }
33:    break;
34:    default:
35:       throw exception;
36:    break;
37:  }
38:}
39:n.replace_vector(s′,k)
40:{
41:  vector[k]=s′_address;
42:}
其中,fix_superpeers()算法在对Si中失效节点进行替换时,为了减小Si维护开销,除非Si中有节点失效,否则不进行超级节点的替换;一旦Si中有节点sij失效,则从Gi的非超级节点中选出最早加入Gi的节点(即在线时间最长的节点)s′作为超级节点加入Si,用s′替换地址向量中sij的地址信息,更新地址向量。分组中每个节点均要存储所在分组的超级节点组的地址向量,因此在Gi更新Si之后,update_vector()负责更新Gi中每个节点所存储的Si地址向量。对于Gnutella分组,通过在Gi中洪泛地址替换消息更新每个节点中的地址向量;对于Schord分组,由超级节点向Gi中的每个节点分别发送地址替换消息;对于Chord分组,通过在Chord环上顺序传递地址替换消息更新环上每个节点的地址向量。函数replace_vector(s′,k)将vector[k]替换为s′。
上述描述了从G1到G2到G3的重构过程,根据上述技术描述,可以理解在节点退出时其反向操作的重构过程的技术实现。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。

Claims (22)

1.一种物联网中的层次式Chord分组网络,包括第一级和第二级的两级网络,其中,第二级网络是由负责一个组织的对象名字服务的各个分组单独构成的子网络,第一级网络是基于分布式散列表由对应于第二级网络的各个分组的超级节点组构成的Chord网络;第一级网络和第二级网络通过各分组的超级节点组相关联。
2.权利要求1的网络,其中,所述分组包括一个企业或组织的所有对象名字服务节点构成的网络。
3.权利要求1的网络,其中,所述超级节点包括最早加入该分组的节点,并且作为第二级网络的分组中节点访问其他分组的入口。
4.权利要求1的网络,其中,对于节点数小于M1的分组,第二级网络采用非结构化P2P的Gnutella网络,该分组的超级节点维护第一级网络的指针表,各普通节点存储邻居节点信息;其中M1是50、100、200或者500。
5.权利要求1的网络,其中,对于具有中等规模节点数的分组,第二级网络采用简化Chord网络SChord,其中,所述Schord采用Chord的环状结构组织散列表,由超级节点维护分组的全网视图和包含Chord环上所有节点的指针表,普通节点只存储<key,value>对。
6.权利要求1的网络,其中,对于具有大规模节点数的分组,第二级网络采用结构化P2P的Chord网络。
7.权利要求4、5或者6的网络,其中,当一个节点加入第二级网络的分组时,该分组的超级节点将当前分组的节点数目和预定阈值相比较,等于该阈值时,动态扩展第二级网络并且加入扩展后的网络分组;否则将该节点加入当前分组。
8.权利要求7的网络,其中,当节点要加入的Gnutella网络已满时,Gnutella网络的超级节点发出重构消息,在重构消息中加入自己的节点ID和地址信息,将该消息在Gnutella网络中洪泛,普通节点将状态切换为Schord网络状态并将自身的节点ID和地址信息添加到重构消息,普通节点根据收到的节点ID和节点地址信息将存储的<key,value>值对发送到相应的节点;超级节点持有分组中所有节点的节点ID和地址信息,所有的<key,value>值对分布于各个节点中。
9.权利要求7的网络,其中,所述Schord网络中,普通节点加入时,迁移相应的<k,v>对到该普通节点上,并将节点ID和地址信息通知超级节点。
10.权利要求7的网络,其中,当节点加入Schord网络已满时,超级节点向每个节点分别发出重构通知,各节点收到重构消息后,将状态变量切换为Chord网络状态,通过超级节点下载其他节点的地址信息,构造指针表,形成Chord网络的分组。
11.权利要求4、5或者6的网络,其中,当有超级节点失效后,在第二级网络中更新超级节点;对于Gnutella网络,通过在网络中洪泛地址替换消息来更新每个节点中的地址向量;对于Schord网络,由超级节点向网络中的每个节点分别发送地址替换消息;对于Chord分组,通过在Chord环上顺序传递地址替换消息更新环上每个节点的地址向量。
12.一种物联网中的层次式Chord分组网络的组织方法,包括:
构造两级网络,由负责一个组织的对象名字服务的各个分组单独构成的子网络构成第二级网络,基于分布式散列表由对应于第二级网络的各个分组的超级节点组构成第一级网络,将第一级网络构造为Chord网络,第一级和第二级网络通过各分组的超级节点组相关联。
13.权利要求12的方法,其中,所述分组包括一个企业或组织的所有对象名字服务节点构成的网络。
14.权利要求12的方法,其中,所述超级节点包括最早加入该分组的节点,并且作为第二级网络的分组中节点访问其他分组的入口。
15.权利要求12的方法,其中,对于节点数小于M1的分组,采用非结构化P2P的Gnutella网络构造第二级网络,该分组的超级节点维护第一级网络的指针表,各普通节点存储邻居节点信息;其中M1是50、100、200或者500。
16.权利要求12的方法,其中,对于具有中等规模节点数的分组,采用简化Chord网络SChord构造第二级网络,其中所述Schord采用Chord的环状结构组织散列表,由超级节点维护分组的全网视图和包含Chord环上所有节点的指针表,普通节点存储<key,value>对。
17.权利要求12的方法,其中,对于具有大规模节点数的分组,采用结构化P2P网络Chord构造第二级网络。
18.权利要求15、16或者17的方法,其中,当一个节点加入第二级网络的分组时,该分组的超级节点将当前分组的节点数目和预定阈值相比较,等于该阈值时,动态扩展第二级网络并且加入扩展后的网络分组;否则将该节点加入该分组。
19.权利要求18的方法,其中,当节点要加入的Gnutella网络已满时,Gnutella网络的超级节点发出重构消息,在消息中加入自己的节点ID和地址信息,将该消息在Gnutella网络中洪泛,普通节点将状态切换为Schord网络状态并将自身的节点ID和地址信息添加到重构消息,普通节点根据收到的节点ID和节点地址信息将存储的<key,value>值对发送到相应的节点,超级节点持有分组中所有节点的节点ID和地址信息,所有的<key,value>值对分布于各个节点中。
20.权利要求18的方法,其中,所述Schord网络中,普通节点加入时,迁移相应的<k,v>对到该普通节点上,并将节点ID和地址信息通知超级节点。
21.权利要求18的方法,其中,当节点加入Schord网络已满时,超级节点向每个节点分别发出重构通知,各节点收到重构消息后,将状态变量切换为Chord网络状态,通过超级节点下载其他节点的地址信息,构造指针表,形成Chord网络的分组。
22.权利要求15、16或者17的方法,其中,当有超级节点失效后,在第二级网络中更新超级节点;对于Gnutella网络,通过在网络中洪泛地址替换消息更新每个节点中的地址向量;对于Schord网络,由超级节点向网络中的每个节点分别发送地址替换消息;对于Chord分组,通过在Chord环上顺序传递地址替换消息更新环上每个节点的地址向量。
CN 201010265950 2010-08-26 2010-08-26 一种物联网中的层次式Chord分组网络及其组织方法 Expired - Fee Related CN102378409B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010265950 CN102378409B (zh) 2010-08-26 2010-08-26 一种物联网中的层次式Chord分组网络及其组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010265950 CN102378409B (zh) 2010-08-26 2010-08-26 一种物联网中的层次式Chord分组网络及其组织方法

Publications (2)

Publication Number Publication Date
CN102378409A true CN102378409A (zh) 2012-03-14
CN102378409B CN102378409B (zh) 2013-03-27

Family

ID=45796125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010265950 Expired - Fee Related CN102378409B (zh) 2010-08-26 2010-08-26 一种物联网中的层次式Chord分组网络及其组织方法

Country Status (1)

Country Link
CN (1) CN102378409B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694849A (zh) * 2012-05-14 2012-09-26 中国科学院计算机网络信息中心 物联网资源信息获取方法、终端设备及系统
CN103546327A (zh) * 2013-11-05 2014-01-29 重庆邮电大学 一种建立基于jxta的混合式拓扑的网络管理模型的方法
CN104798347A (zh) * 2012-12-28 2015-07-22 华为技术有限公司 分布式通信系统中的局部分区
CN109067851A (zh) * 2018-07-13 2018-12-21 中国电子科技集团公司第十五研究所 一种物联网中物体信息的发现方法
CN109687996A (zh) * 2018-12-06 2019-04-26 成都佰纳瑞信息技术有限公司 一种适用于区块链网络的切分方法
CN109962942A (zh) * 2017-12-22 2019-07-02 中国电信股份有限公司 副本更新方法和装置以及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064649A (zh) * 2007-02-02 2007-10-31 华为技术有限公司 选举超级节点、搜索网络节点或资源的方法、装置及系统
CN101364996A (zh) * 2008-07-23 2009-02-11 西安电子科技大学 混合层次化p2p静态网络
EP2031816A1 (en) * 2007-08-29 2009-03-04 NTT DoCoMo Inc. Optimal operation of hierarchical peer-to-peer networks
CN101605094A (zh) * 2009-04-29 2009-12-16 哈尔滨工程大学 基于点对点网络的环模型及其路由算法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064649A (zh) * 2007-02-02 2007-10-31 华为技术有限公司 选举超级节点、搜索网络节点或资源的方法、装置及系统
EP2031816A1 (en) * 2007-08-29 2009-03-04 NTT DoCoMo Inc. Optimal operation of hierarchical peer-to-peer networks
CN101364996A (zh) * 2008-07-23 2009-02-11 西安电子科技大学 混合层次化p2p静态网络
CN101605094A (zh) * 2009-04-29 2009-12-16 哈尔滨工程大学 基于点对点网络的环模型及其路由算法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694849A (zh) * 2012-05-14 2012-09-26 中国科学院计算机网络信息中心 物联网资源信息获取方法、终端设备及系统
CN104798347A (zh) * 2012-12-28 2015-07-22 华为技术有限公司 分布式通信系统中的局部分区
EP2918051A4 (en) * 2012-12-28 2015-11-25 Huawei Tech Co Ltd LOCAL PARTITIONING IN A DISTRIBUTED COMMUNICATION SYSTEM
CN103546327A (zh) * 2013-11-05 2014-01-29 重庆邮电大学 一种建立基于jxta的混合式拓扑的网络管理模型的方法
CN109962942A (zh) * 2017-12-22 2019-07-02 中国电信股份有限公司 副本更新方法和装置以及计算机可读存储介质
CN109962942B (zh) * 2017-12-22 2022-06-07 天翼云科技有限公司 副本更新方法和装置以及计算机可读存储介质
CN109067851A (zh) * 2018-07-13 2018-12-21 中国电子科技集团公司第十五研究所 一种物联网中物体信息的发现方法
CN109067851B (zh) * 2018-07-13 2020-11-13 中国电子科技集团公司第十五研究所 一种物联网中物体信息的发现方法
CN109687996A (zh) * 2018-12-06 2019-04-26 成都佰纳瑞信息技术有限公司 一种适用于区块链网络的切分方法
CN109687996B (zh) * 2018-12-06 2021-10-12 成都佰纳瑞信息技术有限公司 一种适用于区块链网络的切分方法

Also Published As

Publication number Publication date
CN102378409B (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
Malatras State-of-the-art survey on P2P overlay networks in pervasive computing environments
Risson et al. Survey of research towards robust peer-to-peer networks: Search methods
Fraigniaud et al. D2B: A de Bruijn based content-addressable network
Artigas et al. Cyclone: A novel design schema for hierarchical DHTs
CN102378409B (zh) 一种物联网中的层次式Chord分组网络及其组织方法
CN101102250B (zh) 用于自组织网络的分布式散列机制
CN101645039B (zh) 一种基于彼得森图的数据存储和读取方法
US8296420B2 (en) Method and apparatus for constructing a DHT-based global namespace
CN102714665A (zh) 用于分解对等网络并且使用分解的对等网络的方法和设备
KR20070110367A (ko) 데이터 관리 방법 및 장치
CN105357247B (zh) 基于分层云对等网络的多维属性云资源区间查找方法
EP2772040A2 (en) Prefix and predictive search in a distributed hash table
CN102378407B (zh) 一种物联网中的对象名字解析系统及其解析方法
Mischke et al. A methodology for the design of distributed search in P2P middleware
Ahmed et al. Plexus: A scalable peer-to-peer protocol enabling efficient subset search
US7623511B2 (en) Device and method for retrieving/storing electronic data in a system with a plurality of data processing units
Datta et al. On de Bruijn routing in distributed hash tables: there and back again
CN102469115A (zh) 一种在p2p网络中基于兴趣社区的覆盖网络搜索架构
Li et al. Grid resource discovery based on semantic P2P communities
Ahulló et al. Supporting geographical queries onto DHTs
Villaça et al. HCube: Routing and similarity search in data centers
Sen et al. MARQUES: Distributed multi-attribute range query solution using space filling curve on DTHs
Harrell et al. Survey of locating & routing in peer-to-peer systems
Chen et al. An improvement to the Chord-based P2P routing algorithm
Götz et al. 8. Selected DHT Algorithms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130327

Termination date: 20140826

EXPY Termination of patent right or utility model