建立连接的方法

文档序号:7923186阅读:232来源:国知局
专利名称:建立连接的方法
技术领域
本发明涉及一种在对等网络中建立连接的方法,以及一种对等端, 一种包括对等网络的电信基础设施,以及一种用以执行所述方法的计算 才几程序产品。
背景技术
网络经营者(运营商和企业)极度需要具有最小CAPEX/OPEX的 轻量级解决方案以保持竟争性以及巩固客户归属(CAPEX =资本开销; OPEX-运营开销)。
具有最小集中式基础设施的低OPEX系统通常在覆盖网络中使用高 度分布的数据库。覆盖网络,例如对等(=P2P)网络,是在现有IP网 络(IP -因特网协议)的上层的虚拟网络。现代的P2P系统,如Chord, 用图(节点和边的结构)来组织参与对等端。节点代表参与对等端而边 代表两个对等端之间的邻居关系。在一个覆盖中的每个对等端具有唯一 的标识符(对等端ID或节点ID),该标识符限定了其在该覆盖中的位置 (ID-标识符/识别符)。作为邻居的对等端经由直接IP连接相连。良好 构建的覆盖对于有效^^由和查找^4"而言是必须的。可以在不知道目的 地对等端的IP地址的条件下经由覆盖来向其他对等端发送消息。
网络地址翻译(=NAT)路由器给P2P网络中的连接建立带来公知 的问题P2P覆盖中的每个参与方(对等端)可以位于公共IP地址范围 内或者位于一个或多个NAT设备后面的私有IP地址范围内。假设高百 分比的用户因特网节点位于NAT路由器之后。私有范围中的对等端不能 从公共范围或者从不同的私有范围直接到达。因为相关NAT设备的协作 不能被保证,所以需要NAT穿越(traversal )解决方案,其依赖于对NAT 行为的预测而不是NAT设备的协作。

