用于分布对等式通信的系统、方法和媒体的制作方法

文档序号:7852421阅读:264来源:国知局
专利名称:用于分布对等式通信的系统、方法和媒体的制作方法
用于分布对等式通信的系统、方法和媒体技术领域
本发明大体上涉及分布式计算,且更具体来说,但非以限制的方式,涉及用于分布对等式通信的系统和方法。
背景技术
云是一种资源,其通常组合处理器的较大分组的计算能力,且/或组合计算机存储器或存储装置的较大分组的存储容量。举例来说,提供云资源的系统可专门供其所有者利用,或在计算基础结构内部署应用以获得大型计算或存储资源的益处的外部用户可接入此类系统。
所述云可例如由服务器网络形成,其中每一服务器提供处理器和/或存储资源。 这些服务器可管理由多个用户(例如,云资源客户或其他用户)提供的工作负荷。通常,每一用户将工作负荷需求置于所述云上,所述需求实时变化,有时剧烈变化。这些变化的性质和范围通常取决于与用户相关联的事务的类型。发明内容
本发明的技术的系统和方法针对于分布式计算。在一些实施例中,本文中所提供的系统和方法可针对于在对等式通信网络的通信信道上分布对等式通信。所述系统和方法可在基于网络的应用的情形下促进对等式通信,其中多个客户端节点彼此通信,同时与基于网络的应用交互。将理解,基于网络的应用可驻留于数据中心或云内。举例来说,多个游戏玩家(客户端节点)可经由基于网络的程序(例如,多玩家在线视频游戏)的通信信道彼此聊天,同时还个别地与视频游戏交互。
为了减少数据中心的运营成本并降低数据中心的工作负荷,客户端节点可将其计算资源的一部分贡献给数据中 心以促进对等式网络上的其它客户端节点的对等式通信。根据一些实施例,计算资源可包含网络带宽,且在其它实施例中,可包含CPU容量。将其计算资源贡献给数据中心的客户端节点可在下文中被称作代理节点。
当系统和方法接收建立通信信道的请求(例如,客户端节点试图彼此通信)时,代理节点经选择且被添加到通信信道。所述系统和方法可从潜在代理的列表中选择代理节点。为了增加对等式通信的安全性,所述系统和方法经由代理节点引导客户端节点以掩盖客户端节点的身份。另外,所选择的代理节点可包含无利害关系的客户端节点。无利害关系的节点可包含与当前在通信信道上操作的客户端节点没有关系的客户端节点。将理解, 无利害关系的客户端节点可包含相对于当前彼此通信的客户端节点远程定位的节点。无利害关系的客户端节点还可包含从未与当前彼此通信的客户端节点通信的节点。
本发明的技术充分利用分布式计算的计算资源(例如,云计算系统)以促进有效的对等式通信。与仅包含网络服务器的常见的云系统不同的是,本发明的技术的系统可创建包含多个终端用户计算装置的专用云。这些终端用户计算装置分配资源的一部分以促进终端用户计算装置之间的对等式通信的分布。
根据一些实施例,本发明的技术可针对于用于分布对等式通信的方法,所述方法包含通过经由代理节点引导对等式通信网络的通信信道上的两个或两个以上客户端节点的对等式通信而掩盖所述两个或两个以上客户端节点的识别,所述代理节点包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点,所述无利害关系的客户端节点将网络资源提供给所述对等式通信网络。
根据其它实施例,本发明的技术可针对于用于分布对等式通信的系统,所述系统包含(a)存储器,其用于存储用于分布对等式通信的可执行指令;以及(b)处理器,其经配置以执行存储于所述存储器中的所述指令,所述可执行指令包含(i)代理管理器,其经配置以通过经由代理节点引导对等式通信网络的通信信道上的两个或两个以上客户端节点的对等式通信而掩盖所述两个或两个以上客户端节点的识别,所述代理节点包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点,所述无利害关系的客户端节点将网络资源提供给所述对等式通信网络。
根据额外实施例,本发明的技术可针对于其上体现计算机程序的非暂时性计算机可读存储媒体。所述计算机程序可为可由计算系统中的处理器执行的,以执行用于分布对等式通信的方法,所述方法包含通过经由代理节点引导对等式通信网络的通信信道上的两个或两个以上客户端节点的对等式通信而掩盖所述两个或两个以上客户端节点的识别, 所述代理节点包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点,所述无利害关系的客户端节点将网络资源提供给所述对等式通信网络。


