CN102055655A - 一种结构化对等网络中消息的广播系统及方法 - Google Patents
一种结构化对等网络中消息的广播系统及方法 Download PDFInfo
- Publication number
- CN102055655A CN102055655A CN 200910212355 CN200910212355A CN102055655A CN 102055655 A CN102055655 A CN 102055655A CN 200910212355 CN200910212355 CN 200910212355 CN 200910212355 A CN200910212355 A CN 200910212355A CN 102055655 A CN102055655 A CN 102055655A
- Authority
- CN
- China
- Prior art keywords
- node
- routing table
- broadcasting
- broadcast
- responsible
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种结构化对等网络中消息的广播系统及方法,以完成结构化对等网络中的消息广播。该方法中,消息由发起节点开始逐级广播,每一级至少包含广播节点;在每一级中,广播节点确定本级广播范围并指示下一级广播范围,且根据本级广播范围将消息广播给本级的接收节点,本级的接收节点收到消息后作为下一级的广播节点,继续广播消息;某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点终止广播;其中,第一级中的广播节点为发起节点。本发明能快速地将消息广播到网络中的所有节点,且与具体网络拓扑结构和路由协议无关,适应于多种基于分布式哈希表网络。
Description
技术领域
本发明涉及通讯领域,尤其是涉及一种结构化对等网络中消息的广播系统及方法。
背景技术
对等互联(Peer-to-Peer,P2P,或称点对点)技术可以让用户可以直接连接到其他用户的计算机,进行文件共享与交换。同时P2P技术在深度搜索、分布计算以及协同工作等方面也应用广泛。
分布式P2P网络通常基于分布式哈希表(Distributed Hash Table,DHT)构建路由表,进行寻址和存储。基于DHT的P2P网络的一个重要特点是网络不存在严格的中心服务器,但叠加网具有严格的拓扑结构,通常一个节点保存只能看到叠加网的部分拓扑,并负责存储一小部分数据。
图1是现有技术中一种DHT网络的结构示意图。如图1所示,对叠加网中的任一个节点,将整个叠加网分成若干分段,并根据一定规则从每个分段中选择一个或多个节点加入到自己的路由表中,路由表中的节点也称为路由表节点,其对应的分段称为路由表节点的负责路由区间,如节点A为节点N的路由表节点,其对应的负责路由区间为分段3。节点路由表一般的创建规则是距离本节点越近的分段选择的节点越密集,越远的分段选择的节点越稀疏,这样可以保证在有限的跳数内寻址到所有节点;在消息路由过程中,一个路由表节点负责到该分段内节点的消息的路由,通过多节点协作完成整网间的路由。节点的负责路由区间,不同的协议其实现有所不同,比如Chord算法在距离本节点至少为2^(i-1)的第一个节点;Kademlia算法在距离本节点[2^(i-1),2^i)的分区内选择至多k个节点,并且距离采用异或运算;Pastry算法在具有不同的前缀匹配位数的节点空间里任意选择一个节点加入到路由表。
消息广播是网络的一种基本功能,如实现短消息通知等。在DHT网络中消息广播还有一些特殊的应用需求,如网络拓扑收集、内容搜索等。在DHT网络中,由于没有节点知晓完整的网络拓扑,对消息广播提出了挑战。常见的P2P消息广播算法,如基于Gnutella协议的网络爬虫用于搜集P2P节点、搜索或统计叠加网的共享文件信息等,其基本原理是泛洪的广播机制,很多现有算法也是对泛洪方式的改进,如限制泛洪搜索的宽度等。
发明人在实现本发明时,发现现有技术至少存在这一缺陷:前述的消息广播方法用于拥有几十万、上百万甚至更多节点的大规模DHT网络中时,很容易产生冗余消息,造成网络负担过重,引发网络风暴。另外,还有一种单跳DHT网络的消息广播算法是基于每个节点知晓全局网络拓扑,对于典型的多跳DHT网络并不适用。
发明内容
本发明所要解决的技术问题,在于需要提供一种结构化对等网络中消息的广播系统及方法,以完成结构化对等网络中的消息广播。
为了解决上述技术问题,本发明提供了一种结构化对等网络中消息的广播方法,其中:
所述消息由发起节点开始逐级广播,每一级至少包含广播节点;在每一级中,广播节点确定本级广播范围并指示下一级广播范围,且根据本级广播范围将所述消息广播给本级的接收节点,本级的接收节点收到所述消息后作为下一级的广播节点,继续广播所述消息;某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点终止广播;
其中,第一级中的广播节点为所述发起节点。
优选地,所述每一级的广播节点,根据分布式哈希表算法为本地路由表中的每个路由表节点计算负责路由区间,据此确定所述本级广播范围;并将本地路由表中的路由表节点的负责路由区间,指示为所述下一级广播范围。
优选地,所述分布式哈希表算法包括Chord算法、Kademlia算法或Pastry算法。
优选地,所述每一级的广播节点根据所述分布式哈希表算法为本地路由表节点计算负责路由区间,当存在一个以上的路由表节点有共同的负责路由区间时,任意选择其中一个路由表节点负责本级广播,或者将所述负责路由区间细分给若干个路由表节点,以负责本级广播。
优选地,所述每一级的广播节点将所述负责路由区间细分给若干个路由表节点的方法,包括折半分配法。
优选地,所述每一级的广播节点,将所指示的下一级广播范围携带于所述消息中进行广播,或者通过其他消息进行广播。
为了解决上述技术问题,本发明还提供了一种结构化对等网络中消息的广播系统,所述消息由发起节点在该系统内开始逐级广播,每一级至少包含广播节点,在每一级中:
广播节点用于确定本级广播范围并指示下一级广播范围,且根据本级广播范围将所述消息广播给本级的接收节点;
本级的接收节点,用于收到所述消息后作为下一级的广播节点,继续广播所述消息;
其中,某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点终止广播;
其中,第一级中的广播节点为所述发起节点。
优选地,所述每一级的广播节点,用于根据分布式哈希表算法为本地路由表中的每个路由表节点计算负责路由区间,据此确定所述本级广播范围;并用于将本地路由表中的路由表节点的负责路由区间,指示为所述下一级广播范围。
优选地,所述每一级的广播节点为本地路由表中的每个路由表节点计算负责路由区间的所述分布式哈希表算法,包括Chord算法、Kademlia算法或Pastry算法。
优选地,所述每一级的广播节点根据所述分布式哈希表算法为本地路由表节点计算负责路由区间,当存在一个以上的路由表节点有共同的负责路由区间时,用于任意选择其中一个路由表节点负责本级广播,或者将所述负责路由区间细分给若干个路由表节点,以负责本级广播。
优选地,所述每一级的广播节点将所述负责路由区间细分给若干个路由表节点的方法,包括折半分配法。
优选地,所述每一级的广播节点,用于将所指示的下一级广播范围携带于所述消息中进行广播,或者通过其他消息进行广播。
本发明系统及方法主要针对现有消息广播技术应用于DHT网络的不足,尤其适用于网络拓扑结构和路由协议的消息的广播。与现有技术相比,本发明提供的DHT网络中的消息广播机制,能快速地将消息广播到网络中的所有节点,且与具体网络拓扑结构和路由协议无关,适应于多种DHT网络。本发明方法的消息广播基于DHT网络特性,采用多节点并行多级广播、各级消息广播范围无重叠,从而阻止了网络冗余消息的产生。本发明方法可以用于DHT网络的消息广播、网络管理(如节点收集、拓扑收集等)以及需要广播消息的内容搜索。同时由于充分利用的DHT网络的路由特性,保证消息可以快速通知到所有节点,消息广播过程不会产生冗余消息,避免网络风暴的发生。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是现有技术中一种DHT网络的结构示意图;
图2是本发明方法实施例的流程示意图;
图3是本发明方法中DHT网络消息广播节点交互实施例流程示意图;
图4是本发明方法中一个对等节点的广播消息处理实施例流程示意图;
图5是本发明方法在Chord网络实现消息广播实施例的流程示意图;
图6是本发明方法在Kademlia网络实现消息广播实施例的流程示意图;
图7是本发明方法在Pastry网络实现消息广播实施例的流程示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明提供了一种适用于所有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网络消息广播节点交互实施例的具体步骤,主要包括:
步骤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-1)的第一个节点,可以理解为距离本节点[2^(i-1),2^i)范围区域的第一个节点,若该区域内为空,则取该范围后的第一个节点。即第i个表项的路由表节点的负责路由区间为[2^(i-1),2^i)。
图5是本发明方法在Chord网络实现消息广播实施例的流程示意图。图5所示实施例表示一个4位二进制ID空间的Chord叠加网,图中Nk表示节点ID为k的节点。叠加网中有N4、N8、N14等共10个节点,同时标出了节点N8和节点N42的指向表。在Chord网络中实施本发明的步骤描述如下,描述中对同层次的中间节点仅选择一个节点作为代表进行描述:
步骤S510,节点N8发起一条整网广播消息,向其指向表中所有节点进一步广播该消息,广播消息内容携带该节点相应的进一步广播范围;节点N8的指向表中共有N14、N21、N32、N42四个路由表节点,各自的负责路由区间即进一步广播范围分别为[12,16)、[16,24)、[24,40)、[40,8);
其中,节点N8在为需要进行转发广播消息的路由表节点分配进一步广播范围时,可以根据Chord算法特性进一步优化广播范围的设置。如Chord算法的指向表第i行的节点是取距离本节点距离大于2^(i-1)且节点ID最小的节点,则可以据此将其四个路由表节点的进一步广播范围设置为(14,16)、(21,24)、(32,40)、(42,8);
步骤S520,在消息的下一步广播过程中,如节点N42收到进一步广播范围为[40,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-1),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的路由表中共有N14、N4、N21、N48、N56、N32六个路由表节点,其中节点N48、N56、N32三个节点有共同的负责路由区间[32,64),选择节点N48负责该区间内节点的进一步广播;节点N8向N14、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)的广播消息;节点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-1位与本节点ID前缀相同、第i位的值为j的一个节点,可以得出其路由负责区间为前i位于路由表节点相同,后面各位取值任意的节点空间。Pastry的节点除了维护路由表外,还有叶子集合邻居集,叶子集维护节点ID邻近的节点,邻居集维护物理上邻近的节点。
图7是本发明方法在Pastry网络实现消息广播实施例的流程示意图。图7所示的实施例表示了一个8位4进制ID空间的Pastry叠加网的基本网络拓扑关系,同时标出了若干节点和节点ID为10233102和30312203的节点的部分路由表内容。在Pastry网络中实施本发明的步骤描述如下,描述中对同层次的中间节点仅选择一个节点作为代表进行描述:
步骤S710,发起节点10233102发起一个整网广播消息,向其本地路由表中所有路由表节点广播该消息,并设置每个节点的进一步广播范围;第一行第一列的路由表节点02212102的进一步广播范围即负责路由区间为(00000000,03333333),第一行第四列的节点31203203的进一步广播范围即负责路由区间为(30000000,33333333)等等;
步骤S720,在消息的进一步广播过程中,节点31203203收到进一步广播范围为(30000000,33333333)的广播消息;节点31203203进一步向本地路由表中位于该范围内的路由表节点转发播消息,同时设置每个路由表节点的进一步广播范围;如向路由表节点32032031转发广播消息,并设置其进一步广播范围即负责路由区间为(32000000,32333333);向路由表节点30312203转发广播消息,并设置其进一步广播范围即负责路由区间为(30000000,30333333);
步骤S730,在消息的下一步广播过程中,节点30312203收到进一步广播范围为(30000000,30333333)的广播消息;节点30312203收集其本地路由表中节点ID位于(30000000,30333333)内节点不存在,则终止该消息的广播;
其中,根据Pastry叠加网的特点,每个Pastry节点还保存有一个叶子集,根据叶子集的中节点与本节点的节点ID最近特性可以在消息广播中进一步优化下一步转发广播消息对象的数量;如节点在向路由表节点广播该消息的同时也向其叶子集中的节点广播该消息,同时设置叶子集中的节点的进一步广播范围为其本身,即叶子集中的节点不需要进一步转发该消息;这可以进一步加快消息的广播速度;
其中,若每个Pastry节点同时向叶子集和路由表中的路由表节点转发广播消息,对于同时出现在叶子集和路由表中的路由表节点,优先按照叶子集节点处理,即这样的路由表节点不再按照步骤S730进行处理;这可以进一步减少拓扑收集造成的消息冗余。
参照图2至图7所示的本发明方法各实施例,在本发明结构化对等网络中消息的广播系统实施例中,该消息由发起节点在该系统内开始逐级广播,每一级均至少包含广播节点,而且每一级中的广播节点,用于确定本级广播范围并指示下一级广播范围,且根据本级广播范围将该消息广播给本级的接收节点;本级的接收节点,用于收到该消息后作为下一级的广播节点,继续广播该消息。
在某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点终止广播。且第一级中的广播节点为该发起节点。
在本发明系统实施例中,该每一级的广播节点,用于根据分布式哈希表算法为本地路由表中的每个路由表节点计算负责路由区间,据此确定该本级广播范围;并用于将本地路由表中的路由表节点的负责路由区间,指示为该下一级广播范围。
在本发明系统实施例中,该每一级的广播节点为本地路由表中的每个路由表节点计算负责路由区间的该分布式哈希表算法,包括但不限于Chord算法、Kademlia算法或Pastry算法。根据Chord算法、Kademlia算法或Pastry算法计算负责路由区间的方法,请分别参照图5至图7所示的方法实施例。
在本发明系统实施例中,该每一级的广播节点根据该分布式哈希表算法为本地路由表节点计算负责路由区间,当存在一个以上的路由表节点有共同的负责路由区间时,用于任意选择其中一个路由表节点负责本级广播,或者将该负责路由区间细分给若干个路由表节点,以负责本级广播。
在本发明系统实施例中,该每一级的广播节点将该负责路由区间细分给若干个路由表节点的方法,包括折半分配法。
在本发明系统实施例中,该每一级的广播节点,用于将所指示的下一级广播范围携带于该消息中进行广播,或者通过其他消息进行广播。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种结构化对等网络中消息的广播方法,其特征在于:
所述消息由发起节点开始逐级广播,每一级至少包含广播节点;在每一级中,广播节点确定本级广播范围并指示下一级广播范围,且根据本级广播范围将所述消息广播给本级的接收节点,本级的接收节点收到所述消息后作为下一级的广播节点,继续广播所述消息;某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点终止广播;
其中,第一级中的广播节点为所述发起节点。
2.如权利要求1所述的方法,其特征在于:
所述每一级的广播节点,根据分布式哈希表算法为本地路由表中的每个路由表节点计算负责路由区间,据此确定所述本级广播范围;并将本地路由表中的路由表节点的负责路由区间,指示为所述下一级广播范围。
3.如权利要求2所述的方法,其特征在于:
所述分布式哈希表算法包括Chord算法、Kademlia算法或Pastry算法。
4.如权利要求2所述的方法,其特征在于:
所述每一级的广播节点根据所述分布式哈希表算法为本地路由表节点计算负责路由区间,当存在一个以上的路由表节点有共同的负责路由区间时,任意选择其中一个路由表节点负责本级广播,或者将所述负责路由区间细分给若干个路由表节点,以负责本级广播。
5.如权利要求4所述的方法,其特征在于:
所述每一级的广播节点将所述负责路由区间细分给若干个路由表节点的方法,包括折半分配法。
6.如权利要求1所述的方法,其特征在于:
所述每一级的广播节点,将所指示的下一级广播范围携带于所述消息中进行广播,或者通过其他消息进行广播。
7.一种结构化对等网络中消息的广播系统,其特征在于,所述消息由发起节点在该系统内开始逐级广播,每一级至少包含广播节点,在每一级中:
广播节点用于确定本级广播范围并指示下一级广播范围,且根据本级广播范围将所述消息广播给本级的接收节点;
本级的接收节点,用于收到所述消息后作为下一级的广播节点,继续广播所述消息;
其中,某一级中没有接收节点可被广播节点用于确定本级广播范围时,该某一级的广播节点终止广播;
其中,第一级中的广播节点为所述发起节点。
8.如权利要求7所述的系统,其特征在于:
所述每一级的广播节点,用于根据分布式哈希表算法为本地路由表中的每个路由表节点计算负责路由区间,据此确定所述本级广播范围;并用于将本地路由表中的路由表节点的负责路由区间,指示为所述下一级广播范围。
9.如权利要求8所述的系统,其特征在于:
所述每一级的广播节点为本地路由表中的每个路由表节点计算负责路由区间的所述分布式哈希表算法,包括Chord算法、Kademlia算法或Pastry算法。
10.如权利要求8所述的系统,其特征在于:
所述每一级的广播节点根据所述分布式哈希表算法为本地路由表节点计算负责路由区间,当存在一个以上的路由表节点有共同的负责路由区间时,用于任意选择其中一个路由表节点负责本级广播,或者将所述负责路由区间细分给若干个路由表节点,以负责本级广播。
11.如权利要求10所述的系统,其特征在于:
所述每一级的广播节点将所述负责路由区间细分给若干个路由表节点的方法,包括折半分配法。
12.如权利要求7所述的系统,其特征在于:
所述每一级的广播节点,用于将所指示的下一级广播范围携带于所述消息中进行广播,或者通过其他消息进行广播。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910212355 CN102055655A (zh) | 2009-11-06 | 2009-11-06 | 一种结构化对等网络中消息的广播系统及方法 |
PCT/CN2010/077858 WO2011054248A1 (zh) | 2009-11-06 | 2010-10-19 | 一种结构化对等网络中消息的广播系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910212355 CN102055655A (zh) | 2009-11-06 | 2009-11-06 | 一种结构化对等网络中消息的广播系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102055655A true CN102055655A (zh) | 2011-05-11 |
Family
ID=43959606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910212355 Pending CN102055655A (zh) | 2009-11-06 | 2009-11-06 | 一种结构化对等网络中消息的广播系统及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102055655A (zh) |
WO (1) | WO2011054248A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202303A (zh) * | 2016-06-30 | 2016-12-07 | 南京邮电大学 | 一种Chord路由表压缩方法及优化文件查找方法 |
CN106507283A (zh) * | 2016-11-15 | 2017-03-15 | 国网黑龙江省电力有限公司信息通信公司 | 用于电网的协同式无线调度方法 |
CN107453994A (zh) * | 2016-05-30 | 2017-12-08 | 北京信威通信技术股份有限公司 | 基于dht网络的数据传输方法及装置 |
CN108924223A (zh) * | 2018-06-29 | 2018-11-30 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
CN109218037A (zh) * | 2018-07-10 | 2019-01-15 | 矩阵元技术(深圳)有限公司 | P2p网络中的消息广播方法及装置 |
CN110381157A (zh) * | 2019-07-26 | 2019-10-25 | 正链科技(深圳)有限公司 | 一种基于Kademlia算法的分布式定向数据存储P2P网络 |
CN112422302A (zh) * | 2021-01-25 | 2021-02-26 | 恒生电子股份有限公司 | 消息的广播方法、装置、网络节点及计算机存储介质 |
CN112688870A (zh) * | 2020-12-28 | 2021-04-20 | 杭州趣链科技有限公司 | 一种路由方法、路由装置及节点设备 |
CN114490129A (zh) * | 2022-01-27 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 一种集群中的消息广播方法、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1668023A (zh) * | 2004-03-10 | 2005-09-14 | 浙江大学 | 适合数字媒体发布业务的网络结构与传输方法 |
US7593333B2 (en) * | 2004-07-07 | 2009-09-22 | Microsoft Corporation | Efficient one-to-many content distribution in a peer-to-peer computer network |
DE102007043652A1 (de) * | 2007-09-13 | 2009-04-02 | Siemens Ag | Verfahren zum Betrieb eines dezentralen Kommunikationsnetzes |
CN101436947A (zh) * | 2008-12-17 | 2009-05-20 | 中山大学 | 一种适于iptv流媒体业务可扩展岛式多播传输系统 |
-
2009
- 2009-11-06 CN CN 200910212355 patent/CN102055655A/zh active Pending
-
2010
- 2010-10-19 WO PCT/CN2010/077858 patent/WO2011054248A1/zh active Application Filing
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107453994A (zh) * | 2016-05-30 | 2017-12-08 | 北京信威通信技术股份有限公司 | 基于dht网络的数据传输方法及装置 |
CN106202303A (zh) * | 2016-06-30 | 2016-12-07 | 南京邮电大学 | 一种Chord路由表压缩方法及优化文件查找方法 |
CN106202303B (zh) * | 2016-06-30 | 2019-09-10 | 南京邮电大学 | 一种Chord路由表压缩方法及优化文件查找方法 |
CN106507283B (zh) * | 2016-11-15 | 2019-06-21 | 国网黑龙江省电力有限公司信息通信公司 | 用于电网的协同式无线调度方法 |
CN106507283A (zh) * | 2016-11-15 | 2017-03-15 | 国网黑龙江省电力有限公司信息通信公司 | 用于电网的协同式无线调度方法 |
CN108924223A (zh) * | 2018-06-29 | 2018-11-30 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
CN108924223B (zh) * | 2018-06-29 | 2020-11-06 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
CN109218037A (zh) * | 2018-07-10 | 2019-01-15 | 矩阵元技术(深圳)有限公司 | P2p网络中的消息广播方法及装置 |
WO2020011011A1 (zh) * | 2018-07-10 | 2020-01-16 | 云图有限公司 | P2p网络中的消息广播方法及系统 |
CN109218037B (zh) * | 2018-07-10 | 2021-01-22 | 矩阵元技术(深圳)有限公司 | P2p网络中的消息广播方法及装置 |
CN110381157A (zh) * | 2019-07-26 | 2019-10-25 | 正链科技(深圳)有限公司 | 一种基于Kademlia算法的分布式定向数据存储P2P网络 |
CN112688870A (zh) * | 2020-12-28 | 2021-04-20 | 杭州趣链科技有限公司 | 一种路由方法、路由装置及节点设备 |
CN112422302A (zh) * | 2021-01-25 | 2021-02-26 | 恒生电子股份有限公司 | 消息的广播方法、装置、网络节点及计算机存储介质 |
CN112422302B (zh) * | 2021-01-25 | 2021-04-06 | 恒生电子股份有限公司 | 消息的广播方法、装置、网络节点及计算机存储介质 |
CN114490129A (zh) * | 2022-01-27 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 一种集群中的消息广播方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2011054248A1 (zh) | 2011-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102055655A (zh) | 一种结构化对等网络中消息的广播系统及方法 | |
CN108781188B (zh) | 用于平衡即兴网络构造的设备和方法 | |
US7457257B2 (en) | Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks | |
CN101184037B (zh) | 基于概率有效广播系数的洪泛方法 | |
CN103843297B (zh) | 用于为实时流服务提供和选择候选节点的方法、装置和系统 | |
CN104734962B (zh) | 一种非结构化p2p网络的资源搜索方法 | |
CN106059861B (zh) | 一种分布式构建物联网最小动态汇聚树的系统及方法 | |
CN107690167A (zh) | 一种可扩展的无线传感器网络分簇方法 | |
CN102404818B (zh) | 一种卫星网络路由表的生成与更新方法 | |
CN107690168A (zh) | 一种可扩展的无线传感器网络组网方法 | |
CN101577628B (zh) | 满足能力约束和QoS约束的应用层任意源多播方法 | |
CN1937553B (zh) | 基于流媒体数据帧的对等网络数据调度方法 | |
CN103209207B (zh) | 一种对等网络系统的普通节点寻找与维护邻居节点方法 | |
CN101094244A (zh) | P2p系统中的高性能分布哈希表方法 | |
CN101931543A (zh) | 一种基于覆盖网络组播系统的动态节点高效管理方法 | |
Besharati et al. | A topology-aware application layer multicast protocol | |
Zhang et al. | A new algorithm of service discovery based on DHT for mobile application | |
Kawaguchi et al. | Self-refining skip graph: Skip graph approaching to an ideal topology | |
Kawakami et al. | A load distribution method based on distributed hashing for P2P sensor data stream delivery system | |
Zheng et al. | Semanticcast: Content-based data distribution over self-organizing semantic overlay networks | |
CN103596221A (zh) | 一种移动Ad Hoc网络的数据传输方法及系统 | |
Venkadeshan et al. | Super peer deployment in unstructured peer-to-peer networks | |
Bo | Optimizing the network topology in gnutella p2p networks | |
Sujitha et al. | Distributed Spanning Tree Construction Using Centrality Ranking Algorithm in P2P Network | |
Tang et al. | Energy-efficient data collection using lossless compression for industrial wireless sensor networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110511 |