发明内容
本发明的目的是改善具有NAT的P2P网络中的连4妄建立。 本发明的目的通过一种在对等网络中的第 一地址范围内的第 一对等 端与该对等网络中的第二地址范围内的第二对等端之间建立连接的方法 来实现,其中该方法包括步骤在该对等网络中发现阻止在第一对等端 与第二对等端之间的直接连接的网络地址翻译,确定该对等网络中的第 三对等端作为中继对等端,以及由中继对等端在第一对等端和第二对等 端之间中继连接。本发明的目的还通过一种对等网络中的对等端来实现, 这种对等网络包括在该对等网络中的第 一地址范围内的 一个或多个对等 端以及在该对等网络中的第二地址范围内的一个或多个对等端,其中所 述对等端包括发现装置,其适于在对等网络中发现阻止该对等端与另 一地址范围内的对等端之间的直接连接的网络地址翻译;确定装置,其 适于确定对等网络中的一个对等端作为中继对等端;中继装置,其适于 支持所述对等网络中的第一地址范围内的第一对等端与所述对等网络中 的第二地址范围内的第二对等端之间的连接的中继;以及传输装置,其 适于在对等网络中传输信息,特别是连接信息。以及本发明的目的通过 一种包括对等网络的电信基础设施来实现,该对等网络具有该对等网络 中的第一地址范围内的第一对等端和该对等网络中的第二地址范围内的 第二对等端,其中该电信基础设施还包括阻止在第 一对等端与第二对等 端之间的直接连接的网络地址翻译,以及对等网络中的第三对等端,其 中该第三对等端被确定作为适于在第一对等端和第二对等端之间中继连 接的中继对等端。此外,本发明的目的还通过一种用于在对等网络中建 立连接的计算机程序产品来实现,该对等网络包括对等网络中的第 一地 址范围内的一个或多个对等端和对等网络中的第二地址范围内的一个或 多个对等端,其中该计算机程序产品当被该对等网络中的对等端执行时 执行步骤在对等网络中发现阻止在第 一对等端与另 一地址范围中的第 二对等端之间的直接连接的网络地址翻译;确定对等网络中的第三对等 端作为中继对等端;支持在对等网络中的第 一地址范围内的第一对等端与对等网络中的第二地址范围内的第二对等端之间的连接的中继;以及 在对等网络中传输信息,特别是连接信息。
本发明^是供一种用以解决P2P网络中的NAT穿越问题的新的可能 方式。像穿洞(Hole Punching )、 STUN、 TURN和ICE这样的现有技术 的解决方案需要中央服务器部件,因此带来严重的缺陷,因为中央部件 不随着P2P网络中的对等端的数量一起缩放并且中央部件增加了服务提 供商的OPEX (STUN-通过网络地址翻译的用户报文协议的简单穿越; TURN =使用中继NAT的穿越;ICE =交互连接性建立)。
与前面所提及的公知的现有技术的解决方案相反,本发明通过使用 彻底的NAT穿越解决方案来增强结构化的P2P覆盖网络,使对中央服 务器部件的需求达到最小。
使对中央服务器部件的需求达到最小带来了若干好处。首先,其对 于服务提供商而言意味着较低的OPEX,因为参与用户的资源被用于提 供所需要的服务。其次,获得了更好的缩放性,因为随着覆盖中具有更 多的参与者,提供所需要的服务的对等端的数目也在增长。第三,使用 本发明的P2P网络增强了抵抗拒绝服务攻击的鲁棒性,因为不存在可被 作为目标的中央实例。
然而,前面所提及的现有技术的解决方案没有考虑结构化的P2P覆 盖(例如Chord)的特殊需求和可能性,本发明通过允许私有地址范围 内的对等端能够穿越它们的NAT并参与到覆盖中,从而增强了结构化的 P2P覆盖网络。
此外,本发明在每个对等端上管理一个IP地址。因为P2P网络中 的对等端常常仅具有一个IP地址,所以这意味着与STUN服务器以及 TURN服务器相比的极大的简化一 一 因为TURN是STURN的扩展一 一 STUN服务器和TURN服务器需要两个IP地址用于检测NAT的行为。 由此,将本发明集成进普通P2P网络是清楚和简单的。
根据本发明,当一个对等端加入覆盖时,该对等端与多个对等端交 互以探测其"连接信息"。该连接信息包括NAT行为、公共端点和私有 端点。虽然为了探测该连接信息,使用了与STURN相类似的协议,但
8是却不需要第二个IP地址。通过这种方式,覆盖中的位于公共范围内的 每个对等端都可以提供这种服务。
根据本发明,当一个对等端希望与另一对等端建立连接时,它们两 者经由覆盖来交换它们的连接信息。通过这种方式,不需要集合
(rendezvous)服务器。利用交换的连接信息,这两个对等端尝试基于 穿洞(Hole Punching)机制来建立直接连接。
还未加入覆盖的对等端不能接收它对应的连接方的连接信息。该连 接信息经由覆盖进行路由并且仅能在已经加入覆盖的对等端处进行寻 址。由此,正在加入的对等端需要已经加入覆盖的对等端的帮助。该对 等端中继用于在正在加入的对等端与覆盖之间建立连接所需的消息。
根据本发明,如果直接连接尝试失败,则希望建立连接的两个对等 端请求第三对等端的帮助,第三对等端将在这两个对等端之间中继消息。 这两个对等端建立到中继对等端的直接连接。优选地,中继对等端已经 建立到这两个对等端中的一个的直接连接。重用已经建立的直接连接有 助于使连接建立的努力减到最小。
其他优点通过各从属权利要求所指示的本发明的实施例来实现。
根据本发明的优选实施例,对所述网络地址翻译的发现是基于对等 网络的拓朴和连接信息的。P2P网络中的每个对等端具有特定于该对等 端的自己的连接信息。可以经由连接信息到达已经被集成进P2P网络的 覆盖的对等端。优选地,对等端特定的连接信息包括指明与该对等端相 关联的NAT的NAT类型、 一个或多个自察觉的端点以及一个或多个 UNSAF推导出的端点(UNSAF =单方自地址确定)。优选地,对等端特 定的连接信息还包括一个或多个中继候选者。
NAT类型由映射行为(没有映射、EIM、 ADM、 PDM)、过滤行为 (EIF、 ADF、 PDF )和U形(hairpin)翻译(可能、不可能)来表示(EIM =不基于端点的映射;ADM-基于地址的映射;PDM-基于地址和端 口的映射;EIF-不基于端点的过滤;ADF-基于地址的过滤;PDF =基 于地址和端口的过滤)。自察觉的端点是IP地址和端口的元组,其是通 过使用本地操作系统的方法发现的。UNSAF推导出的端点是IP地址和端口的元组,其是经由UNSAF机制(例如STUN)发现的。如果对等 端未被NAT,也即不是位于NAT设备的后面,则UNSAF推导出的端点 与自察觉的端点是相同的。中继候选者表示P2P网络中提供中继服务的 对等端。候选者是通过这种对等端中的对等端ID和用于对中继候选者 进行排名的一组启发值来标识的。
优选地,对所述网络地址翻译的发现是基于连接信息的,该连接信 息包括对所发现的网络地址翻译的行为的说明、与第一地址范围内的第
一对等端相关联的端点以及与第二地址范围内的第二对等端相关联的端点。
根据本发明的另 一优选实施例,第 一对等端和第二对等端经由对等 网络中的一个或多个其他对等端用一跳接一跳路由的方式在第一对等端 和第二对等端之间交换它们各自的连接信息。
如果需要在两个对等端之间建立连接,则两个对等端都需要交换先 前所收集的连接信息。连接信息是经由P2P覆盖来交换的。为了确保对 网络的影响最小,仅有两种消息被发送连接请求和连接响应。连接请 求消息包含请求对等端(也即第一对等端)的连接信息和连接ID。连接 ID被用于识别属于这个建立连接的尝试的消息。连接响应需要包含与连 接请求相同的连接ID。通常,连接响应包含^L出响应的对等端(也即第 二对等端)的连接信息。如果连接响应没有包含响应对等端(也即第二 对等端)的连接信息,则连接响应必须被解释成拒绝该连接请求。如果 出于某种原因(例如因为响应对等端正离开P2P网络或者已经到达它的 连接极限)该响应对等端不能建立连接,则连接请求可纟皮拒绝。
根据本发明的另一优选实施例,经由中继对等端在第一对等端和第 二对等端之间建立中继连接是通过以下步骤来执行的。第一步是由第一 对等端向中继对等端发送包含第 一对等端的连接信息的中继连接请求。 下一步包括由中继对等端向第一对等端发送包含中继对等端的连接信息 的中继连接响应。下一步包括如果在第一对等端和中继对等端之间还没 有建立任何直接连接,则在第 一对等端和中继对等端之间建立直接连接。 如果在第一对等端和中继对等端之间已经建立直接连接,则跳过在第一对等端和中继对等端之间建立直接连接的步骤,因为不需要在第 一对等 端和中继对等端之间重新建立直接连接。
下一步包括由第 一对等端向第二对等端发送中继发现消息,其包括 中继对等端的对等端标识符。下一步包括由第二对等端向中继对等端发 送中继连接请求,其包括第二对等端的连接信息。下一步包括由中继对 等端向第二对等端发送中继连接响应,其包括中继对等端的连接信息。 并且下一步包括如果在第二对等端与中继对等端之间还没有建立任何直 接连接,则在第二对等端与中继对等端之间建立直接连接。如果在第二 对等端与中继对等端之间已经建立直接连接,则跳过在第二对等端与中 继对等端之间建立直接连接的步骤,因为不需要在第二对等端与中继对 等端之间重新建立直接连接。
在优选的实施例中,第一对等端和/或第二对等端提供包含一个或多 个中继候选者的列表。中继对等端是从该列表中选出的。该选择可以基
于以下步骤中的一个或多个选择在对等网络中已经建立的一个或多个 直接连接可以被重用于第一对等端与第二对等端之间的中继连接的中继 候选者;并且优先选择相比其他中继候选者承担较少中继连接的中继候 选者。在建立中继连接时对现有直接连接的重用减少了为了创建和维护 覆盖网络所必须的保持激活流量。
根据本发明的另 一优选实施例,该方法包括向对等网络中的公共可 达地址范围内的一个对等端发送自举请求的步骤,该自举请求包括第一 对等端的连接信息,其中对等网络中的公共可达地址范围内的这个对等 端充当自举对等端。下一步包括由自举对等端中继在第一对等端与第二 对等端之间交换的消息。
优选地,终止中继连接包括以下步骤第一步包括通过由第一对等 端向中继对等端发送释放中继消息来终止中继连接,该释放中继消息声 明中继连接是不必要的。下一步包括由中继对等端将从第一对等端接收 到的释放中继消息转发给第二对等端。下一步包括由第二对等端向中继 对等端发送释放中继消息。下一步包括由中继对等端将从第二对等端接 收到的释放中继消息转发给第一对等端。以及下一步包括在第一对等端处接收到转发来的释放中继消息之后终止中继连接。


