对等通信系统和方法

文档序号:7916288阅读:174来源:国知局
专利名称:对等通信系统和方法
技术领域
本发明涉及M具有网络地址转换器的网络上的对等通信的领域。
背景技术
由于网络中所包含的对等体可能得不到一个全域有效的DP (互联网协 议)地址,因此网络地址转换器(NAT)使对等(P2P)通信造成了公知的 问题。
特别是,当前的互联网地址结构由一个全域地址空间(也就是公共IP 地址)和通过NAT互相连接的许多专用地址空间(也M专用IP地址) 组成。只有全域地址空间中的对等体(也称为节点,客户端等)能容易地 与网络中的任意位置相联系,这是因为它们具有唯一的、全域可路由的IP 地址。专用网络上的对等体能连接到相同专用网络上的其他对等体,且它 们通常能打开到全域地址空间中的已建立的对等体的TCP (传输控制协 议)或UDP (用户数据报协议)连接。但是,当前的地址结构使得不同专 用网络上的两个对等体难以互相直接联系,或使公共网络中的对等体难以 发起同专用网络中的对等体之间的联系。通常,这种情况的存在是由于 NAT分配临时公共端点以输出连接并转换包含那些会话的分組中的地址和 端口号,同时除非另行配置通常会阻断所有i^流量。
已经提出了许多技术用以克服直接对等通信的问题,但由于NAT的行 为不是标准的,因此这些技术通常没有通用适用性。

发明内容
本发明的某些典型实施例可提供一种方法,使得具有网络地址转换器
(NAT)的对等(P2P)网络中的多个对等体t间能够通信,该方法包括
(a) 给P2P网络中的多个对等体中的每个分配一个唯一对等体标识符;
(b) 建立覆盖拓朴,其基于每个对等体的唯一的对等体标识符以结构化连 接方式将每个对等体连接到多个对等体的子集,多个对等体中的每个到近 端对等体的连接较多而到远端对等体的连接较少;和(c)通过已建立的覆 盖拓朴在对等体间路由消息。
本发明的某些典型实施例可提供一种网络覆盖拓朴,允许具有网络地 址转换器(NAT)的对等(P2P)网络中的多个对等朱t间进行通信,该网 络覆盖拓朴包括可分配给P2P网络中的多个对等体中的每一个的唯一对 等体标识符;和一个覆盖拓朴,其基于每个对等体的唯一对等体标识符以 结构化连接方式将每个对等体连接到多个对等体的子集,多个对等体中的 每个到近端对等体的连接较多和到远端对等体的连接较少,该结构化的连 接方式被安排为通过已建立的覆盖拓朴^洛由对等体间的消息。


