专利名称:一种结构化对等网络中消息的广播系统及方法
技术领域:
本发明涉及通讯领域,尤其是涉及一种结构化对等网络中消息的广播系统及方 法。
背景技术:
对等互联(Peer-to-Peer,P2P,或称点对点)技术可以让用户可以直接连接到其 他用户的计算机,进行文件共享与交换。同时P2P技术在深度搜索、分布计算以及协同工作 等方面也应用广泛。分布式P2P网络通常基于分布式哈希表(Distributed Hash Table, DHT)构建路 由表,进行寻址和存储。基于DHT的P2P网络的一个重要特点是网络不存在严格的中心服 务器,但叠加网具有严格的拓扑结构,通常一个节点保存只能看到叠加网的部分拓扑,并负 责存储一小部分数据。图1是现有技术中一种DHT网络的结构示意图。如图1所示,对叠加网中的任一 个节点,将整个叠加网分成若干分段,并根据一定规则从每个分段中选择一个或多个节点 加入到自己的路由表中,路由表中的节点也称为路由表节点,其对应的分段称为路由表节 点的负责路由区间,如节点A为节点N的路由表节点,其对应的负责路由区间为分段3。节 点路由表一般的创建规则是距离本节点越近的分段选择的节点越密集,越远的分段选择的 节点越稀疏,这样可以保证在有限的跳数内寻址到所有节点;在消息路由过程中,一个路由 表节点负责到该分段内节点的消息的路由,通过多节点协作完成整网间的路由。节点的负 责路由区间,不同的协议其实现有所不同,比如Chord算法在距离本节点至少为2~(i-l)的 第一个节点;Kademlia算法在距离本节点[2~ (i_l),2~i)的分区内选择至多k个节点,并 且距离采用异或运算;I^astry算法在具有不同的前缀匹配位数的节点空间里任意选择一 个节点加入到路由表。消息广播是网络的一种基本功能,如实现短消息通知等。在DHT网络中消息广播 还有一些特殊的应用需求,如网络拓扑收集、内容搜索等。在DHT网络中,由于没有节点知 晓完整的网络拓扑,对消息广播提出了挑战。常见的P2P消息广播算法,如基于(Gnutella 协议的网络爬虫用于搜集P2P节点、搜索或统计叠加网的共享文件信息等,其基本原理是 泛洪的广播机制,很多现有算法也是对泛洪方式的改进,如限制泛洪搜索的宽度等。发明人在实现本发明时,发现现有技术至少存在这一缺陷前述的消息广播方法 用于拥有几十万、上百万甚至更多节点的大规模DHT网络中时,很容易产生冗余消息,造成 网络负担过重,引发网络风暴。另外,还有一种单跳DHT网络的消息广播算法是基于每个节 点知晓全局网络拓扑,对于典型的多跳DHT网络并不适用。
发明内容
本发明所要解决的技术问题,在于需要提供一种结构化对等网络中消息的广播系 统及方法,以完成结构化对等网络中的消息广播。4
为了解决上述技术问题,本发明提供了一种结构化对等网络中消息的广播方法, 其中所述消息由发起节点开始逐级广播,每一级至少包含广播节点;在每一级中,广播 节点确定本级广播范围并指示下一级广播范围,且根据本级广播范围将所述消息广播给本 级的接收节点,本级的接收节点收到所述消息后作为下一级的广播节点,继续广播所述消 息;某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点 终止广播;其中,第一级中的广播节点为所述发起节点。优选地,所述每一级的广播节点,根据分布式哈希表算法为本地路由表中的每个 路由表节点计算负责路由区间,据此确定所述本级广播范围;并将本地路由表中的路由表 节点的负责路由区间,指示为所述下一级广播范围。优选地,所述分布式哈希表算法包括Chord算法、Kademlia算法或I^stry算法。优选地,所述每一级的广播节点根据所述分布式哈希表算法为本地路由表节点计 算负责路由区间,当存在一个以上的路由表节点有共同的负责路由区间时,任意选择其中 一个路由表节点负责本级广播,或者将所述负责路由区间细分给若干个路由表节点,以负 责本级广播。优选地,所述每一级的广播节点将所述负责路由区间细分给若干个路由表节点的 方法,包括折半分配法。优选地,所述每一级的广播节点,将所指示的下一级广播范围携带于所述消息中 进行广播,或者通过其他消息进行广播。为了解决上述技术问题,本发明还提供了一种结构化对等网络中消息的广播系 统,所述消息由发起节点在该系统内开始逐级广播,每一级至少包含广播节点,在每一级 中广播节点用于确定本级广播范围并指示下一级广播范围,且根据本级广播范围将 所述消息广播给本级的接收节点;本级的接收节点,用于收到所述消息后作为下一级的广播节点,继续广播所述消 息;其中,某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级 的广播节点终止广播;其中,第一级中的广播节点为所述发起节点。优选地,所述每一级的广播节点,用于根据分布式哈希表算法为本地路由表中的 每个路由表节点计算负责路由区间,据此确定所述本级广播范围;并用于将本地路由表中 的路由表节点的负责路由区间,指示为所述下一级广播范围。优选地,所述每一级的广播节点为本地路由表中的每个路由表节点计算负责路由 区间的所述分布式哈希表算法,包括Chord算法、Kademlia算法或I^astry算法。优选地,所述每一级的广播节点根据所述分布式哈希表算法为本地路由表节点计 算负责路由区间,当存在一个以上的路由表节点有共同的负责路由区间时,用于任意选择 其中一个路由表节点负责本级广播,或者将所述负责路由区间细分给若干个路由表节点, 以负责本级广播。
优选地,所述每一级的广播节点将所述负责路由区间细分给若干个路由表节点的 方法,包括折半分配法。优选地,所述每一级的广播节点,用于将所指示的下一级广播范围携带于所述消 息中进行广播,或者通过其他消息进行广播。本发明系统及方法主要针对现有消息广播技术应用于DHT网络的不足,尤其适用 于网络拓扑结构和路由协议的消息的广播。与现有技术相比,本发明提供的DHT网络中的 消息广播机制,能快速地将消息广播到网络中的所有节点,且与具体网络拓扑结构和路由 协议无关,适应于多种DHT网络。本发明方法的消息广播基于DHT网络特性,采用多节点并 行多级广播、各级消息广播范围无重叠,从而阻止了网络冗余消息的产生。本发明方法可以 用于DHT网络的消息广播、网络管理(如节点收集、拓扑收集等)以及需要广播消息的内容 搜索。同时由于充分利用的DHT网络的路由特性,保证消息可以快速通知到所有节点,消息 广播过程不会产生冗余消息,避免网络风暴的发生。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利 要求书以及附图中所特别指出的结构来实现和获得。
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例一起用于解释本发明,并不构成对本发明的限制。在附图中图1是现有技术中一种DHT网络的结构示意图;图2是本发明方法实施例的流程示意图;图3是本发明方法中DHT网络消息广播节点交互实施例流程示意图;图4是本发明方法中一个对等节点的广播消息处理实施例流程示意图;图5是本发明方法在Chord网络实现消息广播实施例的流程示意图;图6是本发明方法在Kademlia网络实现消息广播实施例的流程示意图;图7是本发明方法在I^stry网络实现消息广播实施例的流程示意图。
具体实施例方式以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用 技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结 合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机 可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况 下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明提供了一种适用于所有DHT网络的消息广播机制,其核心思想是消息由发 起节点开始逐级广播,每一级中至少包含有广播节点;而在每一级中,由广播节点确定本级 广播范围,并向接收节点指示下一级广播范围,且广播节点根据该本级广播范围将消息广 播给本级的接收节点,该本级的接收节点收到该消息后,即作为下一级的广播节点继续广 播该消息;
某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播 节点就终止广播;其中,第一级中的广播节点为所述发起节点。如此,即可阻止消息在全网 的重复传播,避免产生冗余消息。图2是本发明方法实施例的流程示意图。如图2所示,本发明方法主要包括如下 步骤步骤S210,对等网络中广播消息时,消息的发起节点根据具体的DHT算法为本地 路由表中的每个路由表节点计算负责路由区间,也即确定第一级的广播范围;步骤S220,向本地路由表中的路由表节点广播该消息时,发起节点一并广播每个 路由表节点的负责路由区间,作为接收节点进一步广播该消息的广播范围,也即指示第二 级的广播范围;步骤S230,接收节点(第一级的接收节点)收到广播的该消息时,提取该消息的广 播范围(发起节点指示的第二级的广播范围),根据具体采用的DHT算法在该广播范围内为 每个路由表节点计算各节点的负责路由区间(也即确定第二级的广播范围),并向本地路 由表中在指定广播范围内的每个路由表节点进一步广播该消息;当本地路由表中位于该范 围内的路由表节点不存在时,终止该消息的广播。上述步骤S210及步骤S230中,根据DHT算法指定广播范围内的路由表节点的负 责路由区间时,可能获得一个或一个以上的路由表节点有相同的负责路由区间;当存在一 个以上的路由表节点有相同的负责路由区间时,可以任意选择其中一个路由表节点负责该 范围内的进一步广播,其它路由表节点不再由所选择的该节点发起消息的广播;也可以由 所选择的该节点将该负责路由区间按照一定的规则进一步细分给这几个路由表节点,如采 用折半分配方法等;上述步骤S220及步骤S230中,将该每个路由表节点的负责路由区间携带于该消 息中进行广播;在其他实施例中,也可以由发起节点通过其他消息广播给接收节点;上述步骤S220及步骤S230中,存在多个路由表节点有相同的负责路由区间时,可 以选择其中一个路由表节点向其广播该消息,并将该负责路由区间作为该路由表节点的进 一步广播的广播范围,其它路由表节点不再进行由发起节点进行广播;在其他实施例中,也 可以将该负责路由区间进一步细分给各个路由表节点作为该路由表节点的进一步广播的 广播范围。图3是本发明方法中DHT网络消息广播节点交互实施例的流程示意图。发起节点 N要在整个DHT网络上广播一个消息,首先根据网络采用的具体DHT算法为本地路由表中 的每个节点计算其负责路由区间,并向路由表节点广播该消息,同时广播消息携带该路由 表节点的负责路由区间作为该路由表节点需要负责进一步广播的广播范围。对于发起节点 N的所有路由表节点,迭代地进行下述过程,这里举例其中的一个节点B说明,路由表节点B 收到该消息时,若节点B的路由表中有路由表节点位于节点B负责的广播范围内,则对该路 由表节点进一步广播消息,否则节点B终止消息的广播。要说明的是,图3是一个消息广播 中节点间交互的流程示意图,具体如何确定路由表节点的负责路由区间,在后续的图5,图 6以及图7中举例说明了在Chord、Kademlia、Pastry三种DHT算法中的实现,但是本发明 技术方案并不限于这三种算法。如图3所示,DHT网络消息广播节点交互实施例的具体步 骤,主要包括7
步骤S310,发起节点N要在整个DHT网络上广播一个消息M,首先根据网络采用 的具体DHT算法为本地路由表中的每个节点计算其负责路由区间,并向其路由表中的路 由表节点广播该消息,广播的该消息中携带每一个路由表节点的负责路由区间作为其进一 步广播的广播范围,比如其中的一个路由表节点B,其进一步广播的广播范围为[IDmin, IDmax);其中,发起节点N计算其路由表中的节点负责路由区间的方法,是根据网络采用 的具体DHT算法决定的;其中,发起节点N的所有路由表节点负责的进一步广播范围[IDmin,IDmax)的并 集,要覆盖对等网络节点空间内的所有节点;其中,发起节点N计算的路由表节点的负责路由区间,在不同的DHT算法中,可能 获得一个或一个以上的路由表节点有相同的负责路由区间;步骤S320,发起节点N的一个路由表节点B收到该消息,提取该消息的进一步广 播范围为[IDmin,IDmax),节点B搜集其本地路由表中所有节点ID位于进一步广播范围 [IDmin, IDmax)内的路由表节点,同时在该进一步广播范围内计算每个路由表节点的负责 路由区间;如其中的一个路由表节点C的负责路由区间为[IDmin' , IDmax');步骤S330,节点B向步骤S320搜集的路由表节点转发广播消息,广播的该消息中 携带每一个路由表节点在广播范围[IDmin,IDmax)内的负责路由区间作为其进一步的广 播范围,如其中一个路由表节点C的进一步广播范围为[IDmin' , IDmax');其中,节点B计算其路由表节点在范围[IDmin,IDmaX)内的负责路由区间的方法, 是根据网络采用的具体的DHT算法决定的;本发明中图5、图6、图7举例说明了在Chord、 Kademlia、Pastry三种DHT算法中的实现;其中,节点B的所有路由表节点负责的进一步广播范围[IDmin' ,IDmax')的并 集,要覆盖节点B负责广播范围[IDmin,IDmax)中的所有节点;步骤S340,节点B的路由表节点C收到该广播消息时,搜集其本地路由表中所有节 点ID位于[IDmin' ,IDmax')范围内的路由表节点;若不存在这样的路由表节点,则节点 C终止该消息的广播,否则按照步骤S330的方法进一步广播该消息。图4是本发明方法中,网络中的一个对等节点的广播消息处理实施例流程示意 图。一个对等节点收到一条广播消息时,首先提取广播消息携带的广播范围,并搜集本节点 路由表中在该范围内的路由表节点,同时根据网络采用的具体DHT算法计算这些路由表节 点在该广播范围内的负责路由区间,并将这些负责路由区间作为其进一步的广播范围。要 说明的是,图4所示实施例仅给出一个示意,具体如何确定路由表节点的负责路由区间,后 续图5,图6以及图7中举例说明了在Chord、Kademlia、Pastry三种DHT算法中的实现。结 合图3所示实施例,图4所示对等节点的广播消息处理流程,主要包括如下步骤步骤S410,节点B收到一条广播消息,在本节点处理该消息;步骤S420,节点B从该广播消息中提取本节点需要对该消息进行进一步广播的范 围为[IDmin,IDmax);其中,如果节点B为发起节点时,那么节点B将对等网络的整个节点 空间作为本节点需要进一步广播该消息的范围;步骤S430,获取本地路由表中所有节点ID在[IDmin,IDmax)范围内的路由表节 点,得到节点序列{Nodei},根据网络采用的DHT算法为每个路由表节点Nodei计算其负责路由区间,如路由表节点Nodei的负责路由区间为[IDmin' , IDmax');其中,节点B的所 有路由表节点的负责路由区间[IDmin' , IDmax')的并集,要覆盖节点B负责广播范围 [IDmin, IDmax)中的所有节点;步骤S440,判断节点序列{Nodei}是否为空,若为空,则跳转到步骤S460,否则跳 转到步骤S450 ;步骤S450,节点B向路由表节点Nodei进一步广播消息,广播的该消息中携带路由 表节点Nodei的负责路由区间[IDmin',IDmax'),该负责路由区间[IDmin',IDmax') 作为该Nodei节点进一步广播的广播范围;序列{Nodei}中所有节点处理完成后,转步骤 S470 ;其中,节点B对其路由表节点Nodei在[IDmin,IDmax)范围内的负责路由区间 [IDmin' , IDmax'),可以根据不同的DHT算法决定;其中,节点B在根据网络采用的DHT算法计算路由表节点序列{Nodei}的负责路 由区间时,可能获得一个以上的路由表节点有相同的负责路由区间,此时节点B可以任意 选择其中一个路由表节点负责该范围内的进一步广播,其它路由表节点不再由节点B发起 消息的广播;也可以由节点B将该负责路由区间按照一定的规则进一步细分给这几个路由 表节点,如采用折半分配方法等;步骤S460,节点B判断节点序列{Nodei}为空,即在节点B的本地路由表中没有路 由表节点位于范围[IDmin,IDmax)内,节点B不需要进一步广播消息;步骤S470,本节点处理该广播消息结束。前述的Chord算法是最经典的DHT算法之一,其网络拓扑是一种带弦环结构。每 个节点的路由表项为m个(m为节点ID的位数),第i个表项保存距离本节点至少距离为 2"(i-l)的第一个节点,可以理解为距离本节点[2~(i-l),2~i)范围区域的第一个节点,若 该区域内为空,则取该范围后的第一个节点。即第i个表项的路由表节点的负责路由区间 为[2~(i-l),2~i)。图5是本发明方法在Chord网络实现消息广播实施例的流程示意图。图5所示实 施例表示一个4位二进制ID空间的Chord叠加网,图中Nk表示节点ID为k的节点。叠加 网中有N4、N8、N14等共10个节点,同时标出了节点N8和节点N42的指向表。在Chord网 络中实施本发明的步骤描述如下,描述中对同层次的中间节点仅选择一个节点作为代表进 行描述步骤S510,节点N8发起一条整网广播消息,向其指向表中所有节点进一步广播该 消息,广播消息内容携带该节点相应的进一步广播范围;节点N8的指向表中共有m4、N21、 N32、N42四个路由表节点,各自的负责路由区间即进一步广播范围分别为[12,16)、[16, 24)、[24,40)、[40,8);其中,节点N8在为需要进行转发广播消息的路由表节点分配进一步广播范围时, 可以根据Chord算法特性进一步优化广播范围的设置。如Chord算法的指向表第i行的节 点是取距离本节点距离大于2~(i-l)且节点ID最小的节点,则可以据此将其四个路由表节 点的进一步广播范围设置为(14,16), (21,24), (32,40), (42,8);步骤S520,在消息的下一步广播过程中,如节点N42收到进一步广播范围为W0, 8)的广播消息,节点N42搜集本地路由表中节点ID位于该范围内的节点有N48、N51、N4,节点N8向这三个节点广播该消息,同时指定各自的进一步广播范围即负责路由区间分别为 [46,50)、 [50,58)、 [58,8);步骤S530,在消息的下一步广播过程中,如节点N51收到进一步广播范围为(51, 58)的广播消息,节点N51搜集本地路由表中节点ID位于该范围内有唯一的节点N56,节点 N51向节点N56广播该消息,同时指定节点N56的进一步广播范围即负责路由区间为[55, 58);步骤S540,在消息的下一步广播过程中,节点N56收到进一步广播范围为[55,58) 的广播消息,节点N56搜集本地路由表中节点ID位于该范围内不存在路由表节点,则终止 该消息的广播。Kademlia算法也是常用的DHT算法,电驴、BitTorrent等应用已经将该算法实 际应用到互联网上。与Chord算法类似,Kademlia算法中每个节点维护一个具有m项称 为K桶(k-buckets)的路由表(m为节点ID的位数),其中第i个桶保存到本节点的异或 距离为[2~(i-l),2~i))的一些节点,即第i个桶内的k个路由表节点的负责路由区间为 [2" (i-1),2~i))。为限制路由表大小,规定每个桶中节点数目最大为K,同时每个桶内的节 点不是按照数值大小排序的,而是通过一种“捎带更新”机制实现按最近访问时间排序。图6是本发明方法在Kademlia网络实现消息广播实施例的流程示意图。图6所 示的实施例表示了一个4位二进制ID空间的Kademlia叠加网,图中Nk表示节点ID为k 的节点。叠加网中有N4、N8、N14等共10个节点,同时标出了节点N8的路由表,注意这里是 指到本节点的异或距离。在Kademlia网络中实施本发明方法的步骤描述如下,描述中对同 层次的中间节点仅选择一个节点作为代表进行描述步骤S610,节点N8发起一条整网广播消息,向其路由表中所有路由表节点进一步 广播该消息,广播的该消息内容携带该节点相应的进一步广播范围;节点N8的路由表中共 有附4、N4、N21、N48、N56、N32六个路由表节点,其中节点N48、N56、N32三个节点有共同的 负责路由区间[32,64),选择节点N48负责该区间内节点的进一步广播;节点N8向m4、N4、 N21、N48四个节点进一步广播消息,同时设置各节点的进一步广播范围即负责路由区间分 别为[12,16)、[0,8), [16,32)、[32,64);其中,节点N8可以将N48、N56、N32三个节点共同的负责路由区间[32,64)进一步 分配到这三个路由表节点,如节点N48负责[56,64)、节点N56负责[48,56)、节点N32负责 [32,48)范围内消息的进一步广播;步骤S620,在消息的下一步广播过程中,节点N48收到进一步广播范围为[32,64) 的广播消息;节点N48的路由表中属于[32,64)范围内的路由表节点有N51、N56、N38、N42、 N32五个节点,其中节点N38、N42、N32共同三个节点有共同的负责路由区间[32,48),选择 节点N38负责该区间内节点的进一步广播;节点N48向N51、N56、N38三个节点进一步广播 该消息,同时设置各节点的进一步广播范围即负责路由区间分别为[50,52)、[56,64)、[32, 48);其中,节点N48也可以将N38、N42、N32三个节点共同的负责路由区间[32,48)进 一步分配到这三个路由表节点,如节点N38负责[38,40)、节点N42负责[40,48)、节点N32 负责[32,38)范围内消息的进一步广播;步骤S630,在消息的下一步广播过程中,节点N38收到进一步广播范围为[32,48)10的广播消息;节点N38搜集其本地路由表中节点ID在范围[32,48)内的节点有N32、N42两 个,节点N38向N32、N42两个节点进一步广播该消息,同时设置各节点的进一步广播范围即 负责路由区间为[32,36)、[40,48);步骤S640,在消息的下一步广播过程中,节点N32收到进一步广播范围为[32,36) 的广播消息,节点N32搜集本地路由表中节点ID位于该范围内不存在路由表节点,则终止 该消息的广播。Pastry网络是一个容错、高效、可扩展的混合式结构P2P网络,已经形成很多成功 的商业应用,如SCRIBE、PAST等。Pastry的路由表采用前缀匹配的方法构造,第i行第j个 路由表节点为节点ID的前i-Ι位与本节点ID前缀相同、第i位的值为j的一个节点,可以 得出其路由负责区间为前i位于路由表节点相同,后面各位取值任意的节点空间。I^astry 的节点除了维护路由表外,还有叶子集合邻居集,叶子集维护节点ID邻近的节点,邻居集 维护物理上邻近的节点。图7是本发明方法在I^stry网络实现消息广播实施例的流程示意图。图7所示 的实施例表示了一个8位4进制ID空间的I^astry叠加网的基本网络拓扑关系,同时标出 了若干节点和节点ID为10233102和30312203的节点的部分路由表内容。在I^astry网络 中实施本发明的步骤描述如下,描述中对同层次的中间节点仅选择一个节点作为代表进行 描述步骤S710,发起节点10233102发起一个整网广播消息,向其本地路由表中所有 路由表节点广播该消息,并设置每个节点的进一步广播范围;第一行第一列的路由表节点 02212102的进一步广播范围即负责路由区间为(00000000,0333333 ,第一行第四列的节 点31203203的进一步广播范围即负责路由区间为(30000000,3333333 等等;步骤S720,在消息的进一步广播过程中,节点31203203收到进一步广播范围 为(30000000,33333333)的广播消息;节点31203203进一步向本地路由表中位于该范围 内的路由表节点转发播消息,同时设置每个路由表节点的进一步广播范围;如向路由表 节点32032031转发广播消息,并设置其进一步广播范围即负责路由区间为(32000000, 32333333);向路由表节点30312203转发广播消息,并设置其进一步广播范围即负责路由 区间为(30000000,30333333);步骤S730,在消息的下一步广播过程中,节点30312203收到进一步广播范围 为(30000000,30333333)的广播消息;节点30312203收集其本地路由表中节点ID位于 (30000000,30333333)内节点不存在,则终止该消息的广播;其中,根据I^astry叠加网的特点,每个I^astry节点还保存有一个叶子集,根据叶 子集的中节点与本节点的节点ID最近特性可以在消息广播中进一步优化下一步转发广播 消息对象的数量;如节点在向路由表节点广播该消息的同时也向其叶子集中的节点广播该 消息,同时设置叶子集中的节点的进一步广播范围为其本身,即叶子集中的节点不需要进 一步转发该消息;这可以进一步加快消息的广播速度;其中,若每个I^stry节点同时向叶子集和路由表中的路由表节点转发广播消息, 对于同时出现在叶子集和路由表中的路由表节点,优先按照叶子集节点处理,即这样的路 由表节点不再按照步骤S730进行处理;这可以进一步减少拓扑收集造成的消息冗余。参照图2至图7所示的本发明方法各实施例,在本发明结构化对等网络中消息的广播系统实施例中,该消息由发起节点在该系统内开始逐级广播,每一级均至少包含广播 节点,而且每一级中的广播节点,用于确定本级广播范围并指示下一级广播范围,且根据本 级广播范围将该消息广播给本级的接收节点;本级的接收节点,用于收到该消息后作为下 一级的广播节点,继续广播该消息。在某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广 播节点终止广播。且第一级中的广播节点为该发起节点。在本发明系统实施例中,该每一级的广播节点,用于根据分布式哈希表算法为本 地路由表中的每个路由表节点计算负责路由区间,据此确定该本级广播范围;并用于将本 地路由表中的路由表节点的负责路由区间,指示为该下一级广播范围。在本发明系统实施例中,该每一级的广播节点为本地路由表中的每个路由表节 点计算负责路由区间的该分布式哈希表算法,包括但不限于Chord算法、Kademlia算法或 Pastry算法。根据Chord算法、Kademlia算法或I^stry算法计算负责路由区间的方法,请 分别参照图5至图7所示的方法实施例。在本发明系统实施例中,该每一级的广播节点根据该分布式哈希表算法为本地路 由表节点计算负责路由区间,当存在一个以上的路由表节点有共同的负责路由区间时,用 于任意选择其中一个路由表节点负责本级广播,或者将该负责路由区间细分给若干个路由 表节点,以负责本级广播。在本发明系统实施例中,该每一级的广播节点将该负责路由区间细分给若干个路 由表节点的方法,包括折半分配法。在本发明系统实施例中,该每一级的广播节点,用于将所指示的下一级广播范围 携带于该消息中进行广播,或者通过其他消息进行广播。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们 中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的 硬件和软件结合。虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采 用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本 发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化, 但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
权利要求
1.一种结构化对等网络中消息的广播方法,其特征在于所述消息由发起节点开始逐级广播,每一级至少包含广播节点;在每一级中,广播节点 确定本级广播范围并指示下一级广播范围,且根据本级广播范围将所述消息广播给本级的 接收节点,本级的接收节点收到所述消息后作为下一级的广播节点,继续广播所述消息;某 一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点终止广 播;其中,第一级中的广播节点为所述发起节点。
2.如权利要求1所述的方法,其特征在于所述每一级的广播节点,根据分布式哈希表算法为本地路由表中的每个路由表节点计 算负责路由区间,据此确定所述本级广播范围;并将本地路由表中的路由表节点的负责路 由区间,指示为所述下一级广播范围。
3.如权利要求2所述的方法,其特征在于所述分布式哈希表算法包括Chord算法、Kademlia算法或I^stry算法。
4.如权利要求2所述的方法,其特征在于所述每一级的广播节点根据所述分布式哈希表算法为本地路由表节点计算负责路由 区间,当存在一个以上的路由表节点有共同的负责路由区间时,任意选择其中一个路由表 节点负责本级广播,或者将所述负责路由区间细分给若干个路由表节点,以负责本级广播。
5.如权利要求4所述的方法,其特征在于所述每一级的广播节点将所述负责路由区间细分给若干个路由表节点的方法,包括折 半分配法。
6.如权利要求1所述的方法,其特征在于所述每一级的广播节点,将所指示的下一级广播范围携带于所述消息中进行广播,或 者通过其他消息进行广播。
7.—种结构化对等网络中消息的广播系统,其特征在于,所述消息由发起节点在该系 统内开始逐级广播,每一级至少包含广播节点,在每一级中广播节点用于确定本级广播范围并指示下一级广播范围,且根据本级广播范围将所述 消息广播给本级的接收节点;本级的接收节点,用于收到所述消息后作为下一级的广播节点,继续广播所述消息;其中,某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广 播节点终止广播;其中,第一级中的广播节点为所述发起节点。
8.如权利要求7所述的系统,其特征在于所述每一级的广播节点,用于根据分布式哈希表算法为本地路由表中的每个路由表节 点计算负责路由区间,据此确定所述本级广播范围;并用于将本地路由表中的路由表节点 的负责路由区间,指示为所述下一级广播范围。
9.如权利要求8所述的系统,其特征在于所述每一级的广播节点为本地路由表中的每个路由表节点计算负责路由区间的所述 分布式哈希表算法,包括Chord算法、Kademlia算法或I^astry算法。
10.如权利要求8所述的系统,其特征在于所述每一级的广播节点根据所述分布式哈希表算法为本地路由表节点计算负责路由 区间,当存在一个以上的路由表节点有共同的负责路由区间时,用于任意选择其中一个路 由表节点负责本级广播,或者将所述负责路由区间细分给若干个路由表节点,以负责本级 广播。
11.如权利要求10所述的系统,其特征在于所述每一级的广播节点将所述负责路由区间细分给若干个路由表节点的方法,包括折 半分配法。
12.如权利要求7所述的系统,其特征在于所述每一级的广播节点,用于将所指示的下一级广播范围携带于所述消息中进行广 播,或者通过其他消息进行广播。
全文摘要
本发明公开了一种结构化对等网络中消息的广播系统及方法,以完成结构化对等网络中的消息广播。该方法中,消息由发起节点开始逐级广播,每一级至少包含广播节点;在每一级中,广播节点确定本级广播范围并指示下一级广播范围,且根据本级广播范围将消息广播给本级的接收节点,本级的接收节点收到消息后作为下一级的广播节点,继续广播消息;某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点终止广播;其中,第一级中的广播节点为发起节点。本发明能快速地将消息广播到网络中的所有节点,且与具体网络拓扑结构和路由协议无关,适应于多种基于分布式哈希表网络。
文档编号H04L29/08GK102055655SQ20091021235
公开日2011年5月11日 申请日期2009年11月6日 优先权日2009年11月6日
发明者胡永生, 陈志峰 申请人:中兴通讯股份有限公司