基于所发现的nat类型选择主机的方法_2

文档序号:8530430阅读:来源:国知局
1B、111C和IllD的限制。
[0043] 在建立客户端可以直接相互通信的P2P网络时,可将一个客户端作为主机107建 立,而其它对等机105 (连接到P2P网络的非主机客户端)可相互之间建立直接连接。举例 来说而并非限制,可将对等机105以公知为完全连接网格(FCG)的配置连接。这种配置防 止任何一个对等机成为瓶颈。在本发明的实施例中,可基于每个客户端的NAT简档来确定 主机107。NAT111A、111B、IllC和IllD可以是被一般称为完全锥型NAT、受限锥型NAT、端 口受限锥型NAT和对称型NAT的四种不同配置中的一种。
[0044] 完全锥型NAT是来自同一内部IP地址和端口的所有请求都被映射到同一外部IP 地址和端口的NAT。任何客户端都可以通过向所映射的客户端外部地址发送分组来向完全 锥型NAT之后的客户端发送分组。
[0045] 在受限锥型NAT中,来自同一内部IP地址和端口的所有请求都被映射到同一外部 IP地址和端口。然而,不像完全锥型NAT,只有当内部主机之前已经向IP地址X发送过分 组时,(具有IP地址X的)外部客户端才可以向完全锥型NAT之后的客户端发送分组。
[0046] 端口受限的NAT类似于受限锥型NAT,但是限制包括端口号。具体地,只有当端口 受限的NAT之后的客户端之前已经从IP地址X和端口P发送过分组时,外部客户端才可以 向端口受限的NAT之后的客户端发送具有源IP地址X和源端口P的分组。
[0047] 在对称型NAT中,来自同一内部IP地址和端口并发送到特定目标IP地址和端口 的所有请求都被映射到同一外部IP地址和端口。如果同一主机将具有相同源地址和端口 的分组(但是)发送到不同的目标,则使用不同的映射。另外,只有接收分组的外部主机可 以将UDP分组发送回内部主机。
[0048] 完全锥型NAT、受限锥型NAT和端口受限锥型NAT的穿越(traversal)相对简单, 而对于对称型NAT来说则有点复杂。如果客户端在对称型NAT之后,则可实施NAT穿越,例 如在共同转让的美国专利申请公开号20070076729中所描述的那样。特别地,客户端可执 行端口预测,该端口预测包括构造该客户端之前的NAT的预测传输地址列表。然后,客户端 可将包含该预测传输地址列表的INVITE消息从第一节点发送给第二客户端。然后,在对称 型NAT之后的客户端可使用这些预测传输地址来执行与第二节点的连接性检查。
[0049] 可通过例如将NAT的用户数据协议(UDP)简单穿越(STUN)请求并行地发送给每 个预测传输地址来执行连接性检查。当对称型NAT之后的客户端接收到这些请求时,该客 户端发送STUN响应给第二客户端。如果第二客户端接收到STUN响应,则该第二客户端可 以发送媒体给该地址。
[0050] 可能有与上面所述的四种类型不同的NAT类型。在一些情况下,也许可以使用标 准技术来穿越这样的NAT,而在其它情况下,NAT性能可能如此不可预测或者不稳定,以至 于与在这样的NAT之后的客户端通信是不可靠的。
[0051] 因为主机107的职责是在其它对等机105AU05B和10?之间交流信息,所以有必 要使主机107在不干扰该主机107通信能力的NAT类型之后。在对等机105A、105B、l〇ro 和主机107以完全连接网格(FCG)方式连接的实施例中,特别期望使用在不干扰主机通信 能力的NAT之后的主机,以便为最大数量的对等机提供最高水平的服务。已经有以下情况, 其中相对于由P2P网络中的现有对等机使用的其它NAT类型,被认为是具有对P2P的可疑 (未知)支持的NAT实际上表现得相当好。通过选择具有最有利NAT简档的主机107,可获 得更可靠的对等通信。如在此所使用的,术语P2P通信一般指在连接到网络的客户端装置 之间的直接通信。P2P应用的示例包括但是不限于,网络电话(VoIP)、bittorrent传输、 视频传输、文件共享、数据共享以及在客户端之间不超出单个客户端带宽能力的其它类型 的直接数据传送。一旦建立了主机107,对等机105A、105B、10?可以通过最初将信息传输 给主机107、该主机107然后将该信息分别传递给接收对等机105A、105B、l〇ro来相互通信, 或者对等机105A、105B、10?可在使用主机107来建立该直接通信路径之后直接传输信息。
[0052] 在某些实施例中,客户端105A、105B、10?和107可通过与外部网络109相关联的 NAT的用户数据协议(UDP)简单穿越(STUN)服务器103来获取这些客户端的NAT简档信息。 STUN服务器103是由互联网工程任务组(IETF)提出的轻量级协议,STUN服务器103允许 具有IP功能(IPenabled)的客户端发现该客户端之前的NAT的存在和类型。STUN103使 用大多数NAT类型工作,并且不依赖于NAT的任何特定性能(behavior)。STUN服务器103 表现得像为客户端105A举起的一面镜子,从而客户端105A可以看到它的本地传输地址如 何被映射到公共传输地址。客户端105A还可以通过与STUN服务器103通信来确定客户端 105A之前的NAT111A。
[0053] 举例来说而并非限制,每个客户端1054、1058、107、1050都可使用31^服务器103 来获取NAT简档信息,然后该客户端可将该信息传递给中央服务器101以便中央服务器101 来确定哪个客户端会成为最有利的主机107。同样地,客户端105AU05B、107、10?可使用 STUN服务器103来获取NAT简档信息,该NAT简档信息然后可被传递给所有其它试图通过 P2P网络进行通信的客户端105,以便客户端105A、105B、107、10?最佳地确定主机107。
[0054] 图2是示出从客户端角度基于所发现的NAT类型来选择主机的基本方法的流程 图。每个连接到服务器101的客户端可收集与P2P网络一起使用的该客户端自身的NAT简 档信息,如在201所指示的。该简档信息可包括关于该客户端之前的类型的信息、关于该 NAT是否支持通用即插即用(UPnP)的信息、关于该NAT是否展示端口保护(preservation) 的信息,以及关于该NAT是否支持端口可预测性的信息。如在此所使用的,端口保护意味着 一旦内部IP地址被映射到特定的外部端口,则该内部IP地址将前后一致地映射到该特定 端口。如在此所使用的,端口可预测性意味着有可能预测内部IP地址将被映射到的外部端 口,即使该端口不总是同一个端口。例如,外部端口号可随着每次试图映射该内部IP地址 而前后一致地增加。
[0055] 除了NAT性能,每个客户端的简档信息可包括服务质量(QoS)信息。如在此所使 用的,术语QoS信息包括关于客户端装置的信息,该QoS信息与该客户端装置可以与其它客 户端装置多好地进行通信有关。举例来说但并非限制,这样的信息可与该客户端可以多快 地进行通信、该客户端可以多可靠地进行通信、或者两者的某种组合有关。QoS信息的特定 示例包括但是不限于Ping时间、带宽性能、等待时间、地理、IP供应商。
[0056] 可使用每个客户端的简档信息来产生所有连接到服务器的客户端之间的优先级 列表,以便最佳地选择用于P2P通信的主机。如果在潜在主机之间的优先级是平等(tie) 的,则可分配序号来确定选择哪个潜在主机作为实际的主机。在一些实施例中,可以如在 203所指示的那样,由服务器例如以客户端连接到服务器的顺序来分配这样的序号。可替换 地,可使用分布式仲裁算法来从两个或更多同等合适的潜在主机中选择主机。如果最初的 主机决定离开P2P网络或者以某种方式从网络中断开,则可使用该信息来选择P2P网络的 下一个主机。
[0057] -旦给定的客户端收集了简档信息,则该客户端的NAT简档被与其它连接到服务 器的客户端共享。简档信息包括对连接到该服务器的客户端数量的预期计数,以便确定是 否达到了最佳的P2P网络。在这时每个客户端等待,直到每个其它的客户端提交了它们关 于在它们之前的NAT的简档信息,如在205所指示的。一旦所有的NAT简档都被这些客户 端提交了,则确定该客户端是应该成为主机、对等机还是这些客户端是否没有满足任一的 要求,如在207所描述的。该确定可基于为上述每一个客户端所获取的简档信息来做出。例 如,通过基于若干因素分配优先级,可以基于具有最有利简档的客户端来从可利用客户端 中选择主机。其余客户端可被分配为对等机,或者基于其余客户端的简档信息,这些其余客 户端可能不被认为是对等机或主机。例如,不可穿越的NAT之后的客户端可能不满足作为 对等机或主机连接到网络所必需的要求。举例来说而并非限制,不能被认为是对等机或主 机的客户端可更新其简档以将其状态通知给P2P网络的其余客户端,并且可将预期计数减 少以将该客户端从P2P网络排除。
[0058] 表1示出可被用于决
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1