图1说明用于实践本发明的技术的方面的示范性对等式通信网络。
图2说明示范性节点通信分布树。
图3说明用于分布对等式通信的示范性方法的流程图。
图4是可用于实践本发明的方面的示范性计算系统的方框图。
具体实施方式
虽然本发明的技术具有呈许多不同形式的实施例,但在理解了本发明将被视为所述技术的原理的范例且无意将所述技术限于所说明的实施例的情况下,在图式中展示且将在本文中详细地描述若干特定实施例。
一般来说,本发明的技术的系统和方法可针对于分布对等式通信。更具体来说,本文中所提供的系统和方法可经配置以分布对等式因特网语音协议(VoIP)通信。在一些实施例中,可将对等式因特网语音协议(VoIP)通信分布给已将其资源(例如,网络带宽、CPU 容量等)分配给数据中心(例如,云计算系统)的代理节点。
在云环境中,云的个别组件(例如,计算装置)将其个别资源分配给云。所述资源一般由所述云使用以促进一个或一个以上基于网络的应用的操作(例如,工作负荷),或与基于网络的应用相关联的其它辅助功能。因此,实现基于网络的应用的所述云的组合资源大于构成所述云的个别计算系统的资源。在一些实施例中,基于网络的应用或程序可包含多玩家视频游戏,但根据本发明,同样涵盖所属领域的技术人员通过在其之前的本发明而已知的其它类型的基于网络的应用或程序以供使用。将理解,基于网络的应用还可分布于所述云内。
因此,在一些实施例中,促进基于网络的应用的网络服务器可协作以形成第一数据中心或云,且促进基于网络的应用的将资源分配给网络服务器的客户端装置可形成第二数据中心或云。
图1说明用于实践本发明的技术的方面的示范性对等式通信网络,下文中被称作网络100。网络100展示为包含数据中心105或云,数据中心105或云包含代理管理器模块 110、XMPP服务器115、一个或一个以上信道控制器模块120和STUN服务器125。将理解, 网络100的所列举的组件可经由公用或专用通信网络(未图示)中的至少一者以通信方式彼此耦合,所述网络例如为局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)、因特网和其组合。
值得注意的是,数据中心105可包含额外模块、引擎或组件,且仍落在本发明的技术的范围内。如本文中所使用,术语“模块”还可指代以下各项中的任一者专用集成电路 (ASIC)、电子电路、执行一个或一个以上软件或固件程序的处理器(共享、专用或群组)、组合的逻辑电路,和/或提供所描述的功能性的其它合适的组件。
除了数据中心105之外,网络100可包含多个客户端节点。为了简明起见,客户端节点已展示为包含两个客户端节点130A和130B,但所属领域的技术人员将了解,网络100 可促进任何数目个客户端节点。将理解,图1到4的元件中的每一者可理解为包含指定元件中的一者或一者以上。举例来说,两个客户端节点130A和130B可包含任何数目个客户端节点。因此,图1到4仅为示范性说明,且不限制本发明的技术的范围。
广义来说,客户端节点包含终端用户计算装置(例如,计算系统),其由终端用户用来经由一个或一个以上对等式通信信道(下文中被称作通信信道135)彼此通信。
用于每一客户端装置130A和130B的个别通信信道(例如,语音信道)可被多路复用为通信信道135。
一般来说,客户端节点是任何对等式通信信道(例如,语音流)的最终端点。代理节点充当两个或两个以上客户端节点之间的通信中间体,且用于隔离关于其它客户端节点的IP地址的知识。也就是说,代理节点可经配置以掩盖利用通信信道135的客户端装置的 IP地址。使客户端节点的IP地址的知识与其它客户端节点隔离可防止客户端节点对其它客户端节点的恶意动作。恶意攻击的非限制性实例可包含拒绝服务(DOS)攻击、IP地址收获等。另外,代理节点可用作用于点对多点通信的多播起爆器。
另外,网络100针对通信信道135而选择的代理节点可为无利害关系的客户端节点。也就是说,由网络100选择为代理节点的客户端节点可与通信信道135的端点客户端节点不具有任何关系。客户端节点和代理节点的此分离可降低被选择为代理节点的客户端装置可有意地干扰(例如,恶意破坏、IP收获等)端点客户端节点之间的对等式通信的可能性。
如之前所述,客户端节点可各自将其计算资源的一部分专用于数据中心105以促进客户端节点之间的对等式通信。关于对等式通信,专用于网络100的计算资源可包含个别客户端节点的网络带宽的一部分。示范性代理节点可包含代理节点145A和145B,但与客户端节点130A和130B相同,所属领域的技术人员将了解,网络100可有助于任何数目个代理节点。
图2说明展示各种类型的节点之间的通信的示范性节点通信分布树200。将理解, 实线指示主要通信流且虚线指示备份通信流。通信流还可被描述为隧道、信道、端口等。
更具体来说,客户端节点可在广义上被分类为双向(2W)205a_n和仅接收 (R0)225a-n。代理节点可广义上被分类为双向(2W) 210a_n、根RO代理节点215,和RO叶代理节点220a-n。2W客户端节点205a_n可经由2W代理节点210a_n从所有其它2W客户端节点205a-n接收通信流,但不可从其它RO客户端节点225a_n接收通信流。2W客户端节点 205a-n可预期其数据包可由其它2W客户端节点205a_n经由2W代理节点210a_n接收,且由其它RO客户端节点225a-n经由根RO代理节点215和RO叶代理节点220a_n接收。
在一些实施例中,RO客户端节点225a_n经由根RO代理节点215和RO叶代理节点 220a-n从所有其它2W客户端节点205a_n接收通信流,但不可从其它RO客户端节点225a_n 接收通信流。
根RO代理节点215可为经托管节点140 (下文更详细地描述)且可未备份。也就是说,可不存在对经托管节点140的辅助节点。下文将更详细地论述经托管节点140。因此,可每个通信信道135分配经托管节点140。在一些实施例中,2W代理节点210a-n和RO 叶代理节点220a-n可为常规的客户端节点,因此当其在使用中时,可每个通信信道135分配至少两个2W代理节点(例如,图1中的代理节点145A和145B),以在代理节点145A或 145B中的至少一者失败的情况下提供冗余度。代理节点的失败可包含代理节点离开通信信道 135。
从代理节点接收到的“分配”消息可指示代理节点是否为2W或RO分布树的部分。 此可确定分配给此代理节点的上游节点和下游节点的类型和带内UDP协议的确切操作。
另外,网络100可维持可由网络用来取代失败的代理节点的潜在代理节点的快速切换列表。
关于各种类型的代理节点和客户端节点之间的通信,2W代理节点(例如210a)可在通信信道135中与所有2W客户端节点205a-n建立隧道(参看图2的实线和虚线)。2W 代理节点210a可利用从信道控制器模块120接收到的客户端代理列表以选择根RO代理节点215。如先前所述,根RO代理节点215可为根节点或叶节点。根RO代理节点215可在通信信道135中创建到所有2W客户端节点205a-n和到所有叶RO代理节点220a_n的隧道。
叶RO代理节点220a_n可被称作根RO代理节点215的“子女”。根RO代理节点 215可将所有包从所有2W客户端节点205a-n转发到具有活动下游RO客户端节点225a_n 的叶RO代理节点220a-n。可从由节点从信道控制器模块120接收到的“更新”消息和“同步”消息指示与特定代理节点相关联的2W客户端节点225a-n的列表。
每一 RO叶代理节点220a_n可维持与有限组的RO客户端节点225a_n的隧道。可从由节点从信道控制器模块120接收到的“更新”消息和“同步”消息指示与特定RO叶代理节点220a-n相关联的RO客户端节点225a_n的列表。
另外,数据中心105中的某些节点可被指定为经托管节点140。经托管节点140将其资源分配给数据中心105,但与其它节点相比而言,预期经托管节点140可由客户端节点连续接入(与可为断续可用的代理节点相对)且可在因特网上直接寻址(即,不经由NAT 路由器)。经托管节点140正常驻留于数据中心105中且可用作2W或RO代理节点。
在一些实施例中,经托管节点140经配置以在不充分的常规代理节点可能不可用时在创建通信信道135的早期阶段期间自举网络。另外,经托管节点140可在不相容的NAT 或防火墙实施方案下在两个客户端节点之间提供备份或“后退”服务。
如上文所描述,网络100可利用许多类型的节点。因此,除非特别注释,否则术语 “节点”可理解为包含先前所描述的所有类型的节点,例如代理、客户端、主机等。
再次转向图1,代理管理器模块110可跟踪当前在网络100中活动的节点,以及与所述活动节点中的每一者相关联的各种状态变量。这些状态变量可包含IP地址信息和可用网络带宽数据。代理管理器模块110可负责将节点分配给各种对等式功能,例如语音代理、网格计算节点等。
另外,代理管理器模块110可经配置以跟踪以下存在节点接入一个或一个以上对等式通信信道135且在所分配的代理节点变得不可用时将通知提供给其它网络100组件。将理解,可经由通过XMPP服务器115路由的XMPP消息来促进经由客户端节点或其它服务元件与代理管理器模块110的通信。
在一些实施例中,代理管理器模块110可根据(XEP-114)超时组件协·议而实施为标准超时外部组件。在其它实施例中,代理管理器模块110可与数据中心105内的相同节点上的XMPP服务器115进行组合。在额外应用中,为促进更大的缩放性,代理管理器模块 110可驻留于数据中心105内的不同节点(例如,网络服务器)群集上。
XMPP服务器115 (还称为超时服务器)可用作通信总线,以用于数据中心驻留功能间以及数据中心驻留功能与节点之间的信令消息。可通过到驻留于数据中心内的基于网络的应用(例如,多玩家视频游戏)的接口来向XMPP服务器115认证节点。除了与基于网络的应用的自定义接口之外,XMPP服务器115可根据XMPP规范(RFC-3920)协议进行操作。
根据本发明的技术,信道控制器模块120可负责一个或一个以上对等式通信信道 135的设置和管理。信道控制器模块120可经由XMPP服务器115对客户端节点发送XMPP 协议和从客户端节点接收XMPP协议。这些消息可用于控制针对每一客户端节点而建立的每一语音信道(例如,隧道)的整体操作。另外,信道控制器模块120可经由XMPP服务器 115与代理管理器模块110交互以分配代理节点或网格计算节点(未图示)。网格计算节点可包含将CPU容量(除了其它计算资源之外)专用于网络100的客户端节点。
根据一些实施例,节点可利用STUN服务器125来确定关于实施交互式连接建立 (ICE)协议所需的其网络地址转译(NAT)配置的信息。
在一些实施例中,网络100可利用通信协议,例如Jingle (XEP-166)协议,但所属领域的技术人员将了解,根据本发明,可同样利用许多其它类型的通信协议。
更具体来说,在一些应用中,可在网络100内利用两类协议消息用于通信信道设置和维持的基于XMPP的消息协议,和用于实时通信信道控制和通信信道数据输送的基于 UDP的对等式协议。可经由XMPP服务器115路由网络100的组件之间的基于XMPP的消息。 可直接在客户端节点与代理节点之间路由基于m)P的通信。
可经由例如用户名等唯一识别在网络100内唯一地识别每一终端用户。每一用户名对于网络100而言可为全局唯一的。在一些实施例中,可将用户名表示为UTF-8编码的统一代码串。当用户登录到基于网络的应用(未图示)时,用户(例如,客户端节点)可被指派Jabber ID (JID)。将理解,JID的格式定义于(RFC-3920)中,但所属领域的技术人员将了解,根据本发明,同样可利用许多其它类型的识别协议。
将理解,用户名与JID的域部分的组合是全局唯一的。因而,个别节点可经由其 JID唯一地识别。根据一些实施例,JID域部分的格式可包含例如XXXX. voip. domain, com 等格式,其中XXXX是用于提供用于网络服务器基础结构的另一缩放水平的子域。
假设每一用户不止一次地登录到基于网络的应用,因此其JID还可用作用户当前正在其上运行基于网络的应用的实例的客户端节点的瞬时唯一识别符。
根据一些实施例,节点可使用点对服务器XML协议消息直接与信道控制器模块 120和代理管理器模块110交互。信道控制器模块120与节点之间的消息可用于管理例如通信信道135等通信信道内的节点的成员资格和角色。代理管理器模块110与个别节点之间的消息可用于管理节点成为代理节点的可用性。另外,代理管理器模块110和信道控制器模块120可使用服务器间XML协议消息直接彼此交互。另外,代理管理器模块110和信道控制器模块120可使用服务器间XML协议消息直接彼此交互。
在操作中,可通过将“添加客户端”消息发送到信道控制器模块120而将节点添加到通信信道135。将理解,将第一客户端节点或代理节点添加到新的信道可致使信道控制器模块120自动创建通信信道135。一旦建立,代理管理器模块110可将代理节点(例如,代理节点145A和145B)添加到通信信道135。
为加入通信信道135,客户端节点使用其JID登录到XMPP服务器115中,如上文所描述。网络100可基于在客户端节点登录到基于网络的应用中时所获得的票证而向节点发布口令。在登录完成后,客户端节点将所引导 的存在消息发送到代理管理器模块110。代理管理器模块110可将此所引导的存在消息用作此特定客户端节点可用作代理节点的指示。 所引导的存在消息还可包含 所分配的资源数据,所述所分配的资源数据对应于客户端节点正可用于网络100的网络带宽。
客户端节点可周期性地发送这些所引导的存在消息。举例来说,可以三十秒的间隔发送所引导的存在消息,但根据本发明的技术,同样可利用其它时间间隔。
客户端节点进入和退出通信信道
根据一些实施例,客户端节点可被邀请到通信信道135。此邀请是通过将“添加客户端”事件消息递送到信道控制器模块120而触发。此事件消息可指示客户端节点是双向还是仅接收。这将确定分配给此客户端节点的上游代理节点的类型和带内用户数据报协议 (UDP)协议的操作。
当信道控制器模块120接收“添加客户端”事件时,信道控制器可发送含有对那个客户端节点的JID的邀请元素的XMPP IQ消息。客户端节点可用“接受”或“拒绝”消息作出响应。如果接受邀请,则信道控制器模块120可将“更新”消息发送到通信信道135的其它节点(客户端和代理两者)。另外,信道控制器模块120可向新的客户端节点发送具有与其它客户端和代理建立对等式通信所需的信息的初始“同步”消息。
在客户端节点已接收第一“同步”消息之后,客户端节点可利用ICE信道设置算法。
将理解,每一通信信道135可含有多个代理节点。客户端节点可根据从信道控制器模块120接收到的“同步”数据而维持到所有代理节点的活动开放隧道,但一般以充分的服务质量经由最高优先级代理转发数据包。
从信道控制器模块120到客户端节点的“同步”消息可含有信道中的其它客户端节点的JID和NodeID的列表。其还将含有指派给客户端节点的每一代理节点的节点JID 和IP集合点信息的列表。
在客户端节点接收到“同步”消息之后,可用与成员资格和当前代理节点相关的传入“更新”消息用信号通知信道成员资格和代理节点分配的改变,例如关于将客户端节点和代理节点添加到通信信道135或从通信信道135移除客户端节点和代理节点的信息。每一 “更新”消息可含有序列号。如果客户端节点确定序列号中的间隙,则此指示更新信息的丢失。在那种情况下,客户端可将“同步”请求消息发送到信道控制器模块120,其可致使信道控制器模块120将新的、最新的“同步”消息发送到客户端节点。序列号空间对于到每一客户端节点的每一“更新”消息类型可不同。因此,客户端节点和信道控制器模块120可针对每一节点/消息类型元组维持单独的状态。
每当客户端节点被添加到通信信道135 (或从其丢弃)时,信道控制器模块120也可将“更新”消息发送到所有客户端节点。更新信息还可含有客户端节点ID(JID)的列表和指派给其的每一代理节点的候选IP端点数据的相关列表。每当代理节点被添加到通信信道135 (或从其丢弃)时,信道控制器模块120也可将“更新”代理消息发送到所有客户端。
客户端节点可自愿离开通信信道135 ,或被迫从通信信道135离开。在任一情况下,将“丢弃客户端”事件传送到信道控制器模块120。与“添加客户端”事件相同,“丢弃客户端”事件可包含将XMPP IQ消息传送到信道控制器模块120。在接收到“丢弃客户端”消息之后,信道控制器模块120可即刻将“挂断”消息发送到客户端节点,且将适当的“更新” 消息发送到通信信道135上的其它客户端节点和代理节点。被丢弃的客户端节点随后确认 “挂断”消息且不再被视为在群组中。
代理节点进入和退出通信信道
代理节点可基于信道控制器模块120的请求以及代理管理器模块110对代理节点的选择而进入通信信道135。在一些实施例中,代理管理器模块110可基于与通信信道135 相关联的客户端节点的JID而选择无利害关系的代理节点。
信道控制器模块120可从代理管理器模块110获得潜在代理节点的列表,如上文所描述。信道控制器模块120可随后将“分配”消息发送到潜在代理节点中的每一者。潜在代理节点中的每一者可用“接受”或“拒绝”消息来响应于“分配”消息。
在已将代理节点添加到通信信道135之后,信道控制器模块120可基于未使用或代理节点所提供的服务质量低于阈值量而决定丢弃代理节点。服务质量可包含代理节点专用于网络100的实际网络带宽量。将理解,网络管理员可为每一代理节点建立阈值量的带宽。
一旦已作出此确定,信道控制器模块120可将“挂断”消息发送到代理节点,且将适当的“更新”消息发送到通信信道135的客户端节点。被丢弃的代理节点随后确认“挂断”消息且不再被视为在群组中。如果客户端节点仍保持在群组中,则信道控制器模块120 可分配一个或一个以上额外代理节点以取代被移除的代理节点。
如果节点变得不可用作代理,则其应完全与XMPP服务器115 (其还将从语音信道交互移除所述节点作为客户端节点)断开或用“不可用”状态消息将所引导的XMPP存在消息发送到代理管理器120。将理解,所述节点可仍起到客户端节点的作用。
最后一个客户端节点从通信信道135的脱离将触发信道控制器模块120自动破坏或关闭通信信道135。为防止由于短期条件引起的颠簸,信道控制器模块120可在最后一个客户端节点脱离之后在关闭通信信道135之前利用延缓定时器。在一些实施例中,延缓时间可为三十秒,但根据本发明的技术,同样可利用其它延缓时间。
图3说明用于分布对等式通信的示范性方法300的流程图。方法300可包含响应于从两个或两个以上客户端节点接收到“添加客户端”请求而建立对等式网络的通信信道的步骤305。如先前所述,每一客户端节点(和随后被添加的代理节点或经托管节点)可包含唯一的JID,网络可利用所述JID在通信信道上监视来自节点的通信。
接下来,方法包含从潜在代理节点的列表中选择代理节点的步骤310。在步骤310 中所选择的代理节点可包含与曾从其接收到“添加客户端”请求的两个或两个以上客户端节点相关的无利害关系的客户端节点。可通过将每一客户端节点的JID与潜在代理节点的列表中所包含的潜在代理节点进行比较来促进选择无利害关系的客户端节点。步骤310可包含确定由确定正利用通信信道的客户端节点的量所需的代理节点的量。当客户端节点的数目增加时,代理节点的量也增加。
如上文所述,无利害关系的客户端节点可包含两个或两个以上客户端节点从未与其通信的客户端节点。在已选择代理节点之后,方法包含通过经由所选择的代理节点引导两个或两个以上客户端节点的通信而掩盖两个或两个以上客户端节点的识别的步骤315。
接下来,方法包含监视代理节点的服务质量以确定代理节点的服务质量是否高于阈值量的步骤320。举例来说,网络可监视代理节点分配给网络的实际网络带宽。
如果代理节点的服务质量低于阈值量,则方法可包含从通信信道移除代理节点的步骤325,和后面的用来自潜在代理节点的列表的另一代理节点取代所述代理节点的步骤 330。网络可将指示代理节点的改变的经更新的代理数据发送到通信信道的节点。
如果代理节点的服务质量处于或高于阈值量,则网络可继续使用代理节点,直到在步骤335中网络从代理节点接收到向网络指示代理节点正离开通信信道的“丢弃代理” 通知为止。在从代理节点接收到代理节点正离开通信信道的“丢弃代理”后,方法可即刻被引导到步骤325以从通信信道移除代理节点,随后是用来自潜在代理节点的列表的另一代理节点取代所述代理节点的步骤330。
方法300还可包含从客户端节点接收到客户端节点正离开通信信道的“丢弃客户端”消息的步骤340。在客户端节点离开通信信道后,网络可即刻将指示客户端节点不再利用通信信道的经更新的客户端节点消息发送到通信信道的其余节点。
在最后一个客户端节点离开通信信道后,方法300包含关闭通信信道的步骤345。
应理解,本文中所陈述的示范性方法的步骤不一定需要以所描述的次序执行,且所述方法的步骤的次序应被理解为仅是示范性的。同样,额外步骤也可包含于所述方法中, 且在与本发明的各种实施例一致的方法中可省略或组合某些步骤。
图4说明可用于实施本发明的技术的实施例的示范性计算系统400。网络100的所列举的组件中的任一者可包含计算系统400的组件中的一者或一者以上。图4的计算系统400包含一个或一个以上处理器410和存储器420。主存储器存储装置420部分存储供处理器410执行的指令和数据。主存储器存储装置420可在系统400在操作中时存储可执行代码。图4的系统400可进一步包含大容量存储装置430、便携式存储媒体装置440、输出装置450、用户输入装置460、图形显示器440,和其它外围装置480。
图4中所示的组件被描绘为经由单一总线490进行连接。组件可通过一个或一个以上数据输送构件进行连接。处理器410和主存储器存储装置420可经由本地微处理器总线进行连接,且大容量存储装置430、外围装置480、便携式存储装置440和显示器系统470 可经由一个或一个以上输入/输出(I/O)总线进行连接。
可用磁盘驱动器或光盘驱动器实施的大容量存储装置430是用于存储供处理器单元410使用的数据和指令的非易失性存储装置。大容量存储装置430可存储用于实施本发明的技术的实施例的系统软件,以用于将那个软件加载到主存储器存储装置420中。
便携式存储装置440结合便携式非易失性存储媒体(例如,软盘、压缩盘或数字视频光盘)而操作,以将数据和代码输入到图4的计算系统400和从图4的计算系统400输出数据和代码。用于实施本发明的技术的实施例的系统软件可存储于所述便携式媒体上, 且经由便携式存储装置440输入到计算系统400。
输入装置460提供用户接口的一部分。输入装置460可包含字母数字小键盘,例如键盘,以用于输入字母数字和其它信息,或包含指向装置,例如鼠标、跟踪球、尖笔或光标方向键。另外,图4中所示的系统400包含输出装置450。合适的输出装置包含扬声器、打印机、网络接口和监视器。
显示器系统470可包含液晶显示器(IXD)或其它合适的显示器装置。显示器系统 470接收文本和图形信息,且处理所述信息以用于输出到显示器装置。
外围装置480可包含任何类型的计算机支持装置以将额外功能性添加到计算系统。外围装置480可包含调 制解调器或路由器。
图4的计算系统400中所包含的组件是计算系统中通常找到的组件,其可适合用于与本发明的技术的实施例一起使用,且意欲表示此项技术中众所周知的此类计算机组件的广义类别。因此,图4的计算系统400可为个人计算机、手提式计算系统、电话、移动计算系统、工作站、服务器、微型计算机、大型计算机,或任何其它计算系统。计算机还可包含不同的总线配置、联网平台、多处理器平台等。可使用各种操作系统,包含UNIX、Linux、 Windows、Macintosh OS、Palm OS和其它合适的操作系统。
上文所描述的功能中的一些可由存储于存储媒体(例如,计算机可读媒体)上的指令构成。所述指令可由处理器检索和执行。存储媒体的一些实例是存储器装置、磁带、磁盘等。所述指令在由处理器执行时操作以引导处理器根据所述技术进行操作。所属领域的技术人员熟悉指令、处理器和存储媒体。
值得注意的是,适合于执行本文中所描述的处理的任何硬件平台适合于与所述技术一起使用。如本文中所使用的术语“计算机可读存储媒体(computer-readable storage medium) ”和“计算机可读存储媒体(computer-readable storage media) ”指代参与将指令提供给CPU以供执行的任何媒体(medium)或媒体(media)。所述媒体可采取许多形式, 包含(但不限于)非易失性媒体、易失性媒体和传输媒体。非易失性媒体包含(例如)光盘或磁盘,例如固定磁盘。易失性媒体包含动态存储器,例如系统RAM。传输媒体包含同轴电缆、铜线和光纤,尤其包含构成总线的一个实施例的电线。传输媒体还可采取声波或光波的形式,例如在射频(RF)和红外(IR)数据通信期间所产生的声波和光波。计算机可读媒体的常见形式包含(例如)软盘、柔性磁盘、硬盘、磁带、任何其它磁性媒体、CD-ROM盘、数字视频盘(DVD)、任何其它光学媒体,具有标记或孔图案的任何其它物理媒体、RAM、PROM、 EPROM、EEPROM、FLASHEPROM、任何其它存储器芯片或数据交换适配器、载波,或计算机可从其读取的任何其它媒体。
在将一个或一个以上指令的一个或一个以上序列载运到CPU以供执行的过程中可涉及各种形式的计算机可读媒体。总线将数据载运到系统RAM,CPU从所述系统RAM检索并执行指令。由系统RAM接收的指令在由CPU执行之前或之后可任选地存储于固定磁盘上。
以上描述是说明性的而非限制性的。所属领域的技术人员在检视本发明之后将即刻明白所述技术的许多变化。因此,不应参考以上描述来确定所述技术的范围,而是应 参考所附权利要求书以及其完整范围的等效物来确定。
权利要求
1.一种用于分布对等式通信的方法,其包括通过经由代理节点引导对等式通信网络的通信信道上的两个或两个以上客户端节点的对等式通信而掩盖所述两个或两个以上客户端节点的识别,所述代理节点包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点,所述无利害关系的客户端节点将网络资源提供给所述对等式通信网络。
2.根据权利要求1所述的方法,其进一步包括评估所述对等式通信网络可用的潜在代理节点的列表;比较所述潜在代理节点中的每一者的因特网协议IP地址和所述两个或两个以上客户端节点的IP地址以确定一个或一个以上无利害关系的代理节点;以及从所述一个或一个以上无利害关系的代理节点中选择至少一个代理节点。
3.根据权利要求2所述的方法,其进一步包括在评估之前,建立用于某一量客户端节点的通信信道;以及基于客户端节点的所述量而确定所述通信信道所需的代理节点的量。
4.根据权利要求2所述的方法,其进一步包括在确定代理节点的失败后即刻从潜在代理节点的快速切换列表中选择额外的代理节点,所述额外的代理节点还包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点。
5.根据权利要求4所述的方法,其中失败包含所述代理节点的服务质量低于阈值量。
6.根据权利要求5所述的方法,其中所述代理节点的所述服务质量包含可让所述对等式通信网络使用的当前网络带宽量。
7.根据权利要求1所述的方法,其中无利害关系的客户端节点包含所述两个或两个以上客户端节点从未与其通信的客户端节点。
8.根据权利要求1所述的方法,其中所述对等式通信网络包含因特网语音协议VoIP通信网络。
9.根据权利要求1所述的方法,其中所述无利害关系的节点包含所述对等式通信网络的经托管节点。
10.根据权利要求1所述的方法,其中可将代理节点用于两个或两个以上不同的通信信道。
11.一种用于分布对等式通信的系统,其包括存储器,其用于存储用于分布对等式通信的可执行指令;以及处理器,其经配置以执行存储于所述存储器中的所述指令,所述可执行指令包含代理管理器模块,其经配置以通过经由代理节点引导对等式通信网络的通信信道上的两个或两个以上客户端节点的对等式通信而掩盖所述两个或两个以上客户端节点的识别, 所述代理节点包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点,所述无利害关系的客户端节点将网络资源提供给所述对等式通信网络。
12.根据权利要求11所述的系统,其中所述代理管理器模块进一步经配置以评估所述对等式通信网络可用的潜在代理节点的列表;比较所述潜在代理节点中的每一者的因特网协议IP地址和所述两个或两个以上客户端节点的IP地址以确定一个或一个以上无利害关系的代理节点;以及从所述一个或一个以上无利害关系的代理节点中选择至少一个代理节点。
13.根据权利要求12所述的系统,其中所述系统进一步包含信道控制器模块,所述信道控制器模块经配置以建立用于某一量客户端节点的通信信道;以及基于客户端节点的所述量而确定所述通信信道所需的代理节点的量。
14.根据权利要求13所述的系统,其中所述代理管理器模块经配置以在所述信道控制器确定代理节点的失败后即刻选择额外的代理节点,所述额外的代理节点还包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点。
15.根据权利要求14所述的系统,其中失败包含所述代理节点的服务质量低于阈值量。
16.根据权利要求11所述的系统,其中无利害关系的客户端节点包含所述两个或两个以上客户端节点从未与其通信的客户端节点。
17.根据权利要求11所述的系统,其中所述对等式通信网络包含因特网语音协议VoIP通信网络。
18.根据权利要求11所述的系统,其中所述无利害关系的节点包含所述对等式通信网络的经托管节点。
19.根据权利要求11所述的系统,其中所述代理管理器模块可将代理节点用于两个或两个以上不同的通信信道。
20.一种非暂时性计算机可读存储媒体,其上体现有计算机程序,所述计算机程序可由计算系统中的处理器执行以执行用于分布对等式通信的方法,所述方法包括通过经由代理节点引导对等式通信网络的通信信道上的两个或两个以上客户端节点的对等式通信而掩盖所述两个或两个以上客户端节点的识别,所述代理节点包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点,所述无利害关系的客户端节点将网络资源提供给所述对等式通信网络。
全文摘要
本文提供用于分布对等式通信的系统和方法。示范性方法可包含通过经由代理节点引导对等式通信网络的通信信道上的两个或两个以上客户端节点的对等式通信而掩盖所述两个或两个以上客户端节点的识别,所述代理节点包含与所述两个或两个以上客户端节点相关的无利害关系的客户端节点,所述无利害关系的客户端节点将网络资源提供给所述对等式通信网络。
文档编号H04L29/08GK103002001SQ201210171950
公开日2013年3月27日 申请日期2012年5月29日 优先权日2011年9月8日
发明者马克·克恩, 肖恩·丘尔哈内, 唐·霍夫曼 申请人:宏伍工作室公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1