通过结合附图阅读以下对目前优选的示例性实施例的详细描述,本
发明的这些以及其他特征和优点将被更好地理解。其中 图1是根据本发明的实施例的对等网络的框图; 图2是根据本发明的实施例的对等网络中的自举服务的示图; 图3是在根据本发明的实施例的对等网络中建立直接连接的示图; 图4是在根据本发明的实施例的对等网络中终止直接连接的示图; 图5是根据本发明的实施例的中继候选者的有序列表; 图6是在根据本发明的实施例的对等网络中建立中继连接的示以及
图8是在对等网络中根据本发明的实施例的对等端的框图。
具体实施例方式
图1示出P2P网络100,例如表示像SIP网络这样的电信基础设施。 P2P网络100包括在该P2P网络100中的公共地址范围101内提供 UNSAF服务的第一对等端1和在该P2P网络IOO中的私有地址范围102 内的第二对等端2。 NAT设备21,例如带有NAT的家乡路由器,将私 有地址范围102与公共地址范围IOI分隔开。第二对等端2是位于NAT 后面的对等端(也即所谓的NAT对等端)并且从公共地址范围101仅可 经由NAT设备21来到达。
UNSAF服务允许对等端请求UNSAF服务以探测在它们与提供 UNSAF服务的对等端之间是否存在任何NAT设备。如果存在NAT设备, 则可以探测其行为以及由NAT设备分配给请求UNSAF服务的对等端的 公共端点。这种UNSAF服务可以被看成轻便版本的STUN:当探测NAT 行为时,在交换中因为较低的准确度的原因而不需要第二IP地址。仅驻 留在公共地址范围内的对等端可提供UNSAF服务。提供这种服务的对等端必须在预定端口上监听UNSAF请求。
在一个对等端可以参与P2P网络100的覆盖网络之前,它需要探测 其连接信息(=CI),其包括NAT行为(behaviour)、 7>共端点、私有端 点和中继候选者列表。对CI的探测开始于私有端点。端点由IP地址和 端口号来表示。IP地址可以从操作系统中获取,端口号可以由对等端来 选择。第二对等端必须知道提供UNSAF服务的至少一个第一对等端的 端点。仅仅作为后退(fallback)解决方案,第二对等端可参考中央服务 器以获取这种端点。
第二对等端2从第二对等端的端点(=私有端点)发送UNSAF请 求201给第一对等端1的UNSAF端点。当该UNSAF请求201通过NAT 设备21时,在UNSAF请求201中被指明为源端点的私有端点由NAT 设备21的端点(-被分配的端点)所替代。这与位于NAT后面的基本 思想是一致的。提供UNSAF服务的第一对等端1处理接收到的UNSAF 请求201。第一对等端1从UNSAF请求201中提取源端点(也即NAT 设备21的端点)(=被分配的端点)。第一对等端1生成对UNSAF请求 201的UNSAF响应202并且在UNSAF响应202中将所提取的源端点(= 被分配的端点)写成目的地端点。换言之,第一对等端1将UNSAF响 应202编址到被分配的端点,也即NAT设备21的端点。当UNSAF响 应202通过NAT21时,在UNSAF响应202中所指明的目的地端点(也 即被分配的端点)被第二对等端2的私有端点替代。但是UNSAF响应 202的有效载荷仍然包含被分配的端点。
这意味着UNSAF响应202在有效载荷中包含第一对等端1从 UNSAF请求201中提取的源端点。第二对等端2接收UNSAF响应202 并且检查有效载荷中的这个源端点是否与第二对等端2发送UNSAF请 求201的私有端点相同。如果该源端点与第二对等端2发送UNSAF请 求201的私有端点相同,则可以得出第二对等端2位于公共地址范围101 内的结论。否则,UNSAF请求201通过NAT设备21。因此,第二对等 端2位于私有地址范围102内并且需要查明它的NAT设备21的行为。
UNSAF响应202还包含提供UNSAF服务的第一对等端1所已知的
13其他对等端的端点列表。通过这种方式,第二对等端2可针对不同对等
端重复该UNSAF过程。
本发明依赖于在建立连接之前在两个对等端之间交换连接信息 (CI)。 CI是通过经由覆盖发送的消息来交换的。但是这些消息仅能够 到达已经被集成进覆盖中的对等端。如果新的对等端准备加入覆盖,则 它需要已经被集成进该覆盖的对等端的帮助。基本上,这可以是通过公 共地址可到达的任何对等端。提供自举服务的对等端在加入对等端和覆 盖之间中继消息。仅位于公共范围内的对等端可以提供自举服务。提供 自举服务的对等端必须在预定端口上监听自举请求。
图2示出具有自举对等端BP、邻居对等端22和多个其他对等端220 -223的P2P网络的覆盖120。自举对等端BP和邻居对等端22已经全 部集成进P2P覆盖120中并且能够经由覆盖120接收消息。加入对等端 11还未集成进P2P覆盖120中。当加入对等端11正加入该覆盖网络120 时,以下两个步骤需要被执行。加入对等端11已经探测它的CI并且准 备加入覆盖120。由此,加入对等端11需要与一个对等端(例如对等端 22)建立连接,通过该对等端,加入对等端ll将共享DHT职责,如P2P 协议要求的那样(DHT-分布式哈希表)。
加入对等端11发送自举请求210给在探测CI期间联系的多个对等 端中的一个,例如自举对等端BP。自举请求消息210包含加入对等端 11的CI和加入对等端11的对等端ID,对等端ID确定加入对等端11 在覆盖120中的未来的位置。因此,消息210可以;陂编址到邻居对等端 22。自举对等端BP经由覆盖120中的其他对等端220-223中的一个或 多个通过一跳接一跳的路由211将加入对等端11的CI经由覆盖120转 发给邻居对等端22。邻居对等端22接收加入对等端11的CI并且生成 包含邻居对等端22的CI的响应。该响应被经由覆盖120中的其他对等 端220 - 223中的一个或多个通过一跳接一跳的路由212发送给自举对等 端BP。 一旦来自邻居对等端22的响应被自举对等端BP接收到,则自 举对等端BP将自举响应消息213发送回加入对等端11,自举响应消息 213包含邻居对等端22的CI。在这些步骤之后,加入对等端11被全部集成进覆盖120中。
图3示出具有第一对等端31、第二对等端32和多个其他对等端320 -323的P2P网络的覆盖130。第一对等端31希望与第二对等端32建 立连接。为了在第一对等端31与第二对等端32之间建立直接连接,需 要执行以下步骤第一对等端31经由覆盖130中的其他对等端320 - 323 中的一个或多个通过一跳接一跳路由的方式发送连接请求消息310给第 二对等端32,其中连接请求消息310包含第一对等端31的CI。在接收 到连接请求310之后,第二对等端32经由覆盖130中的其他对等端320 -323中的一个或多个通过一跳接一跳^各由的方式发送连4妻响应消息 311给第一对等端31,连接响应消息311包含第二对等端32的CI。接 着,对等端31、对等端32 二者都知道彼此的CI。对等端31、对等端32 二者都需要评估已交换的CI以确定最优连接途径。如果直接连接是可能 的话,则它依赖于所涉及的NAT设备的行为。评估结果是三种可能结果 中的一个
I) 这两个对等端位于相同的私有范围内,可以通过使用私有 端点来建立直接连接。
II) 这两个对等端能够通过使用公共端点来建立直接连接。
III) 所涉及的NAT设备的行为阻止直接连接。需要找到提供中 继服务的第三对等端。在下面可以找到关于建立中继连接 的更多细节。
为了建立中继连接,UNSAF导出的端点或者自察觉出的端点都可 以被使用。
如果使用私有端点来建立直接连接的尝试失败了 ,则尝试使用公共 端点来建立直接连接。如果使用公共端点来建立中继连接的尝试失败了 , 则建立中继连接。
图3描述可以建立直接连接的情况。直接连接可以经由公共端点或 者经由私有端点来建立,其在评估阶段被确定。每个对等端31、对等端 32开始发送连接消息312、 323给其他对等端31、对等端32中的相应端 点。当对等端31、对等端32 二者都已经接收到至少一个连接消息时,连接被建立。如果对等端31、对等端32中的一个在多次尝试之后仍不 能接收连接消息,则尝试失败。 一旦建立直接连接,则需要定期在双方 向上发送保持激活消息以刷新NAT映射和过滤规则。
图4说明直接连接的终止。图4示出具有第一对等端31和第二对等 端32的P2P网络的覆盖130。 一旦在第一对等端31与第二对等端32之 间的直接连接410不再需要,则它可以被终止以释放P2P网络的资源。 一个连接在P2P协议需要它或者在这个连接是中继的一部分的条件下是 必须的。第一对等端31通过发送释放消息411来通知第二对等端32连 接410是不必要的。作为替代,第一对等端31通过发送分配消息来通知 第二对等端32连接410是必须的(未示出)。当第二对等端32已经从第 一对等端31接收到释放消息411并且明白了连接410不再需要时,第二 对等端32也发送释放消息412给第一对等端。对等端31、对等端32二 者都认为这个连接410是不必要的,由此它被终止。如果对等端31、对 等端32 二者都认为连接410是不必要的,则连接被终止。
如果对等端31、对等端32中的一个准备离开覆盖130,则它发送终 止消息给另一个以关闭连接410。如果对于特定持续时间没有接收到任 何保持激活消息,则连接410也被终止。
在某些情况下,在两个对等端之间的直接连接不能被建立。于是, 两个对等端需要在这个两个对等端之间中继连接的第三对等端的帮助 (中继连接建立)。从第一对等端到第二对等端的中继连接由从第一对等 端到中继对等端的直接连接和从第二对等端到中继对等端的直接连接构 成,其中中继对等端是提供中继服务的对等端。每个对等端维持中继候 选者的列表。对等端必须满足某种要求以变成中继候选者这个对等端 必须不位于具有ADM、 PDM或PDF行为的NAT后面。当一个对等端 建立到另一对等端的直接连接并且其他对等端满足前面所述的要求时, 这个其他对等端被添加到中继候选者列表。当建立连接时,这个列表与 CI 一起被交换。
当在两个对等端之间需要中继连接时,首先需要发现最优中继。在 交换连接信息的过程中,两个对等端还交换中继候选者,作为连接信息
16的一部分。这两个对等端的交换CI中的每个均包含中继候选者列表。这 两个对等端的两个列表被合并。由此,被集成进覆盖的每个对等端必须 知道至少一个中继候选者。并且准备加入覆盖的对等端知道自举对等端, 自举对等端必须位于公共范围内。同样,为了发现提供中继服务的对等
端,后退解决方案可能是必须的。在交换连接信息之后,两个对等端都 具有相同的中继候选者列表。
在该列表上的每个中继候选者被排名以确定哪一个中继候选者应当 被首先联系。优选地,列表上的中继候选者用启发值来排名。两个合适
的用于排名的值是重用和集中(concentration):
重用现有连接的值是基于优化网络流量的目标。为了最小化对网络 的压力,最佳的是重用已经建立的直接连接作为中继连接的一部分。已 经建立的连接应当被重用。如果两个对等端都已经建立了到中继候选者 的连接,则那个对等端将是最优的并且对连接的重用将被最大化。如果 对等端中的一个已经建立了连接,则它也将是附带的好处。
根据本发明的优选实施例,如果本地对等端具有到中继候选者的激 活的直接连接,则重用值是1。如果在交换连接信息之后知道两个对等 端都具有到相同中继候选者的激活的连接,则它是2。因此已经与两个 对等端都建立直接连接的中继候选者相对于仅具有到两个中的一个的直 接连接的中继候选者而言是优选的。
中继连接的集中值与多样化有关。如果一个对等端建立的所有连接 需要经由相同中继对等端的中继并且该中继对等端离开网络,则所有连 接都必须重新建立。由此,优选的是将中继连接分散在多个对等端上, 也即将中继连接散布在不同中继对等端上。因此,具有较少的激活的中 继连接的中继候选者优于具有较多连接的中继候选者。根据本发明的优 选实施例,集中值等于已经经由该中继候选者建立的且是激活的中继连 接的数目。
对于信令中继,像反应时间或带宽之类的值是不相关的,因为信令 流量不同于媒体流量,既不是时间要求严格的也不费带宽。 一旦确定需 要建立中继连接,则请求对等端的任务是从列表中选择合适的中继候选者。该列表包括来自请求对等端的连接信息的中继候选者和响应对等端 的中继候选者的联合。
优选地,该列表通过使用启发值来排序重用是最主要的排序标准, 紧随的是集中。重用值越高,中继候选者在列表中的排名就越高。集中 值越低,排名就越高。在图5中示出了已排序的列表的例子。列表50 包括四列51到54和五行511到515。列51给出五个中继候选者的对等 端ID。列52给出归因于五个中继候选者的重用值。列53给出归因于五 个中继候选者的集中值。列54给出五个中继候选者中的每个的排名,最 高排名的中继候选者位于顶部。
请求对等端接着试图与行511中的最高排名的候选者建立中继连 接。如果失败了 (例如,中继候选者拒绝该请求或者根本没有响应),则 列表50被一行一行地向下处理直到连接可以建立。这意味着请求对等端 试图与行512中的排名第二的候选者、行513中的排名第三的候选者等 等建立中继连接,直到连接可以建立为止。
一旦请求对等端已经对中继候选者进行了排名并且选择了合适的候 选者,则需要联系中继候选者。中继连接的建立与直接连接相类似。
图6示出具有第一对等端61、第二对等端62、由第一对等端61选 择作为最高排名的中继候选者的中继对等端R以及多个其他中继候选者 RC和其他对等端620、 621的P2P网络的覆盖160。第一对等端61和第 二对等端62 二者位于不同的私有地址范围内。它们已经-波完全集成进 P2P覆盖160中,并且可以经由一跳接一跳的路由与P2P覆盖160中的 其他对等端交换消息。中继对等端R可以位于私有地址范围内或者位于 公共地址范围内,只要中继对等端R满足作为中继的要求就行。 一旦从 中继候选者列表中选择了中继候选者,则第一对等端61和第二对等端 62 二者都需与中继对等端R建立直接连接。
第一对等端61经由对等网络160中的一个或多个其他中继候选者 RC和/或其他对等端620、 621,用一跳接一跳^各由的方式,经由P2P覆 盖160发送中继连接请求610给中继对等端R。中继连接请求610包含 第一对等端61的连接信息和在第一对等端61与第二对等端62之间的连接信息交换中被使用的相同连接ID。中继对等端R用中继连接响应611 来进行应答,该中继连接响应611被经由对等网络160中的一个或多个 其他中继候选者RC和/或其他对等端620、 621,用一跳接一跳;洛由的方 式发送给第一对等端61。中继连接响应611包含中继对等端R的连接信 息和连接ID。通过发送它的连接信息,中继对等端R发信号通知它接受 中继请求610。如果中继连接响应611仅包含ID,则请求610被中继对 等端R拒绝。如果中继对等端R否决/拒绝第一对等端61的中继连接请 求610,则第一对等端61将需要寻找新的中继候选者。
在中继对等端R发信号通知它接受中继请求610之后,第一对等端 61和中继对等端R试图通过向彼此,也即向它们各自的交换端点,发送 连接消息612、 613来在4皮此间建立直接连接。如果第一对等端61不能 建立到中继对等端R的直接连接,则第一对等端61需要寻找新的中继 候选者。
假设已经成功地在第一对等端61与中继对等端R之间建立直接连 接,则第一对等端61需要通知第二对等端62已经找到中继候选者,也 即中继对等端R已经接受履行作为中继对等端的功能。这是通过经由对 等网络160中的一个或多个其他中继候选者RC和/或其他对等端620、 621,用一跳接一跳路由的方式,经由P2P覆盖160发送中继发现消息 614来实现的。中继发现消息614包含中继对等端R的对等端ID和连接 ID。在接收到中继发现消息614之后,第二对等端62试图用上面所描 述的方式建立到中继对等端R的直接连接第二对等端62发送中继连 接请求615给中继对等端R,中继连接请求615包含第二对等端62的连 接信息。响应于中继连接请求615,中继对等端R发送包含中继对等端 R的连接信息的中继连接响应616给第二对等端62。在第二对等端62 和中继对等端R之间交换连接信息之后,每个对等端62、 R开始发送连 接消息给另一对等端R、 62的相应端点。当对等端62、 R二者都已经接 收至少一个连接消息时,在第二对等端62与中继对等端R之间建立了 直接连接617。如果在第二对等端62与中继对等端R之间还没有建立任 何直接连接,则直接连接617被唯一建立。因此,基本上,两个对等端(作为请求方的第一对等端61和作为响 应方的第二对等端62)都需要发起到中继对等端R的连接尝试。通过这 种方式,中继对等端R不能被用在对另一对等端的攻击中,因为在从第 二对等端62接收到中继连接请求615之前没有任何消息被发送给第二对 等端62。中继对等端R通过已发送的连接ID来识别中继连接请求。一 旦能够建立到对等端61 、62 二者的直接连接,则连接需要被逻辑地链接, 从而正确地转发从第一对等端61发送给第二对等端62的消息,反之亦 然。
如果在第一对等端61和中继对等端R之间或者在第二对等端62与 中继对等端R之间的直接连接已经建立,则该过程可以被部分地跳过。 在这种情况下,中继连接请求和响应仍然必须被交换以通知中继对等端 R该连接现在是中继的一部分,但是直接连接不需要被重新建立。对于 中继对等端R,建立中继连接等价于逻辑地链接两个直接连接。出于两 个目的,这种链接是必须的
I) 为了保持跟踪两个直接连接的连接状态,目的是在与第一 对等端61的连接被丟失的情况下,通知第二对等端62。
II) 为了保持跟踪两个直接连接的必要性。 链接对于路由覆盖消息而言不是必须的。每个覆盖消息包含目的地
对等端ID,其用于确定路由中的下一跳。路由算法处理直接连接的列表 并且选择使得最靠近目的地ID的那个直接连接。因此,链接被用于保 持直接连接是激活的,而不是用于路由。
如果中继对等端R拒绝第二对等端62的中继连接请求615,则第二 对等端62必须发送中继连接失败消息给第一对等端61,从而第一对等 端61可以试图寻找新的中继候选者。如果第二对等端62不能建立到中 继对等端R的直接连接,则第二对等端62需要发送中继连接失败消息 给第一对等端61,从而第一对等端61可以试图寻找新的中继候选者。
一旦中继连接不再被需要,它可以被终止。至于直接连接,在末端 的两个对等端但不是中继对等端可以通过发送释放中继消息来声明连接 是不必要的。
20相应地,分配中继消息声明连接是必要的。当两个对等端都已经声 明连接不必要时,中继连接被终止。如果三个对等端中的一个对等端离 开覆盖,则中继连接也被终止。在终止中继之后,必须评估作为中继的 一部分的两个直接连接是否仍是必要的。
图7说明示出具有第一对等端61、第二对等端62和中继对等端R 的P2P网络的覆盖160的过程。在第一对等端61和第二对等端62之间 建立中继连接710。中继连接710包括第一对等端61与中继对等端R之 间的直接连接710a和在第二对等端62与中继对等端R之间的直接连接 710b。
第一对等端61发送释放中继消息711给中继对等端R,声明中继连 接710不必要。中继对等端R将第一对等端61发送的释放中继消息711 转发712给第二对等端62。在某个时间之后,第二对等端62还发送释 放中继消息713给中继对等端R。中继对等端R将第二对等端62发送 的释放中继消息713转发714给第一对等端61。因为第一对等端61和 第二对等端62中的任何一个都认为中继710不必要,所以中继连接710 -波终止。直4妾连接710a、 710b中的每个的必要性必须;陂评估。
图8示出包括第一对等端81和中继对等端83以及第二对等端82 的对等网络800,第一对等端81和中继对等端83 二者都在对等网络800 的第 一地址范围内,而第二对等端82位于对等网络800的第二地址范围 内。第一对等端81希望与第二对等端82建立连接。
由于第二对等端82在位于第一地址范围与第二地址范围之间的边 界处的NAT设备例如防火墙(未示出)的后面,在第一对等端81和第 二对等端82之间的直接连接是不可能的,所以在第一对等端81与第二 对等端82之间的中继连接是经由中继对等端83建立的。
对等端81、 82、 83中的每个均包括一个或若干个互相链接的计算机 (也即硬件平台)、基于该硬件平台的软件平台和由软件和硬件平台形成 的系统平台所执行的若干应用程序。对等端81、 82、 83中的每个的功能 是通过执行这些应用程序来提供的。这些应用程序或者这些应用程序中 的被选择的部分组成了 一种计算机软件产品,其在系统平台上执行时提供上述连接建立服务。此外,这种计算机软件产品由存储这些应用程序 或应用程序的所述被选择部分的存储介质来组成。
优选地,对等端81、 82、 83都是独立的网络节点,例如位于不同物 理位置并经由电信网络(例如电话或媒体传送网络或者因特网)彼此相 连的各个个人计算机。
从功能角度看,第一对等端81包括发现单元811,其用于在对等网 络800中发现阻止在第一对等端81和第二对等端82之间的直接连接的 网络地址翻译。此外,第一对等端81包括确定单元812,其用于确定对 等网络800中的第三对等端作为中继对等端83。而且,第一对等端81 包括中继单元813,其用于支持在第一对等端81与第二对等端82之间 的连接的中继。以及,第一对等端81包括传输装置814 (例如收发器接 口 ),其用于在对等网络800内传输信息。另外,第一对等端81包括存 储器单元815,其用于存储计算机软件产品,该计算机软件产品当被第 一对等端81中的CPU执行时完成第一对等端81的功能(CPU-中央处 理单元)。
优选地,发现单元811、确定单元812、中继单元813以及传输装置 814是控制第一对等端81的功能的控制单元810中的软件部件和/或硬 件部件。还可能是,发现单元811、确定单元812、中继单元813以及传 输装置814是连接到控制单元810的分立单元。优选地,控制单元810 还包括所述CPU。
与第一对等端81的设计类似,第二对等端82和中继对等端83也包 括各自的发现单元821和831、各自的确定单元822和832、各自的中继 单元823和833、各自的传输装置824和834、以及各自的存储器单元 825和835。在另一情形下,P2P网络800内的对等端81、 82、 83的角 色可能发生变化。例如,中继对等端83可代表响应对等端、第一对等端 81可代表中继对等端、而第二对等端82可代表请求对等端。由此,对 等端81、 82、 83中的每个都包括所提及的全部功能部件。
权利要求
1. 一种在对等网络(160)中的第一地址范围内的第一对等端(61)与所述对等网络(160)中的第二地址范围内的第二对等端(62)之间建立连接的方法,其特征在于,该方法包括步骤在所述对等网络(160)中发现阻止在所述第一对等端(61)与所述第二对等端(62)之间的直接连接的网络地址翻译;确定所述对等网络(160)中的第三对等端作为中继对等端(R);以及由所述中继对等端(R)在所述第一对等端(61)和所述第二对等端(62)之间中继连接。
2. 根据权利要求1所述的方法,其特征在于,所述方法包括步骤基于所述对等网络(160)的拓朴和连接信息来发现所述网络地址翻译,所述连接信息包括对所述网络地址翻译的行为的说明、与所述第—地址范围内的第一对等端(61 )相关联的端点以及与所述第二地址范围内的第二对等端(62)相关联的端点。
3. 根据权利要求1所述的方法,其特征在于,所述方法包括步骤经由所述对等网络(160)中的一个或多个其他对等端,用一跳接一跳路由的方式,在所述第一对等端(61)与所述第二对等端(62)之20间交换所述第一对等端(61 )和所述第二对等端(62 )各自的连接信息。
4. 根据权利要求1所述的方法,其特征在于,所述方法包括步骤由所述第一对等端(61)向所述中继对等端(R)发送中继连接请求(610),其包含所述第一对等端(61)的连接信息;由所述中继对等端(R)向所述第一对等端(61)发送中继连接响应(611),其包含所述中继对等端(R)的连接信息;如果在所述第一对等端(61)与所述中继对等端(R)之间还没有建立任何直接连接,则在所述第一对等端(61 )与所述中继对等端(R)之间建立直接连接(612、 613);由所述第一对等端(61 )向所述第二对等端(62)发送中继发现消 息(614),其包含所述中继对等端(R)的对等端标识符,由所述第二对等端(62)向所述中继对等端(R)发送中继连接请 求(615),其包含所述第二对等端(62)的连接信息;由所述中继对等端(R)向所述第二对等端(62)发送中继连接响 应(616),其包含所述中继对等端(R)的连接信息;以及如果在所述第二对等端(62)与所述中继对等端(R)之间还没有 建立任何直接连接,则在所述第二对等端(62)与所述中继对等端(R) 之间建立直接连接(617)。
5. 根据权利要求1所述的方法,其特征在于,所述方法包括步骤 从一个或多个中继候选者(RC)构成的列表(50)中选择所述中继对等端(R),所述列表(50)由所述第一对等端(61)和/或所述第 二对等端(62)提供,其中所述选择基于以下步骤中的一个或多个选择中继候选者(RC),其中所述对等网络(160)中已经建立的 一个或多个直接连接可被重用于所述第一对等端(61 )与所述第二对等 端(62)之间的中继连接;以及优先选择比其他中继候选者(RC)承担较少中继连接的中继候选 者(RC )。
6. 根据权利要求1所述的方法,其特征在于,所述方法还包括步骤向所述对等网络(120 )中的公共可到达的地址范围内的对等端(BP ) 发送自举请求(210),其包含所述第一对等端(11)的连接信息,其中 所述对等网络(120)中的公共可到达的地址范围内的所述对等端(BP) 充当自举对等端;以及由所述自举对等端(BP)中继在所述第一对等端(11)与所述第二 对等端(22 )之间交换的消息。
7. 根据权利要求1所述的方法,其特征在于,所述方法还包括步骤通过由所述第一对等端(61)向所述中继对等端(R)发送释放中继消息(711)来终止中继连接(710),所述释放中继消息(711)声明 所述中继连接(710)为不必要;由所述中继对等端(R)将从所述第一对等端(61)接收到的释放 中继消息(711)转发(712)给所述第二对等端(62);由所述第二对等端(62)向所述中继对等端(R)发送释放中继消 息(713);由所述中继对等端(R)将从所述第二对等端(62)接收到的释放 中继消息(713)转发(714)给所述第一对等端(61);以及在所述第一对等端(61)处接收到转发的释放中继消息(714)之 后,终止所述中继连接(710)。
8. —种对等网络(800)中的对等端(81、 82、 83),所述对等网 络(800)包括在所述对等网络(800)中的第一地址范围内的一个或多 个对等端(81),以及在所述对等网络(800)中的第二地址范围内的一 个或多个对等端(82),所述对等端(81、 82、 83)的特征在于所述对等端(81、 82、 83)包括发现装置(811、 821、 831,其 适于在所述对等网络(800)中发现阻止所述对等端(81)与另一地址 范围内的对等端(82 )之间的直接连接的网络地址翻译;确定装置(812、 822、 832),其适于确定所述对等网络(800)的一个对等端(83)作为 中继对等端;中继装置(813、 823、 833 ),其适于支持在所述对等网络 (800)中的第一地址范围内的第一对等端(81 )与所述对等网络(800) 中的第二地址范围内的第二对等端(82)之间的连接的中继;以及传输 装置(814、 824、 834),其适于在所述对等网络(800)中传输信息, 特别是连接信息。
9. 一种包括对等网络(160)的电信基础设施,所述对等网络(160) 具有所述对等网络(160)中的第一地址范围内的第一对等端(61)和 所述对等网络(160)中的第二地址范围内的第二对等端(62),所述电 信基础设施的特征在于所述电信基础设施还包括阻止在所述第一对等端(61)与所述第二 对等端(62)之间的直接连接的网络地址翻译,以及所述对等网络(160)中的第三对等端,其中所述第三对等端被确定作为适于在所述第 一对等端(61)和所述第二对等端(62)之间中继连接的中继对等端(R)。
10. —种用于在对等网络(800)中建立连接的计算机程序产品, 所述对等网络(800)包括所述对等网络(800)中的第一地址范围内的 一个或多个对等端(81)和所述对等网络(800)中的第二地址范围内 的一个或多个对等端(82),所述计算机程序产品的特征在于所述计算机程序产品当被所述对等网络(800)中的对等端(81、 82、 83)执行时,执行以下步骤在所述对等网络(800)中发现阻止在所述第一对等端(81)与另 一地址范围内的第二对等端(82)之间的直接连接的网络地址翻译;确定所述对等网络(800)中的第三对等端(83)作为中继对等端;以及支持在所述对等网络(800 )中的第一地址范围内的第一对等端(81 ) 与所述对等网络(800)中的第二地址范围内的第二对等端(82)之间 的连接的中继;以及在所述对等网络(800)中传输信息,特别是连接信息。
全文摘要
本发明提供了一种建立连接的方法。本发明涉及一种在对等网络(160)中建立连接的方法,以及一种对等端,一种包括该对等网络(160)的电信基础设施,以及一种用以执行所述方法的计算机程序产品。在该对等网络(160)中的第一地址范围内的第一对等端(61)与该对等网络(160)中的第二地址范围内的第二对等端(62)之间建立连接。在该对等网络(160)中,网络地址翻译被发现,其阻止该第一对等端(61)与该第二对等端(62)之间的直接连接。确定对等网络(160)中的第三对等端作为中继对等端(R)。该中继对等端(R)在该第一对等端(61)和该第二对等端(62)之间中继连接。
文档编号H04L29/08GK101459689SQ20081018710
公开日2009年6月17日 申请日期2008年12月12日 优先权日2007年12月13日
发明者A·赫尔特勒, M·托姆苏, M·皮雷尔 申请人:阿尔卡特朗讯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1