专利名称:对等环境中的网络流量控制的制作方法
技术领域:
本发明涉及网络流量控制单元,包括这样的网络流量控制单元的网络,用于控制网络上的流量的方法,并且涉及对应的计算机程序产品。
背景技术:
对等应用变得越来越多流行,因为现在可以访问存储在因特网上的计算机上的各种各样的数据。存储并只为本地访问提供数据,此外,还提供用于从因特网服务器检索数据的计算机,当今可以用作其他计算机的数据库,同时当执行对等应用时,可以不仅从因特网服务器接收数据,而且还可以从其他远程计算机接收数据。这就大大地扩大了可访问的数据的池。
下面,术语“对等”或“节点”或“对等节点”用于表示可以运行对等应用的电子设备-例如,计算机、工作站或PDA(个人数字助理),但不限于这些电子设备。因此,这样的节点应该能够访问网络,以便与其他节点交换信息。
Gnutella是当前最著名的无结构对等应用的代表之一,请参见在因特网http//www9.limewire.com/developer/gnutella protocol 0.4.pdf并在 2002年11月15日访问的“The Gnutella ProtocolSpecification v0.4Document Revision 1.2”。这些应用叫做无结构的,因为节点以随机方式与其他节点建立对等连接。在无结构的对等网络中进行搜索基本上是随机探测,因为诸如文件或其他服务之类的资源在网络中的任意节点上可用,请参见Qin Lv等人在16th ACMInternational Conference on Supercomputing,June 2002上发表的“Search and Replication in Unstructured Pen-to-Peer Networks”。这些系统的主要优点是它们的简单性,例如,所使用的协议非常简单,以及它们的动态特性,在某种意义上,节点可以以很高的速率出现和消失。另一个优点是,搜索查询可以几乎是任意复杂的,并包括关键字-搜索、子字符串匹配等等。
包括文件交换协议的对等应用-如Gnutella-Gnu V0.4-动态地建立“覆盖”网络以交换信息。当启动对等节点时,它试图使用请求/接受协议与其他对等节点建立对等连接。发出请求的对等节点向另一个对等节点发送“连接请求”。如果此另一个对等节点授权连接,则它用“连接接受”回答,双方建立邻接。然后,它们可以开始交换信息,该信息传递到其他对等节点。
图1显示了在包括至少两个对等节点组1和2的示范性网络(也叫做“群集”)内实现连接的方式。每一个对等组1或2分别包括对等节点A、B、C、D或E。附图标记3表示对等组1和2之间的一些物理互连(有线的、无线的)。箭头表示已经建立的对等连接,这是逻辑互连,而不是物理互连。这样的连接是通过让其中一个对等节点向其他对等节点发送连接请求消息,根据对等应用的协议,其他对等节点用一个接受消息接受此连接请求消息来建立的。
在图1a中,节点C与节点A和B建立对等连接,节点D与节点B建立对等连接。节点C和D易于建立对等连接,因为C了解D。因此,C向D发送连接请求,D通过向C发回接受消息来进行接受。
根据图1b,C和D现在建立了对等连接,C向D中继消息,消息是由A和B发出的,而D向C中继消息,消息是由E发出的。接下来,A和D希望建立对等连接,因为A了解D。因此,A向D发送连接请求,D通过向A发回接受消息来进行接受。
根据图1c,除了已经存在的对等连接外,A和D现在也建立了对等连接。然而,在物理互连链路3上存在两个逻辑对等连接。这两个逻辑连接是通过跨互连3的至少四个消息来建立的。
此重叠网-这是逻辑连接的网络的术语-是不依赖基础结构的专门网络。一个已知的问题是如何启动建立对等连接的机制,即,对等节点如何可以查找要与其建立对等连接的其他对等节点的地址。通常,使用两种类型的技术来解决此问题。一个解决方案包括连接到位于已知的地址的服务器的对等节点。此服务器维护了可以传递到对等节点的对等节点地址的列表。另一个解决方案是对等节点为其本身维护了它与其建立对等连接的其他对等节点的列表,并使用此列表中的地址。
在技术方面,对等连接是基于地址列表来建立的,而不考虑实际网络基础结构或对等节点之间的关系。因此,所产生的重叠网通常完全与物理网络没有任何关联。这可能导致网络资源的使用效率非常低,使用此网络的文件搜索协议的性能比较差。
图2所示的另一个示例演示了物理网络如何扩散对等应用消息,以便在对等节点之间建立邻接关系。显示了三个群集1、2、4。大圈代表物理网络节点(例如,路由器、网关),而小圈代表对等节点。虚线代表物理网络节点之间的物理互连,而直线代表对等节点之间的逻辑互连。从图2可以看出,对等节点A只通过对等节点B到E与对等节点F进行通信,而它们在物理网络中是相邻的。请注意,在此示例中,将群集1联接到群集2,将群集1联接到群集3的链路将被轻松地阻塞。
如此,对等应用的结构导致可缩放性是有限的,由于蛮力泛滥,重叠网拓扑与代表物理连接的基础因特网拓扑明显的不吻合。
一旦建立了重叠网,基础物理网络中扩散消息不仅在寻找与其建立对等连接的其他对等节点时是个问题,而且在查询诸如数据文件之类的信息时也是个问题。
图3介绍了根据对等应用的协议的这样的示范性查询过程图3a类似于图1a,并显示了节点C和D之间的建立对等连接的过程。
根据图3b,节点A现在发出查询请求“寻找vivaldi.mp3”。C将此查询请求转发到B和D,D将此请求转发到D。两个对等节点之间的只指向一个方向的箭头表示已经传输的查询请求。
假设E具有A所寻找的,因此E向D发送确认消息,参见图3c。D知道确认涉及来自C的请求,因此,向C发送确认消息。C知道确认消息涉及来自A的请求,因此,向A发送确认消息。然后,A使用其他方式,例如,HTTP来联系B,以获取文件。
EP 1 229 442 A2说明了对于许多不同的对等应用来说是一致的对等协议。定义了不同的层,如平台核心层、平台服务层和平台应用程序层。所谓的集合对等节点可以为包括对等节点或对等组的对等平台中的实体维护动态索引。集合对等节点被视为执行附加功能的对等节点。
从因特网网址http//www.allot.com/html/solutions notes.kazaa.shtm检索的“identifying and Controlling P2P/File-Saring Applications”,访问于2002年10月17,“PacketeerAnother take on limiting P2P traffic″,byAnn Harrison,retrieved from the Internethttp//www.nwfusion.comlnewsletters/fileshare/2002/01297785.html访问于2002年10月17,″Four Steps to Application Performance acrossthe Network″,由Packeteer/TM Inc. 出版,从因特网网址http//www.packeteer.de获得,并访问于2002年10月17。每一个都说明了检测和识别不同类型的流量的设备。在第二个步骤中,分析了网络和应用程序行为-特别是带宽消耗量。根据该分析,带宽被分配给不同的应用。
EP 1 075 112 A1描述了PNNI分级网络,其中,其中一个对等节点代表对等组作为对等组的领导。对等组领导具有一个存储器,用于存储对等组拓扑数据。
引入了高度结构化的限制对等流量的一些方法Ratnasamy etal等人所著作“A scalable Content-Addressable Network”,发表于ACM SIOCOIVEM,第161-172页,2001年8月,A.Rowstron和P.Drusehel所著“PastryScalable,decentralized object location androuting for large-scale peer-to-peer systems”,发表于IFIP/ACMInternational Conference on Distributed Systems Platforms(Middleware),第329-350页,2001年11月,I.Stoica et al.等人所著“ChordA scalable Pen-to-peer Lookup Service for InternetApplications”,发表于Proceedings of the 2001 ACM SIGCOMMConference,第149-160页,2001年8月。这些方法严格控制如何以及在哪些节点上存储信息。此外,节点的对接不是随机的,所产生的重叠网常常与基础的因特网拓扑一致。缺点是,这些方法不能处理好很高的动态特性,即,快速变化的用户数量会使得这些系统不稳定。此外,这些系统在准确-匹配查询方面比较强,但是,在基于密钥-字的查询和子字符串查询方面具有一些弱点。
因此,希望提供网络流量控制装置,同时具有使这样的流量保持不变的对等节点。
发明内容
根据本发明的一个方面,提供了网络流量控制单元,包括用于从网络线路中截取消息的过滤单元。截取的消息是与对等应用有关的,与消息的目的地无关。进一步提供了控制逻辑,该控制逻辑被配置用于根据截取的消息的内容和网络流量控制单元提供的对等特定的知识,管理由截取的消息代表的请求。
根据本发明的另一个方面,提供了用于控制网络上的流量的方法,包括接收与对等应用有关的,由过滤单元从网络线路截取的消息,不管消息的目的地是什么,根据截取的消息的内容和对等特定的信息,管理由截取的消息代表的请求。
过滤单元过滤用某种方法指出它们是对等应用相关的消息。对等应用通常允许用户计算机用作其他用户计算机的数据文件或服务的客户端和服务器。在优选实施例中,过滤单元对于指出对等应用的指定端口字段中的定义的端口号的外观,检查TCP消息的端口字段。对等应用可以使用不同于其他对等应用的端口号,以及不同于其他非对等应用的端口号的要识别的端口号。然而,也可以使用消息的其他有效信息来过滤对等应用相关的消息。网络流量控制单元和其过滤单元可以用于过滤,然后只控制与某些对等应用相关的消息,或者,它们也可以用于过滤,然后控制不同的已知的对等应用的消息。不与对等应用有关的消息通常不受影响,并可以无阻碍地通过过滤单元。
如此,过滤单元截取网络线路上的对等应用流量,不管消息的目的地是什么。如此被过滤的流量不发往网络流量控制单元的IP或什么地址,而通常发往对等节点目的地。尽管如此,网络流量控制单元也正在截取这种类型的流量,以便对其进行控制。
为了对网络上的对等流量进行扩展控制,优选情况下,可以让网络流量控制单元访问携带大量的这样的流量的网络线路。要被过滤单元访问的优选的网络线路是通向对等节点组或群集的入口/出口线路,以便来往于此群集中的所有或大多数网络流量必须通过此网络线路,并可以被监视。
在层次型通信层的较低级别上,当谈论到TCP协议时,消息由如上文所指出的一个或多个数据包来代表。当然,也可以使用其他协议。过滤单元可以作为在网络处理器上实现的数据包过滤逻辑来实现。由于网络流量控制单元和关联的建议的方法必须主要管理来自对等节点的请求,特别应该检测这样的请求。此检测可以由过滤单元来实现例如,请求可以以对应的数据包来表达,在数据包的指定的字段中具有定义的代码。然后,可以准备过滤单元来检查此字段中是否有代表请求的给定数量的代码。其他对等应用消息也可以被过滤,但是,从管理的观点来看,以与请求不同的方式来进行处理。或者,包括对等应用请求的消息可以由以过滤单元来截取对等应用消息来检测,并由控制逻辑来对这样的消息的命令字段进行分析。
控制逻辑可以以硬件或软件或其组合或任何其他合适的实现方式来实现。被分配给控制逻辑的任务是管理被截取的请求。管理过程包括,这样的请求现在由控制逻辑以不同于涉及对等应用的请求预见的而且还满足发出请求的对等节点的方式来进行处理,从而,优选情况下,使网络上流量比对等应用所产生的流量少。因此,优选情况下,网络流量控制单元可以设置新消息、重定向请求、与发出请求的对等节点或截取的消息所发往的对等节点进行交互,甚至与其他网络流量控制单元进行交互。这些只是网络流量控制单元可以提供的一些操作,但不一定必须提供它们中的全部。另一方面,用于管理请求的机会不仅限于所列举的操作。
基本上,控制逻辑发现这样的截取的消息的内容,并依据消息的内容,依据网络控制装置所具有的知识(存储在存储器中的或者通过访问其他知识源)协调措施,以满足由这样的消息表达的需求。此知识是对等特定的知识,该知识有助于采取措施以比较有效地满足查询、连接请求或其他请求。通常,对等节点本身没有此知识可用。
如此,本发明通过安装网络流量控制单元(该单元负责管理从网络线路截取的请求)来使对等应用所引起的网络流量显著减少。添加这样的智能控制,在控制和限制对等应用所产生的流量方面具有优点。这可以在不更改或修改参与的对等节点也不更改网络结构的情况下,甚至不对网络内的对等节点或其他实体公开引入了这样的网络流量控制单元的情况下来实现这一点。对等重叠网的拓扑被增强。在不要求对对等节点进行任何更改的情况下,可以添加或删除网络控制单元。
在一个优选实施例中,网络流量控制单元可以是一个独立的电子设备。在另一个优选实施例中,网络流量控制的功能被添加到路由器的功能中,以便只有一个设备负责路由器和流量控制功能。
根据下面介绍的许多优选实施例,控制逻辑发送消息,以便管理请求。这必须这样解释以便控制逻辑主要决定发送消息,而消息的物理传输是由控制逻辑所控制的接口所启动的。
在优选实施例中,截取的消息被丢弃。此步骤是在评估了消息的内容之后执行的。丢弃截取的消息表示,控制逻辑控制进一步管理和考虑新的方式以处理请求。这是第一流量限制努力。
优选情况下,要被管理的请求是从一个对等节点发出的并发往另一个对等节点的连接请求。发送这样的连接请求是为了与另一个对等节点建立连接,并可以给联系对等节点在提供联系对等节点接受了这样的连接请求之后所寻找的信息或服务。让连接请求由网络流量控制单元的控制逻辑处理十分重要,因为这样的连接请求可能导致其他对等节点之间的许多其他随后的连接请求,例如,当对等应用判断判断让连接的对等节点向他能识别的其他对等节点发送连接请求时。通过管理这样的连接请求并如此控制满足这些请求的操作,对等流量可以得到显著的控制。
管理连接请求的优选方式是对于网络流量控制单元涉及的已经存在的连接处理进一步的操作。每当对等节点请求连接到另一个对等节点时,发出请求的对等节点已经连接到第三个对等节点(优选情况下,为同一远程群集的),网络流量控制单元可以停止向此群集发送新请求,特别是当它知道其他对等节点已经通过第三对等节点连接到发出请求的对等节点时。
在优选实施例中,因此,网络流量控制单元提供网络流量控制单元当前知晓的对等连接的对等特定的知识信息。
如上文所指出的,优选情况下,当已经建立了可以服务于发出请求的对等节点的连接时,没有消息可以发送到截取的连接请求的收件人。
在另一个优选实施例中,控制逻辑响应截取的连接请求,开始向截取的连接请求的始发者发送连接请求。这是完全获得对截取的连接请求的处理的控制。网络流量控制单元以其自己的ID作为始发者发送此连接请求。接下来,发出请求的对等节点排他地与网络流量控制单元进行通信。流量可以得到有效地得到控制和限制。
在适当的情况下,网络流量控制单元以其自己的ID作为始发者向截取的连接请求的收件人发送连接请求。这可能是合理的,以便满足发出请求的对等节点的需求,只要没有与此对等节点或一般而言与此群集建立其他连接。当有到此远程群集的另一个对等节点的连接时,网络流量控制单元可以优选使用现有的连接来联络到被请求的对等节点,而不是满足原始的连接请求。
在另一个优选实施例中,网络流量控制单元向截取的连接请求的收件人发送连接请求,从而假装截取的连接请求的始发者正在发送连接请求。当网络流量控制单元不以其自己的身份出现时,这是控制连接建立的另一种方法。
优选情况下,响应截取的连接请求,向截取的连接请求的收件人之外的对等节点发送连接请求。此另一个对等节点可以支持建立到发出请求的对等节点的连接。当连接请求被网络流量控制单元重定向时,可能有不同的理由和策略。通常,当重定向连接请求时,网络流量控制单元以其自己的身份进行操作。
特别是当连接请求被定向到另一个远程群集的对等节点时并且另一个网络流量控制单元被分配给此群集时,优选情况下,本地网络流量控制单元通过远程网络流量控制单元排他地与另一个群集的对等节点进行交谈。这就大大地限制了流量。到另一个网络流量控制单元的这样的连接请求也可以是有利的,以便接收另一个网络流量控制单元在准备连接远程群集的对等节点时提供的对等特定的信息。
当网络流量控制单元截取连接请求接下来以其自己的身份进行操作时,优选情况下,只有在截取的连接请求的始发者接受了从网络流量控制单元发送到给他的连接请求之后,可以启动进一步的操作。这就防止了当始发者不准备与网络流量控制单元进行通信时产生流量。
特别是对于上文所描述的管理连接请求,优选情况下,网络流量控制逻辑准备根据对等应用的协议进行通信。
优选情况下由网络流量控制单元处理的其他请求是由对等节点发出的数据文件查询,并通过过滤引起网络流量控制单元的注意。这些查询请求导致大量的随后的流量,以便对于处理这样的请求的有效管理对于减少网络上的总的对等产生的流量至关重要。通常,在连接对等节点以便弄清这些在线对等节点中的哪些可以提供查询的对等节点正在寻找的信息之后,发送查询请求。
在优选实施例中,管理这样的查询请求受到分配密钥的索引的制约,所述密钥代表用于下载的数据文件或代表到网络流量控制单元的服务。此索引被视为对等特定的知识。密钥指定某一查询的内容至少一部分,并根据控制逻辑优选情况下实现的固定规则,从相应的查询请求的内容产生。通过让这样的从查询请求派生出来,网络流量控制单元从此索引派生出来,一些或许多网络流量控制单元之中网络流量控制单元负责管理有关此密钥的信息。然后,此信息将对等节点映射到密钥。映射的对等节点当前被注册,用于提供密钥所代表的文件。
在本发明的优选实施例中,网络流量控制单元提供的对等特定的知识包括分配代表用于下载到网络流量控制单元的数据文件的索引。此索引优选情况下本地存储在每个网络流量控制单元中,并定期分配,分别定期或以事件驱动的方式进行更新。每个网络流量控制单元都负责管理与许多密钥相关的信息。由于最终密钥代表有关查询的信息,特别是有关查询的数据文件的消息,每个网络流量控制单元都管理有关许多不同数据文件的信息。然后,在另一个索引中收集的这样的信息向密钥分配对等节点,提供如此详细的信息,对等节点实际可以提供某一数据文件。
由于查找文件或服务可以通过不同的字符串以许多不同的方式以查询进行表达,因此,查询请求的搜索字符串不非常适于立即执行查询请求。因此,优选情况下,一个或多个密钥从查询请求(具体来说,是字符串)的内容派生而来。基础的规则集优选情况下由网络流量控制单元进行存储;其控制逻辑被配置为实现这样的规则,以便从查询请求派生出密钥。
当这样的密钥通过控制逻辑从查询字符串派生出来时,并且当管理密钥的网络流量控制单元通过审查对应的索引而发现时,一个请求被定向到被分配给导出的密钥的一个或多个远程网络流量控制单元,以便获得哪些对等节点具有由密钥代表的文件的信息。被请求的网络流量控制单元优选情况下将这样的信息发送回发出请求的网络流量控制单元。然后,可能优选从网络流量控制单元到查询对等节点的位消息,以便让对等节点选择提供的任意数量的数据文件。稍后介绍此过程的许多优选的变化。
因此,一些网络流量控制单元优选情况下为一些密钥提供了密钥-对等节点索引。这些网络流量控制单元根据密钥-对等节点索引,给其他网络流量控制单元提供对等节点被分配给请求的密钥的知识。这样的网络流量控制单元的管理任务优选情况下包括通过添加和删除条目来更新索引。
在另一个优选实施例中,引入了更新对等特定的知识的索引的方式监视从关联到网络流量控制单元的对等节点发出的命中消息。由命中消息的内容派生了一个或多个密钥。发送对等节点被分配给导出的密钥,并且密钥-对等节点关系存储在管理索引(密钥是其一部分)的网络流量控制单元上的密钥-对等节点索引中。此方法帮助使对等特定的知识保持更新。
优选情况下,使用不同于对等应用协议的协议来实现这样的高级搜索,包括网络流量控制单元之间的基础通信,以及管理索引、表或其他对等特定的知识。这样的协议比较有效,并可以满足上文所提及的目的。此协议专门用于管理查询请求。
对于许多目的,优选情况下具有对等特定的知识可用,该知识包括有关关联到网络流量控制单元的对等节点的信息。这就有助于优化管理努力,因为联合的群集的对等节点通常彼此靠近。这样的距离信息可能会影响由网络流量控制单元进行的管理请求。
根据本发明的另一个方面,提供了至少包括一个组对等节点的网络,用作此对等组的入口/出口线路的网络线路,以及根据权利要求中的任何一个权利要求的网络流量控制单元。
根据本发明的另一个方面,提供了包括计算机程序代码的计算机程序元素,当装入网络流量控制单元的处理器单元时,配置处理器单元,以便执行根据权利要求中的任何一个权利要求所述的方法。
本发明和它们的实施例的不同方面的优点伴随着上文所描述的本发明的网络流量控制单元和方法的优点。
通过参考下列对根据本发明的目前优选的但是仍然是说明性实施例的详细描述并参考附图,可以对本发明和其实施例有一个比较完整的认识。
这些图显示了图1是通过网络建立对等连接的已知方式,图2是显示了根据已知对等应用建立的连接的网络的示意图,图3是根据已知对等应用的查询信息的已知方式,图4a是显示根据本发明的实施例的网络的图表,图4b是根据本发明的实施例的网络流量控制单元的方框图,图4c是根据本发明的实施例的用于控制网络上的流量的方法的流程图,图5是显示根据本发明的实施例的消息的图表,图6是根据本发明的实施例的通过网络建立对等连接的方式,图7是根据本发明的实施例的通过网络建立对等连接的另一种方式,图8是显示根据本发明的实施例的建立的连接的网络的示意图,图9是根据本发明的实施例的网络的方框图,图10是根据本发明的实施例的网络流量控制单元作为对等特定的知识提供的网络流量的数据结构,图11是显示根据本发明的实施例的搜索数据文件或服务的流程图,以及图12是显示更新对等特定的知识的方法的流程图。
不同的图可以包含完全相同的参考,代表具有类似或一致的内容的元素。
具体实施例方式
图4显示了本发明的不同方面的实施例。图4a显示了根据本发明的实施例的网络的图表,图4b是根据本发明的实施例的网络流量控制单元的方框图,而图4c是根据本发明的实施例的控制流量的方法的流程图。
图4a显示了两个群集1和2。群集1和2在物理上通过互连3进行连接。群集1包括一些路由器10和边缘路由器11,该路由器11是直接连接到互连线3-也叫做网络线路3-的路由器。既没有显示属于每一个群集的对等节点,也没有显示对等节点之间的任何逻辑连接。
在与网络入口/出口节点-即,边缘路由器11,相邻的网络中引入了网络流量控制单元5-也叫做放大器,以便控制群集1传输和接收的至少大部分流量。此流量在网络线路3上存在。
图4b显示了网络流量控制单元5的方框图。网络流量控制单元5包括在网络处理器中实现的过滤单元51。过滤单元51监视此网络线路3上的涉及对等应用的所有消息。其他消息-分别是对应的数据包-不受影响并发往网络线路3上的目的地。网络流量控制单元5进一步包括控制逻辑52,该控制逻辑接收截取的消息,还具有分别通过网络线路3启动发送消息。提供了存储器53,用于存储控制逻辑可以访问的对等特定的知识。
图4c显示了网络流量控制单元5对通过网络线路3发送的消息,特别是对代表从群集1的对等节点中发送的连接请求的消息。这里的一般原理是网络流量控制单元5控制重叠网拓扑的建立,从而增强协议的性能。
基本原理是截取由群集1的对等节点发出的对等连接请求并迫使发出请求的对等节点与网络流量控制单元5进行对等连接。由过滤单元51执行截取。只有网络流量控制单元5与外部对等节点建立对等连接,在必要时中继由位于网络群集1内对等节点发出的协议消息。每当控制逻辑52判断,根据截取的请求(可以是来自对等节点X连接到对等节点Y的请求)的内容,并根据对等特定的知识(可以是对等节点X已经通过同一群集的另一个对等节点连接到对等节点Y的信息),丢弃截取的数据包,不需要采取进一步的操作。这就大大地限制入口/出口链路上的流量,并允许协议可以缩放。
图5显示了导致连接请求截取的协议交换,以及放大器如何与请求的对等节点建立对等连接。对等节点A向对等节点B发送连接请求。放大器5截取,因为检测到了对等应用消息。提取消息(即,连接请求)的始发者地址、收件人和内容。然后,丢弃连接请求。然后,放大器5以其自己的身份向对等节点A发出连接请求,对等节点A将要接受它,因为它正在寻找对等节点。
然后,放大器5可以与外部对等节点或其他放大器建立对等连接。此方案可以使用放大器之间的复杂的信息交换来扩展,以增强协议性能。例如,放大器的网络中可用的文件的摘要可以使用分配的散列表(例如,CAN/Chord或Pastry/Tapestry)来产生。
图6显示了说明根据本发明的实施例交换消息的方式的图表。显示了如何在包括至少两个对等组1和2的示范性网络内实现连接。每一个对等组1和2分别包括对等节点A、B、C、D和E。附图标记3指出了对等组1和2之间的网络线路。两个方向上的箭头表示已经建立的对等连接,更准确地说是基于一些物理互连的逻辑互连。这样的连接的建立是,通过让其中一个对等节点向其他对等节点发送连接请求消息,而其他对等节点已根据对等应用的协议,用一个接受消息接受此连接请求消息。
在图6a中,节点C已经与节点A和B建立对等连接,节点D与节点E建立对等连接。节点C和D易于建立对等连接,因为C了解D。因此,C向D发送连接请求。这样的消息由从始发者到收件人的箭头表示。在图表中,只有消息的始发者在括号中用文字表示。但是,实际消息也包含收件人的标识。
下面将介绍根据本发明的实施例的网络流量控制单元5。网络流量控制单元5的标识符是“G”。它过滤了对等应用的消息。如此,从C到D的连接请求由网络流量控制单元5截取。其信息/内容被提取,请求被丢弃。现在,网络流量控制单元5响应截取的连接请求,对管理进一步的操作进行完全控制,以满足C的需求。因此,它向C发送连接请求。C接受。根据网络流量控制单元5可以访问的对等特定的知识,它仍必须联系D。因此,网络流量控制单元5向D发送包含其标识符G的连接请求。D接受。
根据图6b,C和G建立了对等连接,现在G和D也建立了对等连接。现在A和D希望建立对等连接,因为A了解D。因此,A向D发送连接请求,该请求被G=网络流量控制单元5截取。在提取消息的内容之后,请求被丢弃。G向A发送连接请求。A接受。
不需要在A和D之间建立进一步的逻辑连接,因为C已经连接到D,A连接到C。如此,网络流量控制单元5不采取进一步的操作,具体来说,不再从A发送连接请求或另一个时间联系D。根据图6c,结果,在A和D之间或G和D没有进一步的连接。如此,流量受到了限制。
图7基本上显示了在交换消息的方式方面图5的替代方式。图7显示了与图6具有相同元素的相同网络。网络流量控制单元5管理截取的连接请求的方式现在是不同的网络流量控制单元5不以其自己的身份出现,而是以比较隐蔽的方式操作。连接请求仍被截取和丢弃。在评估了对等特定的知识和消息的内容之后,网络流量控制单元5联系D仍是合理的。但是现在,向D发送连接请求,该请求看起来像由C发送的原始连接请求,显示C为始发者而不是G。来自D的接受消息也被截取,并且,完全相同的接受消息被网络流量控制单元5转发到C。图7a显示了此方法。图7b显示了然后的重叠网的实际连接。
图8显示了作为本发明的实施例的网络的图表。与根据图2的已知网络相比,现在网络流量控制单元5安装在入口/出口节点。它们专门地负责建立重叠网,该重叠网由直线表示。从图表可以看出,在网络流量控制单元之间不同群集1、2、4的网络流量控制单元5只建立了一个连接,这就大大地减少了流量。此外,对等节点A现在可以通过群集1内的对等节点B与对等节点F建立对等连接。由网络流量控制单元5提供并应用此知识,而建立连接和管理截取的连接请求。
无结构的对等方法的可缩放性问题可以通过用智能数据位置机制替换蛮力搜索(查询)来减轻。如此,网络流量控制单元提供了用于管理被截取和分析的查询请求的管理功能。此外,对等节点可以保持不变,而在网络的核心中,使用了先进的位置机制。图9显示了根据本发明的实施例的网络。位于三个对等组1、2和4内的对等节点都叫做Gnutella Peers,如在此实施例中,与Gnutella对等应用相关的流量应该得到管理。网络流量控制单元5如此定位,以便每一个网络流量控制单元5都与对等组关联,以便当传递到其他对等组的对等节点时,网络流量控制单元5可以访问他的组的对等节点所涉及的所有发送的或接收到的消息。对于物理网络拓扑,网络流量控制单元通常位于访问和边缘路由器之间,以便它们可以截取对等消息。如此,网络流量控制单元服务于与网络靠近的其附近的许多对等节点。
在网络流量控制单元5之中,特别是对于以智能低-流量方式管理截取的查询请求,使用不同于对等协议的协议,以便更好地匹配这些新要求。这样的协议可以是命名为“高级搜索和位置协议”。此方法的优点是在网络的核心,扩散被可缩放的高级位置机制替代。这就改进了可缩放性并显著减少了控制流量的量。对等节点不必被替换或更改。具体来说,支持高度动态的对等节点数量。网络流量控制单元5相对稳定,如此满足了结构化的对等系统的要求。它们防止网络中扩散消息,并代之以使用高级位置机制。
接下来,将使用Gnutella协议作为对等应用协议的示例来说明体系结构。其他无结构对等方法的工作方式类似。对等节点执行Unutella协议,以定位文件,并执行HTTP以下载文件。网络流量控制单元还实现Gnutella协议,以便与对等节点进行通信。与标准对等节点不同,网络流量控制单元不参与扩散Gnutella请求。在网络流量控制单元之间,使用高级位置机制。
优选情况下,控制逻辑管理功能的一部分是对于转换查询的内容-特别是-代表内容的这样的查询的字符串-转换为密钥的规则集的应用。密钥比较易于查询,并在代表语句时比语言更加清楚。此外,密钥比字符串更短,因此,需要较少的带宽。
一个给定的输入字符串首先由剔除字过滤器进行处理,该剔除字过滤器删除对搜索而言无关紧要的所有字。然后分析器根据查询的剩余的字生成散列码集合,该散列码集合被看成使用散列函数的特殊的密钥实现。在最简单的例子中,分析器从每个字生成一个单个的散列码。高级的分析器将内容映射为一种层次结构,例如filetype=″music″format=″mp3″artist=″vivaldi″conductor=″karajan″并给这种结构分配一个密钥。
对于查询的每一个有效子字符串,可以计算其他密钥。这就允许实现子字符串查询。在Magdalena Balazinska等人所著的“AScalable Peer-to-Peer Architecture for Intentional ResourceDiscovery”Pervasive 2002-International Conference on PervasiveComputing,2002年8月,描述了如何实现这一点的细节,在此引用了全部内容。
使用所产生的密钥来从分配的密钥-对等索引中检索信息。密钥-对等索引是以这样的方式在网络流量控制单元中进行分配的每个网络流量控制单元只维护了总的密钥-对等索引的一部分。单一网络流量控制单元正在管理数量有限的密钥。这样的密钥-对等索引映射了存储密钥所关联的密钥的文件的对等节点。
图10显示了存储在单一网络流量控制单元上的这样的密钥-对等节点索引的数据结构。网络流量控制单元保留了总的分配密钥-对等节点索引中的一小部分。一个给定密钥映射到无、一个或多个文件名,对应的文件存储在一个或一些对等节点中。
优选情况下,在网络流量控制单元的控制逻辑中实现的管理查询的基本逻辑,包括对于一个给定密钥,控制逻辑定位在其上面存储了与此密钥关联的更多信息的网络流量控制单元。优选情况下,有一个索引或一个功能可用于将密钥映射到网络流量控制单元。密钥以及其关联的信息-特别是对等节点和文件名,可能还有与对等节点关联的网络流量控制单元-可能存储在多个网络流量控制单元中。在此情况下,控制逻辑定位与发出请求的网络流量控制单元最近的那一个。在新网络流量控制单元可以被添加并且现有的网络流量控制单元可以被删除的意义上,密钥-网络流量控制单元索引是动态的。与对等节点的变化率相比,网络流量控制单元的变化率要低两倍。
密钥查询的结果是文件名的列表,然后这些文件名将返回到最初发出查询的对等节点。可选地,网络流量控制单元可以将这些文件名与从原始查询中提取的文件名进行比较,以便产生等级列表,然后,将该等级列表返回到对等节点。此外,由于产生密钥特别是散列的固有性,总有非零的机会两个不同的输入被映射到同一个密钥。这还可能导致优先进行双重检查,例如,通过比较原始文件名和返回的文件名。
图11显示了管理由发送查询消息100的对等节点触发的查询请求的流程图。网络流量控制单元可以是对等节点,因此,通过转移对等网络流量-这里是Gnutella流量,从网络接收消息或者截取消息。
然后,网络流量控制单元按如下方式进行它基于搜索字符串计算散列码集103。对于每一个有效子字符串,也计算散列码。这就允许实现子字符串查询。在步骤101、102中,应用剔除字过滤器和名称分析器技术来产生散列码。当然,这些步骤可以具有不同的顺序。
网络流量控制单元在其中管理导出的散列码/密钥的其他网络流量控制单元方面定位目的地。这就通过密钥-网络流量控制单元索引来实现。计算出的密钥的查询消息从管理网络流量控制单元发送到发现的远程网络流量控制单元。在步骤104中,在接收到这样的消息时,远程网络流量控制单元将返回与查询的密钥关联的值。这些值包括了存储了请求的文件的对等节点的列表。对于每一个对等节点,还列出了关联的网络流量控制单元。
每当具体的密钥存储在管理网络流量控制单元上时,当然不需要联系其他网络流量控制单元,与查询的密钥关联的对等节点可以在本地网络流量控制单元上检测到。
在步骤105中,返回的密钥可以被转换成字符串,并与发出请求的对等节点发送的原始查询字符串进行比较。
在步骤106中,如果列表不是空的,那么,管理网络流量控制单元向查询对等节点返回命中消息,并提供其本身作为来源。然后,对等节点可以任意选择返回的文件名,并选择任意数量的文件名以供检索。
如果推请求或HTTP获取请求到达网络流量控制单元,那么,网络流量控制单元选择实际数据来源-即,特定对等节点-来从中检索文件。作为选择标准,它可以使用网络连接的质量(延迟、吞吐量、错误率或其他可以由网络流量控制单元进行评估的参数)和信息的新鲜程度。不提供用于检索的网络连接给主动提供的对等节点,而是提供给其关联的网络流量控制单元,因为假设两个网络流量控制单元是关联的。在位置识别的UHT中,提供网络连接的评估,而没有任何其他开销。
在选择了服务对等节点之后,管理网络流量控制单元开始通过关联的网络流量控制单元从此对等节点中检索文件,然后,直接将它转发到查询对等节点。
在没有条目可用的情况下-这可能意味着,被列为提供文件的对等节点,或不再具有此文件-将执行如下所述的显式的删除过程,以将此新信息传播到其他网络流量控制单元。此外,管理网络流量控制单元可能决定从另一个-例如-次好的提供对等节点检索或直接通知查询对等节点尝试失败。
图12描述了基于通过网络转发的监视命中消息的插入操作的流程图。由网络流量控制单元的控制逻辑对插入方法进行管理。
一旦网络流量控制单元根据对等网络应用协议观察到从其本地对等节点中的某一个发出的命中回答,则分配的密钥-对等节点索引中的新的条目必须按如下方式执行在步骤201、202中,网络流量控制单元基于文件名200计算密钥集。此计算类似于用于执行搜索操作的计算。对于计算的每一个密钥,管理控制逻辑识别正在管理此密钥的网络流量控制单元。如果该密钥还不存在,则将它分配给其中一个网络流量控制单元。然后,管理网络流量控制单元将密钥与文件名、对等节点的地址以及关联的网络流量控制单元的IP地址一起存储。
还更新密钥-对等节点索引的删除操作可以包括隐式和/或显式部分。如果索引条目在一段时间内没有被访问,则会发生隐式删除。在一个或多个小时范围之内,就会失效。通过定期检查已经失效的条目,由每一个网络流量控制单元进行隐式删除。当从索引条目下载不成功或者因为文件或对等节点消失时,发生显式删除。在此情况下,在存储了关联的密钥的所有网络流量控制单元上删除索引条目。
权利要求
1.一种网络流量控制单元,包括过滤单元(51),用于从网络线路(3)截取与对等应用有关的消息,而不管目的地如何,控制逻辑(52),被配置用于根据截取的消息的内容和网络流量控制单元(5)提供的对等特定的知识,管理由截取的消息代表的请求。
2.根据权利要求1所述的网络流量控制单元,其中,网络流量控制单元(5)用于根据对等应用协议进行通信。
3.根据权利要求2所述的网络流量控制单元,其中,网络流量控制单元(5)用于应用对等应用协议来管理连接请求。
4.根据权利要求1到3中的任何一个权利要求的网络流量控制单元,其中,网络流量控制单元(5)用于根据不同于对等应用协议的协议进行通信。
5.根据权利要求4所述的网络流量控制单元,其中,网络流量控制单元(5)用于应用不同于对等应用协议的协议来管理查询请求。
6.根据前面的权利要求中的任何一个权利要求的网络流量控制单元,其中,对等特定的知识包括有关网络流量控制单元(5)当前知晓的对等连接的信息。
7.根据前面的权利要求中的任何一个权利要求的网络流量控制单元,其中,对等特定的知识包括与网络流量控制单元(5)关联的对等节点的信息。
8.根据前面的权利要求中的任何一个权利要求的网络流量控制单元,其中,对等特定的知识包括分配代表用于下载到网络流量控制单元的数据文件的索引。
9.根据前面的权利要求中的任何一个权利要求的网络流量控制单元,其中,对等特定的知识包括将对等节点分配到代表用于下载的数据文件的密钥的索引。
10.根据前面的权利要求中的任何一个权利要求的网络流量控制单元,其中,控制逻辑(53)被配置为实现用于从截取的查询请求中导出密钥的规则集。
11.用于控制网络上的流量的方法,包括接收由过滤单元从网络线路(3)截取的与对等应用相关的消息,而不管消息的目的地如何,根据截取的消息的内容和对等特定信息,管理由截取的消息代表的请求。
12.根据权利要求11所述的方法,包括丢弃截取的消息。
13.根据权利要求11或权利要求12所述的方法,其中,要被管理的请求是从一个对等节点发出的并发往另一个对等节点的连接请求。
14.根据权利要求13所述的方法,其中,管理连接请求受网络流量控制单元所知晓的现有连接的制约。
15.根据权利要求14所述的方法,其中,当已经建立了可以服务或被扩展以服务发出请求的对等节点的连接时,没有消息被发送到截取的连接请求的收件人。
16.根据权利要求13到15中的任何一个权利要求所述的方法,包括响应截取的连接请求,向截取的连接请求的始发者发送连接请求。
17.根据权利要求13、14或16中的其中一个权利要求所述的方法,包括向截取的连接请求的收件人发送连接请求。
18.根据权利要求13、14或16中的其中一个权利要求所述的方法,包括向截取的连接请求的收件人发送连接请求,假装截取的连接请求的始发者正在发送连接请求。
19.根据权利要求13到16中的其中一个权利要求所述的方法,包括向截取的连接请求的收件人之外的对等节点发送连接请求。
20.根据权利要求13到16中的其中一个权利要求所述的方法,包括向另一个网络流量控制单元(5)发送连接请求。
21.根据权利要求16以及权利要求17到20中的任何一个权利要求所述的方法,一旦截取的连接请求的始发者接受了从网络流量控制单元发往始发者的连接请求,就向截取的连接请求的始发者之外的另一方发送连接请求。
22.根据前面的权利要求11到21中的任何一个权利要求所述的方法,其中,要管理的请求是对等节点发出的数据文件查询。
23.根据权利要求22所述的方法,其中,管理查询请求受分配密钥的索引的制约,所述密钥代表用于下载到网络流量控制单元的数据文件。
24.根据权利要求22或权利要求23所述的方法,其中,管理查询受到将对等节点分配到密钥的索引的制约。
25.根据权利要求22到24中的任何一个权利要求所述的方法,包括从查询请求的内容导出一个或多个密钥。
26.根据权利要求25所述的方法,包括根据密钥-网络流量控制单元索引,将请求定向到被分配给导出的密钥的一个或多个远程网络流量控制单元。
27.根据权利要求26所述的方法,包括从远程网络流量控制单元接收分配给密钥的对等节点的列表。
28.根据权利要求27所述的方法,包括向查询对等节点发送命中消息。
29.根据前面的权利要求11到28中的任何一个权利要求所述的方法,包括为某些密钥管理密钥-对等节点索引,以及根据密钥-对等节点索引,应请求给其他网络流量控制单元提供对等节点被分配给请求的密钥的知识。
30.根据权利要求29所述的方法,其中,管理密钥-对等节点索引的过程包括删除条目。
31.根据前面的权利要求11到30中的任何一个权利要求所述的方法,包括监视从关联的对等节点发出的命中消息,从命中消息的内容导出一个或多个密钥,向导出的密钥分配发送对等节点,以及将密钥-对等节点关系存储在密钥-对等节点索引中。
32.一种网络,包括至少一组(1,2,4)对等节点,用作此对等节点组(1,2,4)的入口/出口线路的网络线路(3),以及根据前面的权利要求1到10中的任何一个权利要求所述的网络流量控制单元(5),从网络线路中截取消息。
33.包括计算机程序代码的计算机程序元素,当装入网络流量控制单元的处理器单元时,配置处理器单元,以便执行根据权利要求11到31中的任何一个权利要求所述的方法。
全文摘要
说明了用于控制网络中的流量的方法和电子单元,特别是对于控制对等相关的流量。过滤单元从网络线路截取与对等应用相关的消息,不管消息的目的地是什么。然后,控制逻辑根据截取的消息的内容和对等特定信息,管理由截取的消息代表的请求。
文档编号H04L29/06GK1692616SQ200380100659
公开日2005年11月2日 申请日期2003年10月28日 优先权日2002年11月15日
发明者肖恩·罗内, 保罗·斯科顿, 丹尼尔·鲍尔, 玛赛尔·瓦尔德沃格尔 申请人:国际商业机器公司