通信系统和方法

文档序号:7989877阅读:140来源:国知局
通信系统和方法
【专利摘要】一种确定关于在包括多个路由节点的基于分组的互联网络中的网络资源的信息的方法,该方法包括:为多个连接到该互联网络的最终用户终端中的每一个分发用户软件,该用户软件具有除了网络数据收集之外的主要用户功能;与该用户软件相关联地分发辅助代码,该辅助代码被配置成通过探查在该互联网络上从相应的最终用户终端到目的地终端的不同路由来参与数据的收集,每条路由经过多个所述路由节点;接收在该多个最终用户终端上由辅助代码执行的探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据;以及基于所接收的数据确定网络资源的估计。
【专利说明】通信系统和方法
【技术领域】[0001]本发明涉及在诸如因特网之类的基于分组的互联网络上的网络资源的映射。
【背景技术】
[0002]图1给出了诸如因特网之类的互联网络(或互联网络的一部分)的高度示意化的表示。互联网络是其中两个或更多不同的运营商的网络被互连并被设置成根据ー个或多个公共的网间互通协议来通信的设置。互联网络典型地连接多个城市或国家,并且在一定程度上本质上一般是不分层的。因特网是到目前为止互联网络最广泛流传的和最常用的示例,通过使用因特网协议(IP)或因特网协议族来限定。
[0003]如图1所示,大量诸如台式计算机、膝上型计算机、平板电脑或移动手机之类的最终用户終端2a,2b, 2c…2 ¥中的每ー个都连接到至少ー个网络服务提供者的至少ー个路由节点4a, 4b…4w。类似地,多个服务器3a…3d中的姆ー个都连接到至少ー个路由节点4。每个连接可以包括一个或更多有线的和/或无线级,例如涉及到固定电话线路的有线调制解调器连接、有线的局域网(LAN)5,和/或经由无线路由器的无线连接,或者经由移动蜂窝网络的基于分组的服务的无线连接。出于说明的目的,图1中仅示出ー个局域网(LAN) 5,但是应当理解的是,一般地,用户终端2和紧邻它的上游节点4之间更多的连接可以是通过LAN的。另外,在通过无线路由器连接的情况下,这可以有效地形成经由小型无线局域网(WLAN)的连接,在图1中未明确地示出。
[0004]路由节点4中的每ー个都直接地连接到至少ー个其他相邻的路由节点4,使得服务提供者节点4中的每ー个都至少彼此充当代理地互连。这里直接连接意味着在互联网络层面上只需要一个路由跳,而充当代理地连接意味着两个或更多个路由跳。
[0005]在操作中,最終用户终端2产生目的地为另外一个用户終端2或服务器3的数据分组,或者反之亦然,其中借助诸如包含在每个分组的报头部分中的IP地址之类的互联网络网络地址标识目的地。之后,该最终用户终端2向上游将分组发送到它直接连接到的它的本地网络服务提供者的路由节点4。每个路由节点4被配置成检查进来的接收自用户终端2、服务器3或路由节点4的分组的互联网络地址(例如IP地址);并且基于该地址将该分组向前转发到下ー个路由节点4或目的地用户终端2或服务器3,这适当地取决于当前路由节点在互联网络内相对于目的地的位置。因此该分组经由从源用户终端2或服务器3到目的地用户终端2或服务器3的多个路由节点4被路由。
[0006]诸如那些被标注为4a_4em, 4i_41和4p_4s的一些路由节点可以处理本地业务(例如在特定的城市内),这些路由节点通过本地链路直接连接到一个或更多其它的本地路由节点(例如在同一个城市中)。诸如那些被标注为4f, 4g, 4m, 4n, 4t和4u的一些路由节点可以处理国内业务(例如在城市之间或州之间),这些路由节点通过国内链路直接连接到ー个或更多其它的国内路由节点(例如在其它的城市或州中)。诸如那些被标注为4h,4o和4w的一些路由节点可以处理国际业务,这些路由节点通过ー个或更多国际链路(例如海外)直接连接到在其它国家中的其它国际路由节点。而且,每个本地路由节点同样可以直接向前连接到一个或更多国内或国际的节点,和/或每个国内节点可以连接在一个或更多本地路由节点和一个或更多国际路由节点之间。然而应当理解的是,图1中示出的连接仅仅出于说明的目的,并且一般地在应有的位置上很可能存在更复杂的设置。在实践中,诸如因特网之类的互联网络很可能在地理互连的各种不同层面上包括比图1的示意性说明所示出的更多的用户终端2、服务器3和路由节点4,并且路由节点4不一定被严格划分层面为本地、国内和国际节点(例如一个国际路由节点同样可以直接连接到最终用户终端或一个或更多服务器3等等)。
[0007]正如所提到的,路由节点4包含由多个网络服务提供者形式的不同运营商(他们不一定全部是针对最终用户的提供者)运营的节点,并且不同的网络服务提供者彼此之间具有相互的路由协定。例如两个在同一城市或州内运营的网络服务提供者、或两个在不同国家中运营的网络服务提供者可以具有相互的协定来在其间路由彼此的消费者业务。
[0008]然而,这样的设置存在的问题在于,难以收集关于网络资源的信息。随着时间的过去,任何一个或多个特定的路由节点4可能经历变化的业务量。另外,不同的路由节点4在不同的时间可能经历不同的业务量,和/或不同的路由节点可能具有每单位时间用于路由不同数量的业务的不同的能力(例如不同的队列长度或处理能力)。在网络资源中的这些或其它变化可能导致诸如分组丢失、等待时间(延迟)或例如由于在某个或某些路由节点4处的路由瓶颈而在一个或多个目的地终端2或3处经历的减少的比特率之类的不同的负面特性。
[0009]知晓这样的信息例如对于网络规划目的将会是有用的,但是诸如因特网之类的大型互联网络的本质上分布式的、非集中的、多提供者的本质使得这成为一项非常困难的任务。
[0010]一些因特网服务提供者(ISP)在城市中安装监控设备,但是这无法做到把关于传输的信息(例如最终用户经历的分组丢失或等待时间)给予实际的个体。
[0011]一些ISP还要求他们的用户下载专用的应用,用户在他们的最终用户终端2上运行该应用以便帮助分析网络性能。然而这仅限于收集一个ISP的网络内关于资源的数据,而没有给出横跨互联网络的更广阔的图画。
[0012]理想的是提供一种改进的系统、方法和/或软件工具用于在诸如因特网之类的基于分组的互联网络中收集关于网络资源的信息。

