CN1681257A - 对等网络中的路由 - Google Patents
对等网络中的路由 Download PDFInfo
- Publication number
- CN1681257A CN1681257A CNA2005100637523A CN200510063752A CN1681257A CN 1681257 A CN1681257 A CN 1681257A CN A2005100637523 A CNA2005100637523 A CN A2005100637523A CN 200510063752 A CN200510063752 A CN 200510063752A CN 1681257 A CN1681257 A CN 1681257A
- Authority
- CN
- China
- Prior art keywords
- node
- peer
- ssrt
- network
- clauses
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 56
- 230000008859 change Effects 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 21
- 238000012797 qualification Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 14
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 230000006835 compression Effects 0.000 claims description 5
- 238000007906 compression Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 239000000523 sample Substances 0.000 claims description 2
- 238000007689 inspection Methods 0.000 claims 3
- 238000009795 derivation Methods 0.000 claims 1
- 230000000737 periodic effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000012423 maintenance Methods 0.000 description 9
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 235000008694 Humulus lupulus Nutrition 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 235000014594 pastries Nutrition 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- ORKBYCQJWQBPFG-WOMZHKBXSA-N (8r,9s,10r,13s,14s,17r)-13-ethyl-17-ethynyl-17-hydroxy-1,2,6,7,8,9,10,11,12,14,15,16-dodecahydrocyclopenta[a]phenanthren-3-one;(8r,9s,13s,14s,17r)-17-ethynyl-13-methyl-7,8,9,11,12,14,15,16-octahydro-6h-cyclopenta[a]phenanthrene-3,17-diol Chemical compound OC1=CC=C2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1.O=C1CC[C@@H]2[C@H]3CC[C@](CC)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 ORKBYCQJWQBPFG-WOMZHKBXSA-N 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 239000008946 yang xin Substances 0.000 description 1
Images
Classifications
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- 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/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Small-Scale Networks (AREA)
Abstract
描述了对等网络中的路由。在一个实现中,一种方法包括在对等网络的多个节点之一处接收对等网络中另一节点改变对等网络中的成员资格的指示。广播描述该变化的报告。该报告由包括在一个节点中的路由表中引用的每一节点接收。
Description
相关申请
本申请在35 U.S.C.119(e)款下要求2004年3月31日提交的美国临时申请号60/559,370的优先权。
技术领域
本发明一般涉及对等网络,尤其涉及对等网络中的路由。
背景技术
由于许多期望的特征,如适应性、自组织、负载平衡、容错、低成本、高可用性、可伸缩性和提供大量资源的能力,对等网络在普及度上持续增长。例如,对等网络作为诸如由下载歌曲的对等体共享大量数据的流行方式而出现,这些歌曲被称为可供从对等网络中的另一对等体下载。
然而,用于提供对等网络的传统体系结构尚未解决形成该系统的越来越多的成员数量,即节点数量的问题。例如,对等网络的一个现有示例已向多于4百万用户提供了多于2亿3000万的下载。然而,预期成员的数量还会持续增长,使得会遭遇到具有多于1万亿个节点的极其大的系统。因此,即使现有的体系结构可解决具有大量节点的系统的问题,然而当在极其大的系统中采用时,这些现有体系结构仍被证明是不够用的。
例如,为定位对等网络中的特定资源,网络中的每一节点可引用网络中一个或多个其它节点以定位具有特定资源,如特定的数据项的节点。因此,当请求从一个节点路由到另一节点时,可采用一系列的“中继段”,直到定位了特定的项。当中继段的数量增加时,节点的硬件和软件资源的使用以及系统的网络资源也随之增加。由此,增加的中继段数量会导致系统资源的低效使用,以及用于定位特定项的时间量的增加。
因此,不断地需要在对等网络中的改进的路由。
发明内容
描述了对等网络中的路由,其中,使用了路由表来路由消息(如,对特定资源的请求和对请求的响应)。该路由表可通过广播来更新,以更新路由表中引用对等网络中节点的条目。在一个实现中,用于维护每一节点的路由表的维护预算通过对每一段构建密集路由表条目在对等网络的资源空间的多个段上分布。因此,用于维护路由表的总维护预算得以降低,这释放了对等网络的硬件、软件和网络资源,以提供期望的消息路由功能。
在一个实现中,一种方法包括在对等网络中的多个节点中的一个处接收由对等网络中的另一节点对对等网络中的成员的改变的指示。广播描述该变化的报告。该报告用于由包括在一个节点中的路由表中引用的每一节点接收。
在另一实现中,一种方法包括在包括在对等网络中的一个节点上确定该节点用于在对等网络中通信的可用资源。在该节点上基于对于在对等网络中路由请求的确定形成路由表。
在又一实现中,一种方法包括由对等网络中的多个节点之一使用迭代光晕滤波器(bloom filter)压缩描述路由表中的条目的数据。形成通信以将压缩的数据传递到另一所述节点。
附图说明
图1所示是被配置成提供对等网络的环境的一个示例性实现。
图2所示是更详细地示出了对等网络的多个节点的一个示例性实现的系统。
图3所示是一维逻辑关键字空间中一个系统中的多个节点的多个软状态路由表的快照的示例性实现。
图4所示是通过旋转标识符和构建另一环对给定块构建软状态路由表中的条目的一个示例性实现。
图5所示是使用相对于图4描述的环的软状态路由表来路由的一个示例性实现。
图6所示是软状态路由表的一部分以及软状态路由表中的条目的生成的一个示例性实现。
图7所示是迭代光晕滤波器的一个示例性实现。
图8所示是一个示例性实现中的过程的流程图,其中,一个节点形成描述由该节点接收的指示对等网络中的成员资格变化的事件的报告,并传递该报告。
图9所示是一个示例性实现中的过程的流程图,其中,路由表大小是基于节点的可用资源来动态地确定的。
图10所示是可用于提供对等网络中的节点的示例性计算设备。
贯穿揭示和附图,相同的标号用于引用相同的组件和特征。
具体实施方式
综述
描述了对等网络中的路由。如上所述,期望较少数量的中继段,使得可使用较少数量的转发节点,由此降低了总带宽消耗。描述了路由技术,它减少了用于找出超大系统(即,1万亿个节点)中的资源的中继段的数量,但是具有较低且可控制的每节点维护预算。
由节点使用路由表来引用对等网络中的其它节点。然而,在超大系统中路由表的传统维护可使用难以接受的大量硬件、软件和网络资源。例如,传统维护技术使用了探查(probe),使得路由表中的条目通过发送请求并接受对请求的响应以确定由表引用的节点当前是否在系统中可用来更新。尽管每一探查使用的硬件、软件和网络资源量相对较小,然而当这一资源使用在整个系统中累计时,总量将会变得相当大。因此,超大系统在使用这些传统维护技术时可能遭受重大的功能损耗。在此处所描述的维护技术中,用于维护路由表的维护预算可以通过对每一段构建密集路由表条目在对等网络的资源空间的多个段上分布。由此,用于维护路由表的总维护预算得以减少,这释放了对等网络的硬件、软件和网络资源,以提供路由请求和对请求的响应的期望功能。以此方式,可维护使用超大系统中较少的中继段的路由表,而不会导致难以接受的维护预算。对密集路由条目和路由表维护的进一步讨论可参考图3找到。
另外,尽管使用的先前的O(logN)路由技术在现有系统中是成功的,然而先前的技术中当前接受的小底数(即,O(logbN中的参数b)不再对超大系统够用。例如,当系统中节点的数量“N”是一万亿时,在使用传统的O(logN)路由技术时最坏情况下的中继段计数是20(当b为4,且大约有60个条目)。在“路由性能”一节中更详细描述的一个实现中,采用此处所描述的路由技术的具有一万亿个节点的系统中的平均路由被减少到5.5个中继段。
示例性环境
图1所示是被配置成提供对等网络的系统100的一个示例性实现。系统100包括多个客户机102(a),其中“a”可以是从1到“A”的任何整数,它通过网络106在通信上耦合至多个计算设备104(1)-104(B)。在此实现中,多个客户机102(a)和多个计算设备104(1)-104(B)的每一个表示网络106中的一个节点。节点可以被认为是发送数据的连接点,如向其它节点提供数据的重新分发点,和/或作为数据的目的地和/或来源的端点。
多个客户机102(a)和多个计算设备104(1)-104(B)可以用各种方式来配置。例如,客户机102(a)和计算设备104(1)-104(B)可被配置成能够通过网络106通信的计算机,如无线电话(如,计算设备104(1))、图形输入板计算机(如,计算设备104(2))、笔记本计算机(如,计算设备104(3))、台式机(如,计算设备104(4))、服务器(如,计算设备104(5)-104(6))、大型机(如,计算设备104(B))以及其它计算设备,如移动站、娱乐设备、机顶盒等等。对示例性计算设备的进一步讨论可参考图10找到。由此,多个客户机102(a)和计算设备104(1)-104(B)的范围可从具有足够存储器和处理器资源的全资源设备(如,个人计算机、配备了硬盘的电视录像机)到具有有限存储器和/或处理资源的低资源设备(如,传统的机顶盒)。客户机102(a)也可涉及操作该客户机的个人和/或实体。换言之,客户机102(a)可描述包括用户和/或机器的逻辑客户机。
网络106被配置成对等网络。对等网络允许网络106的节点访问位于每一节点,即多个客户机102(a)和多个计算设备104(1)-104(B)上的共享资源。在过去已知并使用的对等网络的示例包括以下:
·Freenet(自由网),如由I.Clarke、B.Wiley、O.Sanberg和T.Hong在“Freenet:A Distributed Anonymous Information Storage and Retrieval System”,Proc Int.Workshop on Design Issues in Anonymity and Unobservability,Springer Verlag,LNCS2009,2001中所描述的;
·Chord(图形树),如由I.Stoica、R.Morris、D.Karger、M.F.Kaashoek、H.Balakrishnan在“Chord A Scalable Peer-to-peer Lookup Service for InternetApplications”,Proc.ACM SIGCOMM′01,圣地亚哥,加利福尼亚州,美国,2001中所描述的;
·CAN,如由S.Ratnasamy、P.Prancis、M.Handley、R.Karp和S.Shenker在“AScalable Content-Addressable Network”,Proc.ACM SIGCOMM′01,圣地亚哥,加利福尼亚州,美国,2001中所描述的;
·Pastry,如由A.Rowstron和P.Druschel在“Pastry:Scalable,Decentralized ObjectLocation and Routing for Large-Scale Peer-to-Peer Systems”,IFIP/ACM Int.Conf.Distributed Systems Platforms(Middleware),2001中所描述的;以及
·Tapestry,如由B.Y.Zhao、J.Kubiatowicz和A.D.Joseph在“Tapestry:AnInfrastructure for Fault-tolerant Wide-Area Location and Routing”,Technical ReportNo.UCB/CSD-01-1141,加利福尼亚州大学伯克利分校中所描述的。
对等网络可提供各种特征,如冗余度和容错。例如,储存在对等网络中的数据可在数据由对等网络的节点复制时逐渐传播。由此,在对等网络中数据可变得高度冗余,这可获得提高的数据可靠性和可用性。
可使用对等网络来交换各种资源,如数据、处理周期、数据存储等等。由此,对等网络可用于充分利用多个客户机102(a)和多个计算设备104(1)-104(B)的集体能力。对等是一种通信模型,其中,每一节点,即“成员”可直接与另一成员通信和/或通过中间计算设备来通信。客户机102(a)和计算设备104(1)-104(B)可使用诸如请求和响应等消息通过网络106通信。尽管示出了七个计算设备104(1)-104(B),在该环境中可提供各种各样的计算设备。另外,多个客户机102(a)也可被配置成对等网络中的“对等体”,即,成员。
网络106包括分布式散列表(DHT)108,它担当客户机102(a)和多个计算设备104(1)-104(B)之间路由消息的接口。DHT 108可以被认为是储存(关键字,值)对的散列表数据结构的分布式版本。例如,关键字可对应于文件名,而值可对应于文件的内容。网络106中的每一对等体,如计算设备104(1)-104(B)储存(关键字,值)对的子集。因此,DHT 108用于找出负责对应关键字的节点。换言之,DHT 108将关键字映射到节点,以在客户机102(a)和多个计算设备104(1)-104(B)之间路由消息。可在DHT 108“上方”构建各种服务,如文件共享服务、档案存储服务(如,web归档)、数据库、命名系统、服务目录、应用层组播、事件通知、聊天服务、基于集会的通信、查询和索引、数据发行/预订等等。
DHT 108将多个计算设备104(1)-104(B)提供的资源划分成多个区域110(1)-110(8),即“存储桶(bucket)”。多个区域110(1)-110(8)的每一个可被认为是系统100中共享的总资源的一部分。例如,如上所述,DHT 108将资源与关键字相关联。使用DHT 108散列关键字以找出多个区域110(1)-110(8)中特定的一个。多个区域110(1)-110(8)可以用各种方法来提供。例如,区域110(1)在图1中可图示地被表示为由计算设备104(1)提供。同样,区域110(2)、110(3)、110(4)、110(5)、110(6)的每一个由相应的计算设备104(2)、104(3)、104(4)、104(5)、104(6)提供。另外,计算设备可提供一个以上区域,它们在图1中被图示地表示为由计算设备104(B)提供的区域110(7)、110(8)。
DHT 108被示出为采用三层体系结构,包括叶节点集(leafset)112、网络用户查找器(finger)表114和软状态路由表116(SSRT)。叶节点集112用于保证关键字空间的完整性。例如,如上所述,叶节点集112可采用一致散列以将资源空间和节点的响应空间划分成多个区域110(1)-110(8)的一个或多个。
网络用户查找器表114,即中间层,可用于实现基于前缀的路由算法,如O(logN)前缀路由算法,其中“N”是节点总数。例如,每一节点可包括具有条目,即网络用户查找器的网络用户查找器表114,网络用户查找器指向系统100中的其它节点。网络用户查找器表114的条目可遵循对数函数,以“进一步”顺序地引用系统100中的节点。网络用户查找器表114的条目可通过反转对应的节点ID的一个比特,然后指向保留所得的关键字的节点来构造。可使用周期发信标来更新叶节点集112和网络用户查找器表114的条目,如通过使用探查机制。由此,叶节点集112和网络用户查找器表114可向DHT 108提供O(logN)性能。
当系统颠簸速率(churn rate)μ较小(如,当节点加入或离开系统100)时,SSRT 116给出作为系统100的成员的节点的清单。由此,SSRT 116可用于快速地定位期望节点。SSRT 116的构造可通过使用系统100中的所有节点的网络用户查找器来实现,这形成了具有足够冗余度的广播图。为本讨论的目的,广播指的是在图中数据的散布,其中,一个顶点(称为始发者)通过沿图的边发出一系列的调用将数据分发到所有其它顶点。一旦被通知,其它顶点协助始发者分发消息。广播图是其中可以
时间单位实现广播的图。
图2所示是一个示例性实现的系统200,其中,更详细地示出了对等网络的多个节点202(x),其中“x”可以是从1到“X”的任何整数。节点202(x)可以与图1的系统100中的节点,如计算设备104(1)-104(H)和客户机102(a)相同或不同。节点202(x)被示出为包括对应的DHT 108(x),它具有叶节点集112(x)、网络用户查找器表114(x)和SSRT 116(x),对它们给予标号以表明对于特定的节点202(x),这些表是图1的DHT 108、叶节点集112、网络用户查找器表114和SSRT 116的各个版本。
节点202(x)可通过从相应的节点接受描述成员资格改变的一个或多个事件,如“加入”或“离开”事件,来监视叶节点集112(x)的其它节点的成员资格。当节点202(x)观察到成员资格变化时,节点202(x)将多个事件204(c),如加入或离开事件的一个或多个插入到报告206(x)中。报告206(x)以预定义的广播间隔通过由网络用户查找器表114(x)描述的节点202(x)的每一网络用户查找器并行地广播。多个节点202(x)的每一个可通过构建描述节点所观察到的事件的报告,并描述从系统200中的其它节点涌出(flood)的事件,减去已由节点202(x)描述的事件,来执行相同的操作。由此,提供了一种涌出算法,它提供了足够的冗余度(O(logN)),以用高传播速度传递可靠的广播(平均为O(logN))。
为控制维护成本,如果超过了限额,可将事件内部地缓存在队列208(x)中。另外,DHT 108可通过使用一个或多个规则自适应地处理健壮性。例如,为确保SSRT 116(x)条目是高质量的(如,SSRT 116(x)条目描述了图1的系统100的当前成员资格),则描述特定节点离开系统100的“离开”事件在其它事件,如“加入”事件之前被发送。以此方式,系统100在被通知另一节点何时加入系统100之前,始终知道资源何时从离开系统的节点不可用,这用于重建系统100平衡。对系统平衡的进一步讨论可在“自适应”一节中找到。
在稳定状态,可通过解以下方程式找出有效SSRT 116(x)条目M的数量:
Q=4μ·E·M·logN
其中,E是事件的大小。在一个实现中,事件是34字节,并包括描述事件类型、事件标记、IP地址和节点ID的数据。方程式中的常数“4”考虑了发送和接收以及每一会话的一个加入和一个离开操作的带宽成本。
由此,DHT 108(x)可推广地利用累计,它在时域(如,报告中的成批事件)和空间域(如,用Olog2N节点的交互)两者中实行。另外,通过使用广播来传递成员资格变化,即使维护了全群集,当没有事件要传递时,在网络中几乎没有话务,导致了提高的网络效率。
DHT
在本节中,将在具有超大规模的系统的动态环境中描述DHT 108体系结构的使用。DHT 108提供了具有非常大的b(如,b约等于4,000)O(logbN)路由的效果,它不需要每一条目的活动探查。如上所述,尽管发送和/或响应一个探查来更新DHT108中的条目所需的带宽消耗较小,然而当在图1的系统100的部分或所有上累计时,发送和响应大量的探查会导致相当大的额外开销。另外,降低探查频率可能不是期望的,因为要检查丢失的成本是高的,如,丢失会导致随机IP中继段来定位系统中的期望资源。
在以下实现中,N等于1万亿时b=4,000的基于前缀的路由性能被复制。为以下讨论的目的,广播预算Q是5kb/s,而系统颠簸速率μ被假定为1/(3小时)。这些参数准许使用DHT 108构建4K大小的全群集。应当清楚,通过此处描述的路由技术,可解决各种广播预算和系统颠簸速率。
可用于传递这类性能的路由技术的一个示例包括两个组成部分。第一个组成部分涉及使用广播预算的四分之一,即Q/4为子区域而非整个资源空间构建水平条(corssbar)。第二个组成部分是设计一种机制以使用四个这样的水平条在路由时旋转40个比特。这些组成部分的每一个依次在以下小节中讨论。
构建子区域水平条
对某一整数“i”,总资源空间T可被划分成t/2i个区域。例如,划分可以是,每一区域M平均包含大约一千个节点。对于任意的节点x,设R(x)为它所属的区域,并设beamers(x)是落入R中的x的网络用户查找器的子集,即,指向该区域R中的其它节点。由此,对于共享同一R的所有节点,对应的射束器(beamer)共同形成了覆盖R且具有相当大的冗余度的广播图。通过在DHT 108中经由射束器应用相同的广播协议,可向这些节点的每一个提供覆盖对应的区域R的对应的SSRT。带宽成本可计算如下:4μ·E·M·logM。由此,对于当前实现,其中E=34B并且μ=1/(3小时),带宽成本约为1kb/s。以此方式,满足第一组成部分,即使用小于Q/4来构建可用一个中继段解析最短的10个以2为底数的网络用户查找器范围的群集。本质上,子区域群集可被认为是1K个节点的叶节点集。例如,如果查找关键字落入此范围内,则一个中继段足以找出期望的资源。
R可以用各种方法来估算。例如,每一节点可使用其对应的叶节点集的信息来计算平均区域大小z。下一节点然后可作出区域R的估算为比z远10个比特。如上所述,射束器是区域估算内的网络用户查找器。边界可通过丢弃由位于区域估算外的节点发送的加入事件来进一步实施。由此,节点的SSRT不会被来自相邻区域的条目搞坏。
图3所示是描述了对等网络中实现的系统中的若干节点的SSRT的一维逻辑关键字空间300。一维逻辑关键字空间300的第一区域302可由图2的多个节点202(x)的第一个的SSRT来描述,一维逻辑关键字空间300的第二区域304可由图2的多个节点202(x)的第二个的SSRT来描述,依此类推。图3所示的虚线表示理论上的区域划分线。由此,如图3所示,SSRT由覆盖对应节点的对应区域的条目填充。
解析多个块
为以下讨论的目的,每一节点的ID长度为160比特,并且ID的10比特段被称为“块”。如上所述,ID可被认为是节点在对等网络中的地址。b=4K的基于前缀的路由一次解析一个块。在具有1万亿个节点的系统的当前示例中,一共有四个10比特块要解析。
路由通过经由网络用户查找器一次匹配地址的一个比特地在区域群集中继续,直到目的地在最短的10个网络用户查找器覆盖的区域之内。在这一点上,SSRT在一个中继段中提交对资源的访问。有效的是,这最后10个网络用户查找器可被扩展成210个SSRT条目,以扩展这一访问。换言之,位于其它前导块中的网络用户查找器被扩展成SSRT条目,以包括在同一前缀范围内。
在1万亿个节点的系统中,每一节点平均具有40个网络用户查找器。为以下讨论的目的,使用Ring0来表示基环。另外,为以下讨论的目的,节点的ID被划分成10比特的块,它们如图4所示地按字母表命名。尽管示出了10比特的块,然而块可以使用不同数量的比特。例如,每一块可具有两个或多个比特,可五个或多个比特,等等。
例如,考虑图4中的块A 402。为构建块A 402的SSRT条目,将ID 404向右旋转,以获得新的IDA 406,其中,块A 402′在第四块。每一节点使用IDA 406来加入表示为RingA的环。RingA以与Ring0相同的方式构建,具有其自己的叶节点集和O(log2N)个网络用户查找器。在其上方,类似地应用子区域群集算法。因此,节点获得1K大小的RingA中的SSRTA 408,并且条目是其IDA共享前导的三个块(即,N|O|P),但在第四个块,即块A 402′中改变的节点。
ID 404和IDA 406的关系意味着这四个节点依次为共享ID的最后三个块,但是在Ring0的块A中改变的节点。因此,将块A中10个以2为底数的网络用户查找器扩展成210个SSRT条目的任务得以完成。可对块B、C和D(如,SSRTD 410)执行类似的安排。每一环帮助构建覆盖对应的块的SSRT条目。
在此示例中一共构建了四个环。为以下讨论的目的,块A的SSRT条目被表示为SSRTA,块B的SSRT条目被表示为SSRTB,依此类推。最终的SSRT是四个较小的SSRT(如,SSRTA、SSRTB、SSRTC、SSRTD)的组合,并大小近似为4K。使用DHT的路由可前进,其中,比特尽可能累计地匹配,用于通过中间中继段前进。
路由
图5所示是通过使用位于图1的系统100的每一节点上的SSRT表执行的路由的一个示例性实现500。结合SSRT 504使用查找关键字502,以定位具有特定地址506的节点。如先前的小节中所描述的,SSRT 504包括引用具有带有各种级别的相似度的地址的节点。
例如,SSRT 504可由多个部分508、510、512、514组成,它们具有相应的SSRT 516、518、520、522条目。第一部分508包括引用具有可在块A 524中描述的不同地址的每一节点的SSRTA 516条目。第二部分510包括引用具有对地址块A彼此匹配的地址的每一节点的SSRTB 518条目。然而,第二部分510引用具有可在块B 524中描述的相应不同地址的每一节点。换言之,SSRTB 518中的所有条目具有彼此匹配的相应的块A,但是具有不同的块B。同样,第三部分包括引用具有彼此匹配的相应地址块A和B的每一节点的SSRTC 520条目。然而,第三部分引用具有可在块C中描述的每一不同地址的每一节点。因此,SSRTC 520中的每一条目具有相应的匹配块A和B,但具有不同的块C。最后,第四部分514包括引用具有匹配地址块A、B和C的每一节点的SSRTD 522条目。然而,第四部分514引用具有可在块D中描述的不同地址中的一个的每一节点。由此,SSRTD 518中的所有条目具有匹配的块A、B和C,但是具有不同的块D,这提供了到相应节点的“一个中继段”路由。以此方式,由相应节点维护的每一SSRT可描述具有相似地址的节点的不同层次,以提供对等网络中的有效路由。
例如,SSRT 504可用于通过使用查找关键字502检查SSRT 504来找出特定的资源。如果查找关键字502的块A 524、B 526、C 528和D 530与SSRT 04表的SSRTD 522中描述的对应块A、B、C和D相匹配,则SSRT 504可用于将请求直接路由到对应的源节点506,即以一个中继段路由。
在另一示例中,如果查找关键字502的块A和B 524、526与SSRT 504的块A和B相匹配,但是块C不匹配,则将查找关键字502与SSRTC 520比较,以跳至描述具有匹配的块A、B和C的节点的对应节点。对应的节点然后可具有一带有四部分的SSRT,它可用于以一个中继段定位源节点506。可使用第一和第二部分508、510,基于查找关键字中的多少与SSRT 504中的条目匹配,来执行类似的查找。由此,每一节点包括可用于快速定位超大系统中的节点的SSRT。
图6所示是使用位于图1的系统100的每一节点上的图6的SSRT表来执行路由的一个示例性实现600。如先前相对于图4所描述的,SSRT可从引用对等网络中的每一节点的位置的多个环,通过旋转每一节点的标识符来构造。例如,ringA602可具有SSRTA 604,它具有多个条目。在此示例中,SSRTA 604的每一条目最初具有彼此匹配的三个块(在图6中被示为“N|O|P”)。SSRTA 604中的第四个块“A”描述了系统中具有该第四个块的对应地址的每一位置。为对SSRTA 604构造条目,“旋转”ID,即节点在对等网络中的地址。例如,旋转(608)地址606“110|…N|O|P”以形成ID 610“N|O|P|110|…”,它包括在SSRTA 604中。以此方式,可构造一SSRT,它减少了被执行来定位超大系统中期望资源的中继段的数量。
路由性能
在上述实现中,较高块中的路由解析对每一块采用略微多于一个中继段,除最短的十个网络用户查找器所覆盖的范围内的目的地之外。例如,考虑图5所示的1万亿个节点的系统。当节点x启动查找时,目的地关键字k是随机的。设addrA(k)为k的A块(即,十个最高位),因此addrA(k)具有210个可能值。如上所述,1K个SSRTA(x)条目是其ID共享ID(x)的最后三个块,但是在块A处不同的节点。由于节点ID是随机的,它不保证SSRTA(x)条目的“A”块也包含addrA(k)的210个可能值。
上述问题等效于将完整的资源空间划分成大约1000个箱(bin),然后SSRTA(x)中的节点以及x本身是随机地落入这些箱中的球。如图6所示,当且仅当由addrA(k)索引的箱不为空时,块A中的查找可用一个中继段来解析。类似地,如果空间被划分成512个箱,并且addrA(k)指向不为空的箱,则可使用SSRTA(x)来解析九个最高位,剩下一个中继段在开始使用另一节点的SSRTB之前使用来自网络用户查找器表的普通“网络用户查找器”来解析。
设Pi是至少可解析i个比特的概率,为计算Pb,将空间划分成2i个箱,并且210个球落入该空间中。因此,1-Pi为(1-2-i)1024,换言之,可随机地挑选其中没有球的箱,这可以被近似为e-2^(10-i),因此Pi=1-e-2^(10-i)。
在这一点上,可计算期望的中继段数。设pi=Pi-Pi+1,对i≤9,其中,pi是使用SSRTA确切地解析了i个比特的概率。可观察到:
H=1·p9+2·p8+3·p7...
=1·(p9-p10)+2·(p8-p9)+3·(p7-p8)...
=e-1+e-2+e-4...
=0.52
因此,解析块A(或除采用了一个中继段的最后一个块之外的任何其它块)平均采用了1.52个中继段。由此,如果N等于1万亿,则平均路由将约采用5.5个中继段。
参考1万亿个节点的系统描述了性能。一般而言,平均性能由
界定。因此,如果N=256,000,则最坏情况的性能很可能为2.02,而非2.52。例如,SSRTA可用期望的1.02的中继段计数简单地解析8个比特。在这一点上,用剩余的10个网络用户查找器构建的全水平条将提交最终的中继段。类似地,如果N=2亿5600万,则性能很可能由3.54个中继段界定。
维护成本和健壮性
如上所述,用系统颠簸速率μ=1/(3小时)维护一个环中一千个节点的区域群集的总成本大约为1kb/s。维护四个环的SSRT使用大约该成本的4倍。由此,每一节点对SSRT维护将消耗总共4kb/s。其它成本包括在所有四个环的叶节点集成员和网络用户查找器中的周期性探查,相比而言,它具有相对较小的成本。应当注意,这给出了1万亿个节点的系统中5.5中继段的平均路由性能。
自适应
即使先前的示例性路由技术中描述的平均带宽消耗符合带宽预算Q,仍有可能遇到带宽消耗中的峰值。因此,如相对于图2所描述的,可在图2的队列208(x)中内部地缓存事件,直到有额外的带宽变得可用。也可采用各种其它自适应技术来控制系统中出现动态变化时的SSRT质量。例如,可使用自适应技术来适度地降低使用压力大时的路由性能,并在之后返回到正常的路由性能。
示例性的第一个这样的自适应技术解决了高系统颠簸速率μ的问题,也将系统稳定到稳定条件下的平衡。这一自适应技术涉及“剪除”包括在报告中的多余事件,以自适应地控制广播话务。最终结果是维护良好的、高质量的SSRT。对使得多余事件不被包括在内的报告的配置的进一步讨论可参考图8找到。
示例性的第二个这样的自适应技术在第一个自适应技术上构建,其中,如相对于图3所示的SSRT变成覆盖总资源空间的一部分的水平条。第一和第二种自适应技术可被组合以形成包括在每一节点上的SSRT,使得当组合每一节点的SSRT时,可通过组合这两种优化来获得多层的体系结构。例如,可采用一种两层的体系结构,其中第一层覆盖整个资源空间,而第二层提供了区域水平条。在另一示例中,如相对于图5所描述的可采用四层的体系结构。采用这一混合的方法,对于具有大量节点的系统可达到O(1),而仍不会超过带宽预算Q。
在一个实现中,设“eSSRT”表示其状态为“在线”的SSRT条目的一个子集。可使用过滤,以eSSRT的大小为代价下确保该状态尽可能地准确。即,用更大量的假否定(false-negative)条目实现低假肯定(false-positive)率。理由是“丢失”一般比“击中”成本更高。
为实现这一目标,过滤可使用各种规则,其示例示出如下:
1.用较高的优先级发送离开事件,以确保低假阳信率。
2.如果事件不是要改变状态,则不传播该事件。
第二条规则可通过使用状态机来实现。例如,如果事件类型与状态机所指示的当前状态相一致,则更新时间标记而不改变当前状态;并且否则对该状态求反(negate)。在后一情况下,也对has-sent(已发送)字段求反。例如,其状态为“在线”且has-sent为假的条目在接收“离开”事件之后,将状态改为“离线”,并将has-sent设为真。换言之,这一特定的事件不需要被进一步传播。由此,在缓存事件的帮助下剪除了多余的消息。
通过使用这些技术,系统将自动达到平衡,因为缓存的事件可帮助剪除将来接收的事件。当系统颠簸速率μ较高时,在与要缓存的任何“溢出”加入事件相适应的开始处,离开事件将占用大多数带宽配额。在稍后的时间点,当被接收时,缓存的加入事件将删除离开事件,由此给予共享来释放加入事件。当系统颠簸速率μ变得稳定时,用于发送加入和离开事件的网络和节点资源的共享最终将近似相等。由此,系统颠簸速率越高,这一方法在降低对等网络中的网络资源的总体使用方面就更有效。其次,当带宽配额再次变得可用时,将释放缓存的事件,这允许系统经受住事件风暴(如,成员资格的迅速变化导致多个事件在特定的时间点被传播)并在之后迅速返回到正常的性能级别。以此方式,可提供一种健壮的路由技术。
设置调和(set-reconciliation)
使用大路由表对任一DHT路由技术的一个实际问题是如何令返回的对等体路由表变得最新,这被称为设置调和。例如,在上述的路由技术中,在加入对当网络时引发了如何获取最新的SSRT的问题,因为返回的节点的叶节点集和网络用户查找器表都可以在每次当节点加入对等网络时新构造。
例如,SSRT可在后台持久保存在稳定存储中,并且其成员资格列表(如,具有所有其它节点的<ID,IP>对的条目)包括节点在其过去的整个历史中所学到的任何东西。对系统完全为新的节点可在它第一次加入时复制SSRT。因此,当系统操作了足够的时间段之后,SSRT中设置的成员资格列表一般将在整个系统中都一致。
然而,当离开的节点返回到对等网络时(如,加入到对等网络),加入的节点可能不知道在其对应的SSRT中记录的对等体的状态。因此,加入的节点可将SSRT中的每一条目复位到离线状态,然后试图从对等网络中的一个或多个现有节点学习。例如,如果两个节点的SSRT彼此同步,则现有节点可发送一矢量,该矢量的每一比特表示来自现有节点的SSRT的其它对等体的状态。例如,当系统颠簸速率μ较高,且离线条目的数量较少时,复制eSSRT是可行的。例如,可花费大约8秒来传输约4K个条目,其每一个具有128kb/s链路上的32字节。然而,当系统颠簸速率μ较低或在超大的系统中,这可能不是健壮的解决方案。
对于描述SSRT条目的数据的更有效的通信,可用光晕滤波器来压缩数据,以减少用于更新SSRT的带宽量。以此方式,可在超大系统中提供有效的通信。光晕滤波器是用于通过使用对单个比特数组的多个散列函数来测试大集合中的成员资格的概率性算法。例如,光晕滤波器可在空间/带宽是一个问题,且容许较小的误差时有效地起作用。
例如,在光晕滤波器中,可将n项的列表压缩成m个比特,即每项b=m/n,其中“b”表示“滤波器参数”。对于每一项,应用其值域落入[0..m]的一组散列函数,并设置m比特矢量中的对应比特。光晕滤波器的副作用是会出现假肯定,即,接收节点会错误地包括位于原始列表之外的某些元素。这一概率被示出为(0.6185)b,并且如果m=8n,则概率仅大于0.02。
如果项的大小是E字节,则作为发送nE字节的列表的替代,用b=8,则滤波器的大小是8n比特(即,n字节),导致1/E的压缩比。例如,为传输节点ID和IP地址,但是不传输时间标记,E可约等于32字节,并且由此所得的1/32压缩率是相当可观的。在一个实现中,第一协议在非在线的条目上应用光晕滤波器。光晕滤波器的假肯定则意味着2%的在线节点在接收端被记录为离线。
在另一实现中,可通过使用“迭代光晕滤波器”进一步提高准确度。例如,发送节点,即发送更新接收节点的SSRT的数据的节点,首先用较小的滤波器参数a计算在线节点P(PRESENT)的滤波器。发送节点然后标识一组假肯定节点AP,并应用具有滤波器参数b的补充滤波器。然后将两个滤波器发送到接收节点,即,请求更新SSRT的数据的节点。定性地说,这导致一种保守的方法,因为某些在线节点将被丢失。从统计方面而言,这些条目的数量与单级光晕滤波器相同,因为光晕滤波器的误码率仅取决于滤波器参数。
图7描述了一个示例性迭代光晕滤波器700。迭代光晕滤波器700被描述为包括三个光晕滤波器702(1)-702(3)的组。P704和A706是每一滤波器的假肯定条目组。
为计算迭代方法是否能给出带宽节省,设Na和Np分别是离线和在线节点的数量。对于单级b比特光晕滤波器,总消息大小是bNa比特。迭代方法的第一滤波器具有消息大小aNp。A的大小,即假肯定条目的数量,为Na(0.6185)a。因此,补充滤波器具有大小Nab(0.6185)a,得到总消息大小S,表示如下:
S=Nab(0.6185)a+aNp
为获得最小消息大小,观察到:
由于“a”是非负整数,因此可将该方程式分解成以下两种情况:
在上述示例性实现中,当滤波器参数b等于8,并且对Na小于Np的25%的情况,可采用单级光晕滤波器。其示例性伪代码示出如下:
OnSetReconcileRequest()
Np=SSRT.OnlineSet.Size
Na=SSRT.OfflineSet.Size
if(Np<0.4805*Na*b)
a=log(Np/(0.4805*Na*b))/log(0.6185)
F1=BloomFilterPack(SSRT.OnlineSet,a)
P=BloomFilterUnpack(SSRT,F1)
A=P-SSRT.OnlineSet
F2=BloomFilterPack(A,b)
Send(F1,F2);
else
F1=BloomFilterPack(SSRT.OfflineSet,b)
Send(F1,0)
OnSetReconcileAck(F1,F2)
foreach(entry∈SSRT)
if InBloomFilter(entry,F1)
if F2==0 or not InBloomFilter(entry,F2)
entry.status=online
在上述设置调和伪代码中,b是预定义的(如,8),并且接收端的SSRT的条目都从离线状态开始。
示例性过程
以下讨论描述了可使用先前描述的系统和设备实现的SSRT更新和配置。每一过程的各方面可以用硬件、固件或软件,或其组合来实现。过程被示出为指定了由一个或多个设备执行的操作的一组块。过程不必要限于为执行相应块的操作所示的顺序。
图8所示是一个示例性实现中的过程800的流程图,其中,节点形成描述由该节点接收的指示对等网络中的成员资格变化的报告并传递该报告。在块802,节点接收指示对等网络中的成员资格变化的事件。例如,第一节点可选择一随机标识符ID,并执行查找来确定该标识符是否包括在对等网络内。标识符可被认为是对等网络中的第一节点的地址。如果标识符ID尚未包括在对等网络中,则第一节点可定位具有下一最高标识符(表示为ID′)的“继承者”节点,并向该继承者节点通知第一节点已加入到对等网络中。可通过向继承者节点传递“加入”事件来执行通知。
在判别块804,确定节点先前是否接收到事件。如果节点先前接收到了事件(块804),则删除该事件(块806)。由此,在此示例中,事件不被该节点传播一次以上。在另一示例中,可使用阈值将事件传递预定的次数,以提供实现对等网络的系统中的期望的冗余度。
如果节点先前未接收到事件(块804),则在判别块808,确定是否超过了将事件传递到其它节点的阈值。如果超过了阈值(块808),则将事件添加到队列(块801)。以此方式,过程800可通过在给定的时间段传递不超过预定数量的事件来控制对等网络中的维护成本。
如果未超过阈值(块808)或在事件被添加到队列(块810)之后,在判别块812确定是否达到了预定的广播时间。例如,对等网络中的每一节点可广播该节点在不同的预定间隔接收的事件,以“展开”网络资源中用于传递该事件的成本。如果尚未达到预定的广播时间(块812),则过程800返回到块802以接收额外的事件(如果有的话)。
当达到该节点的预定广播时间时(块812),形成包括该事件的报告。例如,节点可累计从多个节点接收的事件,使得发送具有该事件的单个通信。该事件可从在块810储存的事件队列中获取,和/或从用于储存在该节点处接收的事件的其它存储中获取。
在块816,检查一路由表以确定何处广播该报告。在块818,向路由表中引用的每一节点并行地广播该报告。相应块816、818处的路由表和广播可用各种方法来执行。例如,路由表可被配置成图1的网络用户查找器表114,它使用对数函数来描述多个其它节点。网络用户查找器表114可通过探查对应于条目的节点来更新。如上所述,图1的网络用户查找器表114的“网络用户查找器”形成了一广播图,它具有足够的冗余度,使得报告被分发到节点所驻留的区域中的节点。在另一实现中,网络用户查找器也可用于将报告广播到位于区域外的其它节点。
接收报告的每一节点可执行过程800,使得报告中所描述的事件被广播到包括在每一顺序节点中的网络用户查找器表中引用的节点。由此,通过传递事件,事件经由相应的网络用户查找器表定义的广播图从始发节点散布到所有其它节点。一旦在其它节点处接收了事件,其它节点帮助始发节点分发事件。
报告中所描述的事件然后可由每一节点用于更新包括在其中的相应SSRT。由此,SSRT可用于减少定位期望数据所需的中继段的数量,并减少用于维护路由表的网络带宽量。
图9所示是一个示例性实现中的过程900的流程图,其中,路由表大小基于节点的可用资源来动态地确定。在对等网络的某些实现中,网络的每一节点可能无法访问相等的硬件、软件和/或网络资源。例如,如图1所示,计算设备104(B)可能具有相当大量的硬件和软件资源,而计算设备104(1)可能具有有限的硬件和软件资源,因为计算设备104(1)被设计成便携式的。另外,节点可能具有不同的带宽来连接到网络,比如一个节点可使用拨号连接,而另一节点可使用数字订户线(DSL)。这些节点的每一个的路由表被基于节点的可用资源来动态地配置,使得节点被配置成以与其可用资源相一致的方式处理对等网络中的路由。
例如,在块902,节点加入对等网络。例如,节点可如上所述地生成一随机标识符。在块904,节点确定其可用硬件、软件和/或网络资源。例如,节点可执行确定该节点的处理和存储器能力的软件模块。当被执行时,软件模块也可确定网络连接的可用带宽,如通过确定它从已知网络目的地接收响应所花费的时间来确定,等等。
在块906,基于资源的确定配置节点的路由表(块904)。在一个示例中,软件模块可储存基于网络连接的带宽描述包括在路由表中的条目量的各种阈值。例如,如果节点通过拨号连接来连接,则路由表可被配置成具有比如果通过线缆调制解调器连接时更少的条目。
在另一示例中,软件模块可将节点的可用硬件、软件和/或网络资源与网络中的其它节点进行比较,以获得依照对等网络中的其它路由表大小的路由表大小。例如,当节点加入对等网络时,节点可如上所述地定位继承者节点。当被定位时,节点可查询继承者节点以基于该继承者节点的硬件、软件和/或网络资源确定所构造的路由表的大小。节点然后可将其可用资源与继承者节点的可用资源进行比较,并基于比较配置路由表使具有若干条目。例如,如果节点比继承者节点具有更多的资源,则节点可配置路由表使具有比继承者节点的路由表具有更多条目。可采用各种算法来比较资源并相应地配置路由表。
另外,当节点是对等网络的成员时,路由表可以周期的间隔来重新配置。例如,当节点是对等网络的成员时,节点可作出资源的周期性确定。由此,可构造路由表以反映对等网络中的对应节点的可用资源,并可维护路由表以反映当节点是对等网络的成员时该节点的当前可用资源。
示例性计算设备
此处描述的各种组件和功能使用多个单独的计算机来实现。图10示出了计算环境100的一个典型示例的组件,包括计算机,由标号1002引用,它适用于提供对等网络中的节点。计算机1002可以与图1的多个客户机102(a)和多个计算设备104(1)-104(B)相同或不同。图10所示的组件仅是示例,并非暗示对本发明的功能范围的局限;本发明不必要依赖于图10所示的特征。
一般而言,可使用各种不同的通用或专用计算系统配置。适用于本发明的众所周知的计算系统、环境和/或配置的示例可包括但不限于,个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、网络就绪的设备、小型机、大型机、包括上述系统或设备的任一个的分布式计算环境等等。
计算机的功能在许多情况下由诸如由计算机执行的软件组件等计算机可指令指令来实施。一般而言,程序组件包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。任务也可由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,软件组件可以位于本地和远程计算机存储介质中。
指令和/或软件组件在不同的时刻储存在各种计算机可读介质中,它们或者是计算机的一部分,或者可由计算机读取。例如,程序通常分布在软盘、CD-ROM、DVD或诸如已调制信号等某一形式的通信介质中。从那里,它们可被安装或加载到计算机的次级存储器中。在执行时,它们被至少部分地加载到计算机的基本电子存储器中。
为说明目的,程序以及诸如操作系统等其它可执行程序组件在此处被示出为离散的块,尽管可以认识到这些程序和组件可在不同的时刻驻留在计算机的不同存储组件中,并由计算机的数据处理器执行。
参考图10,计算机1002的组件可包括,但不限于,处理单元1004、系统存储器1006以及将包括系统存储器的各种系统组件耦合至处理单元1004的系统总线1008。系统总线1008可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各种总线体系结构的任一种的局部总线。
计算机1002通常包括各种计算机可读介质。计算机可读介质可以是可由计算机1002访问的任一可用介质,包括易失和非易失介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。“计算机存储介质”包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失和非易失,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机1002访问的任一其它介质。通信介质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
系统存储器1006包括易失和/或非易失存储器形式的计算机存储介质,如只读存储器(ROM)1010和随机存取存储器(RAM)1012。基本输入/输出系统1014(BIOS)包括如在启动时帮助在计算机1002内的元件之间传输信息的基本例程,通常储存在ROM 1010中。RAM 1012通常包含处理单元1004立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图10示出了操作系统1016、应用程序1018、软件组件1020和程序数据1022。
计算机1002也可包括其它可移动/不可移动、易失/非易失计算机存储介质。仅作示例,图10示出了对不可移动、非易失磁介质进行读写的硬盘驱动器1024、对可移动、非易失磁盘1028进行读写的磁盘驱动器1026以及对可移动、非易失光盘1032,如CD ROM或其它光介质进行读写的光盘驱动器1030。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器1024通常通过不可移动存储器接口,如数据介质接口1034连接到系统总线1008,磁盘驱动器1026和光盘驱动器1030通常通过可移动存储器接口连接到系统总线1008。
图10讨论并示出的驱动器及其关联的计算机存储介质为计算机1002提供了计算机可读指令、数据结构、软件组件和其它数据的存储。例如,在图10中,示出硬盘驱动器1024储存操作系统1016′、应用程序1018′、软件组件1020′和程序数据1022′。注意,这些组件可以与操作系统1016、应用程序1018、软件组件1020和程序数据1022相同,也可以与它们不同。这里对操作系统1016′、应用程序1018′、软件组件1020′和程序数据2022′给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘1036和定位设备(未示出,通常指鼠标、跟踪球或触摸板)向计算机1002输入命令和信息。其它输入设备可包括源设备(如提供流数据的麦克风1038或摄像机1040)、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的输入/输出(I/O)接口1042连接至处理单元1002,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器1044或其它类型的显示设备也通过接口,如视频适配器1046连接至系统总线1008。除监视器1044之外,计算机也可包括其它呈现设备(如扬声器)以及一个或多个打印机,它们通过I/O接口1042连接。
计算机可以在使用到一个或多个远程计算机,如远程设备1050的逻辑连接的网络化环境中操作。远程设备1050可以是个人计算机、网络就绪设备、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机1002相关的元件。图10描述的逻辑连接包括局域网(LAN)1052和广域网(WAN)1054。尽管图10所示的WAN 1054是因特网,然而WAN 1054也可以包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网等。
当在LAN网络环境中使用时,计算机1002通过网络接口或适配器1056连接至LAN 1052。当在WAN网络环境中使用时,计算机1002通常包括调制解调器1058或其它装置,用于通过因特网1054建立通信。调制解调器1058可以是内置或外置的,通过I/O接口1042或其它适当的机制连接至系统总线1008。在网络化环境中,描述的与计算机1002相关的程序模块或其部分可储存在远程设备1050中。作为示例而非局限,图10示出了远程软件组件1060驻留在远程设备1050中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
总结
尽管以对结构特征和/或方法动作专用的语言描述了本发明,然而可以理解,所附权利要求书中定义的本发明不必限于所揭示的具体特征或动作。相反,揭示了具体特征和动作作为实现要求保护的本发明的示例性形式。
Claims (46)
1.一种方法,其特征在于,包括:
在对等网络中的多个节点之一处接收对等网络中的另一所述节点改变成员资格的指示;以及
广播一报告,所述报告:
描述所述改变;以及
由包括在一个所述节点中的路由表中引用的每一所述节点接收。
2.如权利要求1所述的方法,其特征在于,所述指示是关于对等网络中其它所述节点的加入或离开事件。
3.如权利要求1所述的方法,其特征在于:
所述路由表是具有多个网络用户查找器表条目的网络用户查找器表;以及
每一所述网络用户查找器表条目通过使用对数函数引用对应的所述节点。
4.如权利要求1所述的方法,其特征在于,对等网络中的每一所述节点包括一叶节点集表,它定义了对等网络的一个或多个网络资源的散列空间。
5.如权利要求1所述的方法,其特征在于,还包括通过累计从两个或多个所述节点接收的指示两个或多个所述节点的成员资格变化的多个所述指示符,形成所述报告,其中,所述报告描述了两个或多个所述节点的成员资格变化。
6.如权利要求1所述的方法,其特征在于,还包括通过确定先前是否由一个所述节点接收了所述指示,并且如果未接收指示,则将所述指示包括在所述报告内,以形成所述报告。
7.如权利要求1所述的方法,其特征在于,所述路由表不引用多个节点的至少一个其它所述节点。
8.如权利要求1所述的方法,其特征在于,所述广播是在达到了预定广播时间时执行的。
9.如权利要求1所述的方法,其特征在于,每一所述节点是由计算设备提供的。
10.一个或多个包括计算机可执行指令的计算机可读介质,当由计算机执行所述指令时,指示所述计算机执行权利要求1所述的方法。
11.在被配置成包括在具有多个节点的对等网络内的节点中,一种方法,包括:
在所述节点处接收由另一所述节点广播的指示;以及
响应于接收所述指示,更新一软状态路由表(SSRT)中的至少一个软状态路由表条目,所述软状态路由表具有多个所述SSRT条目,其每一个引用一对应的所述节点。
12.如权利要求11所述的方法,其特征在于,所述指示是加入或离开事件。
13.如权利要求11所述的方法,其特征在于,所述指示在检查了一网络用户查找器表以后由其它所述节点广播。
14.如权利要求11所述的方法,其特征在于,所述节点包括一叶节点集表,它定义了对等网络中提供的资源的散列空间。
15.如权利要求14所述的方法,其特征在于,所述叶节点集表是通过探查至少一个其它所述节点来维护的。
16.如权利要求11所述的方法,其特征在于,所述节点包括一网络用户查找器表,它具有多个网络用户查找器表条目,其中,每一所述网络用户查找器表条目通过使用对数函数描述了一个对应的所述节点的位置。
17.如权利要求16所述的方法,其特征在于,所述网络用户查找器表是通过探查网络用户查找器表中引用的每一所述对应的节点来维护的。
18.如权利要求11所述的方法,其特征在于,还包括确定每一所述指示先前是否由该节点接收,并且如果未接收,执行更新。
19.一个或多个包括计算机可执行指令的计算机可读介质,当由一计算机执行所述指令时,指示所述计算机执行权利要求11所述的方法。
20.一种方法,其特征在于,包括:
在包括在对等网络中的节点处确定该节点上用于在对等网络中通信的可用资源;以及
基于所述确定,在该节点上形成用于在对等网络中路由请求的路由表。
21.如权利要求20所述的方法,其特征在于,所述资源是节点的硬件、软件或网络资源的至少一个。
22.如权利要求20所述的方法,其特征在于,所述形成包括基于所述确定导出路由表中的多个条目。
23.如权利要求20所述的方法,其特征在于,所述确定是在对其确定可用资源的节点加入对等网络时执行的。
24.如权利要求20所述的方法,其特征在于,所述确定是在对其确定可用资源的节点被确定为对等网络的成员时以周期性的间隔执行的。
25.如权利要求20所述的方法,其特征在于:
所述确定还包括确定对等网络中至少一个其它所述节点的可用资源;以及
所述配置还包括基于对所述节点和至少一个其它所述节点的可用资源的确定,配置所述节点上的路由表。
26.一个或多个包括计算机可执行指令的计算机可读介质,当由一计算机执行所述指令时,指示所述计算机执行权利要求20所述的方法。
27.一种方法,其特征在于,包括:
由对等网络中的多个节点之一使用一迭代光晕滤波器压缩描述路由表中的条目的数据;以及
形成通信,以将所压缩的数据传递到另一所述节点。
28.如权利要求27所述的方法,其特征在于,还包括将所述迭代光晕滤波器传递到其它所述节点。
29.如权利要求27所述的方法,其特征在于,还包括通过使用所压缩的数据,更新其它所述节点处的路由表的一个或多个条目。
30.一个或多个包括计算机可执行指令的计算机可读介质,当由一计算机执行所述指令时,指示所述计算机执行权利要求27所述的方法。
31.一个或多个包括计算机可执行指令的计算机可读介质,当由一计算机执行所述指令时,指示所述计算机:
对于多个节点的一个或多个确定何时出现对等网络中的成员资格变化;以及
当出现变化时,将一报告广播到多个节点的一个子集,其中:
所述报告描述了成员资格变化;以及
所述子集是通过检查引用该子集中的每一所述节点的表来建立的。
32.如权利要求31所述的一个或多个计算机可读介质,其特征在于:
所述表被配置成具有多个网络用户查找器表条目的网络用户查找器表;以及
每一所述网络用户查找器表条目通过使用对数函数描述了一个对应的所述节点的位置。
33.如权利要求31所述的一个或多个计算机可读介质,其特征在于,对等网络中的多个节点采用一分布式散列表,以将由多个节点提供的资源空间划分成多个区域。
34.如权利要求31所述的一个或多个计算机可读介质,其特征在于,所述表是通过探查所述子集中引用的每一所述节点来维护的。
35.一种包括安排在对等网络中的多个节点的系统,所述节点的每一个包括用于执行计算机指令的处理器,其特征在于:
每一所述节点包括一软状态路由表(SSRT),它具有引用一组所述节点的多个SSRT条目;以及
每一所述SSRT条目引用来自所述节点组的相应的所述节点;以及
当由所述处理器执行时,所述计算机指令在从包括在所述节点组中的至少一个所述节点接收了指示广播之后,更新对应的每一所述SSRT条目。
36.如权利要求35所述的系统,其特征在于,所述指示是加入或离开事件。
37.如权利要求35所述的系统,其特征在于,所述指示被配置成由至少一个所述节点通过检查包括在至少一个所述节点中的网络用户查找器表来广播。
38.如权利要求35所述的系统,其特征在于,每一所述节点还包括一叶节点集表,它定义了对等网络中提供的资源的散列空间。
39.如权利要求35所述的系统,其特征在于,每一所述节点还包括一网络用户查找器表,它具有多个网络用户查找器表条目,其中,每一所述网络用户查找器表条目通过使用对数函数描述了一个对应的所述节点的位置。
40.一种包括在具有多个节点的对等网络中的节点,所述节点的每一个可通过一被划分成多个块的标识符来定位,其特征在于,所述节点包括:
一处理器;以及
存储器,被配置成维护:
一叶节点集表,它定义了对等网络中提供的资源的散列空间;
一网络用户查找器表,它具有多个网络用户查找器表条目,其中,每一
所述网络用户查找器表条目通过使用对数函数描述了一个对应的所述节点的
位置;以及
一软状态路由表(SSRT),它具有:
SSRT条目,它每一个引用一个相应的所述节点;
第一组SSRT条目,它具有彼此匹配的第一所述块;以及
第二组SSRT条目,其具有:
匹配的第一所述块;以及
彼此匹配的第二所述块。
41.如权利要求40所述的节点,其特征在于:
所述叶节点集表和所述网络用户查找器表被配置成通过探查来更新;以及
所述SSRT被配置成通过从由SSRT条目引用的一个或多个所述节点接收指示的广播来更新。
42.如权利要求41所述的节点,其特征在于,所述指示被配置成由至少一个所述节点通过检查包括在至少一个所述节点中的网络用户查找器表来广播。
43.如权利要求40所述的节点,其特征在于,SSRT中SSRT条目的数量是基于节点的可用资源来确定的。
44.如权利要求40所述的节点,其特征在于,SSRT中SSRT条目的数量是基于与对等网络中的其它所述节点相比,所述节点上的可用资源来确定的。
45.一种包括在具有多个节点的对等网络中的节点,其特征在于,所述节点包括:
一处理器;以及
存储器,它被配置成维护:
一软状态路由表(SSRT),它具有SSRT条目,其每一个引用一个相应的所述节点;以及
一迭代光晕滤波器,用于压缩所述SSRT条目以传递到另一所述节点。
46.如权利要求45所述的节点,其特征在于,所述迭代光晕滤波器包括多个光晕滤波器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US55937004P | 2004-03-31 | 2004-03-31 | |
US60/559,370 | 2004-03-31 | ||
US10/853,933 | 2004-05-25 | ||
US10/853,933 US7730207B2 (en) | 2004-03-31 | 2004-05-25 | Routing in peer-to-peer networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1681257A true CN1681257A (zh) | 2005-10-12 |
CN1681257B CN1681257B (zh) | 2011-06-08 |
Family
ID=34890598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100637523A Expired - Fee Related CN1681257B (zh) | 2004-03-31 | 2005-03-31 | 用于在对等网络中进行路由的方法 |
Country Status (12)
Country | Link |
---|---|
US (1) | US7730207B2 (zh) |
EP (1) | EP1583326B1 (zh) |
JP (1) | JP4806203B2 (zh) |
KR (1) | KR101120724B1 (zh) |
CN (1) | CN1681257B (zh) |
AT (1) | ATE488083T1 (zh) |
AU (1) | AU2005201191B2 (zh) |
BR (1) | BRPI0501178A (zh) |
CA (1) | CA2503360A1 (zh) |
DE (1) | DE602005024636D1 (zh) |
MX (1) | MXPA05003462A (zh) |
RU (1) | RU2408064C2 (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009071008A1 (fr) * | 2007-11-22 | 2009-06-11 | Huawei Technologies Co., Ltd. | Procédé, équipement et système de mise à jour d'une table de routage après une défaillance de nœud dans un réseau peer-to-peer |
WO2011017939A1 (zh) * | 2009-08-10 | 2011-02-17 | 中兴通讯股份有限公司 | 一种业务实现方法及业务系统 |
CN101523372B (zh) * | 2006-10-05 | 2012-01-25 | 澳大利亚国家Ict有限公司 | 分散式多用户在线环境 |
CN101690038B (zh) * | 2007-07-10 | 2013-03-06 | 高通股份有限公司 | 用于在对等网络中的对等点发现中传送标识符的编码方法 |
CN101731015B (zh) * | 2007-07-10 | 2013-03-06 | 高通股份有限公司 | 在对等网络中的对等设备发现中传送标识符的编码方法 |
US8619631B2 (en) | 2006-03-30 | 2013-12-31 | Brother Kogyo Kabushiki Kaisha | Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program |
US8910252B2 (en) | 2009-04-14 | 2014-12-09 | Huwei Technologies Co., Ltd. | Peer enrollment method, route updating method, communication system, and relevant devices |
CN105532038A (zh) * | 2013-08-27 | 2016-04-27 | 索尼公司 | 信息处理设备和信息处理方法 |
CN109313622A (zh) * | 2016-04-28 | 2019-02-05 | 康杜实验室公司 | 用于密集路由线组的向量信令码 |
US11329717B2 (en) | 2020-05-26 | 2022-05-10 | Huawei Technologies Co., Ltd. | Packet forwarding incorporating partial sorting of path costs or utilities |
WO2022121669A1 (en) * | 2020-12-10 | 2022-06-16 | Huawei Technologies Co.,Ltd. | Method and apparatus for limited flooding and network routing region membership management |
US11374852B2 (en) | 2020-05-29 | 2022-06-28 | Huawei Technologies Co., Ltd. | Piecewise shortest path first routing |
US11438823B2 (en) | 2020-05-29 | 2022-09-06 | Huawei Technologies Co., Ltd. | Orthodromic routing |
US11451475B2 (en) | 2019-12-19 | 2022-09-20 | Huawei Technologies Co., Ltd. | Packet forwarding based on geometric location |
US11476925B2 (en) | 2021-02-04 | 2022-10-18 | Huawei Technologies Co., Ltd. | Method and apparatus for limited flooding in networks using transit nodes |
US11601780B2 (en) | 2021-01-05 | 2023-03-07 | Huawei Technologies Co., Ltd. | Method and apparatus for propagating network status updates using directional tracking |
US11909627B2 (en) | 2021-01-04 | 2024-02-20 | Huawei Technologies Co., Ltd. | Method and apparatus for managing network status information using multiple degree of precision graph |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372870B1 (en) | 2003-01-21 | 2016-06-21 | Peer Fusion, Inc. | Peer to peer code generator and decoder for digital systems and cluster storage system |
US8626820B1 (en) | 2003-01-21 | 2014-01-07 | Peer Fusion, Inc. | Peer to peer code generator and decoder for digital systems |
US7418454B2 (en) * | 2004-04-16 | 2008-08-26 | Microsoft Corporation | Data overlay, self-organized metadata overlay, and application level multicasting |
US8392515B2 (en) | 2004-10-22 | 2013-03-05 | Microsoft Corporation | Subfederation creation and maintenance in a federation infrastructure |
US8014321B2 (en) | 2004-10-22 | 2011-09-06 | Microsoft Corporation | Rendezvousing resource requests with corresponding resources |
US20080288659A1 (en) | 2006-11-09 | 2008-11-20 | Microsoft Corporation | Maintaining consistency within a federation infrastructure |
US8095600B2 (en) | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US8095601B2 (en) | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US8549180B2 (en) | 2004-10-22 | 2013-10-01 | Microsoft Corporation | Optimizing access to federation infrastructure-based resources |
US20110082928A1 (en) | 2004-10-22 | 2011-04-07 | Microsoft Corporation | Maintaining consistency within a federation infrastructure |
US7958262B2 (en) | 2004-10-22 | 2011-06-07 | Microsoft Corporation | Allocating and reclaiming resources within a rendezvous federation |
US7656810B2 (en) * | 2005-03-25 | 2010-02-02 | Microsoft Corporation | System and method for monitoring and reacting to peer-to-peer network metrics |
US7643458B1 (en) * | 2005-05-25 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Communicating between wireless communities |
JP2007027996A (ja) * | 2005-07-13 | 2007-02-01 | Konica Minolta Holdings Inc | ネットワークにおける論理接続方法および情報処理装置 |
JP4544072B2 (ja) * | 2005-07-20 | 2010-09-15 | ブラザー工業株式会社 | ノード装置、コンピュータプログラム、情報配信システム、及びネットワーク参加方法 |
US8055788B1 (en) * | 2005-11-21 | 2011-11-08 | Hong Kong University Of Science And Technology | Efficient person search mechanism in peer-to-peer networks |
US7468952B2 (en) * | 2005-11-29 | 2008-12-23 | Sony Computer Entertainment Inc. | Broadcast messaging in peer to peer overlay network |
US8904456B2 (en) | 2006-02-13 | 2014-12-02 | Tvu Networks Corporation | Methods, apparatus, and systems for providing media content over a communications network |
US20070233832A1 (en) * | 2006-03-30 | 2007-10-04 | Matsushita Electric Industrial Co., Ltd. | Method of distributed hash table node ID collision detection |
JP2007280303A (ja) * | 2006-04-11 | 2007-10-25 | Brother Ind Ltd | 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等 |
JP4862463B2 (ja) * | 2006-04-11 | 2012-01-25 | ブラザー工業株式会社 | 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等 |
JP4655986B2 (ja) * | 2006-04-12 | 2011-03-23 | ブラザー工業株式会社 | ノード装置、記憶制御プログラム及び情報記憶方法 |
US20070255823A1 (en) * | 2006-05-01 | 2007-11-01 | International Business Machines Corporation | Method for low-overhead message tracking in a distributed messaging system |
JP4769647B2 (ja) * | 2006-06-23 | 2011-09-07 | キヤノン株式会社 | 通信システム、通信装置、通信装置の通信方法、並びにコンピュータプログラム |
JP4732972B2 (ja) | 2006-06-30 | 2011-07-27 | 株式会社エヌ・ティ・ティ・ドコモ | アドホックネットワーク、ノード、経路制御方法、及び経路制御プログラム |
US20080059631A1 (en) * | 2006-07-07 | 2008-03-06 | Voddler, Inc. | Push-Pull Based Content Delivery System |
US7941477B2 (en) * | 2006-07-26 | 2011-05-10 | V V S Virtual Video Systems | Video and multimedia distribution system |
KR100810351B1 (ko) * | 2006-11-15 | 2008-03-04 | 재단법인서울대학교산학협력재단 | 통신 시스템에서 채널 프루빙 시스템 및 방법 |
US20080159266A1 (en) * | 2006-12-30 | 2008-07-03 | Arcsoft (Shanghai) Technology Company, Ltd | Determining Pairings of Telephone Numbers and IP Addresses from Caching and Peer-To-Peer Lookup |
US20080198754A1 (en) * | 2007-02-20 | 2008-08-21 | At&T Knowledge Ventures, Lp | Method and system for testing a communication network |
US7984158B2 (en) * | 2007-03-20 | 2011-07-19 | Microsoft Corporation | Web service for coordinating actions of clients |
US8213432B2 (en) * | 2007-03-30 | 2012-07-03 | Pioneer Corporation | Network configuration investigating device, network configuration investigating program, network configuration management method, and network configuration management system |
FR2915044B1 (fr) * | 2007-04-16 | 2009-09-18 | France Telecom | Procede de determination de la dynamique d'un reseau logique |
US20080307436A1 (en) * | 2007-06-06 | 2008-12-11 | Microsoft Corporation | Distributed publish-subscribe event system with routing of published events according to routing tables updated during a subscription process |
US8238237B2 (en) * | 2007-06-18 | 2012-08-07 | Sony Computer Entertainment Inc. | Load balancing distribution of data to multiple recipients on a peer-to-peer network |
US7961708B2 (en) * | 2007-07-10 | 2011-06-14 | Qualcomm Incorporated | Coding methods of communicating identifiers in peer discovery in a peer-to-peer network |
US9848372B2 (en) * | 2007-07-10 | 2017-12-19 | Qualcomm Incorporated | Coding Methods of communicating identifiers in peer discovery in a peer-to-peer network |
US8630281B2 (en) * | 2007-07-10 | 2014-01-14 | Qualcomm Incorporated | Coding methods of communicating identifiers in peer discovery in a peer-to-peer network |
CN101399746B (zh) * | 2007-09-26 | 2011-03-16 | 华为技术有限公司 | 报文路由方法、系统、设备和选择备份资源的方法、系统 |
KR20110009077A (ko) * | 2008-01-10 | 2011-01-27 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 멀티웨이 피어 투 피어 매체 스트리밍을 위한 방법, 멀티웨이 매체 스트리밍을 위한 방법 및 컴퓨터 판독 가능한 매체 |
US8775817B2 (en) * | 2008-05-12 | 2014-07-08 | Microsoft Corporation | Application-configurable distributed hash table framework |
US8996726B2 (en) * | 2008-06-19 | 2015-03-31 | Qualcomm Incorporated | Methods and apparatus for event distribution and routing in peer-to-peer overlay networks |
EP2139202B1 (en) * | 2008-06-27 | 2012-03-28 | Alcatel Lucent | Method of providing a successor list |
US8018940B2 (en) * | 2008-08-13 | 2011-09-13 | Alcatel Lucent | Network address lookup based on bloom filters |
US7990973B2 (en) * | 2008-08-13 | 2011-08-02 | Alcatel-Lucent Usa Inc. | Hash functions for applications such as network address lookup |
US9240927B2 (en) * | 2009-02-26 | 2016-01-19 | Qualcomm Incorporated | Methods and apparatus for enhanced overlay state maintenance |
US20100228701A1 (en) * | 2009-03-06 | 2010-09-09 | Microsoft Corporation | Updating bloom filters |
US8549175B2 (en) * | 2009-06-09 | 2013-10-01 | Qualcomm Incorporated | Methods and apparatus for adaptively scheduling a finger stabilization algorithm |
US9009299B2 (en) * | 2010-01-07 | 2015-04-14 | Polytechnic Institute Of New York University | Method and apparatus for identifying members of a peer-to-peer botnet |
US9832104B2 (en) | 2010-02-11 | 2017-11-28 | Microsoft Technology Licensing, Llc | Reliable broadcast in a federation of nodes |
US9055082B2 (en) * | 2010-08-25 | 2015-06-09 | Alcatel Lucent | Peer to peer localization for content in a distributed hash table |
US8290919B1 (en) * | 2010-08-27 | 2012-10-16 | Disney Enterprises, Inc. | System and method for distributing and accessing files in a distributed storage system |
US8392368B1 (en) | 2010-08-27 | 2013-03-05 | Disney Enterprises, Inc. | System and method for distributing and accessing files in a distributed storage system |
US8768981B1 (en) | 2010-08-27 | 2014-07-01 | Disney Enterprises, Inc. | System and method for distributing and accessing files in a distributed storage system |
US8934492B1 (en) | 2010-09-28 | 2015-01-13 | Adtran, Inc. | Network systems and methods for efficiently dropping packets carried by virtual circuits |
JP5666719B2 (ja) * | 2010-12-20 | 2015-02-12 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | ピアツーピア・ネットワークにおける検索 |
JP5387596B2 (ja) * | 2011-02-28 | 2014-01-15 | ブラザー工業株式会社 | 情報通信システム、情報通信方法、情報処理装置およびプログラム |
US9667713B2 (en) * | 2011-03-21 | 2017-05-30 | Apple Inc. | Apparatus and method for managing peer-to-peer connections between different service providers |
TWI571166B (zh) * | 2012-01-13 | 2017-02-11 | 蘋果公司 | 在點對點網路環境中同步站台之選擇 |
US8886827B2 (en) * | 2012-02-13 | 2014-11-11 | Juniper Networks, Inc. | Flow cache mechanism for performing packet flow lookups in a network device |
EP2639708B8 (en) * | 2012-03-13 | 2019-07-31 | Ricoh Company, Ltd. | Method and system for storing and retrieving data |
FR2994003A1 (fr) * | 2012-07-26 | 2014-01-31 | Jean Louis Guenego | Dispositif informatique de stockage de donnees privees totalement distribue en environnement hostile |
KR102110524B1 (ko) * | 2013-03-20 | 2020-05-28 | 삼성전자주식회사 | 컨텐츠 중심 네트워크에서 블룸 필터를 이용하여 라우팅을 수행하는 노드 및 그 방법 |
CN104079675B (zh) * | 2013-03-25 | 2017-12-29 | 联想(北京)有限公司 | 信息处理的方法、电子设备及服务器 |
JP6034754B2 (ja) * | 2013-06-12 | 2016-11-30 | 株式会社東芝 | サーバ装置、通信システム、およびデータ発行方法 |
RU2538323C1 (ru) * | 2013-06-28 | 2015-01-10 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Южно-Российский государственный университет экономики и сервиса" (ФГБОУ ВПО "ЮРГУЭС") | Способ организации таблицы фильтрации межсетевого коммутатора и устройство для его реализации |
EP3017386B1 (en) * | 2013-07-02 | 2020-04-15 | Convida Wireless, LLC | Mechanisms for semantics publishing and discovery |
US9917727B2 (en) | 2014-06-03 | 2018-03-13 | Nicira, Inc. | Consistent hashing for network traffic dispatching |
US9940356B2 (en) * | 2014-07-31 | 2018-04-10 | International Business Machines Corporation | Efficient join-filters for parallel processing |
US10163420B2 (en) | 2014-10-10 | 2018-12-25 | DimensionalMechanics, Inc. | System, apparatus and methods for adaptive data transport and optimization of application execution |
US10062354B2 (en) * | 2014-10-10 | 2018-08-28 | DimensionalMechanics, Inc. | System and methods for creating virtual environments |
US10277686B2 (en) * | 2015-07-29 | 2019-04-30 | Cisco Technology, Inc. | Service discovery optimization in a network based on bloom filter |
US10417094B1 (en) | 2016-07-13 | 2019-09-17 | Peer Fusion, Inc. | Hyper storage cluster |
CN110688523A (zh) * | 2019-09-29 | 2020-01-14 | 深圳市网心科技有限公司 | 视频服务提供方法、装置、电子设备及存储介质 |
KR102503028B1 (ko) * | 2020-11-27 | 2023-02-23 | (주)유미테크 | 블룸필터를 이용한 분산식별자 검색 방법 |
US11799761B2 (en) | 2022-01-07 | 2023-10-24 | Vmware, Inc. | Scaling edge services with minimal disruption |
US11888747B2 (en) | 2022-01-12 | 2024-01-30 | VMware LLC | Probabilistic filters for use in network forwarding and services |
US12081437B2 (en) | 2022-01-12 | 2024-09-03 | VMware LLC | Probabilistic filters for use in network forwarding and services |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1691316A1 (en) * | 1994-10-27 | 2006-08-16 | Intarsia Software LLC | Data copyright management system |
FR2749681B1 (fr) * | 1996-06-10 | 1998-07-10 | Bull Sa | Circuit pour transborder des donnees entre memoires distantes et calculateur comprenant un tel circuit |
US5796830A (en) * | 1996-07-29 | 1998-08-18 | International Business Machines Corporation | Interoperable cryptographic key recovery system |
US5784463A (en) * | 1996-12-04 | 1998-07-21 | V-One Corporation | Token distribution, registration, and dynamic configuration of user entitlement for an application level security system and method |
US6236729B1 (en) * | 1997-06-06 | 2001-05-22 | Hitachi, Ltd. | Key recovery method and system |
US6108699A (en) * | 1997-06-27 | 2000-08-22 | Sun Microsystems, Inc. | System and method for modifying membership in a clustered distributed computer system and updating system configuration |
US6185308B1 (en) * | 1997-07-07 | 2001-02-06 | Fujitsu Limited | Key recovery system |
US5987376A (en) * | 1997-07-16 | 1999-11-16 | Microsoft Corporation | System and method for the distribution and synchronization of data and state information between clients in a distributed processing system |
TW374965B (en) * | 1998-03-17 | 1999-11-21 | Winbond Electronics Corp | Method of processing of transmission of confidential data and the network system |
JPH11275068A (ja) * | 1998-03-20 | 1999-10-08 | Fujitsu Ltd | 鍵管理サーバ、チャットシステムの端末装置、チャットシステム及び記録媒体 |
US6311270B1 (en) * | 1998-09-14 | 2001-10-30 | International Business Machines Corporation | Method and apparatus for securing communication utilizing a security processor |
US6038322A (en) * | 1998-10-20 | 2000-03-14 | Cisco Technology, Inc. | Group key distribution |
US6154543A (en) * | 1998-11-25 | 2000-11-28 | Hush Communications Anguilla, Inc. | Public key cryptosystem with roaming user capability |
US6367010B1 (en) * | 1999-07-02 | 2002-04-02 | Postx Corporation | Method for generating secure symmetric encryption and decryption |
EP1128597B1 (en) * | 2000-02-22 | 2004-07-07 | Telefonaktiebolaget LM Ericsson (publ) | Method and arrangement in a communication network |
JP2002077189A (ja) * | 2000-08-31 | 2002-03-15 | Nec Eng Ltd | Atm交換網における重要呼制御方式 |
JP2002108910A (ja) * | 2000-09-27 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体 |
US20020090089A1 (en) * | 2001-01-05 | 2002-07-11 | Steven Branigan | Methods and apparatus for secure wireless networking |
JP3613185B2 (ja) * | 2001-02-16 | 2005-01-26 | 日本電信電話株式会社 | 無線ノード及びそのパケット経路探索方法 |
JP2002271312A (ja) * | 2001-03-14 | 2002-09-20 | Hitachi Ltd | 公開鍵管理方法 |
US7054867B2 (en) * | 2001-09-18 | 2006-05-30 | Skyris Networks, Inc. | Systems, methods and programming for routing and indexing globally addressable objects and associated business models |
US7305556B2 (en) * | 2001-12-05 | 2007-12-04 | Canon Kabushiki Kaisha | Secure printing with authenticated printer key |
US20030217263A1 (en) * | 2002-03-21 | 2003-11-20 | Tsutomu Sakai | System and method for secure real-time digital transmission |
US7142524B2 (en) * | 2002-05-01 | 2006-11-28 | Meshnetworks, Inc. | System and method for using an ad-hoc routing algorithm based on activity detection in an ad-hoc network |
CN1160911C (zh) * | 2002-09-06 | 2004-08-04 | 联想(北京)有限公司 | 家庭主干网中实现设备间动态组网与资源共享的方法 |
US7613796B2 (en) | 2002-09-11 | 2009-11-03 | Microsoft Corporation | System and method for creating improved overlay network with an efficient distributed data structure |
US7603481B2 (en) * | 2002-10-31 | 2009-10-13 | Novell, Inc. | Dynamic routing through a content distribution network |
US8499086B2 (en) * | 2003-01-21 | 2013-07-30 | Dell Products L.P. | Client load distribution |
US20050015511A1 (en) * | 2003-07-02 | 2005-01-20 | Nec Laboratories America, Inc. | Accelerated large data distribution in overlay networks |
US20050219929A1 (en) | 2004-03-30 | 2005-10-06 | Navas Julio C | Method and apparatus achieving memory and transmission overhead reductions in a content routing network |
-
2004
- 2004-05-25 US US10/853,933 patent/US7730207B2/en not_active Expired - Fee Related
-
2005
- 2005-03-18 AU AU2005201191A patent/AU2005201191B2/en not_active Ceased
- 2005-03-29 AT AT05102448T patent/ATE488083T1/de not_active IP Right Cessation
- 2005-03-29 EP EP05102448A patent/EP1583326B1/en not_active Not-in-force
- 2005-03-29 DE DE602005024636T patent/DE602005024636D1/de active Active
- 2005-03-29 JP JP2005094739A patent/JP4806203B2/ja not_active Expired - Fee Related
- 2005-03-30 CA CA002503360A patent/CA2503360A1/en not_active Abandoned
- 2005-03-30 RU RU2005109223/08A patent/RU2408064C2/ru not_active IP Right Cessation
- 2005-03-31 BR BR0501178-7A patent/BRPI0501178A/pt not_active IP Right Cessation
- 2005-03-31 CN CN2005100637523A patent/CN1681257B/zh not_active Expired - Fee Related
- 2005-03-31 KR KR1020050026940A patent/KR101120724B1/ko not_active IP Right Cessation
- 2005-03-31 MX MXPA05003462A patent/MXPA05003462A/es active IP Right Grant
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8619631B2 (en) | 2006-03-30 | 2013-12-31 | Brother Kogyo Kabushiki Kaisha | Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program |
CN101523372B (zh) * | 2006-10-05 | 2012-01-25 | 澳大利亚国家Ict有限公司 | 分散式多用户在线环境 |
CN101731015B (zh) * | 2007-07-10 | 2013-03-06 | 高通股份有限公司 | 在对等网络中的对等设备发现中传送标识符的编码方法 |
CN101690038B (zh) * | 2007-07-10 | 2013-03-06 | 高通股份有限公司 | 用于在对等网络中的对等点发现中传送标识符的编码方法 |
WO2009071008A1 (fr) * | 2007-11-22 | 2009-06-11 | Huawei Technologies Co., Ltd. | Procédé, équipement et système de mise à jour d'une table de routage après une défaillance de nœud dans un réseau peer-to-peer |
CN101442479B (zh) * | 2007-11-22 | 2011-03-30 | 华为技术有限公司 | P2p对等网络中节点失效后的路由更新方法、设备及系统 |
US8248919B2 (en) | 2007-11-22 | 2012-08-21 | Huawei Technologies Co., Ltd. | Method, device and system for updating routes after node fails in P2P network |
US9819688B2 (en) | 2009-04-14 | 2017-11-14 | Huawei Technologies Co., Ltd. | Peer enrollment method, route updating method, communication system, and relevant devices |
US8910252B2 (en) | 2009-04-14 | 2014-12-09 | Huwei Technologies Co., Ltd. | Peer enrollment method, route updating method, communication system, and relevant devices |
US10616243B2 (en) | 2009-04-14 | 2020-04-07 | Huawei Technologies Co., Ltd. | Route updating method, communication system, and relevant devices |
CN101997759A (zh) * | 2009-08-10 | 2011-03-30 | 中兴通讯股份有限公司 | 一种业务实现方法及业务系统 |
WO2011017939A1 (zh) * | 2009-08-10 | 2011-02-17 | 中兴通讯股份有限公司 | 一种业务实现方法及业务系统 |
CN101997759B (zh) * | 2009-08-10 | 2013-06-05 | 中兴通讯股份有限公司 | 一种业务实现方法及业务系统 |
CN105532038B (zh) * | 2013-08-27 | 2020-07-07 | 索尼公司 | 信息处理设备和信息处理方法 |
CN105532038A (zh) * | 2013-08-27 | 2016-04-27 | 索尼公司 | 信息处理设备和信息处理方法 |
CN109313622B (zh) * | 2016-04-28 | 2022-04-15 | 康杜实验室公司 | 用于密集路由线组的向量信令码 |
CN109313622A (zh) * | 2016-04-28 | 2019-02-05 | 康杜实验室公司 | 用于密集路由线组的向量信令码 |
US11451475B2 (en) | 2019-12-19 | 2022-09-20 | Huawei Technologies Co., Ltd. | Packet forwarding based on geometric location |
US11329717B2 (en) | 2020-05-26 | 2022-05-10 | Huawei Technologies Co., Ltd. | Packet forwarding incorporating partial sorting of path costs or utilities |
US11374852B2 (en) | 2020-05-29 | 2022-06-28 | Huawei Technologies Co., Ltd. | Piecewise shortest path first routing |
US11438823B2 (en) | 2020-05-29 | 2022-09-06 | Huawei Technologies Co., Ltd. | Orthodromic routing |
WO2022121669A1 (en) * | 2020-12-10 | 2022-06-16 | Huawei Technologies Co.,Ltd. | Method and apparatus for limited flooding and network routing region membership management |
US11374652B1 (en) | 2020-12-10 | 2022-06-28 | Huawei Technologies Co., Ltd. | Method and apparatus for limited flooding and network routing region membership management |
US11909627B2 (en) | 2021-01-04 | 2024-02-20 | Huawei Technologies Co., Ltd. | Method and apparatus for managing network status information using multiple degree of precision graph |
US11601780B2 (en) | 2021-01-05 | 2023-03-07 | Huawei Technologies Co., Ltd. | Method and apparatus for propagating network status updates using directional tracking |
US11476925B2 (en) | 2021-02-04 | 2022-10-18 | Huawei Technologies Co., Ltd. | Method and apparatus for limited flooding in networks using transit nodes |
Also Published As
Publication number | Publication date |
---|---|
ATE488083T1 (de) | 2010-11-15 |
RU2005109223A (ru) | 2006-10-10 |
CA2503360A1 (en) | 2005-09-30 |
DE602005024636D1 (de) | 2010-12-23 |
RU2408064C2 (ru) | 2010-12-27 |
CN1681257B (zh) | 2011-06-08 |
KR101120724B1 (ko) | 2012-03-23 |
EP1583326B1 (en) | 2010-11-10 |
AU2005201191B2 (en) | 2009-08-27 |
US20050223102A1 (en) | 2005-10-06 |
EP1583326A2 (en) | 2005-10-05 |
JP2005323346A (ja) | 2005-11-17 |
US7730207B2 (en) | 2010-06-01 |
JP4806203B2 (ja) | 2011-11-02 |
KR20060045065A (ko) | 2006-05-16 |
EP1583326A3 (en) | 2006-01-25 |
BRPI0501178A (pt) | 2005-11-01 |
MXPA05003462A (es) | 2005-11-23 |
AU2005201191A1 (en) | 2005-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1681257A (zh) | 对等网络中的路由 | |
US10986387B1 (en) | Content management for a distributed cache of a wireless mesh network | |
CN101390075A (zh) | 可靠、高效的对等存储 | |
US9037657B2 (en) | Systems and methods for peer-to-peer bandwidth allocation | |
CN101427246B (zh) | 用于提供分布式、分散式数据存储与检索的系统和方法 | |
US7814146B2 (en) | File fragment trading based on rarity values in a segmented file sharing system | |
JP4837951B2 (ja) | データブロードキャスト受信器のパワーマネジメント | |
CN1795448A (zh) | 在计算机网络中检索电子文档的复制件 | |
CN1764171A (zh) | 将资源请求与对应的资源会合 | |
US8103617B2 (en) | Distributed directory server, distributed directory system, distributed directory managing method, and program of same | |
US20080133666A1 (en) | Moving File Fragments from Background File Sharing to Foreground File Sharing and Preventing Duplicate Downloads | |
WO2006135522A2 (en) | Advertisements in an alert interface | |
CN1893434A (zh) | 构建对等消息通信应用程序的api | |
CN1627760A (zh) | 用于无线多跳专门网络的协议 | |
US9203928B2 (en) | Data storage and retrieval | |
TW200843411A (en) | Health-related opportunistic networking | |
US20100054128A1 (en) | Near Real-Time Alerting of IP Traffic Flow to Subscribers | |
Nordström et al. | A search-based network architecture for mobile devices | |
EP2502384B1 (fr) | Procede et systeme pour distribuer du contenu avec des garanties de delais de livraison dans les reseaux radio hybrides | |
US11089103B1 (en) | Content management in a distributed cache of a wireless mesh network | |
US20020178260A1 (en) | Distributed computer resource bartering system | |
US7551570B2 (en) | System and method for data handling a network environment | |
CN101662494A (zh) | 一种实现内容提供的方法、系统和装置 | |
JP2004171554A (ja) | 相互評価システムならびにそれに用いられる端末およびプログラム | |
Chaikijwatana et al. | VCG auction-based bandwidth allocation with network coding in wireless 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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110608 Termination date: 20140331 |