CN103503373B - 通信系统和方法 - Google Patents
通信系统和方法 Download PDFInfo
- Publication number
- CN103503373B CN103503373B CN201280021988.9A CN201280021988A CN103503373B CN 103503373 B CN103503373 B CN 103503373B CN 201280021988 A CN201280021988 A CN 201280021988A CN 103503373 B CN103503373 B CN 103503373B
- Authority
- CN
- China
- Prior art keywords
- user
- internet
- software
- route
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004891 communication Methods 0.000 title claims description 35
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 239000000523 sample Substances 0.000 claims description 15
- 230000000694 effects Effects 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000013480 data collection Methods 0.000 claims description 3
- 238000011900 installation process Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 241000894007 species Species 0.000 description 4
- 241000257303 Hymenoptera Species 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001256 tonic effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 206010044565 Tremor Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
- H04L43/55—Testing of service level quality, e.g. simulating service usage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/563—Software download or update
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种确定关于在包括多个路由节点的基于分组的互联网络中的网络资源的信息的方法,该方法包括:为多个连接到该互联网络的最终用户终端中的每一个分发用户软件,该用户软件具有除了网络数据收集之外的主要用户功能;与该用户软件相关联地分发辅助代码,该辅助代码被配置成通过探查在该互联网络上从相应的最终用户终端到目的地终端的不同路由来参与数据的收集,每条路由经过多个所述路由节点;接收在该多个最终用户终端上由辅助代码执行的探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据;以及基于所接收的数据确定网络资源的估计。
Description
技术领域
本发明涉及在诸如因特网之类的基于分组的互联网络上的网络资源的映射。
背景技术
图1给出了诸如因特网之类的互联网络(或互联网络的一部分)的高度示意化的表示。互联网络是其中两个或更多不同的运营商的网络被互连并被设置成根据一个或多个公共的网间互通协议来通信的设置。互联网络典型地连接多个城市或国家,并且在一定程度上本质上一般是不分层的。因特网是到目前为止互联网络最广泛流传的和最常用的示例,通过使用因特网协议(IP)或因特网协议族来限定。
如图1所示,大量诸如台式计算机、膝上型计算机、平板电脑或移动手机之类的最终用户终端2a,2b,2c…2ψ中的每一个都连接到至少一个网络服务提供者的至少一个路由节点4a,4b…4w。类似地,多个服务器3a…3d中的每一个都连接到至少一个路由节点4。每个连接可以包括一个或更多有线的和/或无线级,例如涉及到固定电话线路的有线调制解调器连接、有线的局域网(LAN)5,和/或经由无线路由器的无线连接,或者经由移动蜂窝网络的基于分组的服务的无线连接。出于说明的目的,图1中仅示出一个局域网(LAN)5,但是应当理解的是,一般地,用户终端2和紧邻它的上游节点4之间更多的连接可以是通过LAN的。另外,在通过无线路由器连接的情况下,这可以有效地形成经由小型无线局域网(WLAN)的连接,在图1中未明确地示出。
路由节点4中的每一个都直接地连接到至少一个其他相邻的路由节点4,使得服务提供者节点4中的每一个都至少彼此充当代理地互连。这里直接连接意味着在互联网络层面上只需要一个路由跳,而充当代理地连接意味着两个或更多个路由跳。
在操作中,最终用户终端2产生目的地为另外一个用户终端2或服务器3的数据分组,或者反之亦然,其中借助诸如包含在每个分组的报头部分中的IP地址之类的互联网络网络地址标识目的地。之后,该最终用户终端2向上游将分组发送到它直接连接到的它的本地网络服务提供者的路由节点4。每个路由节点4被配置成检查进来的接收自用户终端2、服务器3或路由节点4的分组的互联网络地址(例如IP地址);并且基于该地址将该分组向前转发到下一个路由节点4或目的地用户终端2或服务器3,这适当地取决于当前路由节点在互联网络内相对于目的地的位置。因此该分组经由从源用户终端2或服务器3到目的地用户终端2或服务器3的多个路由节点4被路由。
诸如那些被标注为4a-4em,4i-4l和4p-4s的一些路由节点可以处理本地业务(例如在特定的城市内),这些路由节点通过本地链路直接连接到一个或更多其它的本地路由节点(例如在同一个城市中)。诸如那些被标注为4f,4g,4m,4n,4t和4u的一些路由节点可以处理国内业务(例如在城市之间或州之间),这些路由节点通过国内链路直接连接到一个或更多其它的国内路由节点(例如在其它的城市或州中)。诸如那些被标注为4h,4o和4w的一些路由节点可以处理国际业务,这些路由节点通过一个或更多国际链路(例如海外)直接连接到在其它国家中的其它国际路由节点。而且,每个本地路由节点同样可以直接向前连接到一个或更多国内或国际的节点,和/或每个国内节点可以连接在一个或更多本地路由节点和一个或更多国际路由节点之间。然而应当理解的是,图1中示出的连接仅仅出于说明的目的,并且一般地在应有的位置上很可能存在更复杂的设置。在实践中,诸如因特网之类的互联网络很可能在地理互连的各种不同层面上包括比图1的示意性说明所示出的更多的用户终端2、服务器3和路由节点4,并且路由节点4不一定被严格划分层面为本地、国内和国际节点(例如一个国际路由节点同样可以直接连接到最终用户终端或一个或更多服务器3等等)。
正如所提到的,路由节点4包含由多个网络服务提供者形式的不同运营商(他们不一定全部是针对最终用户的提供者)运营的节点,并且不同的网络服务提供者彼此之间具有相互的路由协定。例如两个在同一城市或州内运营的网络服务提供者、或两个在不同国家中运营的网络服务提供者可以具有相互的协定来在其间路由彼此的消费者业务。
然而,这样的设置存在的问题在于,难以收集关于网络资源的信息。随着时间的过去,任何一个或多个特定的路由节点4可能经历变化的业务量。另外,不同的路由节点4在不同的时间可能经历不同的业务量,和/或不同的路由节点可能具有每单位时间用于路由不同数量的业务的不同的能力(例如不同的队列长度或处理能力)。在网络资源中的这些或其它变化可能导致诸如分组丢失、等待时间(延迟)或例如由于在某个或某些路由节点4处的路由瓶颈而在一个或多个目的地终端2或3处经历的减少的比特率之类的不同的负面特性。
知晓这样的信息例如对于网络规划目的将会是有用的,但是诸如因特网之类的大型互联网络的本质上分布式的、非集中的、多提供者的本质使得这成为一项非常困难的任务。
一些因特网服务提供者(ISP)在城市中安装监控设备,但是这无法做到把关于传输的信息(例如最终用户经历的分组丢失或等待时间)给予实际的个体。
一些ISP还要求他们的用户下载专用的应用,用户在他们的最终用户终端2上运行该应用以便帮助分析网络性能。然而这仅限于收集一个ISP的网络内关于资源的数据,而没有给出横跨互联网络的更广阔的图画。
理想的是提供一种改进的系统、方法和/或软件工具用于在诸如因特网之类的基于分组的互联网络中收集关于网络资源的信息。
发明内容
根据本发明的一个方面,提供了在包括多个路由节点的基于分组的互联网络中确定关于网络资源的信息的方法,该方法包括:向连接到该互联网络的多个最终用户终端中的每一个分发用户软件,该用户软件除了所述的收集网络数据之外具有主要的用户功能;与该用户软件相关联,分发被配置用于通过探查互联网络上从相应的最终用户终端到目的地终端的不同路由来参与所述数据收集的辅助代码,每条路由经过多个所述路由节点;接收由在多个最终用户终端上的辅助代码执行的探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据;并且基于所接收的数据确定网络资源的估计。
通过将这样的网络资源监控工具以辅助代码的形式分发给用户,其中该辅助代码与另一个现有的诸如基于IP的语音传输(VoIP)或万维网浏览器软件之类的用户软件项目相关联地被分发,而不管用户的ISP,那么本发明能够有利地利用大量现有的用户基础,从而收集来自经由各种不同网络服务提供者的节点接入互联网络的用户的数据。本发明因而允许跨越互联网络更广的部分发展网络拓扑更大的图画,并且不仅限于单一的地理区域或单一服务提供者的节点。也就是说,通过探查横越不同地理位置中的不同服务提供者(例如ISP)的设备的路由,有可能确定因特网或其它这样的互联网络的拓扑的更好的总体模型。
优选地用户软件和相关联的辅助代码的分发包括:将用户应用的相应实例分发给每个最终用户终端,该用户应用包括用户软件和辅助代码,其中用户软件和辅助代码为同一用户应用的部分,至少在于该辅助代码的执行取决于该用户软件的执行。
辅助代码可以被配置成当用户应用启动时自动随用户软件执行。
辅助代码可以被配置成当用户选择由用户软件在其执行期间呈现的选项时执行。
辅助代码可以与用户软件相同作为同一下载和安装过程的一部分被分发。
因此在优选实施例中,用户的终端将自动地参与数据的收集,而无需用户以当前一些ISP要求他们的消费者去做的方式过于麻烦地手动操作或下载单独的、孤立的应用。作为代替,辅助的资源监控代码将简单地在后台运行,而用户已经出于用户表面上使用用户应用的其它主要目的打开该用户应用(例如VoIP呼叫或浏览万维网)。以此方式降低用户的负担对于鼓励用户接纳资源监控工具并因此利用横跨互联网络大部分的大用户基础是特别有效的。
在另外的实施例中探查可以根据随机算法执行。
在一个特别优选的实施例中,用户软件包括具有在基于分组的互联网络上实施基于分组的语音呼叫、视频呼叫或IM消息交换形式的通信的主要用户功能的通信软件。
用户应用可以包括通信客户端应用,该通信客户端应用包括所述通信软件和辅助代码。
通信软件可以被配置成经由第一路由在互联网络上实施所述的在它相应的最终用户终端和目的地终端之间的通信,并且辅助代码可以被配置成在一条或更多不同的第二路由上发送探查分组,第一和第二路由中的每一条经过多个所述的路由节点;并且所述确定可以包括沿着第一和第二路由中的至少一条基于经由第一和第二路由经历的传输特性的差异来确定关于网络资源的信息。
传输特性可以包括等待时间、抖动、分组丢失、错误率和比特率中的至少一个。
沿着每条路由从一个路由节点到下一个的路由可以由更低层面的互联网络层协议确定;并且辅助代码可以被配置成通过如下步骤导致经由一条或更多第二路由的路由:在更高层面的应用层路由探查分组,经由在相应的一个或更多中继最终用户终端上的用户应用的一个或更多另外的实例将探查分组定向到目的地终端。
中继最终用户终端不需要是通信的消费者。
辅助代码可以被配置成根据网络资源的确定经由中继最终用户终端重定向通信。
辅助代码可以被配置成将由所述探查产生的数据报告给数据处理机构,该数据处理机构执行关于网络资源的信息的所述确定。
该数据处理机构可以控制所述重定向。
因此在一个特别有利的实现方式中,关于网络资源的信息不仅可以被用于为互联网络拓扑建模,而且可以被用于选择用于在应用层中继通信流的第三方中继。尽管一般地潜在成为通信系统的最终用户,该中继终端不需要是被中继的特定流的消费者。在实施例中,这在例如如下方面可以是特别有用的:为NAT或防火墙遍历找到最高效的路由(在诸如降低等待时间和/或分组丢失之类的传输特性方面是高效的);或简单地用于为该流找到最高效的路由(仅仅通过互联网络层路由(例如IP层路由)确定的路由不一定是最高效的,因为它仅仅关注从一个路由节点4到下一个的下一个直接连接上的下一个紧接的跳,而预见不到进一步沿着该路由可能出现的瓶颈或其它问题)。
在一个可替换的实施例中,用户软件包括万维网浏览器软件。
根据本发明的另一个方面,提供了使用在连接到包括多个路由节点的基于分组的互联网络的最终用户终端上的用户应用,该用户应用被包含在非瞬态的计算机可读介质上并包括:具有除了所述收集网络数据之外的主要用户功能的用户软件;被配置成参与收集在所述基于分组的互联网络中的关于网络资源的数据的辅助代码,这通过探查在互联网络上从相应的最终用户终端到目的地终端的多条不同路由来完成,每条路由经过多个所述的路由节点;其中辅助代码进一步被配置用于报告由探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据,从而使得能够基于所报告的数据确定网络资源的估计。
在实施例中,用户应用可以根据任何上述的方法特征被进一步配置。
根据本发明的另一个的方面,提供了。
附图说明
为了更好地理解本发明并示出可以如何实现本发明,将通过示例的方式参考附图,在附图中:
图1为诸如因特网之类的互联网络的示意性表示,
图2为用户应用的示意性框图,
图3为用户应用的用户界面的示意性图示,
图4为协议栈的示意性表示,以及
图5为数据分组的示意性表示。
具体实施方式
图2提供了最终用户计算机终端2的示意性框图,该终端包括一个或更多处理单元形式的处理装置和诸如ROM、硬盘驱动器和/或闪速存储器之类的非易失性存储器形式的电子存储介质。该最终用户终端可以是台式计算机、笔记本电脑、平板风格的电脑或诸如“智能电话”之类的移动手机,或诸如TV或机顶盒之类的具有嵌入式处理装置的家用电器中的任何一种。在图1中示出的每个最终用户终端2a,2b,2c…2ψ可以是这种或其它种类的任何这样的终端。
每个最终用户终端2的存储介质存储操作系统(OS)10,其被设置用于在相应的处理装置上执行。该存储介质还存储大量用户应用,例如基于IP的语音传输(VoIP)和/或即时消息传递(IM)客户端形式的通信客户端应用12,以及一个或更多诸如万维网浏览器、电子邮件客户端、音乐播放器等等之类的其它应用18。用户应用12、18也被设置成在操作系统10的控制下在处理装置上被执行。
根据本发明的实施例,通信客户端应用12包括主要部分的通信软件14以及辅助部分的代码16。主要部分(通信软件14)被配置以便当其被执行时执行通信客户端的主用户功能,例如VoIP呼叫、视频呼叫和/或IM消息传递,即用户运行该应用12所出于的主功能或目的。然而,辅助代码部分16通过探查互联网络上的各种不同路由并报告诸如所探查的路由上所经历的等待时间、分组丢失率或比特率之类的探查结果来提供参与网络资源监控的附加的、辅助的功能。
根据用户日复一日的观察,他或她表面上运行常见的通信客户端并且只需要看见这样的客户端如图3中示意性图示的常规前端用户界面,这是通过通信软件14来呈现的内容。然而,当该用户应用12在运行时,那么与主通信软件14相同,辅助的资源监控代码16也将在后台运行(以不可见或最低程度可见的方式)。可以在安装或更新该通信客户端应用时让用户知道该辅助代码,例如作为特许契约的一部分。在实施例中,通信客户端12的用户界面同样可以为用户提供启用或禁用辅助代码的资源监控的选项,例如借助可以经由客户端前端用户界面中的一些合适的控件而被唤起的选项菜单。
尽管这里它被称为应用,这不一定旨在指软件的根本不可分的单元,而是可以可替换地指任何诸如由对现有应用的插件、更新或附加项形成的复合应用之类的可执行程序(例如辅助代码16可以被提供为插件,其与通信软件14接口以便作为同一总应用12的一部分操作)。尽管如此,在优选的实施例中意图是辅助代码16至少与用户应用12的主用户功能相关联,因为它的运行取决于通信软件的执行。也就是说,用户应用12将包括用于执行为之提供用户应用的主用户功能(例如通信客户端)的主要代码14,这是当应用12被启动时启动的主软件。用户应用12之后将进一步包括用于探查和报告网络数据的辅助代码16,并且使辅助代码16的执行取决于被执行的主要代码14。例如,辅助代码16可以被看作是同一用户应用12的一部分,因为它被配置成一旦启动用户应用12就自动与主通信软件14一起运行,或者因为只有一旦用户在主软件14执行期间选择选项它才从用户应用12中运行。
辅助代码16优选地与执行用户应用的主功能的主要软件14同时被分发,并在同时由用户下载和安装,即在同一场合作为同一下载和安装操作的一部分以便用户不必手动地发起单独的下载或安装。可替换地,辅助代码16可以作为附加项被单独下载,尽管优选地是作为包含对主要软件14更新的更新过程的一部分。
从用户的角度来看,主通信软件14和用户应用12是同一个,并且大多数时间用户不需要有意识地意识到辅助代码16在后台运行(除了例如当接受初始的特许契约或切换启用或禁用辅助代码16的选项时之外)。尽管这样,通过辅助代码16的网络监控最终有益于用户,因为它能够导致改进的网络拓扑或路由。
现在将参考图1、4和5更详细地讨论辅助代码16优选地被配置成监控网络资源(或至少参与网络资源的监控)所通过的机制。下文将以与用于在因特网上实施实时语音和/或视频呼叫的VoIP客户端有关的示例的方式描述,但是应当理解的是本发明的范围可以延伸至其他种类的用于在任何基于分组的互联网络类型的设置上通信的通信客户端。
正如对于本领域技术人员所熟悉的,终端和节点在诸如因特网之类的互连网络上通信的基本机制可以被看作为协议栈(在运行在每个终端2,3和路由节点4上的软件中被具体化)。存在大量的方式来表示协议栈,但是图4示出了一种通用的方式。
在这个表示中,最低层是链路层22,它负责在用户终端2与路由节点4之间或两个路由节点4之间紧接的、直接的链路上传送比特。这可以例如涉及用于在拨号、宽带、以太网或无线保真(wi-fi)连接上传送数据的协议。该链路层22不包含在互联网络层面上路由的概念,并且不同的直接链路层协议可以被使用在不同的链路上,因为是下一层,互联网络层24(IP层),来提供用于横跨互联网络路由的公共协议。也就是说,链路层22不确定分组应当被定向到下面的哪个路由节点4或终端2,而是仅仅在一旦节点或终端基于互联网络层(例如IP层)24上的互联网络地址(例如IP地址)已经被识别时,将该分组的比特发送到下一个路由节点4或终端2。
互联网络层(例如IP层)24是负责紧接的分组路由的分组协议。如图5所示意性示出的,数据分组包括报头部分32和有效负载34。报头32包括目的地最终用户终端2的互联网络地址(例如IP地址),并且有效负载包括发送用户应用12,18所希望要发送的实际用户数据。当路由节点4接收分组时,它的IP层软件检查该IP地址并确定将该分组路由到的下个相邻的路由节点4(或最终用户终端2,如果该目的地终端是相邻的),即确定在其上发送该分组的下一个直接链路或下一个互联网络跳。然而,该IP层24在任何一个给定的节点4上都不能确定或指定用于该路由的全部拓扑,即不能一次确定多跳,而是仅仅确定下个紧接的到下个相邻节点4或终端2的跳。
传输层26添加打包在IP报头顶部的附加的报头信息。该传输协议可以因此添加一定程度的端到端的连接,诸如端口号、错误检测、分组排序和分组接收的确认。然而,传输层26仍然不为用户应用提供指定路由拓扑的机构,即不允许用户应用选择该分组将被路由通过哪个路由节点4。
最后,应用层28涉及要被包含在分组有效负载34中的用户信息,例如语音或视频呼叫的音频或视频内容,或用于IM消息的用户文本。应用12,18可以自由地在有效负载中包含任何它希望的适于正被讨论的该应用的内容。
根据优选的实现方式,本发明额外地利用应用层和分组有效负载来提供附加的路由层,以在路由拓扑上提供不被IP或传输层24,26支持的附加程度的控制。在应用层上的这种路由可以被称作形成“覆盖网络”。
例如,假设运行在发送最终用户终端2e上的通信应用12的一个实例希望向运行在目的地最终用户终端2x上的通信客户端12的另一个实例发送分组或分组的流。自然地由IP层路由独自确定的路由可以例如经由跨越大西洋的链路4h游历到4o。然而,假设改为发送应用12希望经由运行在第三中继最终用户终端2λ上的通信应用的一个实例发送该分组。在这种情况下它产生具有中继最终用户终端2的IP地址的分组,因此就IP层24而言,指定中继最终用户终端2i作为目的地终端。然而,在分组有效负载34的至少一个中,发送终端2e同样插入标识最终目的地2x的指示。当在中继终端2i上的通信应用12的该实例接收到该分组时,它解开该有效负载,确定最终的目的地终端2x的IP地址(例如基于将所指示的身份映射到IP地址的查阅表),然后用包括目的地终端2x的IP地址的IP报头再打包剩余的有效负载媒体并在因特网上再发送该分组。这之后将导致经由跨越大西洋的链路4h-4w然后经由国际链路4w-4o(在其它跳之中)的总路由,而不是直接经由4h-4o。
这样,服务器3同样可以被指定作为应用层中继终端。
在常规的覆盖网络中,这种技术只可以被使用在意图利用中继最终用户终端2,3的一些有利的特性的情况下,例如因为它允许防火墙或NAT的遍历,或因为它具有用于促进多方会议呼叫(三个或更多的参与者)的更好的处理资源。然而,根据本发明的实施例,应用层路由技术被用于强加经由某些路由节点4或某个在路由节点4之间的链路的路由以便探查该路由的诸如等待时间、分组丢失比特率、吞吐量和/或抖动之类的一些传输特性。
因此尽管用户应用12,18对分组被路由通过什么节点不具有直接的控制,但是它能够通过经由形成同一覆盖网络的一部分的中间用户应用12的路由操纵路由的一些方面。
现在将更详细地讨论这项监控网络资源的技术的一些示例应用。
再次参考图1,假设开始运行在最终用户终端2e上的VoIP客户端12设立具有目的地最终用户终端2x的语音或视频流,而在应用层上未指定任何特定路由。在这种情况下该路由不涉及任何中继最终用户终端2或服务器3并且仅仅由所发送的分组的报头中的目的地终端2x的IP地址和由网络服务提供者的路由节点4做出的路由判决来确定。例如初始的路由可以是:
然而,该VoIP客户端12可能希望确定是否另一条路由可以在实际上在一个或更多可测量的传输特性方面更好,例如降低等待时间、分组丢失或错误率、提高比特率,和/或抖动。
特别地,当在诸如因特网之类的大型互联网络上路由时,那么地理上最短的路由或由IP层独自确定的路由不一定是最好的。例如,地理上邻近的路由节点4可能会经历瓶颈。因此希望能够测试其它通过经由另外的中继最终用户终端2或服务器3(或事实上经由它们中的多个)的路由在应用层上能够被强加的可能的路由。
为此,VoIP客户端12借助于它的特殊辅助代码16被配置成借助于应用层路由沿着涉及至少一个中继最终用户节点和/或服务器3的可替换的路由发送一个或多个探查分组。例如一个或更多探查分组可以沿着以下路由被发送:
优选地该VoIP客户端12实际上将以类似的方式探查多条路由,例如其它的一些可以是:
等等。
该一个或更多探查分组可以充当对目的地终端2x的“查验(ping)”,以便调用从运行在目的地终端2x上的客户端12返回到运行在发送终端2e上的客户端12的响应,该响应报告该一个或更多探查分组在所探查的路由上经历的传输特性。可替换地,该一个或更多探查分组可以触发目的地终端2x向运行在例如3b的控制服务器上的控制器报告所经历的传输,该控制器进而又被配置成能够控制发送最终用户终端2e的行为(或者经由因特网或者经由诸如蜂窝网络之类的可替换的控制介质发出控制信号)。
初始的路由同样被探查以便得到相同的信息,或者暗中由所发送的流或者由单独的一个或更多探查分组探查。
如果根据诸如分组丢失、错误率、等待时间或比特率等等之类的一些可量化的传输特性(或者基于它们中间的一个或多个或组合它们中间的两个或更多的一些度量)任何所探查的路由被发现优于初始的或当前的路由,那么或者在发送终端2e上的客户端12或者运行在控制服务器3b上的控制器将经由改进的路由定向主语音或视频流,这借助于经由中继最终用户节点2或服务器3的应用层路由。这个过程可以在整个正在进行的流的发送中被重复以便动态地更新或核查最佳路由。
类似的技术可以被用于为其它类型的流或通信(例如文件传输或IM消息交换)找到路由。在实施例中,正被讨论的一个或多个传输特性可以取决于客户端12所要求的通信类型。
在中继终端为例如2i或2t的最终用户终端的情况下,应当指出的是中继最终用户终端不需要是该流的消费者(消费在这个意义上意味着使用该流用于它的最终目的,例如播放语音或视频流,显示IM消息,或存储通过文件传输接收的文件)。相反地,中继最终用户终端可以简单地由同意加入这个相互路由方案的用户利用又一个通信客户端应用12的实例来安装(中继终端2i或2t的用户他或她自己当成为在另外的场合中涉及的完全不同的流的发送者或消费者时可以从总的协定中获益)。
在优选的实施例中,探查以与蚁群相似的方式被确定。为了获取食物,群体中的大部分蚂蚁将跟随食物和蚂蚁窝之间由另一个蚂蚁留下的气味踪迹。然而,偶尔一只随机的蚂蚁将离开主流并随机地游走离开。如果这种随机的游走碰巧导致到食物的更好的路由,那只蚂蚁将返回蚂蚁窝,留下新的气味踪迹。大批蚂蚁之后将跟随新的踪迹。以相似的方式,本发明可以采用随机的“蚁群”风格的算法,借此主业务流经由当前路由被路由,但是探查分组不时被随机地在不同的测试路由上发送。或者探查的定时和/或路径可以是随机的。
然而,在可替换的实施例中,所探查的路由可以以系统的方式被确定,例如周期性地循环通过一列潜在的中继2,3;或者可以涉及随机和系统因素的组合。
确定探查频率和应用层路由的算法(无论是随机的还是系统的),都可以是发送VoIP客户端12自身的一部分,或者可以运行于在控制服务器(例如3b)上运行的控制模块中,该控制模块被配置成能够控制发送VoIP客户端12将在何时且在何地探查(或者经由因特网或者经由诸如蜂窝网络之类的可替换的控制媒介发出控制信号)。
另外,本发明相关的用途是用于防火墙或NAT(网络地址转换)遍历。例如在上述示例中基本路由可以不是一个选项,因为2x的防火墙可以不相信发送者2e,或2e可能不能够穿透2x的NAT。也就是说,甚至初始流可以在应用层涉及中继2,3。在这种情况下,用于动态核查或更新哪个是最佳路由的过程能够确切地如上所讨论的那样进行,但是附加的标准是任何所选择的路由必须也遍历正在讨论的防火墙或NAT(以及具有找到遍历防火墙或NAT的最佳方式的目标)。应当指出的是地理上最接近目的地的中继不一定是最佳的。
本发明的又一个用途是向数据处理机构报告数据以便建立网络拓扑的总模型(其可能随时间变化)。该数据处理机构可以是例如3b的服务器,或者甚至可以是分布在多个最终用户终端2之中的分布式算法。
在操作中,运行在各种不同的最终用户终端2上的多个通信客户端应用12的实例中的每一个将运行资源监控代码16来借助于如上讨论的应用层路由来探查横跨因特网的各种不同路由。不管各个通信客户端12是否使用这种探查来重定向它们自己的媒体流,它们仍然可以被设置成向数据机构3b报告探查的结果。也就是说,或者目的地终端(例如2x)或者发送终端(例如2e)将在所探查的路由上经历的所测得的诸如分组丢失、错误率、等待时间、比特率或抖动之类的传输特性(或基于这些的一些度量)报告给数据处理机构。优选地向数据处理机构3b报告同样经由因特网被执行(尽管不排除诸如蜂窝连接之类的可替换的报告媒介的可能性)。
探查的任何一个单一的动作将不足以确定哪里正出现瓶颈或其它问题。然而,一旦两个或更多路由已经被探查,那么能够推断关于瓶颈或其它问题在因特网/互联网络内的位置的信息。
再次考虑上文给出的所探查路由的示例,
。
如果说例如,路由(ii)经历比路由(ii)明显更低的等待时间或分组丢失,这可以暗示路由节点4f(在第二条路由(ii)中被去除)是有问题的,例如当前有很多业务,超过了负荷。
另一方面,如果路由(i)-(iii)和(vi)的所有路由经历比采取可替换的跨越大西洋路由的路由(iv)和(v)相对较高的延时或分组丢失,这可以暗示4h和4o之间的跨越大西洋的路由是问题的来源。这是一个示例,其中更短的地理距离不一定是更好路由的保证。
作为另一个示例,假设路由(i)到(v)的所有路由都是坏的,并且在不同的跨越大西洋的路由之间存在很小的差别,但是路由(vi)显示出在延时或分组丢失上明显的改善(降低)。这可以暗示节点4n在链条中处于有问题的级。
在另一个示例中,如果所有涉及最终用户终端2o,2p和2q的路由都是坏的,而其它大多数路由都是好的,那么有可能推断出LAN5内存在问题。
因此实际上,由多个最终用户终端2针对多条路由报告的数据可以被认为形成由数据处理机构解答或估计的大型联立方程。即使不可能严格地“解答”该方程,它仍然有可能建立可能的网络拓扑的图画或模型。涉及越多最终用户终端的路由的越多组合被测试,那么越多的链路或节点可以作为潜在问题来源的因素考虑。因此与诸如VoIP通信客户端之类的流行用户应用一起分发资源监控代码16是特别有利的。
最终,所聚集的信息可以被用于修改该互联网络,例如安装新的设备,升级现有的设备,或在一个或更多节点处修改路由策略。
应当理解的是上述的实施例仅仅通过示例的方式被描述。
例如,本发明不限于使用在VoIP客户端中,而是可以用于在其它种类的通信客户端中控制路由以便为IM消息交换选择路由。而且,本发明不限于在通信客户端中分发,而是可以可替换地与另外种类的广泛流传的用户应用一起分发,诸如由万维网浏览器或音乐播放器等等。
通过辅助代码16的探查动作可以包括发送单独的、人造的探查分组或消息,即不含有任何用户业务或是任何涉及主要代码14的功能的数据或是任何真正的其它目的。可替换地,通过辅助代码16的探查动作可以涉及使用已经由主要代码14发送的与它的“正常”主要功能有关的分组,例如当主要代码14执行存在的查验(ping)来获取来自其它节点的存在信息,或当主要代码14收集关于在对等情形中的分布式数据库的节点的信息时。即在这种情况下,辅助代码将为通过第一代码14传送的某些分组添加辅助的目的。
而且,尽管上文在很大程度上根据最终用户终端2被描述,但是任何发送终端、目的地终端或中继终端都可以可替换地是服务器终端3。应当指出的是术语服务器不一定旨在限制为在单一站点处或单一外壳中的单一服务器单元,而且可以涵盖在多个外壳或站点中的多个服务器单元的设置。关于网络服务提供者的路由节点4,应当指出的是路由器或路由不暗示任何网络设备的特定部分,而是能够指用于转发数据的节点或转发数据的动作。另外,网络服务提供者不旨在限制为任何特别种类的商业模型,而是能够一般地指任何网络运营商或类似。
给定本文的公开内容,其它变形对于本领域技术人员是显而易见的。本发明的范围不由上文中描述的示例实施例所限制,而是仅仅由随附的权利要求书所限制。
Claims (10)
1.一种确定关于在包括多个路由节点的基于分组的互联网络中的网络资源的信息的方法,该方法包括:
通过如下方式向连接到该互联网络的多个最终用户终端中的每一个分发用户软件:向所述最终用户终端中的每一个分发用户应用的相应实例,该用户应用包括所述用户软件和辅助代码,所述用户软件和辅助代码是相同用户应用的一部分,至少是所述辅助代码的执行依赖于所述用户软件的执行,所述辅助代码作为与所述用户软件相同的下载和安装过程的一部分分发,所述用户软件具有除了网络数据收集之外的主用户功能,所述用户软件包括万维网浏览器软件;
与该用户软件相关联地分发辅助代码,该辅助代码被配置成通过探查该互联网络上从相应的最终用户终端到目的地终端的不同路由来参与数据的所述收集,每条路由经过多个所述路由节点;
接收在该多个最终用户终端上由所述辅助代码执行的所述探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据,所述辅助代码被配置成向数据处理机构报告从所述探查产生的数据,该数据处理机构基于所接收的数据确定网络资源的估计。
2.如权利要求1所述的方法,其中该辅助代码被配置成当用户应用被启动时自动随该用户软件执行。
3.如权利要求1所述的方法,其中该辅助代码被配置成当用户选择该用户软件在其执行期间呈现的选项时执行。
4.如权利要求1所述的方法,其中该用户软件还包括具有在基于分组的互联网络上以基于分组的语音呼叫、视频呼叫或IM消息交换的形式实施通信的主用户功能的通信软件。
5.如权利要求1所述的方法,其中该用户应用还包括通信客户端应用,该通信客户端应用包括通信软件和辅助代码,并且其中:
该通信软件被配置成经由第一路由在互联网络上在该通信软件的相应最终用户终端和目的地终端之间实施通信,并且该辅助代码被配置成在一条或更多不同的第二路由上发送探查分组,第一和第二路由中的每一条都经过多个所述路由节点;并且
所述确定网络资源的估计包括基于经由第一和第二路由所经历的传输特性的差异确定关于沿着第一和第二路由中的至少一条的网络资源的信息。
6.如权利要求5所述的方法,其中所述传输特性包括延迟、抖动、分组丢失、差错率和比特率中的至少一个。
7.如权利要求5所述的方法,其中:
沿着每条路由从一个路由节点到下个路由节点的路由由更低层面的互联网络层协议确定;并且
该辅助代码被配置成通过如下步骤导致经由该一条或更多第二路由的路由:在更高层面的应用层上路由探查分组、经由在相应的一个或更多中继最终用户终端上的用户应用的一个或更多另外的实例将探查分组定向到目的地终端。
8.如权利要求1所述的方法,其中该探查根据随机算法来执行。
9.一种计算设备,包括:
一个或多个计算机处理器;
一个或多个计算机可读存储媒体;以及
包含在该一个或多个计算机可读存储媒体上的用户应用,该用户应用被配置成在被配置为连接到包括多个路由节点的基于分组的互联网络的最终用户终端上使用,该用户应用包括:
用户软件,该用户软件具有除了网络数据收集之外的主用户功能,该用户软件包括网络浏览器软件;
辅助代码,其被配置成通过探查在互联网络上从相应的最终用户终端到目的地终端的多条不同路由来参与收集关于所述基于分组的互联网络中的网络资源的数据,每条路由经过多个所述路由节点;
其中该辅助代码进一步被配置成报告由该探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据,从而使得能够基于所报告的数据确定网络资源的估计。
10.一种用于确定关于在包括多个路由节点的基于分组的互联网络中的网络资源的信息的系统,该系统包括:
用于向连接到该互联网络的两个或更多个最终用户终端中的每一个分发用户软件的网络装置,该网络装置被配置成与该用户软件相关联地分发辅助代码,该辅助代码被配置成通过探查该互联网络上从相应的最终用户终端到目的地终端、沿着多个路由节点的不同路由来参与数据的收集,该用户软件包括网络浏览器软件;以及
不同于该网络装置的数据处理机构,该数据处理机构被配置成接收在多个最终用户终端上由该辅助代码所执行的探查产生的数据,该数据包含由涉及不同网络服务提供者的路由节点的路由产生的数据,并且被配置成基于所接收的数据确定网络资源的估计。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/102471 | 2011-05-06 | ||
US13/102,471 | 2011-05-06 | ||
US13/102,471 US9426041B2 (en) | 2011-05-06 | 2011-05-06 | Communication system and method |
PCT/EP2012/058192 WO2012152671A1 (en) | 2011-05-06 | 2012-05-04 | Communication system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103503373A CN103503373A (zh) | 2014-01-08 |
CN103503373B true CN103503373B (zh) | 2017-04-26 |
Family
ID=46046183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280021988.9A Active CN103503373B (zh) | 2011-05-06 | 2012-05-04 | 通信系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9426041B2 (zh) |
EP (1) | EP2695329B1 (zh) |
JP (1) | JP6067682B2 (zh) |
KR (1) | KR101983404B1 (zh) |
CN (1) | CN103503373B (zh) |
WO (1) | WO2012152671A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9426506B2 (en) * | 2012-08-22 | 2016-08-23 | University-Industry Cooperation Group Of Kyung Hee University | Apparatuses for providing and receiving augmented broadcasting service in hybrid broadcasting environment |
US10333824B1 (en) * | 2013-01-02 | 2019-06-25 | 8X8, Inc. | Analysis of transmission characteristics in a voice-over-IP network |
WO2014160652A1 (en) * | 2013-03-25 | 2014-10-02 | Marvell Word Trade Ltd. | Hardware acceleration for routing programs |
US11743332B2 (en) * | 2016-04-26 | 2023-08-29 | Umbra Technologies Ltd. | Systems and methods for routing data to a parallel file system |
CN111263012B (zh) * | 2020-01-17 | 2021-08-27 | 西安迪科数金智能科技有限公司 | 一种数字无中心呼叫系统及方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2181206C (en) * | 1995-07-24 | 2001-03-13 | Anwar Elwalid | A method for admission control and routing by allocating network resources in network nodes |
JP4511021B2 (ja) | 2000-12-28 | 2010-07-28 | 富士通株式会社 | トラフィック情報収集装置およびトラフィック情報収集方法 |
WO2002069580A1 (en) * | 2001-02-28 | 2002-09-06 | Measure Technology Ireland Limited | Method and system for bandwidth estimation |
IL141855A0 (en) | 2001-03-07 | 2002-03-10 | Onetiercommunications Inc | A method and apparatus for providing an improved quality of service for data transfer over the internet |
JP2003244235A (ja) | 2002-02-13 | 2003-08-29 | Fujitsu I-Network Systems Ltd | 品質監視方式およびそれに用いるVoP電話機 |
JP2004080483A (ja) | 2002-08-20 | 2004-03-11 | Ntt Communications Kk | VoIP用アダプタ |
US7591017B2 (en) | 2003-06-24 | 2009-09-15 | Nokia Inc. | Apparatus, and method for implementing remote client integrity verification |
JP2005020217A (ja) | 2003-06-25 | 2005-01-20 | Sony Ericsson Mobilecommunications Japan Inc | 携帯無線端末 |
US8484348B2 (en) * | 2004-03-05 | 2013-07-09 | Rockstar Consortium Us Lp | Method and apparatus for facilitating fulfillment of web-service requests on a communication network |
JP2007060189A (ja) | 2005-08-24 | 2007-03-08 | Softbank Mobile Corp | 通信品質測定方法、移動通信端末装置、サーバシステム、通信品質測定システム及びアプリケーションプログラム |
US7652990B2 (en) * | 2005-11-29 | 2010-01-26 | Alcatel-Lucent Usa Inc. | Method and apparatus for providing quality of service level in broadband communications systems |
CN101188509B (zh) | 2006-11-15 | 2011-10-05 | 富士通株式会社 | 一种为网络服务提供服务质量保证的方法、系统 |
US8374102B2 (en) * | 2007-10-02 | 2013-02-12 | Tellabs Communications Canada, Ltd. | Intelligent collection and management of flow statistics |
GB2469471B (en) * | 2009-04-14 | 2015-01-14 | Skype | Optimising communications |
US8346781B1 (en) * | 2010-10-18 | 2013-01-01 | Jayson Holliewood Cornelius | Dynamic content distribution system and methods |
-
2011
- 2011-05-06 US US13/102,471 patent/US9426041B2/en active Active
-
2012
- 2012-05-04 CN CN201280021988.9A patent/CN103503373B/zh active Active
- 2012-05-04 WO PCT/EP2012/058192 patent/WO2012152671A1/en active Application Filing
- 2012-05-04 KR KR1020137029358A patent/KR101983404B1/ko active IP Right Grant
- 2012-05-04 EP EP12719682.2A patent/EP2695329B1/en active Active
- 2012-05-04 JP JP2014509683A patent/JP6067682B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
KR101983404B1 (ko) | 2019-05-29 |
EP2695329B1 (en) | 2018-08-01 |
EP2695329A1 (en) | 2014-02-12 |
JP6067682B2 (ja) | 2017-01-25 |
US20120281560A1 (en) | 2012-11-08 |
US9426041B2 (en) | 2016-08-23 |
CN103503373A (zh) | 2014-01-08 |
WO2012152671A1 (en) | 2012-11-15 |
JP2014513501A (ja) | 2014-05-29 |
KR20140027226A (ko) | 2014-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106375214B (zh) | 一种基于sdn的层次化路由路径确定方法及装置 | |
Misra et al. | Network routing: fundamentals, applications, and emerging technologies | |
CN104969518B (zh) | 用于路由数据的方法和装置 | |
CN103503373B (zh) | 通信系统和方法 | |
CN109309621A (zh) | 基于服务级别协议选择下一跳的方法和网络设备 | |
CN106130913B (zh) | 一种多运营商接入情况下基于策略的多wan口路由器的选路方法 | |
CN104539531A (zh) | 数据传输方法及装置 | |
Hakiri et al. | Managing wireless fog networks using software-defined networking | |
CN101997826A (zh) | 一种控制网元、转发网元及因特网协议网络的路由方法 | |
CN101652968A (zh) | 混合有线和无线通用接入网 | |
Galán-Jiménez et al. | Overview and challenges of overlay networks: A survey | |
Lao et al. | TOMA: A viable solution for large-scale multicast service support | |
Campista et al. | Challenges and research directions for the future internetworking | |
CN101854387B (zh) | 分布式索引服务器架构下的p2p流量优化方法和系统 | |
CN104270312B (zh) | 支持流量优化和应用感知的中继路径分配系统及方法 | |
Zhang et al. | Anyopt: Predicting and optimizing ip anycast performance | |
CN106899641A (zh) | 数据资源的获取方法、服务器、控制设备和通信系统 | |
Alotaibi et al. | Multidomain SDN‐Based Gateways and Border Gateway Protocol | |
Miranda et al. | Intrusion prevention scheme against rank attacks for software-defined low power IoT networks | |
CN101986605B (zh) | 一种基于骨干网的用户上网数据处理方法和系统 | |
Han et al. | Enhancing end-to-end availability and performance via topology-aware overlay networks | |
Tavakoli | Exploring a centralized/distributed hybrid routing protocol for low power wireless networks and large-scale datacenters | |
Chen et al. | Differentiated transmission services and optimization based on two‐dimensional forwarding for Internet traffic in the AS | |
Swinnen et al. | An evaluation of bgp-based traffic engineering techniques | |
Conti et al. | Design of a flexible cross-layer interface for ad hoc networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200330 Address after: Redmond, Washington, USA Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC Address before: Ai Erlandubailin Patentee before: Skype |
|
TR01 | Transfer of patent right |