【发明内容】

[0013]根据本发明的一个方面,提供了在包括多个路由节点的基于分组的互联网络中确定关于网络资源的信息的方法,该方法包括:向连接到该互联网络的多个最终用户终端中的每一个分发用户软件,该用户软件除了所述的收集网络数据之外具有主要的用户功能;与该用户软件相关联,分发被配置用于通过探查互联网络上从相应的最终用户终端到目的地终端的不同路由来参与所述数据收集的辅助代码,每条路由经过多个所述路由节点;接收由在多个最终用户终端上的辅助代码执行的探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据;并且基于所接收的数据确定网络资源的估计。
[0014]通过将这样的网络资源监控工具以辅助代码的形式分发给用户,其中该辅助代码与另一个现有的诸如基于IP的语音传输(VoIP)或万维网浏览器软件之类的用户软件项目相关联地被分发,而不管用户的ISP,那么本发明能够有利地利用大量现有的用户基础,从而收集来自经由各种不同网络服务提供者的节点接入互联网络的用户的数据。本发明因而允许跨越互联网络更广的部分发展网络拓扑更大的图画,并且不仅限于单一的地理区域或单一服务提供者的节点。也就是说,通过探查横越不同地理位置中的不同服务提供者(例如ISP)的设备的路由,有可能确定因特网或其它这样的互联网络的拓扑的更好的总体模型。
[0015]优选地用户软件和相关联的辅助代码的分发包括:将用户应用的相应实例分发给每个最终用户终端,该用户应用包括用户软件和辅助代码,其中用户软件和辅助代码为同一用户应用的部分,至少在于该辅助代码的执行取决于该用户软件的执行。
[0016]辅助代码可以被配置成当用户应用启动时自动随用户软件执行。
[0017]辅助代码可以被配置成当用户选择由用户软件在其执行期间呈现的选项时执行。
[0018]辅助代码可以与用户软件相同作为同一下载和安装过程的一部分被分发。
[0019]因此在优选实施例中,用户的终端将自动地参与数据的收集,而无需用户以当前一些ISP要求他们的消费者去做的方式过于麻烦地手动操作或下载单独的、孤立的应用。作为代替,辅助的资源监控代码将简单地在后台运行,而用户已经出于用户表面上使用用户应用的其它主要目的打开该用户应用(例如VoIP呼叫或浏览万维网)。以此方式降低用户的负担对于鼓励用户接纳资源监控工具并因此利用横跨互联网络大部分的大用户基础是特别有效的。
[0020]在另外的实施例中探查可以根据随机算法执行。
[0021]在一个特别优选的实施例中,用户软件包括具有在基于分组的互联网络上实施基于分组的语音呼叫、视频呼叫或頂消息交换形式的通信的主要用户功能的通信软件。
[0022]用户应用可以包括通信客户端应用,该通信客户端应用包括所述通信软件和辅助代码。
[0023]通信软件可以被配置成经由第一路由在互联网络上实施所述的在它相应的最终用户终端和目的地终端之间的通信,并且辅助代码可以被配置成在一条或更多不同的第二路由上发送探查分组,第一和第二路由中的每一条经过多个所述的路由节点;并且所述确定可以包括沿着第一和第二路由中的至少一条基于经由第一和第二路由经历的传输特性的差异来确定关于网络资源的信息。
[0024]传输特性可以包括等待时间、抖动、分组丢失、错误率和比特率中的至少一个。
[0025]沿着每条路由从一个路由节点到下一个的路由可以由更低层面的互联网络层协议确定;并且辅助代码可以被配置成通过如下步骤导致经由一条或更多第二路由的路由:在更高层面的应用层路由探查分组,经由在相应的一个或更多中继最终用户终端上的用户应用的一个或更多另外的实例将探查分组定向到目的地终端。
[0026]中继最终用户终端不需要是通信的消费者。
[0027]辅助代码可以被配置成根据网络资源的确定经由中继最终用户终端重定向通信。
[0028]辅助代码可以被配置成将由所述探查产生的数据报告给数据处理机构,该数据处理机构执行关于网络资源的信息的所述确定。
[0029]该数据处理机构可以控制所述重定向。
[0030]因此在一个特别有利的实现方式中,关于网络资源的信息不仅可以被用于为互联网络拓扑建模,而且可以被用于选择用于在应用层中继通信流的第三方中继。尽管一般地潜在成为通信系统的最终用户,该中继终端不需要是被中继的特定流的消费者。在实施例中,这在例如如下方面可以是特别有用的:为NAT或防火墙遍历找到最高效的路由(在诸如降低等待时间和/或分组丢失之类的传输特性方面是高效的);或简单地用于为该流找到最闻效的路由(仅仅通过互联网络层路由(例如IP层路由)确定的路由不一定是最闻效的,因为它仅仅关注从ー个路由节点4到下ー个的下ー个直接连接上的下一个紧接的跳,而预见不到进一歩沿着该路由可能出现的瓶颈或其它问题)。
[0031 ] 在ー个可替换的实施例中,用户软件包括万维网浏览器软件。
[0032]根据本发明的另ー个方面,提供了使用在连接到包括多个路由节点的基于分组的互联网络的最終用户终端上的用户应用,该用户应用被包含在非瞬态的计算机可读介质上并包括:具有除了所述收集网络数据之外的主要用户功能的用户软件;被配置成參与收集在所述基于分组的互联网络中的关于网络资源的数据的辅助代码,这通过探查在互联网络上从相应的最終用户终端到目的地终端的多条不同路由来完成,每条路由经过多个所述的路由节点;其中辅助代码进一歩被配置用于报告由探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据,从而使得能够基于所报告的数据确定网络资源的估计。
[0033]在实施例中,用户应用可以根据任何上述的方法特征被进ー步配置。
[0034]根据本发明的另ー个的方面,提供了。
【专利附图】