图1根据本发明的实施例阐释了具有多个被构#覆盖拓朴中的对等 体的对等网络的示意图2根据本发明的一个实施例阐释了局部网格复篕拓朴的示意图3才N^本发明的一个实施例阐释了图1的网络的4分的示意图以
阐释对等体准许过程;
图4根据本发明的一个实施例阐释了具有结构化连接方式的覆盖拓朴 的示意图5根据本发明的一个实施例阐释了表示增加一个新对等体到网络中 的it禾呈的流3呈图;和
图6根据本发明的一个实施例阐释了表示使网络中的对等体间的能进 4亍通4言的过禾呈的^^呈图。
M实施方式图1阐释了一个网络拓朴10,其具有一个典型的对等体组12,该对等 体组被构it^P2P覆盖拓朴(简称为拓朴)中。
覆盖实际上是一个建立在另 一个网络上端的网络。利用在下层网络中 各自对应一条路径(典型地通过许多物理链路)的虚拟或逻辑链路,连接 似中的节点/对等体。
图1的网絲朴10包括一系列的子网(子网络)14、 16、 18、 20、 22、 24和26,每个都包含一个或多个对等体12,以及互联网28。子网18 和22使用公共IP地址,因为它们是全域地址空间的一部分。子网14、 l6、 20、 24和26使用专用IP地址,由于NAT (网络地址转换器)30位于 各个子网和互联网28之间。子网24个26共享一个单独的NAT30。子网20 表示一个级连式NAT排列,其中两个NAT30位于子网20和互联网28之 间。
通过NAT在网络中的对等体间建立的连接通常被称为NAT穿越。多 个已知的基于NAT行为的NAT穿越协议包括UDP对NAT的简单穿越 (STUN)、利用中继NAT穿越(TURN) 、 ^^边界控制器(SBC)和 UDP打洞。多个已知的基于NAT控制的NAT穿越协议包括特域IP (RSIP) 、 NAT端口映射协议和通用即插即用(UPnP)。组合多个不同 的协议的NAT穿越协议被称为交互式连接设备(ICE )。
本发明的实施例描述了 ^it等^间通信的多个覆盖和有关方法。 ^部河婆^J/遽接
图2阐释了一个典型的局部网格^A 50,其中,在该例子中,每个对 等体12位于NAT (未显示)之后,具有受限过滤策略。 一般而言,M 50中的每个对等体12通过建立到一些其他对等体12的连接(以实线显 示)来建立对等体12间的局部网格。创建局部网格覆盖50后,对等体12 就能利用已建立的连接路由消息。 一旦建立,在至少一个对等体需要的时 候,维持连接。维持一个连接典型地需要周期性地交换一些消息。
局部网格;^50冲击了环形;W和完整网格^A之间的平衡,环形覆 盖中,每个对等体仅被连接到两个相邻的对等体,但完整网格覆盖中,当 仍允许经过NAT发送消息时,所有对等体对被连接。
由于对等体加入或离开网络,需要随时;^t盖50中增加或删除连接。增加一个新连接典型地需要沿已有的连接对新连接的信令进行路由。举例
来说,参照图2,对等体12X想要建立到对等体12Y的连接。由于对等体 12Y在受限过滤策略下位于NAT30之后,因jtbft等体12X不能将连接请求 直接发送到对等体12Y (线52)。为了克服该限制,对等体12X通it^ 50中已有的连接来发送连接请求(虚线54)。在连接请求被传i^对等体 12Y之后,对等体12X和12Y使用标准NAT穿越技术来J^和维持连接。
广义的覆盖拓朴使用连接的最小集以保证消息能在任意对等体对之间 发送。所使用的连接的特定数量基于用于在网络中的对等体间路由消息的 机制类型。通常,当出现较多连接时,可利用较少的跳跃来执行路由。但 是,每个连接都消耗资源(如内存,对等体本身的计算周期,下层网络上 的带宽等),所以使连接数最小但不恶化路由效率是覆盖设计中的一个考 虑因素。
除了基于路由设计而创建的连接以外,对于特定应用的目的,进一步 的连接是有用的。举例来说,图2中用实线表示的连接可能会被创建,以 保iE^网络50中的任意对等体对之间路由消息是可能的ibNl当有效的。但 是,如^t等体12X和12Y需要交换大量消息或需要在经常/频繁的时间间 隔上交换消息,则增加新的连接52以优化这些交^^有益的。
图3阐释了图1的子网14的示例性排列80。子网14包括都位于 NAT30之后的一组对等体12。在这一类型的拓朴中,子网14中的一个或 多个对等体12可被"选择"或"i史计"为典型对等体12R以^^子网14中的 其树等体12运作,
排列80创建两种类型的连接(1)典型对等体12R之间穿越NAT30 的连接(参考虛线86)和(2)子网14内典型对等体12R和^fe]"等体12 之间不穿越NAT30的连接(参考虛线90)。
絲贿,惑潜
一种结构化的方案创建了 一种可在路由中使用的连接方式。举例来 说,结构化消息路由能基于将DHT (分布式哈希表)查找方案"转换"为路 由算法。特别是,对于M有数据的对等体来说,用于查找数据项的DHT 方案被视为路由方案。如果路由是基于正被搜索的节点的对等体标识符,那么该过程可被认为是一种路由算法。
更特别的,给出了一种连接方式(如参考图2所讨论的),有多种可 能的连接方式。覆盖50允许对等体12对另 一个对等体12 M—个呼叫, 以公开对等体(或用户)的状态,并在覆盖50中创建到另一个对等体的连 接。结构化的方案允许对等体12之间的连接方式在对等体间路由消息时被 4汰
连接拓朴的基础结构应支持覆盖50的路由机制。举例来说,通过分配 一个唯一标识符到每个对等体(如基于对等体的属性网络地址、制造商
序列号、MAC (媒M入控制)地址等),DHT可被用作结构化方案的基 础。通过使用单向散列函数(如MD5[消息摘要算法5,SHA-1[安全散列 算法)将对等体的属性散列处理来创建唯一对等体标识符。
在一个例子中,该唯一对等体标识符能被用于将对等体放在一个概念/ 虚拟环上。随后每个对等体维持与绕该环顺时针分布在多个位置上的对等 体的连接。在该结构化的连接方案中,到对等体(Q)的消息可被寻址到 其在环中的位置并且中间对等体(I)能将该消息转送到该中间对等体(I) 的连接表中最靠iW等体(Q)的对等体(S)。
基于DHT的连^45朴被创建以分配网络中的索引和定位资源所需的工 作。对于VoIP (网络电话)通信覆盖网络,对等体通常是电话或在计算机 上运行的电话设备,而资源通常是希望互相通信的人们。系统中的每种资 源一般被分配以一个或多个标识符(如电话号码或记彖地址)。基于DHT 的覆盖网络能有效地"重复使用,,相同的单向散列函数,所述单向散列函数 -陂用于创建唯一对等体标识符(如上所述)以构建一个唯一资源标识符。 然后覆盖50中的每个对等体12承扭用于存储关于有效资源的信息的部分 责任。举例来说,在基于Chord的DHT^中,对等体负责维持有关资源 的信息,所述资源的资源标识符最接近但不超过其对等体标识符。因此, 如果用户的记录地址的散列为X,则该用户的联系和状态信息会被其对等 体标识符最接近但不超过X的对等>(^#。
除了覆盖网络50所采用的路由结构外,当建立连接拓朴时的进一步考 虑是^皮称为对称利益(symmetric interest)的特征。 一种连接方案展示了对 称利益,如果对等体12X需要连接到另一个对等体12Y时,那么对等体12Y也需要到对等体12X的连接。因为通过NAT30的连接是双向的,且由 于对等体12X和12Y都引发了发送消息以建立和维持连接的开销,因jM" 称利益是一种有用的连接特征。
参考图4,阐释了一种展示对称利益的结构化连接方式92,因为每个 对等体12维持到对等体12的连接,所i^等体12位于都围绕虚拟环98排 列的以顺时针94和逆时针96排列的指数递增距离上。特别是,类型92从 单个节点(也就是对等体PA)的角度显示了一种连接拓朴。假设PA的对等 体标识符为0,则散列表可能包含具有如下标识符的对等体地址 2。,21,22,…,2^, ...,2"-2,2"-'。在这种类型的排列中,对等体PA会在其连接 表中包括对等体PB,因itb^示了对称利益。
当对等体间的连接以这种方式建立时,每个对等体到"近端"对等体的
连接较多和到"远端"对等体的连接较少。术语"近端"和"远端"狄于似 网络所分配的唯一对等体标识符的(如上所述),但不一定反映地理上 的、物理上的接近或物理上的网络跳跃数。从一个对等体(也就是对等体 PA)的视点来看,通#下半圓SL中出现较多连接而在环98的上半圆Su 中出现较少连接的方式,结构化连接方式92示意性地阐释了对称利益。
参考图3,对等体12A起先不是整个网络的一部分。下面将参考图5 的^^图来描述使对等体12A加入网络的过程100。
步骤110:定位并联系网络中的另一个对等体(指定为对等体UB^见 图3)。利用多^f或广播112、好友列表114、手动配置116和引导118,对 等体12A能完成定位和与另一个对等体的联系。这些方法将在下文中作进 一步详细描述。
步骤150:利用NAT穿越协议建立对等体12A和已定位的其他对等体 12B之间的i^接。
在多播/广播112中,对等体12A发送"你好,有人在吗"多播/广播消 息,当前在覆盖网络中的任意对等体(也就是对等体12B)可应答。应答 将包含允许对等体12A联系其M等体中的一个(或多个)的信息以及请 求允许加A^。可选地,当前在网络中的对等体12 (包括对等体12B) 可周期性地发送广告(例如,广告消息)其存在的多播/广播消息,这就允许对等体12A通过收听多播/广播消息发现其他对等体。广告消息也包含允 许对等体12A联系其他对等体中的一个(或多个)的信息以及请求允许加
如果对等体12A先前是网络的一部分,^"一段时间断开了连接(如 VoIP电话从网络中删除或关机),则好友列表114可被使用。当其断开连 接且i^当其想要重新加入网络尝,系其好友列4-t的对等体12时,对 等体12A可被配置为记忆某些对等体12的地址和端口信息。如果其他对等 体12中的至少一个能被联系到且其仍然为一个网络成员时,对等体12A就 能重新加入网络。
手动配置方法116包括利用网络中的其M等体12中的一个的地址和 端口信息来配置对等体12A。地址和端口信息代束NAT30 (如果有的话) 所分配的对等体12的公共IP地址和端口。举例来说,如^t等体12A位 于具有过滤行为(地址受限)的NAT30之后,则也可利用对等体12B的地 址和端口信息来配置对等体12A。
引导方法118包括^J H化具有公共IP地址和可选地DNS (g系 统)入口的对等体的自举服务器52 (bootstrap server)(见图3)。自举服 务器52本身不必是网络的一部分,而是被用于网络中新对等体的引导/自 举。举例来说,子网14可选择/指定网络中的对等体中的一个(如对等体 12B或12R)以维持到服务器52的连接88。当对等体12A联系服务器52 时,对等体12A被给予所选对等体的地址和端口信息(也就是映射IP地 址),服务器52将对等体12A的地址和端口信息转发到所选对等体从而允
图6为根据本发明的一个实施例阐释了使得具有网络地址转换器 (NAT)的对等(P2P)网络中的对等体间能够进行通信的方法200的流程 图。方法200包括
步骤210:利用例如单向散列函数215,分配一个唯一对等^#识符到 P2P网络中的多个对等体中的每一个。
步骤220:建立基于每个对等体的唯一对等体标识符一个以结构化的 连接方式将每个对等体连接到多个对等体的子集覆盖拓朴,多个对等体中的每个到近端对等体的连接较多和到远端对等体的连接较少(如在绕虚拟
环225的顺时针和逆时针方向指数递增的距离上)。
步骤230:通过已建立的覆盖拓朴路由消息(也就是连接拓朴与路由 过禾l/算法240的消息匹配)。
权利要求
1.一种使得具有网络地址转换器(NAT)的对等(P2P)网络中的多个对等体间能够进行通信的方法,所述方法包括(a)给所述P2P网络中的多个对等体中的每个分配一个唯一对等体标识符;(b)基于每个对等体的所述唯一对等体标识符,建立一个以结构化的连接方式将每个对等体连接到多个对等体的子集的覆盖拓扑,所述多个对等体中的每个到近端对等体的连接较多且到远端对等体的连接较少;和(c)通过所述已建立的覆盖拓扑在对等体间路由消息。
2. 根据权利要求1的方法,其中步骤(b)包括在绕一个虚拟环的 顺时针和逆时针方向指数递增的距离上的对等体间建立连接。
3. 根据权利要求l的方法,其中步骤(a)包括利用单向散列函数散列多个对等体中的每一个的属性,从而生成所述 唯一对等体标识符,其中属性包括下列之一网络地址、MAC(媒M入 控制)地址和序列号。
4. 根据权利要求l的方法,其中以所述结构化连接方式建立的连接在 所述多个对等体中的一对对等体间的连接请求发送期间和所述对等体对间 的消息发送期间被维持。
5. 根据权利要求l的方法,进一步包括在所述多个对等体中的一对对 等体间建立一个进一步的连接,该连接不是所述以结构化连接方式所建立 的所述涟接的一部分,所iW等体对在连接请求发送期间已建立通信。
6. 才M^权利要求1的方法,进一步包括在所述P2P网络中增加一个新 的对等体;其中增加新对等体的所述步骤包括(0定位并联系所述P2P网络中的所述多个对等体中的一个;和 (ii) 在所述新对等体和所述P2P网络中的所述多个对等体中的一个 之间建立连接。
7. 根据权利要求6的方法,其中所述步骤(i)包括通过多播或广播 或广告,或利用好友列表,或通过手动配置或引导,来定位并联系所述 P2P网络中的所述多个对等体中的一个;和请求允许加A^A拓朴。
8. 根据权利要求6的方法,其中步骤(i)包括选择从所述P2P网络中的所述多个对等体中选出的一个目标对等体, 以维持到服务器的连接;与所i^l务器联系从而获得从所述P2P网络中的所述多个对等体中选 出的所述目标对等体的地址和端口信息;和通it^与所述目标对等体的通信来请求允许加入所^盖拓朴。
9. 一种使得具有网络地址转换器的对等网络中的多个对等体间能够进 行通信的网络覆盖拓朴,所述网络覆盖拓朴包括可表示所述P2P网络中的所述多个对等体中的每个的属性的唯一对等 体标识符;和一种覆盖拓朴,其基于每个对等体的唯一对等体标识符以结构化连接 方式将每个对等体连接到多个对等体的子集,所迷多个对等体中的每个到 近端对等体的连接较多和到远端对等体的连接较少,所述结构化的连接方 式被安排为允许通过已建立的所ii^盖拓4卜路由对等体间的消息。
10. 权利要求9的系统,其中所ii^拓朴包括 在位于绕一个虚拟环顺时针和逆时针方向指数递增的距离上的对等体间的遵二接;以及用于对所述多个对等体中的每个的属性进行编码以产生唯一对等体标 识符的装置,其中所迷属性包括下列之一网络地址、MAC (媒体接入控 制)地址和序列号。
全文摘要
一种使得具有网络地址转换器(NAT)的对等(P2P)网络中的对等体间能够进行通信的方法和系统。该方法包括给P2P网络中的多个对等体中的每个分配一个唯一对等体标识符;基于每个对等体的唯一对等体标识符建立一个以结构化的连接方式将每个对等体连接到多个对等体的子集的覆盖拓扑,多个对等体中的每个到近端对等体的连接较多和到远端对等体的连接较少;以及通过已建立的覆盖拓扑在对等体间路由消息。
文档编号H04L29/08GK101309301SQ200810127789
公开日2008年11月19日 申请日期2008年2月21日 优先权日2007年2月21日
发明者A·B·约翰斯顿, E·库珀, P·马修斯 申请人:亚美亚加拿大公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1