专利名称:用于分布式哈希表中的内容的对等业务局域化的制作方法
技术领域:
实施例涉及对等文件共享网络以及用于局域化对等业务的方法。
背景技术:
对等文件共享网络的一些版本依赖于网络单元的集中式计算机或网络来列出在该网络中的全部可用内容。其他对等文件共享网络并不依赖于集中式组件来列出网络上的全部可用内容。相反,当内容本身是分布式时,目录也是分布式的。用于在所有参与的客户端上分发目录数据库的技术有时被称为分布式哈希表(DHT)。不论网络是集中型网络还是使用DHT的网络,对等体(peer)从一个对等体向另一个对等体下载内容,而不考虑共享其内容的对等体的位置。结果,如果一个对等体请求包含在另一对等体计算机上的文件,则包含该文件的计算机可能位于远离请求该文件的对等体的地方。因为在对等体之间的链路必须通过一个或多个因特网服务提供商(IPS),所以这不仅导致了文件传送延迟,而且增加了成本。因此,这样的对等类型的连接可能在将ISP链接在一起的传输链路上产生大量的业务,从而增加了网络运营商的成本。例如,假定存在受欢迎的内容文件,并且在世界范围内有10000个用户在其计算机上具有该文件。假定该10000个用户中的50个可能位于给定的ISP “A”内。假定在ISP “A”内的一个对等体对受欢迎的文件感兴趣并且请求目录,则可从用于50个随机对等体的集中式或DHT型目录下载该文件。在这样的情况下,有O. 5%的机会在ISP“A”内找到单个对等体。如果具有该文件的50个对等体随机地被识别为请求对等体,则所有50个对等体在ISP “A”内的机会接近于O。在这样的情况下,尽管在与请求文件的对等体相同的ISP内存在很多对等体,但可能的是对等体以从位于请求 对等体的ISP外的对等体接收文件来结束。这将需要在ISP之间的传输链路上的不必要的业务。图1示出了集中式对等系统10的示意性示图。集中式对等系统10包括计算机
12,该计算机12还被称为对等体和/或节点12以及中央计算机14。对等体和/或节点12经由连接16连接到中央计算机14。连接16可以是任何适当的连接,诸如无线连接、以太网连接或任何适当连接硬件或方法的组合。尽管对等系统10仅示出了 4个对等体和/或节点12以及单个中央计算机14,但是应当理解,对等系统不限于所示出的对等体和/或节点12以及单个中央计算机14的中央网络组件的数目。实际上,对等系统10可以包括更多的对等体和/或节点12,并且很多计算机、服务器或其他组件可以实现所示出的中央计算机14的任务。在如图1中所示的集中式对等系统10中,当对等体和/或节点12请求内容或文件时,经由连接16将请求发送到集中式计算机14。发送请求在对等网络中是公知的。集中式计算机14确定哪些对等体和/或节点12具有所请求的内容并且可以利用与哪些对等体和/或节点12具有所请求的内容有关的信息对该请求进行响应。集中式计算机14可以识别若干具有所请求的内容的对等体和/或节点12,并且利用与多个识别的对等体和/或节点12有关的信息进行响应。一旦识别了对等体和/或节点12或者多个对等体和/或节点12,那么请求对等体就可以从所识别的对等体中的一个接收所请求的文件。集中式计算机14可以进行对于可能包含所请求的内容的很多对等体和/或节点12中的哪些对等体和/或节点12应当被识别为请求对等体的确定,以便于减少通过传输链路传送的大量数据。可以做出这些决定以局域化对等业务。将在下文中更加详细地描述该确定。例如,用于对等网络的一种公知的文件共享系统被称为BITTORRENT。BITT0RRENT文件共享系统用于发现对等体的机制影响P2P网络的结构并且因此影响数据传播。因此,在BITTORRENT文件共享系统中的对等体发现的知识是清楚地理解业务局域化的基础。BITTORRENT文件共享系统采用跟踪器或中央服务器(例如,集中式计算机14)来发现对等体并且协调文件交换。对等体在其从web下载的种子文件(torrent)内获取跟踪器的地址。“.torrent ”是包含用于文件交换的有用信息的元数据文件。初始地,对等体联系跟踪器,以获取保存文件或其一部分的对等体的列表。跟踪器以通常由50个对等体组成的活动对等体的随机子集的对等体列表来进行应答。然后,对等体定期地与跟踪器进行交互,以便发送与该对等体已经下载或上载的字节的量相关的信息。作为响应,跟踪器向对等体发送新的对等体列表。由跟踪器经由包含在跟踪器回复中的最小间隔字段来调整客户端和跟踪器之间的通信的频率。通常,其被设置为15分钟。如上所述,对等体列表是活动对等体的随机子集。对等体列表绝不包括在网络(例如,因特网服务提供商网络(ISP)网络)内的对等体的局域化。已经进行了一些努力以有效利用跟踪器或中央服务器(例如,集中式计算机14)用于局域化。然而,这些努力不在本公开的范围内。
发明内容
一个实施例包括一种用于局域化对等网络中的内容的方法。该方法包括接收通知第一内容的第一消息;基于第一消息在表中存储第一键(key)。第一键表不第一节点信息和第一内容信息。第一节点信息标识通知第一内容的第一节点,并且第一内容信息标识第一内容。将多个第一变体键存储在表中。多个第一变体键中的每一个是所存储的第一键的变体。另一实施例包括一种用于局域化对等网络中的内容的方法。该方法包括拦截请求消息。该请求消息是对内容的请求,该请求消息包括目的地地址。基于目的地地址来确定第一键。基于第一键和表来确定节点列表。该表包括多个条目。每个条目具有键和变体键之一。至少一个键基于通知消息。键表示节点信息和内容信息。节点信息标识通知内容的节点,并且内容信息标识内容,并且每个变体键是键中的一个键的变体。向请求消息的发送方发送响应。响应消息包括节点列表。
从以下本文中给出的详细描述和附图,将更全面地理解本发明,在附图中,相同的元素由相同的附图标记来表示,附图标记仅通过说明的方式来给出并且因此不对本发明进行限制,并且其中
图1图示了现有技术中具有集中式组件的对等文件共享网络的示意图。图2图示了根据示例性实施例的利用分布式哈希表(DHT)的对等文件共享网络的示意图。图3图示了根据示例性实施例的文件共享网络的示意图并且图示了与文件共享网络进行通信的计算机的各种组件。图4A-图4F图示了根据示例性实施例的DHT。图5图示了根据示例性实施例的用于通知对等体的方法的流程图。图6图示了根据示例性实施例的用于存储节点身份(Sybil)的方法的流程图。图7图示了根据示例性实施例的用于拦截通知内容的消息的方法的流程图。图8图示了根据示例性实施例的用于拦截请求内容的消息的方法的流程图。应当注意,这些附图意在说明在特定示例性实施例中利用的方法、结构和/或材料的一般特性并且补充以下提供 的文字描述。然而,这些附图并非按比例绘制,并且可能没有准确地反映任何给定实施例的准确的结构或性能特性,并且不应当被解释为限定或限制示例性实施例所包含的值或属性的范围。例如,分子、层、区域和/或结构元素的相对厚度和定位可能出于清楚的目的而被减小或放大。在各个附图中使用类似或相同的附图标记意在指示类似或相同的元素或特征的存在。
具体实施例方式尽管示例性实施例能够具有各种修改和替代形式,其实施例在附图中通过示例的方式被示出,并且在本文中将被详细描述。然而,应当理解,并不希望将示例性实施例限制为所公开的具体形式,而是相反,示例性实施例要涵盖落在权利要求书的范围内的所有修改、等价物和替代。在附图的描述中,相同的附图标记指示相同的元素。在更详细讨论示例性实施例之前,要注意,一些示例性实施例被描述成描绘为流程图的过程或方法。虽然流程图将操作描述为顺序的过程,但是很多操作可以并行地、并存地或同时地被执行。此外,操作的顺序可以重新安排。当过程的操作完成时,这些过程可以终止,但是还可以具有没有包括在附图中的其他步骤。这些过程可以与方法、功能、进程、子例程、子程序等相对应。以下所讨论的方法中的一些可以通过流程图来图示,这些方法可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当以软件、固件、中间件或微代码来实现时,用于执行必要任务的程序代码或代码段可以被存储在诸如存储介质的机器或计算机可读介质中。处理器可以执行必要的任务。出于描述本发明的示例性实施例的目的,这里公开的特定的结构和功能细节仅仅是代表性的。然而,本发明可以以很多替代形式来具体化,并且不应当被解释为仅限于这里所阐述的实施例。应当理解,虽然在本文中可以使用术语第一、第二等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于使一个单元与另一个单元进行区分。例如,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地,第二单元可以被称为第一单元。如这里使用的,术语“和/或”包括相关列出的项目中的一个或多个的任何或全部组合。
应当理解,当单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到另一单元,或者可以存在中间单元。相反,当单元被称为“直接连接”或“直接耦合”到另一单元时,不存在中间单元。应当以类似的方式(例如,“之间”对“直接之间”,“相邻”对“直接相邻”等)解释用于描述单元之间的关系的其他词语。本文中使用的术语是出于仅描述具体实施例的目的,并且并不意在限制示例性实施例。如本文使用的,单数形式“一”和“该”意在还包括复数形式,除非上下文明确地另外指示。还应当理解,术语“包括”、“包含”和/或“具有”在本文使用时规定所阐述的特征、整体、步骤、操作、单元和/或组件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、单元、组件和/或其组的存在或添加。还应当注意,在一些替代实现中,所注意的功能/动作可以不以附图中示出的顺序发生。例如,根据所涉及的功能/动作,连续示出的两个附图实际上可以同时执行或者有时可以以相反的顺序执行。除非以其他方式限定,否则本文所使用的所有术语(包括科技术语)具有与示例性实施例所属的领域中的普通技术人员所普遍理解的意义相同的含义。还应当理解,例如在普遍使用的词典中定义的术语应当被解释为具有与其在相关领域的上下文中的意义一致的含义,并且不应以理想化或过于正式的含义来进行解释,除非本文明确地如此限定。在对计算机存储器内的数据比特的操作的软件或者算法和符号表示方面呈现了部分示例性实施例和相应的详细描述。这些描述和表示是本领域的普通技术人员高效地通过其将他们的工作实质传递给本领域的其他普通技术人员的那些描述和表示。如这里使用的术语并且如其通常使用的那样,算法被理解为是导致期望结果的自洽的步骤序列。这些步骤是需要对物理量的物理操纵的那些步骤。通常,虽然并非必要,但是这些量具有能够被存储、传送、组合、比较和以其他方式操纵的光`、电或磁信号的形式。有时主要是出于普通使用的原因,已经证明了将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。在下面的描述中,将参考执行具体任务或实现具体抽象数据类型并且可以在现有网络单元中通过使用现有硬件来实现的操作(例如,以流程图的形式)的动作和符号表示来描述说明性实施例,该操作可以被实现为程序模块或功能过程,包括例程、程序、对象、组件、数据结构等。这样的现有硬件可以包括一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)计算机等。然而,应当考虑到,所有这些和类似的术语与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非另外具体阐述或者从讨论中显而易见,诸如“处理”或“计算”或“确定”或“显示”等的术语指操纵表示为计算机系统的寄存器和存储器内的物理量、电子量的数据并将其变换为类似地表示为计算机系统的存储器或寄存器或其他这样的信息存储装置、传输或显示装置内的物理量的其他数据的计算机系统或类似的电子计算设备的动作或过程。还注意,示例性实施例的软件实现的方面通常在特定形式的程序存储介质上被编码或者通过某些类型的传输介质来实现。程序存储介质可以是磁的(例如,软盘或硬盘驱动器)或光的(例如,压缩盘只读存储器、或“CD R0M”),并且可以是只读或随机存取的。类似地,传输介质可以是双绞线、同轴电缆、光纤或本领域已知的一些其他适当的传输介质。示例性实施例不受任何给定实施方式的这些方面的限制。
在本公开中可互换地使用术语“对等体”和“节点”。通常,对等体指在对等网络内的物理硬件。对等体还可以是节点。然而,节点还可能更一般地指在例如对等网络内的文件位置(例如,表中的地址或参考)的逻辑实例。图2是根据不例性实施例的对等网络18的不意图。在图12中不出的对等网络18中,不存在中央计算机14。尽管没有示出,但是应当理解,对等体40通过各连接而彼此连接。图2示出了对等文件共享网络18。图2的网络18并不依赖于集中式组件来列出网络内容,而是使用分布式哈希表(DHT) 19来向所有参与客户端分发目录数据库。DHT19在图2中被表示为将网络18的所有方面连接在一起的虚线。文件共享网络18包括第一因特网服务提供商(ISP) 24和第二 ISP26。在ISP24内有多种客户端,其可以被称为对等体、节点或用户40。该多种客户端、对等体或用户将通过在附图标记后添加字母来与在相同ISP上的其他对等体进行区分。第二 ISP26也被示出为具有多种对等体42。第一 ISP24和第二 ISP26可以经由对等链路28被连接在一起。在图2中示出了整个因特网(internet at large) 22 ISP24可以通过传输链路30被连接到整个因特网22。传输链路30还可以将ISP26连接到整个因特网22。位于整个因特网22上的对等体通过附图标记44来标识。与对等体40和42类似,整个因特网22上的对等体44与至少一个ISP相关联。然而,没有示出ISP与在整个因特网22上的对等体44相关联。 由于在与不同的ISP24、26相关联的对等体40、42、44之间共享文件所需要的资源量(例如,对等链路28或传输链路30)而导致只要可能就可以优选地使特定ISP内的对等体彼此共享文件,而不是在位于不同的ISP上的对等体之间共享文件。箭头32图示了当对等体40a、40b和40d在彼此之间共享文件时文件共享的优选方式。所有对等体40a、40b和40d都位于ISP24上。可能存在发展成位于ISP24内的对等体40请求了也位于ISP24上的任何对等体没有包含的文件的一些情况。因此,为了获得所请求的内容,对等体40必须从位于ISP26或整个因特网22中的用户获得内容。图3是图示各种ISP24、26、整个因特网22以及网络组件(其还可以被称为计算机或网络单元)的示意图。网络单元45可以在如上参考图2示出的网络中分布。例如,在对等文件共享网络中,这样的文件共享网络18不具有集中式计算机14而是使用DHT19,计算机或网络单元45可以在文件共享网络中分布。替代地,网络单元45可以仅经由连接46来与各种ISP24和26和整个因特网22连接。如图3中所示,网络单元45可以包括经由连接50连接到数据库52的一个或多个微处理器48。网络单元45还可以经由连接55可操作地连接到另一数据库53。数据库53可以是可搜索的,并且能够向网络单元45提供信息,诸如哪个ISP与给定的对等体相关联,如以下更详细解释的那样。在本发明的一些实施例中,网络单元45可能是连接到网络的已经存在的系统组件。现有的网络单元45可以被编程为执行本文描述的功能。例如,现有的网络可以包括编程为执行这里描述的功能的网络组件。在其他实施例中,网路单元45可以被添加到网络(而不是现有的网络组件),并且被配置成执行这里描述的功能。
示例性实施例根据两个过程进行操作。第一过程包括拦截所有通知对等消息以及更新DHT19。如本领域的技术人员所知的,对等体使用通知对等消息来传递其保持文件或内容和/或该文件或内容的一些部分。例如,对等体40可以包括网络单元45。微处理器46可以被配置成拦截对等消息。对等消息可以来自这样的对等体(例如,对等体40),该对等体在分布式哈希表(DHT)中公布了该对等体保持文件或其一部分。 ISP24和ISP26可能经常彼此通信,并且因此,对等链路28可能具有较高的容量或者可能能够以比可以将ISP24与另一 ISP链接的一般传输链路更低的成本来进行操作。已知单个物理实体可以以很多不同的逻辑身份来加入点对点网络很多次。这些逻辑身份可以被称为Sybil (女巫)。逻辑身份可以具有使用例如哈希函数计算的唯一标识符或键。可以对例如与节点和/或内容相关联的信息执行哈希函数。在示例性实施例中,节点或对等体(例如,对等体40a)可以具有唯一标识符或键,并且文件或内容可以具有唯一标识符或键。如公知的,捕获在与因特网服务提供商(ISP)规模相关联的客户端之间直接交换的业务通常即便是并非不可能也是难以实行的。实际上,数据收集可能需要在每个ISP路由器处建立成百上千的过滤规则。已知ISP路由器并不具有这样的能力。因此,示例性实施例将具有与文件或内容的唯一标识符或键近似的标识符或键的若干逻辑身份插入在DHT19中。然后,逻辑实体被用于拦截通知对等消息。第二过程可以包括拦截请求保持文件或内容的对等体列表的消息以及用本地对等体集合或节点列表来对该消息进行回复。如以上参考通知对等消息所讨论的,逻辑实体还可以在沿DHT进行的一些迭代搜索中拦截请求保持文件的对等体列表的消息。DHT用于对这些内容请求进行响应。即,用于这些过程的引擎是每个节点处的DHT客户端。已知,DHT19用于在所有参与的客户端或节点上分发目录数据库。已知,目录数据库是对等网络中的所有对等体 (例如,计算机或物理机器)以及位于对等体中的每一个上的所有内容(例如,文件、 视频、音频等)的列表。初始地,DHT19可以仅保持对物理节点或对等体(参见图4A)的参考标记(reference)和/或对文件或内容(参见图4B)的参考标记。如上所述,这些参考标记被保持为逻辑身份。逻辑身份可以具有使用例如哈希函数计算的唯一标识符或键。文件或内容可以被存储在这样的节点上,该节点不必是包括具有对文件或内容的参考标记的DHT19的节点。例如,其上存储有文件或内容的节点可以对内容执行哈希函数。然后,该节点确定具有与哈希化内容的结果近似的逻辑身份的节点。然后,其上存储有文件或内容的节点可以使用公知的方法来向具有与哈希化内容的结果近似的逻辑身份的节点进行通知。然后,以下描述的方法可以与文件或内容相关联。图4A图示了仅包括对物理节点或对等体的参考标记的DHT (例如,DHT19)。已知,作为例如通知消息或Ping消息的结果而将每个节点或对等体添加到DHT19。例如,在用于对等网络的已知的文件共享系统BITTORRENT中,当A是关于对等体的一些信息(例如,地址和端口)时,使用announce_peer(A)消息。在BITTORRENT文件共享系统中,想要加入网络的对等体将向网络中的对等体的子集发送announce_peer (A)消息。例如,BITTORRENT文件共享系统对等体可以具有包括三个最接近对等体的路由表。通知对等体A可以向该三个最接近对等体发送find_peer (hash(A))消息。对等体中的每一个可以在其路由表中查找与节点标识符A接近的对等体。对等体(例如,使用消息)来将根据查找得到的对等体返回到通知对等体A。该通知过程可以在找到与hash (A)最接近的对等体之前迭代地发生。一旦找到了与hash (A)最接近的对等体,通知对等体A就可以向该与hash(A)最接近的对等体发送announce_peer (A)消息。如上所述,接收对等体可以将通知对等体添加到与该接收对等体相关联的DHT19。已知接收对等体可以使用哈希函数来确定用于通知对等体的唯一标识符或键。例如,哈希函数可以将关于通知对等体的信息作为输入。该输入信息可以是例如上述BITTORRENT文件共享系统示例中的“A”(例如,地址和端口)。哈希函数的输出可以是比特序列。该比特序列(由图4A中的hash_0和hash_500来表示)可以是η个比特长度(例如,η = 160)。如将认识到的,从哈希函数将有2"个不同的输出。因此,2η个条目可以存在于DHT19中,用于标识2"个(逻辑或物理)节点。已知因为可能存在有限数目的不同节点,因此可能能够通过使用以相对大的数值差异对每个节点或对等体指配比特序列来使每个节点在逻辑上分离。然后,接收对等体(例如,节点40a)可以以〈键,值〉配对来将通知对等体(例如,节点40d)添加到接收对等体的DHT19,其中键是(如上所述的)哈希函数的结果,并且值是关于DHT19中的条目的一些信息。例如,值可以是节点标识或名称、关于网络的信息或关于内容的信息(以下将更详细地描述)。图4A分别针对hash_0和hash_500示出了 node_ID=computer_l 并且 node_ID = computer_2 的值。如以上和以下所述的示例性实施例可以存储〈键,值〉对,使得值为空并且键(例如,哈希化比特序列)仅可以包括任何必要信息。例如,键(作为基于对等体的哈希化键或者如下所述的内容)可以用作存储在例如数据库52和/或数据库53中的另一表的查找值。接收对等体可以不存储用于所有接收到的通知消息的信息。例如,已知注册到BitTorrent公司的BITTORRENT TM文件共享系统使用在本领域中被称为Kademlia的DHT19。在Kademlia中的哈希函数输出用于节点的标识符或键,使得逐比特异或(XOR)确定节点之间的逻辑距离。 例如,在Kademlia中,给定两个标识符或键a和b (例如,图4A中的hash_0和hash_500),Kademlia将它们之间的距离定义为其逐比特XOR。Kademlia对等体可以仅将这样的节点存储在对等体的DHT中对于其标识符或键的O < i < 160个比特中的每一个,与其本身具有2~i < d < 2~ (i+1)的异或距离的对等体。图4B图示了包括对物理节点或对等体的参考标记和标识内容的节点的参考标记二者的DHT (例如,DHT19)。已知,通知对等体(例如,节点40d)以与对等体通知其本身的方式非常相似的方式来通知内容。然而,通知还可以包括内容的某些指示。例如,继续上述BITTORRENT文件共享系统示例,当附加参数B是内容的指示时,通知消息可以是announce_peer (A, B)。已知接收对等体可以以与如上所述的接收对等体添加所通知的对等体的方式非常相似的方式来将所通知的内容添加到接收对等体的DHT19。然而,接收对等体还可以存储关于内容的信息。DHT19本身不存储内容,相反DHT19存储可以用于参考内容的一些信息。已知哈希函数可以将节点标识(例如,节点地址)或内容的表示作为输入。然后,哈希函数基于例如对等体的地址或内容标题来输出比特序列。如上所述,对等体可以仅存储来自满足Kademlia XOR距离的对等体的内容的通知。如上所述,〈键,值〉配对可以被存储在DHT中。如上所述,键可以是从哈希函数输出的比特序列。值可以如上所述;然而,值还可以包含关于文件或内容的一些信息。例如,主控该文件或内容的对等体的地址,值还可以包括文件的名称、存储文件的对等体上的文件的存储器位置的指示符或文件的类型(例如,视频、音频、程序)。将参考图5-图8来在以下详细描述第一和第二过程中的每一个。图5图示了根据示例性实施例的用于通知对等体的方法的流程图。图6图示了根据示例性实施例的用于存储节点身份(Sybil)的方法的流程图。图7图示了根据示例性实施例的用于拦截通知内容的消息的方法的流程图。图8图示了根据示例性实施例的用于拦截请求内容的消息的方法的流程图。在描述与图5相关联的方法步骤时,将对图2和图3的网络进行参考。还将对如图4A中示出的示例性分布式哈希表(DHT)进行进一步参考。此外,图5图示了用如以上关于图4A描述的物理对等体填充DHT。在步骤S505中,可以接收通知物理对等体或节点(例如,节点40a和40b)的对等体消息。例如,可以如以上关于图4A所述的那样来接收通知对等体消息。替代地和/或作为如上所述的接收通知对等体消息的补充,在本领域中公知的是,可以接收Ping消息。ping消息可以包括指示了 ping消息的对等体或节点的一些标识。在步骤S510中,确定物理对等体或节点的标识。例如,如以上关于图4A所述,通知对等体消息可以包括关于对等体或节点的一些信息。该信息可以是例如与对等体或节点相关联的地址和/或端口。标识还可以是例如如以上关于图4A所述的节点标识符或键(例如,哈希化键)。在步骤S515中,确定基于物理对等体或节点的标识的节点标识符或键。例如,如以上关于图4A所述的,哈希函数可以用于确定用于通知对等体或节点的唯一标识符或键。例如,哈希函数将关于通知对等体的信息作为输入。哈希函数的输出可以是比特序列。(由图4A中的hash_0和hash_500表示的)比特序列可以是η个比特(例如,η = 160)。替代地,如果步骤S510中的标识是哈希化键,则步骤S515可以确定使用该哈希化键作为节点标识符或键。在步骤S520中,使用节点标识符或键以对物理对等体或节点的参考标记来填充DHT19。例如,如以上关于图4Α所述,可以用作为〈键,值〉配对参考的对等体或节点来填充DHT19。DHT19〈键,值〉配对可以使得键是哈希函数的结果,并且值是关于DHT19中的条目的一些信息。替代地,如上所述,值可以是空条目。在对等网络18的使用期限(life)中可以重复地执行图5的步骤。图6图示了根据示例性实施例的用于存储节点身份(Sybil)的方法的流程图。在描述与图6相关联的方法步骤时,将对图2和图3进行参考。还将对如图4中示出的示例性分布式哈希表(DHT)进行参考。在步骤S605中,由对等体或节点(例如,节点40a和40b)接收通知内容的消息。例如,如以上参考图4B所述,可以接收通知对等体消息。如上所述,通知对等体消息可以包括关于传送消息的对等体或节点的一些信息以及关于被通知的内容的一些信息。在步骤S610中,可以确定与节点相关联的信息和/或包括内容的节点的标识。例如,如以上参考图4B所述,通知对等体消息可以包括关于对等体或节点的一些信息。该信息可以是例如与对等体或节点相关联的地址和/或端口。
在步骤S615中,可以确定关于内容的信息。例如,如以上参考图4B所述,通知对等体消息可以包括关于内容的一些信息。在步骤S620中,确定基于物理对等体或节点的节点信息和/或标识以及内容的节点标识符或键。例如,如以上参考图4B所述,哈希函数可以用于确定用于内容的唯一标识符或键。例如,哈希函数可以将关于通知对等体的信息(例如,节点信息)或内容(例如,内容信息)作为输入。节点信息标识通知内容的节点,并且内容信息标识内容。哈希函数的输出可以是比特序列。(由图4A中的hash_0和hash_500表示的)比特序列可以是η个比特(例如,η = 160)。替代地,通知消息可以包括表示内容的哈希化键,并且在步骤S20中,该哈希化键从消息中获取并且用作节点标识符或键。在步骤S625中,可以用节点标识符或键、对内容的参考标记和/或键来填充DHT19。例如,如以上参考图4Β所述,可以用作为〈键,值〉配对被参考的内容来填充DHT19。DHT19〈键,值 > 配对可以使得键是哈希函数的结果,并且值是关于DHT19中的条目的一些信息。替代地,如上所述,值可以是空条目,并且键可以用作在另一表或数据库中的查找键。在步骤S630中,基于在步骤S620中确定的节点标识符或键,逻辑变体节点标识符和/或变体键(也被称为如上所述的Sybil)可以被存储在(例如,通知给)DHT19中。例如,在图4C中,逻辑变体节点标识符和/或变体键可以被示出为具有哈希化键hash_547、hash_548、hash_549、hash_551、hash_552 和 hash_553,并且文件或内容与 hash_550 的哈希化键相同。例如,在步骤S625中,键可以被存储在表(例如,DHT19)中,该键可以基于通知消息。键可以包括内容信息。内容信息可以标识内容。通知节点还可以通知标识不同节点上的内容的键的k(k是大于或等于I的整数值)个复本,以便于实现鲁棒性。这些k个复本被存储在DHT19中的k个节点上,其最接近于键、标识要通知的内容。例如,在步骤S63 0中,节点可以在表中存储n(n是大于等于2的整数值)个变体键。如果节点不是通知节点,则多个变体键中的每一个可以是存储的键的变体或k个复本中的一个。换言之,变体键可以是基于通知消息的存储的键的Sybil (或一个复本),其具有键的某一变体。具有键的变体的Sybil然后可以被输入到DHT19中。例如,微处理器46可以将η个逻辑变体节点标识符和/或变体键(例如,多个键)存储在DHT19中。与文件或内容相关地将η个逻辑变体节点标识符和/或变体键存储在DHT19中可能涉及例如确定用于文件或内容的节点标识。然后,将节点标识指配给逻辑变体节点标识符和/或变体键。例如,微处理器46可以读取哈希键(例如,hash_550),并且执行对哈希键的逻辑加或减,以确定逻辑变体节点标识符和/或变体键(例如,多个键)中的每一个。然后,η个逻辑变体节点标识符和/或变体键可以被存储在DHT19中。例如,η个逻辑变体节点标识符和/或变体键中的每一个可以是在逻辑上离开次接近的逻辑标识符一个比特或者是从存储的文件或内容的哈希键开始的键。如图4C中所示,hash_551可以是在逻辑上离开hash550 —个比特,hash_552可以是在逻辑上离开hash551—个比特等。虽然示例性实施例描述了一个比特的分离,但是示例性实施例不限于此。与逻辑变体节点标识符和/或变体键相关联的节点标识可以和与文件或内容(例如,哈希键hash_550)相关联的节点标识(例如,哈希键)共同共享多个前缀比特。例如,与逻辑变体节点标识符和/或变体键相关联的节点标识或键可以在与节点标识相关联的比特集合内共同共享至少P个比特。P可以通过DHT19中的参与节点的数目来确定。如果N是DHT19中的节点的总数,则至少P必须大于b,其中2~b = N ;lg2N = b。优选地,对于确定为用于局域化的文件或内容的DHT19中的每个文件或内容,DHT19将包括等于至少256的η个逻辑变体节点标识符和/或变体键。具有节点标识的每一个至少共同共享等于24的P个前缀比特。如本领域技术人员将认识到的,可以与在DHT19中表示的所有文件或内容相关或相关联地存储逻辑变体节点标识符和/或变体键。替代地,在DHT19中表示的文件或内容的一些子集可以具有与它们相关联的逻辑变体节点标识符和/或变体键。例如,在步骤S625中,受欢迎的文件可以具有存储在DHT19中的关联。受欢迎的文件可以是例如频繁存取或传递的文件。可以证明难以监视在DHT19中可用的所有文件或内容,因为这可能需要引入数百万的逻辑变体节点标识符和/或变体键,而导致响应于逻辑变体节点标识符和/或变体键的机器(例如,网络单元45)处的非常高的负载。此外,在大量业务以及仅可以被局域化的业务可以与一些文件(例如,受欢迎的文件)相关联的情况下,监视每个文件可能是不必要的。此外,与表示对等体(例如,物理节点或计算机)的节点相关联的节点标识符和/或键相比,逻辑变体节点标识符和/或变体键可以在值方面具有逻辑上或逐比特地更接近表示文件或内容的节点的比特序列。比特序列可以基于内容信息的哈希函数,比特序列可以包括表示前缀的第一比特串以及表示内容的第二比特串。逻辑变体节点标识符和/或变体键可以包括第一比特串的改变的子集以生成多个第一变体键中的每一个。其上存储有逻辑变体节点标识符和/或变体键(例如,在步骤S625中存储的逻辑变体节点标识符和/或变体键)的对等体(例如,节点40d)还可以向对等体(例如,节点40a和40b)通知它们的存在。例如,在如上所述的BITTORRENT文件共享系统中,对等体(例如,节点40d)可以向确定为接近该`对等体的对等体发送已知消息。该已知消息可以是用于逻辑变体节点标识符和/或变体键的中的每一个的ping消息。ping消息中的每一个可以包括逻辑变体节点标识符和/或变体键(例如,哈希键或比特序列)中的一个。可以使用已知方法来确定接近对等体。例如,接近对等体可以被存储在路由表中或使用另一消息类型来确定。图7图示了根据示例性实施例的用于拦截通知内容的消息的方法的流程图。在描述与图7相关联的方法步骤时,将对图2和图3的网络进行参考。此外,将对如在图4D-图4F中示出的示例性分布式哈希表(DHT)进行参考。在步骤S705中,可以拦截通知内容的消息。通知消息具有与拦截消息的逻辑节点相关联的目的地地址。步骤S705与步骤S605(如以上参考图6描述的)非常类似,但有一个重要的不同。在步骤S605中,通知消息去往物理对等体,而在步骤S705中,由逻辑节点来拦截该消息。换言之,通知对等体发送这样的消息,如果逻辑节点不在DHT19中,则该消息不可能被接收到。此外,对于如在步骤S605中接收到的通知消息,用与内容相关联的节点标识符或键来填充DHT(步骤S625)。相反,在步骤S710中,可以存储关于拦截的消息的信息。该信息可以被称为消息的特征信息并且可以与键相关地被存储。与变体键相关联的特征信息的存储可以包括存储关联于与变体键所基于的键相关联的通知消息的特征信息。特征信息可以包括节点相关信息和内容相关信息。节点相关信息可以包括与第二消息相关联的节点的因特网服务提供商、与第二消息相关联的节点的名称、与第二消息相关联的节点的地址以及与第二消息相关联的节点的端口中的至少一个。内容相关信息可以包括内容的描述、内容的类型、内容的大小、对内容的指示符和与关联于第二消息的节点相关联的存储位置中的至少一个。如以上参考步骤S705所述,节点可以拦截通知内容消息。通知内容消息可以包括特征信息。特征信息可以被存储在数据库中。例如,特征信息可以与关于通知消息的地址的变体键相关地存储在数据库中,例如数据库52或数据库53。如果与拦截的通知消息相关联的目的地地址不具有与存储的变体键的任何关系,则通知消息可以被假定为接收到的通知消息并且根据以上参考图4描述的消息来处理。信息可以被存储在例如数据库52、数据库53和/或与对等体、节点或对等网络相关联的一些其他存储器中。信息可以与文件或内容(例如,节点标识符或哈希键)、发送消息的对等体、接收消息的对等体、与发送/源发消息的对等体相关联的网络和/或与接收消息的对等体相关联的网络相关地被存储。信息可以与文件或内容以及与源发消息的对等体相关联的因特网服务提供商(ISP)(例如,内容所驻留的局域网)相关地被存储。数据库53可以包括使节点标识(例如,节点或对等体的地址)与ISP相关联的信息。替代地和/或作为对以上描述的补充,在步骤S710中,信息可以被存储在DHT19中。例如,如上所述,DHT19中的条目可以被存储在〈键,值〉对中。上述信息可以作为值被存储为DHT中的条目。如图4 D中所示,接收到的通知是通知对等消息。与通知对等消息相关联的目的地与hash_551匹配。因此,将新的值(node_ID = computer_3)添加到用于hash_551的值字段。例如,如图4D中所示,拦截的通知是通知对等体消息。与通知对等体消息相关联的目的地与hash_551匹配。因此,可以将新的值(node_ID = computer_3)添加到用于hash_551的值字段。例如,如图4E中所示,拦截的通知是通知内容消息。与通知内容消息相关联的目的地与hash_549匹配。因此,可以将新的值(node_ID = computer_3, content =content_2)添加到用于hash_549的值字段。例如,如图4F中所示,多个接收到的通知对来自多个节点的内容进行通知。与通知内容消息相关联的目的地与hash_549匹配。因此,可以将多个新的值添加到用于hash_549的值字段。虽然示例性实施例示出了将新的值添加到现有的DHT条目,但本领域的技术人员将认识到,可能添加具有复制键(例如,哈希键)的新的条目。在完成了图6和图7中图示的过程之后,对等网络可以不断地知道保持文件或内容的对等体。在该前提下,可以执行局域化。图8详述了向局域化对等体集合或节点列表查询文件和/或内容的响应。图8图示了根据示例性实施例的用于拦截请求内容的消息的方法的流程图。在描述与图8相关联的方法步骤时,将对图2和图3的网络进行参考。还将对如图4D-图4F中示出的示例性分布式哈希表(DHT)进行参考。
在步骤S805中,拦截请求内容的消息。可以从对等网络内的对等体接收该消息。替代地,消息可以是对等体(例如,对等体40a)内部的消息。消息可以包括请求的内容的指示、指示消息的发送方(例如,请求内容的节点或对等体)的标识符或键和/或指示消息的目的地的标示符或键。该请求内容的消息可以包括目的地地址。例如,如上所述,用于对等网络的一个公知的文件共享系统被称为BITTORRENT。BITTORRENT文件共享系统使用get_peer对象来进行前述内容请求。对等体向该对等体已经知道其(存储在与进行请求的对等体相关联的DHT中的)节点标识符的k个对等体发送get_peer消息。k个对等体可能在对等网络中广泛地分散。已知BITTORRENT文件共享系统中的对等体利用其它已知对等体的消息来进行响应。例如,如果响应对等体不知道包括内容的任何对等体,则响应对等体利用请求对等体可能在下一次迭代中将消息发送到其的已知对等体列表来回复,即其标识符更接近于所请求的文件的标识符的对等体。已知该迭代过程在以保持所请求的内容的副本或一部分的对等体列表来回复get_peer消息之前一直重复。对等体列表可以包括例如对等体的地址和端口号以访问该内容。本领域的技术人员将认识到,并且如上所述,可能存在与对等网络相关联的数百万文件或内容。在表示对等网络的DHT19中也可能存在数百万空条目(或无条目)。这样,消息不可能到达在可能具有请求的内容的对等网络内的知道可能的节点标识符或键的所有对等体。因此,在传统的对等网络中,存在网络节点可能不接收请求内容的消息,并且因此可能不用包括在对等网络内存在某些内容的指示的消息来进行响应的可能性。然而,如以上参考图6所描述的,在示例性实施例中,DHT19可以包括很多逻辑变体节点标识符和/或变体键。逻辑变体节点标识符和/或变体键中的每一个可以包括与DHT19中的文件或内容相关的信息。例如,如图4F中所示,与哈希键hash_549相关联的节点包括示出计算机3-7具有内容2的 至少一些部分的信息。通过这样做,在上述迭代过程中,在对等体或节点(例如,对等体20a)上的表中存储的逻辑变体节点标识符和/或变体键相对更可能接收或拦截对所请求的内容的请求,该相关信息通过改变所请求的内容的标识符来创建。例如,如果系统的设计人使用公知的工具,则可以实际地设计用于拦截对内容的所有请求的系统。返回到图8,在步骤S810中,可以基于对内容的请求消息的内容来确定节点标识符或键。例如,对内容消息的请求可以包括与所请求的内容相关联的节点标识符或键。在该情况下,节点可以读取该请求消息来确定节点标识符或键。替代地,所请求的内容可以用作对哈希函数的输入(如上所述)以确定节点标识符或键。在步骤S815中,确定节点是否知道何处可以找到所请求的内容。而且可以创建包括该内容的节点列表。可以使用公知的方法来进行该确定。例如,如上所述,可以在DHT19上执行键搜索。假定接收对等体(例如,40a)在如图4F中示出的状态中包括DHT19。如果对等体(例如,40d)做出对内容3的请求,则接收对等体可以执行DHT的键搜索。接收对等体可能找不到任何关于内容3的信息。因此,已知接收对等体利用接收对等体所知道的与之相关的对等体(例如,计算机1-7)的列表来进行响应。另一方面,如果对等体作出对内容2的请求,则接收对等体将再次执行DHT的键搜索。这次,接收对等体找到包括内容的对等体(例如,计算机3-7)。已知在现有技术的系统中,接收对等体可以用包括作为搜索的结果找到的全部对等体的消息来进行回复。此外,如上所述,逻辑变体节点标识符和/或变体键可以具有比特序列,与表示对等体(例如,物理节点或计算机)的节点相关联的节点标识符和/或键相比,该比特序列在逻辑上或者在值方面逐比特地更接近表示文件或内容的节点。比特序列可以基于节点信息和内容信息的哈希函数,比特序列可以包括表示前缀的第一比特串以及表示内容的第二比特串。逻辑变体节点标识符和/或变体键可以包括第一比特串的不同子集以生成多个第一变体键中的每一个。确定节点列表可以包括,确定DHT19中的哪些条目具有带有与第一键中的第一比特串匹配的第一比特串的键或变体键,并且从确定的条目来生成节点列表,使得与确定的条目相关联的节点具有指示所请求的内容的特征信息。然而,根据示例性实施例,可以在回复中仅提供与请求对等体的网络(例如,ISP)相关联的本地对等体。因此,在步骤S820中,确定与请求方相关联的ISP。例如,微处理器46可以进行与请求对等体相关联的地址和从数据库53中获取的网络信息的比较。替代地和/或另外,微处理器46可以使用从DHT19读取的信息。例如,微处理器46可以使用存储在与请求对等体相关联的值字段中的信息。在步骤S825中,确定与在步骤S815中找到的节点中的每一个相关联的ISP。例如,微处理器46可以进行与节点中的每一个相关联的地址和从数据库53中获取的网络信息的比较。替代地和/或另外,微处理器46可以使用从DHT19读取的信息。例如,微处理器46可以使用存储在与节点中的每一个相关联的值字段中的信息。在步骤S830中,基于在步骤S820中确定的请求方ISP来对节点列表进行过滤。过滤的节点列表可以仅包括与请求方相同的ISP相关联的那些节点。过滤的节点列表还可以包括具有相对良好质量和/或相对于请求方来说相对低成本的连接(例如,对等协议)的节点。在步骤S835中,利用包括基于过滤的节点列表的节点列表或对等体集合的消息来回复请求方。
例如,在步骤S820中,微处理器46可以确定请求节点是网络24的单元。另外,在步骤S825中,微处理器46可以确定计算机3、4和7是网络24的单元。此外,在步骤S825中,微处理器46可以确定计算机5和6是网络26的单元。根据示例性实施例,步骤S830的本地对等体集合或节点列表将包括计算机3、4和7,而不包括计算机5和6。如果过滤的节点列表小于阈值数,则可以将其他节点添加到该节点列表,该其他节点可以包括从节点列表中过滤的节点。虽然以上示例性实施例参考ISP网络,但是示例性实施例不限于此。例如,在图8中,ISP可以由任何与例如请求对等体或节点以及回复中的对等体集合或节点列表中的节点相关联的任何本地网络来替代。与内容相关联的节点标识符和键及其本地变体节点标识符和/或变体键方式具有寿命。如果与任何标识符或键相关联的阈值时间段过期,则可以删除与标识符或键相关联的表中的条目。例如,从在DHT19中输入键开始度过了(例如,30分钟或2个小时的)阈值时段,则可以删除该条目。本发明的替代实施例可以被实现为用于与计算机系统一起使用的计算机程序产品,该计算机程序产品例如是存储在有形或非瞬态数据记录介质(计算机可读介质)(诸如磁盘、CD-ROM、ROM、或固定盘)上的计算机指令串、代码段或程序段或者以计算机数据信号来实现,该信号通过有形介质或例如微波或红外线的无线介质来传送。计算机指令串、代码段或程序段可以构成上述示例性实施例的方法的全部或部分功能,并且还可以被存储在任何存储器设备中,易失性或非易失性的,诸如半导体、磁、光或其他存储器设备。如本领域技术人员将认识到的,并且如上所述,可以存在与对等网络相关联的数百万文件或内容。在表示对等网络的DHT19中还可能存在数百万空条目(或无条目)。这样,消息不可能到达在可能具有所请求的内容的对等网络内的知道可能的节点标识符或键的所有对等体。因此,在传统的对等网络中,存在网络对等体很可能不接收请求内容的消息,并且因此可能不用包括在对等网络内存在某些内容的指示的消息来进行响应的可能性。然而,如以上参考图6和图8所描述的,在示例性实施例中,DHT19可以包括很多逻辑变体节点标识符和/或变体键。逻辑变体节点标识符和/或变体键中的每一个可以包括与DHT19中的文件或内容相关的信息。例如,如图4F中所示,与哈希键hash_549相关联的节点包括示出了计算机3-7具有内容2的至少一些部分的信息。通过这样做,在上述迭代过程中,存在对等体或节点(例如,对等体20a)可以接收或拦截对内容的请求的相对高的可能性,该信息与所请求的内容相关。此外,与逻辑变体节点标识符和/或变体键相关地存储的信息可以包括对与存储在DHT(或别处)的节点信息相关联的网络(例如,ISP)的参考。因此,对内容的请求的响应消息可以仅包括与对内容的请求的发送方相同的网络相关联的节点列表或对等体集合。尽管已经具体示出并描述了示例性实施例,但是本领域的普通技术人员应当理解,可以在不脱离权利要求书的精神和范围的情况下,在此进行形式和细节的变化。将明显的是这样描述本发明可以以很多方式变化。这样的变体不会被视作背离本发明,并且所有这样的修改意在 被包括在本发明的范围内。
权利要求
1.一种方法,包括 在对等网络的节点处接收通知第一内容的第一消息; 由所述节点基于所述第一消息在表中存储第一键,所述第一键表示第一节点信息和第一内容信息,所述第一节点信息标识通知所述第一内容的第一节点,并且所述第一内容信息标识所述第一内容;以及 由所述节点在所述表中存储多个第一变体键,所述多个第一变体键中的每一个是所存储的第一键的变体。
2.根据权利要求1所述的方法,其中 所述存储第一键的步骤包括基于所述第一内容信息的函数来确定比特序列,所述比特序列包括表示键前缀的第一比特串以及表示所述第一内容的第二比特串,并且 所述存储多个第一变体键的步骤包括改变所述第一比特串的子集以生成所述多个第一变体键中的每一个。
3.根据权利要求1所述的方法,其中 所述存储第一键的步骤进一步包括与所述第一键相关联地存储所述第一消息的特征信息, 所述存储多个第一变体键的步骤进一步包括与所述多个第一变体键中的每一个相关地存储与所述第一键相关地存储的所述第一消息的所述特征信息, 节点相关信息至少包括下述之一与第二消息相关联的节点的因特网服务提供商、与所述第二消息相关联的所述节点的名称、与所述第二消息相关联的所述节点的地址以及与所述第二消息相关联的所述节点的端口,并且 内容相关信息至少包括下述之一所述内容的描述、所述内容的类型、所述内容的大小、对所述内容的指示符以及与关联于所述第二消息的所述节点相关联的存储位置。
4.根据权利要求3所述的方法,进一步包括 由所述节点拦截通知第二内容的第二消息,所述第二消息包括目的地地址;以及如果基于所述目的地地址生成的键中的第一比特串与所述多个第一变体键中的一个变体键的第一比特串匹配,则由所述节点将与所述第二消息相关联的特征信息与所述多个第一变体键中的所述一个变体键相关地存储。
5.根据权利要求4所述的方法,其中,如果基于所述目的地地址生成的所述键中的第一比特串不与所述多个第一变体键中的一个变体键的第一比特串匹配,则所述方法进一步包括 由所述节点基于所述第二消息在表中存储第二键,所述第二键表示第二节点信息和第二内容信息,所述第二节点信息标识通知所述第二内容的第二节点,并且所述第二内容信息标识所述第二内容;以及 由所述节点在所述表中存储多个第二变体键,所述多个第二变体键中的每一个是所存储的第二键的变体。
6.一种用于局域化对等网络中的内容的方法,所述方法包括 由所述对等网络中的节点拦截请求消息,所述请求消息是对内容的请求,所述请求消息包括目的地地址; 由所述节点基于所述目的地地址来确定第一键;由所述节点基于所述第一键和表来确定节点列表,所述表包括多个条目,每个条目具有键和变体键之一,至少一个键基于通知消息,所述键表不内容 目息,所述键具有表不节点信息的关联值,所述节点信息标识通知内容的节点,并且所述内容信息标识所述内容,并且每个变体键是所述键中的一个键的变体;以及 由所述节点向所述请求消息的发送方发送响应消息,所述响应消息包括所述节点列表。
7.根据权利要求6所述的方法,其中 至少一个键包括基于所述内容信息的函数的比特序列,所述比特序列包括表示前缀的第一比特串以及表示与所述通知消息相关联的内容的第二比特串,并且 至少一个变体键包括所述至少一个键的所述第一比特串的改变的子集,并且 所述表中的至少一个条目进一步包括特征信息,所述特征信息包括节点相关信息以及内容相关信息。
8.根据权利要求7所述的方法,其中,所述确定节点列表的步骤包括 确定所述表中的哪些条目具有与所述第一键匹配的键或变体键, 从所确定的条目生成所述节点列表,使得与所确定的条目相关联的节点具有指示所请求的内容的特征信息,以及 对所述节点列表进行过滤,使得所述节点列表仅包括与关联于所述请求消息的发送方的网络相关联的节点。
9.一种对等网络中的节点,所述节点包括 存储器,所述存储器被配置用于存储表;以及 处理器,所述处理器被配置用于接收通知第一内容的第一消息,所述处理器被配置成基于所述第一消息在所述表中存储第一键,所述第一键表示第一节点信息和第一内容信息,所述第一节点信息标识通知所述第一内容的第一节点,并且所述第一内容信息标识所述第一内容,并且所述处理器被配置成在所述表中存储多个第一变体键,所述多个第一变体键中的每一个是所存储的第一键的变体。
10.一种包括程序代码段的非瞬态存储器,所述程序代码段当由处理器执行时使得一系列步骤被执行,所述步骤包括 接收通知第一内容的第一消息; 基于所述第一消息在表中存储第一键,所述第一键表示第一节点信息和第一内容信息,所述第一节点信息标识通知所述第一内容的第一节点,并且所述第一内容信息标识所述第一内容;以及 在所述表中存储多个第一变体键,所述多个第一变体键中的每一个是所存储的第一键的变体。
全文摘要
提供了一种用于局域化对等网络中的内容的方法。该方法包括接收通知第一内容的消息。基于该消息在表中存储<键,值>对。该键表示内容信息,并且该值表示节点信息。节点信息标识通知内容的节点,并且内容信息标识内容。将多个第一变体键存储在表中。多个第一变体键中的每一个是存储的第一键的变体。该方法进一步包括拦截请求消息以及向请求消息的发送方发送响应。响应消息包括节点列表,节点列表以基于请求消息的目的地地址的键和表为基础。
文档编号H04L29/08GK103069781SQ201180040937
公开日2013年4月24日 申请日期2011年7月28日 优先权日2010年8月25日
发明者M·施泰纳, M·瓦韦洛 申请人:阿尔卡特朗讯