【附图说明】
[0035]为了更好地理解本 发明并示出可以如何实现本发明,将通过示例的方式參考附图,在附图中:
图1为诸如因特网之类的互联网络的示意性表示,
图2为用户应用的示意性框图,
图3为用户应用的用户界面的示意性图示,
图4为协议栈的示意性表示,以及 图5为数据分组的示意性表示。
【具体实施方式】
[0036]图2提供了最終用户计算机終端2的示意性框图,该终端包括一个或更多处理单元形式的处理装置和诸如ROM、硬盘驱动器和/或闪速存储器之类的非易失性存储器形式的电子存储介质。该最终用户终端可以是台式计算机、笔记本电脑、平板风格的电脑或诸如“智能电话”之类的移动手机,或诸如TV或机顶盒之类的具有嵌入式处理装置的家用电器中的任何ー种。在图1中示出的每个最終用户终端2a,2b, 2c…2 V可以是这种或其它种类的任何这样的終端。
[0037]每个最終用户终端2的存储介质存储操作系统(0S)10,其被设置用于在相应的处理装置上执行。该存储介质还存储大量用户应用,例如基于IP的语音传输(VoIP)和/或即时消息传递(頂)客户端形式的通信客户端应用12,以及ー个或更多诸如万维网浏览器、电子邮件客户端、音乐播放器等等之类的其它应用18。用户应用12、18也被设置成在操作系统10的控制下在处理装置上被执行。
[0038]根据本发明的实施例,通信客户端应用12包括主要部分的通信软件14以及辅助部分的代码16。主要部分(通信软件14)被配置以便当其被执行时执行通信客户端的主用户功能,例如VoIP呼叫、视频呼叫和/或IM消息传递,即用户运行该应用12所出于的主功能或目的。然而,辅助代码部分16通过探查互联网络上的各种不同路由并报告诸如所探查的路由上所经历的等待时间、分组丢失率或比特率之类的探查结果来提供参与网络资源监控的附加的、辅助的功能。
[0039]根据用户日复一日的观察,他或她表面上运行常见的通信客户端并且只需要看见这样的客户端如图3中示意性图示的常规前端用户界面,这是通过通信软件14来呈现的内容。然而,当该用户应用12在运行时,那么与主通信软件14相同,辅助的资源监控代码16也将在后台运行(以不可见或最低程度可见的方式)。可以在安装或更新该通信客户端应用时让用户知道该辅助代码,例如作为特许契约的一部分。在实施例中,通信客户端12的用户界面同样可以为用户提供启用或禁用辅助代码的资源监控的选项,例如借助可以经由客户端前端用户界面中的一些合适的控件而被唤起的选项菜单。
[0040]尽管这里它被称为应用,这不一定旨在指软件的根本不可分的单元,而是可以可替换地指任何诸如由对现有应用的插件、更新或附加项形成的复合应用之类的可执行程序(例如辅助代码16可以被提供为插件,其与通信软件14接口以便作为同一总应用12的一部分操作)。尽管如此,在优选的实施例中意图是辅助代码16至少与用户应用12的主用户功能相关联,因为它的运行取决于通信软件的执行。也就是说,用户应用12将包括用于执行为之提供用户应用的主用户功能(例如通信客户端)的主要代码14,这是当应用12被启动时启动的主软件。用户应用12之后将进一步包括用于探查和报告网络数据的辅助代码16,并且使辅助代码16的执行取决于被执行的主要代码14。例如,辅助代码16可以被看作是同一用户应用12的一部分,因为它被配置成一旦启动用户应用12就自动与主通信软件14 一起运行,或者因为只有一旦用户在主软件14执行期间选择选项它才从用户应用12中运行。
[0041]辅助代码16优选地与执行用户应用的主功能的主要软件14同时被分发,并在同时由用户下载和安装,即在同一场合作为同一下载和安装操作的一部分以便用户不必手动地发起单独的下载或安装。可替换地,辅助代码16可以作为附加项被单独下载,尽管优选地是作为包含对主要软件14更新的更新过程的一部分。
[0042]从用户的角度来看,主通信软件14和用户应用12是同一个,并且大多数时间用户不需要有意识地意识到辅助代码16在后台运行(除了例如当接受初始的特许契约或切换启用或禁用辅助代码16的选项时之外)。尽管这样,通过辅助代码16的网络监控最终有益于用户,因为它能够导致改进的网络拓扑或路由。
[0043]现在将参考图1、4和5更详细地讨论辅助代码16优选地被配置成监控网络资源(或至少参与网络资源的监控)所通过的机制。下文将以与用于在因特网上实施实时语音和/或视频呼叫的VoIP客户端有关的示例的方式描述,但是应当理解的是本发明的范围可以延伸至其他种类的用于在任何基于分组的互联网络类型的设置上通信的通信客户端。
[0044]正如对于本领域技术人员所熟悉的,终端和节点在诸如因特网之类的互连网络上通信的基本机制可以被看作为协议栈(在运行在每个终端2,3和路由节点4上的软件中被具体化)。存在大量的方式来表示协议栈,但是图4示出了ー种通用的方式。
[0045]在这个表示中,最低层是链路层22,它负责在用户终端2与路由节点4之间或两个路由节点4之间紧接的、直接的链路上传送比持。这可以例如涉及用于在拨号、宽带、以太网或无线保真(w1-fi)连接上传送数据的协议。该链路层22不包含在互联网络层面上路由的概念,并且不同的直接链路层协议可以被使用在不同的链路上,因为是下ー层,互联网络层24 (IP层),来提供用于横跨互联网络路由的公共协议。也就是说,链路层22不确定分组应当被定向到下面的哪个路由节点4或終端2,而是仅仅在一旦节点或終端基于互联网络层(例如IP层)24上的互联网络地址(例如IP地址)已经被识别时,将该分组的比特发送到下ー个路由节点4或终端2。
[0046]互联网络层(例如IP层)24是负责紧接的分组路由的分组协议。如图5所示意性示出的,数据分组包括报头部分32和有效负载34。报头32包括目的地最終用户终端2的互联网络地址(例如IP地址),并且有效负载包括发送用户应用12,18所希望要发送的实际用户数据。当路由节点4接收分组时,它的IP层软件检查该IP地址并确定将该分组路由到的下个相邻的路由节点4 (或最終用户终端2,如果该目的地終端是相邻的),即确定在其上发送该分组的下ー个直接链路或下ー个互联网络跳。然而,该IP层24在任何一个给定的节点4上都不能确定或指定用于该路由的全部拓扑,即不能一次确定多跳,而是仅仅确定下个紧接的到下个相邻节点4或終端2的跳。
[0047]传输层26添加打包在IP报头顶部的附加的报头信息。该传输协议可以因此添加一定程度的端到端的连接,诸如端口号、错误检测、分组排序和分组接收的确认。然而,传输层26仍然不为用户应用提供指定路由拓扑的机构,即不允许用户应用选择该分组将被路由通过哪个路由节点4。
[0048]最后,应用层28涉及要被包含在分组有效负载34中的用户信息,例如语音或视频呼叫的音频或视频内容,或用于頂消息的用户文本。应用12,18可以自由地在有效负载中包含任何它希望的适于正被讨论的该应用的内容。
[0049]根据优选的实现方式,本发明额外地利用应用层和分组有效负载来提供附加的路由层,以在路由拓扑上提供不被IP或传输层24,26支持的附加程度的控制。在应用层上的这种路由可以被称作形成“覆盖网絡”。
[0050]例如,假设运行在发送最終用户终端2e上的通信应用12的一个实例希望向运行在目的地最終用户终端2x上的通信客户端12的另ー个实例发送分组或分组的流。自然地由IP层路由独自确定的路由可以例如经由跨越大西洋的链路4h游历到40。然而,假设改为发送应用12希望经由运行在第三中继最终用户终端2入上的通信应用的ー个实例发送该分组。在这种情况下它产生具有中继最终用户终端2的IP地址的分组,因此就IP层24而言,指定中继最终用户终端2i作为目的地終端。然而,在分组有效负载34的至少ー个中,发送终端2e同样插入标识最終目的地2x的指示。当在中继终端2i上的通信应用12的该实例接收到该分组时,它解开该有效负载,确定最終的目的地終端2x的IP地址(例如基于将所指示的身份映射到IP地址的查阅表),然后用包括目的地終端2x的IP地址的IP报头再打包剰余的有效负载媒体并在因特网上再发送该分组。这之后将导致经由跨越大西洋的链路4h_4w然后经由国际链路4w_4o (在其它跳之中)的总路由,而不是直接经由4h_4o。
[0051]这样,服务器3同样可以被指定作为应用层中继終端。[0052]在常规的覆盖网络中,这种技术只可以被使用在意图利用中继最终用户终端2,3的一些有利的特性的情况下,例如因为它允许防火墙或NAT的遍历,或因为它具有用于促进多方会议呼叫(三个或更多的参与者)的更好的处理资源。然而,根据本发明的实施例,应用层路由技术被用于强加经由某些路由节点4或某个在路由节点4之间的链路的路由以便探查该路由的诸如等待时间、分组丢失比特率、吞吐量和/或抖动之类的一些传输特性。
[0053]因此尽管用户应用12,18对分组被路由通过什么节点不具有直接的控制,但是它能够通过经由形成同一覆盖网络的一部分的中间用户应用12的路由操纵路由的一些方面。
[0054]现在将更详细地讨论这项监控网络资源的技术的一些示例应用。
[0055]再次参考图1,假设开始运行在最终用户终端2e上的VoIP客户端12设立具有目的地最终用户终端2x的语音或视频流,而在应用层上未指定任何特定路由。在这种情况下该路由不涉及任何中继最终用户终端2或服务器3并且仅仅由所发送的分组的报头中的目的地终端2x的IP地址和由网络服务提供者的路由节点4做出的路由判决来确定。例如初始的路由可以是:
2β — 4b — 4f — 4h — 4o - 4n — 4k — 2x
然而,该VoIP客户端12可能希望确定是否另一条路由可以在实际上在一个或更多可测量的传输特性方面更好,例如降低等待时间、分组丢失或错误率、提高比特率,和/或抖动。
[0056]特别地,当在诸如因特网之类的大型互联网络上路由时,那么地理上最短的路由或由IP层独自确定的路由不一定是最好的。例如,地理上邻近的路由节点4可能会经历瓶颈。因此希望能够测试其它通过经由另外的中继最终用户终端2或服务器3 (或事实上经由它们中的多个)的路由在应用层上能够被强加的可能的路由。
[0057]为此,VoIP客户端12借助于它的特殊辅助代码16被配置成借助于应用层路由沿着涉及至少一个中继最终用户节点和/或服务器3的可替换的路由发送一个或多个探查分组。例如一个或更多探查分组可以沿着以下路由被发送:

2e - 4b - 4c - 21 — 4c - 4g - 4h - 4o - 4n — 4k - 2x
优选地该VoIP客户端12实际上将以类似的方式探查多条路由,例如其它的一些可以
是:
26 — 4-b — 43 — 3s — 4a — 4h — 4o — 4n — 4k — 2x
2e - 4b — 4f — 4h ~ 4w _ 4t — 4c| - 2h ~ 4cj — 41 - 4w ~ 4o — 4n — 4k — 2x
2e — 4b — 4f — 4h - 4w - 4u - 3d - 4u — 4w — 4o - 4n - 4k - 2x
2e — 4-b — Art — 4h.~ 4o 一 4 m — 4i — 2t — 4i — 4| — 4k — 2k
等等。
[0058]该一个或更多探查分组可以充当对目的地终端2χ的“查验(ping)”,以便调用从运行在目的地终端2x上的客户端12返回到运行在发送终端2e上的客户端12的响应,该响应报告该一个或更多探查分组在所探查的路由上经历的传输特性。可替换地,该一个或更多探查分组可以触发目的地终端2x向运行在例如3b的控制服务器上的控制器报告所经历的传输,该控制器进而又被配置成能够控制发送最終用户终端2e的行为(或者经由因特网或者经由诸如蜂窝网络之类的可替换的控制介质发出控制信号)。
[0059]初始的路由同样被探查以便得到相同的信息,或者暗中由所发送的流或者由単独的一个或更多探查分组探査。
[0060]如果根据诸如分组丢失、错误率、等待时间或比特率等等之类的ー些可量化的传输特性(或者基于它们中间的一个或多个或组合它们中间的两个或更多的ー些度量)任何所探查的路由被发现优于初始的或当前的路由,那么或者在发送终端2e上的客户端12或者运行在控制服务器3b上的控制器将经由改进的路由定向主语音或视频流,这借助于经由中继最终用户节点2或服务器3的应用层路由。这个过程可以在整个正在进行的流的发送中被重复以便动态地更新或核查最佳路由。
[0061]类似的技术可以被用于为其它类型的流或通信(例如文件传输或IM消息交換)找到路由。在实施例中,正被讨论的一个或多个传输特性可以取决于客户端12所要求的通信类型。
[0062]在中继终端为例如2i或2t的最終用户终端的情况下,应当指出的是中继最終用户终端不需要是该流的消费者(消费在这个意义上意味着使用该流用于它的最終目的,例如播放语音或视频流,显示頂消息,或存储通过文件传输接收的文件)。相反地,中继最终用户终端可以简单地由同意加入这个相互路由方案的用户利用又ー个通信客户端应用12的实例来安装(中继终端2i或2t的用户他或她自己当成为在另外的场合中涉及的完全不同的流的发送者或消费者时可以从总的协定中获益)。
[0063]在优选的实施例中,探查以与蚁群相似的方式被确定。为了获取食物,群体中的大部分蚂蚁将跟随食物和蚂蚁窝之间由另ー个蚂蚁留下的气味踪迹。然而,偶尔ー只随机的蚂蚁将离开主流井随机地游走离开。如果这种随机的游走碰巧导致到食物的更好的路由,那只蚂蚁将返回蚂蚁窝,留下新的气味踪迹。大批蚂蚁之后将跟随新的踪迹。以相似的方式,本发明可以采用随机的“蚁群”风格的算法,借此主业务流经由当前路由被路由,但是探查分组不时被随机地在不同的测试路由上发送。或者探査的定时和/或路径可以是随机的。
[0064]然而,在可替换的实施例中,所探查的路由可以以系统的方式被确定,例如周期性地循环通过一列潜在的中继2,3 ;或者可以涉及随机和系统因素的组合。
[0065]确定探查频率和应用层路由的算法(无论是随机的还是系统的),都可以是发送VoIP客户端12自身的一部分,或者可以运行于在控制服务器(例如3b)上运行的控制模块中,该控制模块被配置成能够控制发送VoIP客户端12将在何时且在何地探査(或者经由因特网或者经由诸如蜂窝网络之类的可替换的控制媒介发出控制信号)。
[0066]另外,本发明相关的用途是用于防火墙或NAT (网络地址转换)遍历。例如在上述
示例中基本路由2e -4b- 4f-4h -4o -4n -4k -2x nj以不是一个选项,因为2x的防火
墙可以不相信发送者2e,或2e可能不能够穿透2x的NAT。也就是说,甚至初始流可以在应用层涉及中继2,3。在这种情况下,用于动态核查或更新哪个是最佳路由的过程能够确切地如上所讨论的那样进行,但是附加的标准是任何所选择的路由必须也遍历正在讨论的防火墙或NAT (以及具有找到遍历防火墙或NAT的最佳方式的目标)。应当指出的是地理上最接近目的地的中继不一定是最佳的。[0067]本发明的又一个用途是向数据处理机构报告数据以便建立网络拓扑的总模型(其可能随时间变化)。该数据处理机构可以是例如3b的服务器,或者甚至可以是分布在多个最终用户终端2之中的分布式算法。
[0068]在操作中,运行在各种不同的最终用户终端2上的多个通信客户端应用12的实例中的每一个将运行资源监控代码16来借助于如上讨论的应用层路由来探查横跨因特网的各种不同路由。不管各个通信客户端12是否使用这种探查来重定向它们自己的媒体流,它们仍然可以被设置成向数据机构3b报告探查的结果。也就是说,或者目的地终端(例如2x)或者发送终端(例如2e)将在所探查的路由上经历的所测得的诸如分组丢失、错误率、等待时间、比特率或抖动之类的传输特性(或基于这些的一些度量)报告给数据处理机构。优选地向数据处理机构3b报告同样经由因特网被执行(尽管不排除诸如蜂窝连接之类的可替换的报告媒介的可能性)。
[0069]探查的任何一个单一的动作将不足以确定哪里正出现瓶颈或其它问题。然而,一旦两个或更多路由已经被探查,那么能够推断关于瓶颈或其它问题在因特网/互联网络内的位置的信息。
[0070]再次考虑上文给出的所探查路由的示例,
【权利要求】
1.一种确定关于在包括多个路由节点的基于分组的互联网络中的网络资源的信息的方法,该方法包括: 向连接到该互联网络的多个最终用户终端中的每ー个分发用户软件,该用户软件具有除了所述网络数据收集之外的主要用户功能; 与该用户软件相关联地分发辅助代码,该辅助代码被配置成通过探查该互联网络上从相应的最終用户终端到目的地终端的不同路由来參与所述数据收集,每条路由经过多个所述路由节点; 接收在该多个最终用户终端上由辅助代码执行的探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据;以及 基于所接收的数据确定网络资源的估计。
2.权利要求1的方法,其中该用户软件和相关联的辅助代码的分发包括:向每个最終用户终端分发用户应用的相应实例,该用户应用包括用户软件和辅助代码,该用户软件和辅助代码是相同用户应用的部分,至少在于辅助代码的执行取决于该用户软件的执行。
3.权利要求2的方法,其中该辅助代码被配置成当用户应用被启动时自动随该用户软件执行。
4.权利要求2或3的方法,其中该辅助代码作为与该用户软件相同的下载和安装过程的一部分被分发。
5.前述的任一项权利要求的方法,其中该用户软件包括具有在基于分组的互联网络上以基于分组的语音呼叫、视频呼叫或頂消息交換的形式实施通信的主要用户功能的通信软件。
6.权利要求2和5的方法,其中该用户应用包括通信客户端应用,该通信客户端应用包括所述通信软件和辅助代码,并且其中: 该通信软件被配置成经由第一路由在互联网络上在它相应的最終用户终端和目的地終端之间实施所述通信,并且该辅助代码被配置成在一条或更多不同的第二路由上发送探查分组,第一和第二路由中的每一条都经过多个所述路由节点;并且 所述确定包括基于经由第一和第二路由所经历的传输特性的差异确定关于沿着第一和第二路由中的至少一条的网络资源的信息。
7.权利要求6的方法,其中: 沿着每条路由从ー个路由节点到下个路由节点的路由由更低层面的互联网络层协议确定;并且 该辅助代码被配置成通过如下步骤导致经由该一条或更多第二路由的路由:在更高层面的应用层上路由探测分组、经由在相应的ー个或更多中继最终用户终端上的用户应用的ー个或更多另外的实例将探查分组定向到目的地终端。
8.前述权利要求的方法,其中该探查根据随机算法来执行。
9.一种用在连接到包括多个路由节点的基于分组的互联网络的最終用户终端上的用户应用,该用户应用被包含在非瞬态的计算机可读介质上并且包括: 用户软件,其具有除了所述网络数据收集之外的主要用户功能; 辅助代码,其被配置成通过探查在互联网络上从相应的最終用户终端到目的地终端的多条不同路由来參与收集关于所述基于分组的互联网络中的网络资源的数据,每条路由经过多个所述路由节点; 其中该辅助代码进一步被配置成报告由该探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据,从而使得能够基于所报告的数据确定网络资源的估计。
10.一种用于确定关于在包括多个路由节点的基于分组的互联网络中的网络资源的信息的系统,该系统包括: 用于向连接到该互联网络的多个最终用户终端中的每一个分发用户软件的网络装置,该用户软件具有除了所述网络数据收集之外的主要用户功能; 其中该网络装置进一步被配置成与该用户软件相关联地分发辅助代码,该辅助代码被配置成通过探查该互联网络上从相应的最终用户终端到目的地终端的不同路由来参与所述数据收集,每条路由经过多个所述路由节点;并且 该系统包括数据处理机构,该数据处理机构被配置成接收在多个最终用户终端上由该辅助代码所执行的探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据,并且被配置 成基于所接收的数据确定网络资源的估计。
【文档编号】H04L12/721GK103503373SQ201280021988
【公开日】2014年1月8日 申请日期:2012年5月4日 优先权日:2011年5月6日
【发明者】T.佐尔佐维利斯 申请人:斯凯普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1