用于推断广域网中的网络拓扑和路径度量的系统和方法与流程

文档序号:13943283阅读:197来源:国知局

相关申请的交叉引用

本申请要求于2015年06月29日提交的题为“systemsandmethodsforinferringnetworktopologyandpathmetricsinwideareanetworks(用于推断广域网中的网络拓扑和路径度量的系统和方法)”的美国专利申请no.14/753,883的优先权和权益,所述申请通过引用全文并入本文。



背景技术:

信息通过计算机网络进行传送。信息被表示为划分为分组的位。分组在例如交换机和路由器的网络设备间传递,从而通过计算机网络传播信息。每个分组从其来源被传向相应分组中的报头信息所指定的目的地。分组的来源和目的地可能分别处于网络的不同部分,每个部分由不同方所运营。在来源和目的地之间可能存在多条可能路由。

诸如互联网的广域网(“wan”)可以包括被称作自治系统(“as”)的多个子网。自治系统是网络的一部分,该部分向该网络中的其它部分表现为好像它具有单一路由策略的统一管理并且向该网络的其它部分呈现可达网络目的地的一致画面,该可达网络目的地例如作为能够通过as而到达的网络地址空间。在一些实例中,自治系统可以通过网络内唯一的自治系统编号(“asn”)来识别。通常,自治系统的运营者与第三方协定以允许数据在相应第三方所控制的一个或多个自治系统上被承载,这通常根据按照使用计费的输运的“结算”协定或者作为“免结算”的对等协定。因此在自治系统运营者之间的协定的范围之内,数据可以在对等点、多归属(multi-homed)网络设备、互联网交换点(“ixp”)等处从一个自治系统被传送至另一个自治系统。因此,wan中的网络设备能够跨网络路由进行通信,所述网络路由可以跨越多个自治系统。



技术实现要素:

在一些方面,本公开涉及一种系统。所述系统包括多个网络度量监视器,所述多个网络度量监视器被配置为获得一个或多个网络度量的测量,并且基于所获得的测量向第一网络中的网络分析器传送网络评估信息,所述网络评估信息指示从相应网络度量监视器到第二网络中的节点的一条或多条网络路径的特性的值。所述多个网络度量监视器中的至少一个位于所述第一网络之外的网络中。所述系统包括网络分析器,所述网络分析器被配置为从所述多个网络度量监视器接收所述网络评估信息,并且汇总所接收的网络评估信息。所述系统包括所述第一网络的网络控制器,所述网络控制器被配置为基于所汇总的信息在从所述第一网络到所述第二网络中的所述节点的多条潜在路由中选择满足准则集合的路由;并且使用所选择的路由针对从所述第一网络通过所述第二网络中的所述节点的数据流设置路由策略。

在一些方面,本公开涉及一种方法。所述方法包括由第一网络中的包括至少一个处理器的网络分析器从多个网络度量监视器接收网络评估信息,所述网络评估信息指示从相应网络度量监视器到第二网络中的节点的一条或多条网络路径的特性值,其中,至少一个网络度量监视器位于所述第一网络之外的网络中。所述方法包括由所述网络分析器汇总所接收的网络评估信息。所述方法包括基于所汇总的信息在从所述第一网络到所述第二网络中的所述节点的多条潜在路由中选择满足准则集合的路由,以及使用所选择的路由针对从所述第一网络通过所述第二网络中的所述节点的数据流设置路由策略。

在一些方面,本公开涉及一种存储指令的非瞬态计算机可读介质,所述指令在被计算机处理器执行时使得所述计算机处理器:从多个网络度量监视器接收网络评估信息,其中,至少一个网络度量监视器位于第一网络之外的网络中,所述网络评估信息指示从相应网络度量监视器到第二网络中的节点的一条或多条网络路径的特性的值;汇总所接收的网络评估信息;基于所汇总的信息在从所述第一网络到所述第二网络中的所述节点的多条潜在路由中选择满足准则集合的路由;以及使用所选择的路由针对从所述第一网络通过所述第二网络中的所述节点的数据流设置路由策略。

附图说明

本公开的上述和相关目标、特征、和优势将在结合附图时通过参考以下详细描述而更全面地被理解,其中:

图1是包括多个自治系统的示例网络环境的框图;

图2是图示网络分析的方法的流程图;

图3是图示网络分析中的阶段的细节的示图;

图4是图示用于基于多个第三方网络的网络分析来进行路由选择的示例方法的流程图;

图5是适于在所描述的各个实施方式中使用的网络设备的框图;以及

图6是适于在所描述的各个实施方式中使用的计算系统的框图。

出于清楚的目的,可以并不在每个附图中标记出每个组件。附图并非意在依比例绘制。各附图中相似的附图标记和名称指示相似的要素。

具体实施方式

图1是包括多个路由域或自治系统(“as”)网络的示例网络环境100,所述as网络例如所图示的接入网络112、传输网络114(a)、114(b)和114(c)(本文统称为传输网络114)以及服务网络118。虽然互联网是大型网络100的良好示例,但是该描述同样也适用于其它网络。

宽泛地看,所图示的网络环境100包括服务网络118,其包括主机150以及由网络控制器180所控制的附加网络设备160,例如交换机或路由器。所图示的网络环境100还包括接入网络112。主机150所提供的服务的终端用户对终端设备120进行操作,所述终端设备120经由接入网络112中的接入节点126来接入网络。接入网络112的一个非限制示例是互联网服务提供者(“isp”)。终端设备120经由一个或多个传输网络114与主机150交换数据,所述传输网络114可以是被用来在服务网络118和接入网络112之间承载数据的任何网络。例如,主机150可以通过附加网络设备160传送数据分组,所述附加网络设备160将数据分组路由至边缘节点164,所述边缘节点164将服务网络118连接至根据控制器180控制的路由策略所选择的传输网络114。所选择的传输网络114沿途转发数据分组直至其到达接入网络112的边缘节点。在一些实例中,服务网络118可以具有到接入网络112的直接连接,使得不使用传输网络114。在一些实例中,传输网络114也可以是未示出的其它网络设备的接入网络。无论如何,接入网络112随后都将数据分组转发至接入节点126。接入节点126随后将所述分组转发至终端设备120。

网络分析器188聚集描述每个参与网络的网络性能的数据,所述参与网络例如接入网络112、传输网络114和服务网络118。所聚集的数据随后被用来确定一个或多个度量的值,所述一个或多个度量描述主机151以及服务一个或多个终端节点120的接入节点126之间的一条或多条路由的一部分。例如,如图1所示,存在通过传输网络114(a)的第一路由以及通过传输网络114(b)和114(c)的第二路由。网络分析器188聚集描述这些路由的数据。网络分析器188将分析提供至控制器180,并且控制器180随后使用一个或多个度量的所确定的值在可能路由之间作出选择以供在主机150和终端节点120之间进行数据交换。在一些实施方式中,例如为了负载均衡而选择多条路由。在一些实施方式中,控制器180经由控制面182配置网络设备160以使用所选择的一条或多条路由。主机150通过网络设备160向终端设备120传送分组并且从网络控制器180所选择的路由获益。在一些实施方式中,如下文更详细描述的,去往终端节点120的分组源自于高速缓存,例如服务网络118中的源高速缓存152或者位于传输网络114下游(如所示出)或者甚至位于接入网络112自身中的场外高速缓存(off-sitecache)154。

下文详细描述的图5图示了适于在接入网络112、传输网络114和服务网络118中使用的示例网络设备131,例如作为网络设备160、边缘设备164或166、或者接入节点126。下文详细描述的图6图示了示例计算设备141,其适于用作主机150、控制器180、分析器188、终端设备120、源高速缓存152、场外高速缓存154,或者甚至作为网络设备160、边缘设备164或166,或者接入节点126。在一些实施方式中,网络112、114或118中的一个或多个使用网络功能虚拟化(“nfv”)来实现。在nfv网络中,通常在网络设备160(或者边缘设备164或166)中实现的一些网络功能被实现为在处理器(例如,通用处理器)上执行的软件。在一些实施方式中,该虚拟化网络功能包括负载均衡、访问控制、防火墙、入侵检测、和路由中的一种或多种。其它网络功能也可以以这种方式进行虚拟化。

返回图1,更为详细地,所图示的网络环境100使得能够在例如终端设备120、主机150、源高速缓存152、和场外高速缓存154的各个网络设备之间进行通信。网络100在逻辑上被划分为例如自治系统112、114和118的子网,它们均由链接在一起以在参与设备之间形成一条或多条通信路径的各种网络设备所组成。例如,网络设备160在服务网络160中被图示为具有形成数据面184的、例如将网络设备160连接至边缘设备164的链路。每个联网设备包括用于传送和接收通常作为一个或多个分组的数据的至少一个网络接口。该网络接口将联网设备互相链接,从而形成了网络。网络环境100可以由多个网络组成,所述多个网络均可以是以下的任何一种:诸如公司内联网的局域网(lan)、城域网(man)、广域网(wan)、诸如互联网的互连网络,或者例如点对点wifi对等网络的对等网络。设备之间的数据链路可以是有线链路(例如,光纤、同轴线缆、cat-5、cat-5e、cat-6等)和/或无线链路(例如,基于无线电、卫星、或微波的)的任何组合。网络112、114和118均可以是公用网络、专用网络,或者是公用网络和专用网络的组合。网络可以是任何类型和/或形式的数据网络和/或通信网络。

出于该描述的目的,终端设备120是经由服务网络118之外的网络(例如,接入网络112)参与与主机150的数据交换或者充当源高速缓存152或场外高速缓存154的数据宿的任何类型的计算设备。终端设备120可以被配置用于用户交互,例如作为用户设备。终端设备120可以是联网的“物联网”设备,诸如恒温器、火警警报器、或者诸如天气站的传感器阵列。终端设备120可以是膝上型计算机、台式计算机、平板计算机、电子板、个人数字助理、智能电话、视频游戏设备、电视机、电视辅助盒(也被称作“机顶盒”)、信息亭、便携式计算机,或者任何其它这样的设备。终端设备120能够向用户呈现内容或者促进向用户呈现内容。终端设备120通常运行操作系统,其管理终端设备120上的软件应用的执行。在一些实施方式中,操作系统随用户设备20提供。应用在操作系统所控制的计算场境(context)内执行,即在操作系统的“顶端(ontop)”执行。应用可以本原地随操作系统一起安装,或者随后例如由用户安装。在一些实施方式中,操作系统和/或应用被嵌入在终端设备120之内,例如在只读存储器中编码。

接入节点126用对接入网络112的访问来服务一个或多个终端节点120。在一些实例中,终端设备120直接连接至接入节点126。在一些实例中,终端设备120通过一个或多个中间设备(未示出)连接至接入节点126。例如,终端用户可以操作具有连接至接入节点126的本地路由器或交换机的小型局域网,并且终端设备120经由所述局域网连接至接入节点126。然而,接入节点126通常是往来于终端节点120的所有业务都必须经过的节点。它也是在定址到终端设备120的分组到达其目的地之前被接入网络112所控制的最后或接近最后的网络设备。因此,从网络控制器180和分析器188的角度来看,选择去往接入节点126的路由与选择去往由接入节点126服务的任何终端设备120的路由是等同的。在一些实施方式中,网络控制器180和分析器188将进一步从接入网络112中的终端设备120所移除的网络节点视为接入节点126的代理。

去往接入节点126并且由此去往终端设备120的路由经过接入网络112的边缘节点166。大型接入网络112可以具有任何数目的边缘节点166。边缘节点166可以在地理上分布。接入网络112可以具有在各个地理位置处的与相同传输网络114的多个接触点。在一些实施方式中,在经接入网络112中的每个可能的边缘节点166去往接入节点126的路由之间可能存在着可测量的网络性能差异。例如,接入节点126与其它边缘节点166相比可能明显更接近于一个边缘节点166,或者特定边缘节点166和接入节点126之间的路径可能与其它路径相比较不拥塞。一些网络性能特性的值可能与日内时间相关联,例如时延在高峰网络使用时段期间可能更高。网络分析器188测量经过接入网络112的每条可能路由的网络性能。在一些实施方式中,该测量与测量时间或测量时间间隔相关联。

去往接入网络112的路由可能经过一个或多个中间网络,所述中间网络在本文被称作传输网络114。传输网络114可以是被用来在服务网络118和接入网络112之间承载数据分组的任何网络。传输网络114可以是由不同于服务网络118和/或接入网络112的运营者的第三方所控制的一个或多个自治系统。传输网络114可以是as内的不同路由域,其中路由域是网络中向所述网络的其它部分呈现可达网络目的地的一致画面的部分。每个传输网络114都可能影响到网络性能质量并且引入附加成本。例如,一些网络作为收取承载第三方数据的费用的“输运”网络来操作。然而,在服务网络118足够大从而可选择供到达接入网络112的传输网络114的情况下,控制器180能够导引业务通过最满足该业务的要求的传输网络。例如,一些业务可能无论网络质量如何都要求最低成本的传输,而其它业务则可能无论成本如何都要求具有高带宽的网络路由。在一些实施方式中,所选择路由将经过多个传输网络114。例如,在图1中,在服务网络118和接入网络112之间具有至少一条同时经过传输网络114(b)和传输网络114(c)二者的路由。在一些实施方式中,针对沿路由的每个传输网络来测量性能质量。在一些这样的实施方式中,在针对一个传输网络114的测量中所使用的精度、频率或时间间隔中的一个或多个不同于针对另一个传输网络114的测量中所使用的精度、频率或时间间隔中的一个或多个。

服务网络118是向终端设备120提供服务的主机150的归属。例如,主机150可以是电子邮件服务器、文件服务器、网页服务器,或者任何其它网络服务主机。为了简单,本公开将主机150视为内容递送网络(“cdn”)的一部分,但是这并非意在作为限制。作为cdn的一部分,主机150可以随遍布网络分布的一个或多个高速缓存进行工作。例如,源高速缓存152可以在服务网络150内在接近于特定边缘节点164的位置处进行操作。源高速缓存152所托管的数据能够通过在服务网络118上具有最低负担的邻近的边缘节点164被传送至接入网络。在一些实施方式中,主机150可以随在第三方网络中——例如在传输网络114(c)中或者甚至在接入网络112自身中——操作的场外高速缓存154进行工作。在一些实施方式中,源高速缓存152和场外高速缓存154被配置为例如经由网络而将一个或多个性能度量的测量发送至分析器188。例如,场外高速缓存154能够测量与接入网络112的数据通信的性能度量。除内容递送网络之外的其它网络服务可以使用类似分布的服务器。

源高速缓存152和场外高速缓存154均包括数据存储,所述数据存储均可以是适于存储计算机可读数据的任何设备或设备集合。合适的数据存储设备包括易失性或非易失性存储、网络附接的存储、和存储域网络。数据存储设备可以包含一个或多个大容量存储设备,所述大容量存储设备可以共同定位或分布。适于存储数据的设备包括半导体存储器设备,诸如eprom、eeprom、sdram和闪存设备。适于存储数据的设备包括磁盘,例如内部硬盘或可移动盘、磁性光盘,以及cdrom、dvd-rom和盘驱动器。数据存储设备可以被虚拟化。数据存储设备可以经由中间服务器和/或经由网络进行访问。数据存储设备可以将数据结构化为文件、数据块或组块的集合。数据存储设备可以例如使用冗余存储和/或错误恢复数据(例如,奇偶位)来提供错误恢复。源高速缓存152和场外高速缓存154均可以托管数据库,例如关系数据库。在一些实施方式中,数据被记录为数据存储中所存储的数据库中的一个或多个数据库表中的条目。在一些这样的实施方式中,使用诸如sql的查询语言来访问数据。源高速缓存152和/或场外高速缓存154均可以托管文件存储系统。数据可以被结构化存储为知识库。数据可以以加密形式存储。对所存储数据的访问可以被一个或多个认证系统所限制。

网络控制器180为经过服务网络118的数据确定路由。在一些实施方式中,控制器180创建路由表,并且例如经由控制面182对网络设备160进行远程编程以使用所述路由表。在一些实施方式中,控制器180是软件定义网络(“sdn”)控制器。在一些实施方式中,经过第三方网络的路由能够从服务网络118内进行控制。在一些实施方式中,控制器180仅将分组路由至针对“下一个网络”传输网络114的边缘节点164并且依赖于所述下一个网络根据该网络自己的策略来转发分组。在一些实施方式中,服务网络118内的分组被封装(例如,利用多协议标签交换(“mpls”)报头)并且经隧道送至控制器180所选择的边缘节点164。在一些这样的实施方式中,所述封装标识边缘节点164的出口端口,并且边缘节点164对所接收到的分组进行拆封并经由所标识的出口端口将它们传送至下一个网络。

网络分析器188聚集网络性能度量的测量。分析器188使用所聚集的测量数据来了解关于路由选择的决策。在一些实施方式中,网络分析器188与网络控制器180共同定位或者被并入网络控制器180中。在一些实施方式中,网络分析器188是与网络控制器180进行通信的一个或多个独立计算系统。在一些实施方式中,网络分析器188是虚拟化计算系统。

通过网络的通信可以使用一个或多个度量进行测量。例如,吞吐量是在固定时间段内在网络的一部分上传送的信息量,即位数目。带宽是最大潜在吞吐量,其中限制是物理的或人为的(例如,策略驱使的)。在网络设备尝试得到比可用带宽所能够容纳的吞吐量的更多的吞吐量时发生拥塞。实际吞吐量(goodput)是排除了诸如网络配置数据、协议控制信息、或丢失分组重传的其它业务之外的信息内容的吞吐量。时延是在发送者传送分组时和意图接收者处理所述分组时之间流逝的时间量,即可归因于传输的延迟。滞后是延迟的结果,例如从通信参与者的角度对延迟的感知。例如,在延迟超过某个容忍阈值时可以出现滞后,例如在延迟变得能够被终端用户所注意到或者无法满足通信协议的服务质量(“qos”)要求的情况下。虽然在分组在传输中丢失或损坏时也会发生滞后,但是这通常被视为等同于时延。时延(和滞后)可以按照单程传输进行测量或者作为分组传输以及后续响应或确收的往返时间来进行测量。在一些实例中,时延被测量为路径长度的函数,即路由中的中间网络设备(跳)的数目。每一跳可以对于路由的总体时延有所贡献,因此具有较低跳计数的路径被预期具有较小时延且出现转发故障的机会较小。分组延迟变化(即,传输抖动)是时延随时间的变化,例如在分组集中到达或以不一致的延迟到达的情况下。传输错误会致使不良的实际吞吐量,高的时延或滞后,以及不期望的延迟变化。传输错误的度量包括分组重传计数、分组重传与首次传输的比率,以及诸如被设置有明确拥塞通知(“ecn”)标志的分组的拥塞相关传输。

网络分析器188使用一个或多个这样的度量来聚集网络性能的测量。在一些实施方式中,网络分析器通过网络100发送探针(例如,互联网控制消息协议(“icmp”)分组)并且针对一个或多个性能度量进行测量。探针在单个as内能够是有用的。然而,一些网络设备可能被配置为忽略探针分组或者对它们给予特殊处置。作为结果,探针的测量可能提供有限或误导性的信息。因此,在一些实施方式中,网络分析器188测量并非特别为探针的数据业务的性能。在一些实施方式中,网络分析器聚集探针业务和非探针业务二者的测量。

在一些实施方式中,网络分析器188测量接入节点126与主机150、源高速缓存152和场外高速缓存154中的一个或多个之间的网络业务。在一些实例中,接入节点126可以参与与服务网络118中的多个设备以及场外高速缓存154的数据流。网络分析器188能够对这些不同流的性能的测量进行比较并且将它们加以对比以改善测量与网络的特定部分的关联。

图2是图示网络分析的方法200的流程图。在一些实施方式中,图1所示的网络分析器188实现方法200。在方法200的宽泛概述中,在阶段220,网络分析器188收集描述跨越多个自治网络的网络拓扑的数据。所收集的数据包括经过所述多个自治网络中的一个或多个的数据传输的质量度量的测量,并且还可以包括控制面统计,诸如在边缘节点164或166处所接收的边界网关协议(“bgp”)广告的计数和与之相关联的度量。在阶段240,网络分析器188清理、验证、汇总和处理所收集的数据。这有效地使得测量匿名化,去除异常值测量,汇总来自多个来源的数据,并且将其处理为网络性能的统一视图。在阶段260,网络分析器188生成网络拓扑模型并且分析被处理的数据以基于被处理的数据来向网络拓扑模型的多个部分指派质量分值。随后,在阶段280,网络分析器188能够根据所述模型和质量分值来生成有用数据。例如,网络分析器188能够生成报告,针对控制器180识别优选路由,或者甚至协助评估潜在对等机会。

图3是图示图2所示的方法200中的阶段的细节的示图。以下对图2的详细描述也参考图3。在图3的宽泛概述中,网络分析器188从例如网络度量监视器的各种来源聚集数据。网络度量监视器的一些非限制示例包括时延监视器322、错误检测器324、带宽使用监视器326、拓扑分析器328等。网络分析器188在阶段220聚集数据并且在阶段240对其进行处理。处理可以包括对数据进行清理342、验证344、和汇总346。该数据被记录到数据存储374。在阶段260,网络分析器188进一步进行异常检测362以及建模和分析366,并且在阶段280,网络分析器188使用所述数据以例如生成报告388,所述报告也被记录至存储374。

更详细地参考图2,在方法200的阶段220,网络分析器188收集描述跨越多个自治网络的网络拓扑的数据。所收集的数据包括经过所述多个自治网络中的一个或多个的数据传输的质量度量的测量。在一些实施方式中,所收集的数据包括控制面统计的质量度量的测量,诸如在边缘节点164或166处所接收的边界网关协议(“bgp”)广告的计数以及与之相关联的度量。控制面统计可以提供与沿潜在路由通过不同自治系统网络的替选路径的可用性和质量相关的附加信息。度量例如可以包括带宽、吞吐量、实际吞吐量、拥塞事件、拥塞频率、路径长度(即,跳计数)、往返时间(“rtt”)、时延、滞后、分组延迟变化、重传事件、分组重传与首次传输的比率、诸如设置有明确拥塞通知(“ecn”)标签的分组的拥塞相关传输、bgp广告计数和频率、以及bgp路由信息库(“rib”)的广播。网络分析器188从各种网络度量监视器聚集这些度量的数据。如图3所示,网络度量监视器例如包括时延监视器322、错误检测器324、带宽使用监视器326、和/或拓扑分析器328。在一些实施方式中,网络环境100中的一个或多个网络设备被配置为向网络分析器188提供测量。在一些实施方式中,专用网络监视器聚集一个或多个度量的测量并且将所述测量提供给网络分析器188。在一些实施方式中,网络分析器188自行测量一个或多个度量。在一些实施方式中,网络分析器188使用辅助测量资源或冗余测量资源。

在一些实施方式中,时延监视器322测量一个或多个输运延迟相关度量,诸如时延、滞后、往返时间(“rtt”)、分组延迟变化、或路径长度(即,跳计数)。在一些实施方式中,时延监视器322向目标目的地(例如,接入节点126,或者第三方网络的边缘节点166)发送探针(例如,icmp分组)并且测量响应的特性。例如,时延监视器322可以测量从发送所述探针时起直至接收到响应流逝的时间量,所述时间量被称之为往返时间(“rtt”)。在一些实施方式中,数据业务经过作为时延监视器322或者包括时延监视器322的网络设备。时延监视器322能够观察经过网络设备的数据业务并且记录时延的一个或多个度量的测量。在一些实施方式中,时延监视器322观察两个网络节点之间的数据业务,例如除时延监视器322自身之外的网络节点之间的数据流。例如,数据业务可以源自于服务网络118中的主机150并且可以经由接入网络112而以终端节点120为目的地。在一些这样的实施方式中,时延监视器322观察面向连接的数据业务并且测量时延或往返时间。面向连接的通信协议通常使用例如确收分组的一些形式的确认来验证分组的传输。时延监视器322观察该业务并且测量在数据被发送时以及其被确收或确认时之间所流逝的时间。面向连接的传输层协议的示例包括传输控制协议(“tcp”)、流控制传输协议(“sctp”)、数据报拥塞控制协议(“dccp”)、资源保留协议(“rsvp”)、结构流传输(“sst”)、venturi传输协议(“vtp”)、面向连接传输协议(“cotp”)、或xpress传输协议(“xtp”)。作为对比,用户数据报协议(“udp”)并不是面向连接的协议,且互联网控制消息协议(“icmp”)并不是传输层协议。观察数据业务的时延监视器322并非必然需要使用探针。然而,在一些实施方式中,时延监视器322也将使用探针作为时延测量的第二集合。在一些实施方式中,网络的一部分可以比所述网络的其它部分具有更少的测量覆盖,例如,该部分可能是并不包括任何本地网络度量监视器的第三方传输网络。在一些这样的实施方式中,网络分析器188使用经过未加仪表网络部分的数据流的测量来有效地测量所述网络部分的特性。在一些实施方式中,网络分析器188使得探针通过所述未加仪表网络部分被发送,例如由时延监视器322或终端设备120发送。在一些实施方式中,网络分析器188或网络控制器180使得数据业务通过所述未加仪表网络部分被发送。网络分析器188随后基于经过所述未加仪表网络部分的数据业务的特性和行为而获得当前测量。

在一些实施方式中,时延监视器322通过监视一个或多个tcp流来测量时延。tcp发送者向tcp流中的每个分组指派序列号,并且相对应的tcp接收者以所接收序列号的确收作出响应。时延监视器322例如能够使用状态机来测量在tcp分组被发送时以及接收者确收被接收时之间流逝的时间量。在tcp协议的一些实施方式中,接收者以群组来对分组进行确收(即,发送者可以传送若干分组,每个分组具有其自己的序列号,并且接收者可以发送指示接收到所述若干分组的单个确收)。相应地,群组中第一分组的传输和接收到共同确收之间所流逝的时间将比群组中最后分组的传输和接收到共同确收之间所流逝的时间更长。在一些实施方式中,时延监视器322或网络分析器188通过仅使用与通过共同确收来确认的所发送的最后分组相关联的时延测量来解决该不精确性。在一些实施方式中,时延监视器322或网络分析器188通过测量大量分组的时延并且计算实际时延的统计近似值——例如作为所测量时延的算数均值(平均值)——来解决该不精确性。在一些实施方式中,在具有特定大小的时间间隔上测量时延。所述时间间隔的大小可以在不同监视器之间以及针对不同网络部分而有所变化。在一些实施方式中,所述时间间隔的大小随时间变化。例如,在高网络使用的时段期间可以使用较短的间隔,而在网络使用已经减轻时可以使用较长的间隔。在一些实施方式中,时延测量被标记或者以其它方式与测量时间或测量间隔相关联。例如,在一些实施方式中,时延监视器322在第一时间t1开始测量间隔,识别朝向目的地的输运中的一个或多个分组(例如,作为诸如tcp流或sctp流的分组流的一部分),识别针对所识别分组的一个或多个响应,确定在所识别的朝向目的地的传送和对应响应之间流逝的时间,以及针对在测量间隔结束时间t2之前出现的多个输运/响应配对汇总所流逝的时间。经汇总的所流逝时间是针对在t1开始且在t2结束的时间间隔的时延测量。在一些实施方式中,所述汇总是所流逝时间的平均均值。在一些实施方式中,所述汇总是所流逝时间的中值。在一些实施方式中,所述汇总是所流逝时间的子集的平均均值,其中所述子集通过消除一个或多个异常值而构建。在一些实施方式中,所述时间间隔时延测量被结构化为数据三元组,例如开始时间(t1)、结束时间(t2)或间隔跨度(t2-t1),以及时延测量(即,经汇总的所流逝时间)。所述数据三元组例如能够被记录为{t1,t2,latency}。在一些实施方式中,所述测量被结构化为数据四元组,例如开始时间(t1)、结束时间(t2)或间隔跨度(t2-t1)、时延测量(即,经汇总的所流逝时间),以及所测量分组流的共同目的地的标识符或与之相关联的标识符。所述数据四元组例如能够被记录为{t1,t2-t1,latency,destinationid}。所述共同目的地可以被标识为ip地址、ip地址的块(例如,使用无类别域间路由(“cidr”)符号)、自治系统编号(“asn”)、或者共同目的地的任何其它标识符。

在一些实施方式中,两个或更多参与者设备可以具有同步的时钟,例如使用网络时间协议(“ntp”)同步的时钟。例如,服务网络118中的源高速缓存152可以与第三方传输网络114中的场外高速缓存154同步。当设备被同步时,时延监视器322能够通过检查嵌入在所同步设备之间的网络业务中的任何时间戳信息来测量时延,并且计算自经时间戳标记的分组被发送起已经流逝的时间量。

在一些实施方式中,时延监视器322测量分组时延变化,这是时延随时间的波动的程度的度量,也称作传输抖动。在相当一段时间上具有低时延但是容易出现短期高时延的路由可能具有整体上低的平均时延,但是对于时延敏感的业务而言仍然是不期望的。具有更为一致的稍高平均时延的替选路由对于时延敏感的业务而言可能是更为期望的。在一些实施方式中,网络分析器188从时延监视器322所报告的周期性时延测量计算分组延迟变化。在一些实施方式中,时延监视器322在高传输抖动的时段期间调节时延测量的精度。例如,在一些实施方式中,在测量时延中使用的时间间隔的大小是分组延迟变化的函数。

在一些实施方式中,错误检测器324维持错误事件的统计。例如,错误检测器可以监视数据流并且识别分组丢失的事件。对重新发送分组的请求或者传输重复分组是分组丢失的良好证据。丢失的分组对于网络而言尤其繁冗,这是因为丢失的分组消耗了网络资源却始终没有到达其意图的目的地。重传是额外的工作,是丢失分组的原始传输的重复。额外的业务会浪费带宽并且在对通信本身毫无价值的情况下导致了网络拥塞。错误测量有助于计算实际吞吐量,所述实际吞吐量是排除了诸如网络配置数据、协议控制信息、或丢失分组重传的其它业务的信息内容的吞吐量。即,实际吞吐量是被成功传输的实际有效载荷数据的度量。所有其它网络使用实际上是传送该数据的间接成本。服务网络118和接入网络112之间的一些路由可能会经过针对输运收取费用的传输网络114。在一些实施方式中,网络分析器188将有效载荷传输成本计算为跨特定传输网络的实际吞吐量和跨所述特定网络的传输的货币成本的函数。

在一些实施方式中,带宽使用监视器326测量带宽使用——即吞吐量——以及有效吞吐量。带宽使用能够在任何网络节点进行测量,例如服务网络118中的网络设备160。自治系统网络的边缘处的网络节点——例如边缘节点164——能够将吞吐量测量为被传送至例如传输网络114的相邻网络的数据的量。在一些实施方式中,带宽使用监视器326从一个或多个边缘节点164收集负载信息。在一些实施方式中,网络分析器188定期对经过一个或多个网络节点的数据流进行采样以估计负载量。最大所测量吞吐量实际上是网络上的可用带宽的度量。在一些实施方式中,网络分析器188将最大所测量吞吐量与特定路由的广告或预期带宽进行比较。在一些实施方式中,网络分析器188可以基于与预期带宽可用性相比为低的最大吞吐量而确定路由未被充分利用。在一些实施方式中,网络分析器188可以基于所测量吞吐量的下降而确定路由拥塞或正经历故障。

在一些实施方式中,拓扑分析器328查找到网络节点的路由,所述路由随后能够被用来构建网络的模型。在一些实施方式中,拓扑分析器328使用路由跟踪分组来确定路由。在一些实施方式中,拓扑分析器328参与诸如边界网关协议(“bgp”)的路由广播协议。拓扑分析器328能够了解这样的协议所广告的路由。在一些实施方式中,拓扑分析器328从多个bgp参与者网络设备获得bgp信息。在一些实施方式中,拓扑分析器328从一个或多个网络设备获得活动的路由信息库(“rib”)数据。在一些实施方式中,拓扑分析器328由远程应用进行辅助,所述远程应用从不同的网络优势点运行路由跟踪例程。例如,场外高速缓存154可以被配置为运行向服务网络118的路由跟踪并且向拓扑分析器328报告路由。由于一些网络设备将仅对源自于相同自治系统内的路由跟踪分组作出响应,所以传输网络114内的场外高速缓存154所执行的跟踪可能与运行自服务网络118内的跟踪具有不同结果。在一些实施方式中,终端设备120可以类似地执行向服务网络118的路由跟踪并且向拓扑分析器328报告路由。在一些实施方式中,场外高速缓存154可以执行向接入节点126的路由跟踪。每个路由跟踪提供视角性信息(perspectiveinformation),其随后被转发至拓扑分析器328。在一些实施方式中,拓扑分析器328使用与地理位置信息相关联的网络地址块的数据库以将网络地址与地理位置进行关联。在一些实施方式中,拓扑分析器328使用地理位置来验证其它网络拓扑信息。

在一些实施方式中,拓扑分析器328生成网络模型。在一些这样的实施方式中,拓扑分析器328构建网络图数据集合,其中所述数据集合中的图节点均表示相应的自治系统,并且所述数据集合中的图链路均表示两个自治系统之间的连接或对等互连。一个图节点是表示服务网络118的服务节点。拓扑分析器328识别去往服务节点的图链路,并且在可用的情况下利用所测量的特性和地理位置对每个对等节点进行标注。所述图数据集合随后从服务节点向外工作进行扩展。如果测量库(诸如场外高速缓存154)存在于不同于服务网络118的自治系统中,则拓扑分析器328将使用来自所述测量库的信息来标注和扩展来自代表托管所述测量库的相应自治系统的图节点的图数据集合。

在一些实施方式中,多个时延监视器322、错误检测器324、带宽使用监视器326和/或拓扑分析器328遍布网络环境100进行分布。例如,它们可以位于服务网络118内的不同位置。在一些实施方式中,终端设备120的用户可以同意在终端设备120安装收集测量的软件。在一些实施方式中,第三方网络114可以包括时延监视器322、错误检测器324、带宽使用监视器326和/或拓扑分析器328。例如,图1所示的场外高速缓存154可以包含网络性能测量模块。参考图3,每个时延监视器322、错误检测器324、带宽使用监视器326和/或拓扑分析器328在阶段220向网络分析器188报告数据。

在阶段240,网络分析器188处理所聚集的数据。处理可以包括对所述数据进行清理342、验证344和汇总346。所述数据被记录到数据存储374。这有效地使得测量匿名化,移除异常测量,并且将来自多个来源或网络度量监视器的数据汇总为网络性能的统一视图。在阶段220所收集并且在阶段240被处理的数据被记录至存储374。

用于存储374的合适的数据存储设备包括易失性或非易失性存储、网络附接的存储、和存储域网络。数据存储设备可以包含一个或多个大容量存储设备,所述大容量存储设备可以共同定位或被分布。适于存储数据的设备包括半导体存储器设备,诸如eprom、eeprom、sdram和闪存设备。适于存储数据的设备包括磁盘,例如内部硬盘或可移动盘、磁性光盘,以及cdrom、dvd-rom和盘驱动器。数据存储设备可以被虚拟化。数据存储设备可以经由中间服务器和/或经由网络进行访问。数据存储设备可以将数据结构化为文件、数据块或组块的集合。数据存储设备可以例如使用冗余存储和/或错误恢复数据(例如,奇偶位)来提供错误恢复。存储374可以托管数据库,例如关系数据库。在一些实施方式中,数据被记录为数据存储374中所存储的数据库中的一个或多个数据库表中的条目。在一些这样的实施方式中,使用诸如sql的查询语言来访问数据。源高速缓存152和/或场外高速缓存154均可以托管文件存储系统。数据可以被结构化存储为知识库。数据可以以加密形式存储。对所存储数据的访问可以被一个或多个认证系统所限制。

仍然参考阶段240,网络分析器188对在阶段220所聚集并被记录至存储374的数据进行清理342、验证344和汇总346。清理342数据包括将数据从其相应的源格式进行转换、去除无关信息、过滤、标准化、以及对数据进行结构化以供结合来自其它来源的数据一起使用。例如,网络分析器188可以从多个拓扑分析器328接收网络拓扑信息,所述多个拓扑分析器328可以使用不同策略进行拓扑检测。网络分析器188对所接收的信息进行标准化并且将其组合从而形成更为全面的网络拓扑模型。同样,网络分析器188能够从诸如时延监视器322、错误检测器324和带宽使用监视器326的多种网络度量监视器获得时延和分组延迟变化信息。网络分析器188对从不同来源接收的信息进行标准化并且将其结构化以供在时延分析中使用。

验证344包括去除统计异常值。例如,在一些实施方式中,网络分析器188生成特定网络特性(例如,时延)的概率分布函数,并且确定路由的测量是否包括应当作为异常值被丢弃的反常结果。在一些实施方式中,网络分析器188对测量进行群集并且去除没有属于特定集群的足够高可能性的测量,例如因为所述测量处于一些阈值集群成员资格要求之外。在一些实施方式中,网络分析器188将测量分组为测量时间的窗口并且识别上下四分位数。网络分析器188随后基于四分位距(“iqr”)计算有效性边界并且将所述有效性边界以外的测量归类为异常值。在一些实施方式中,网络分析器188向测量应用权重或乘数而使得更值得信任或者更可能准确的测量被给予比其它不太可靠的测量更大的权重。在一些实施方式中,网络分析器188跨多个测量源或测量技术对测量进行交叉验证。例如,如果网络分析器188针对特定路由具有来自探针和非探针来源的时延测量,则网络分析器188能够将两个数据集合组合并且验证组合的集合中的测量。在一些实施方式中,网络分析器188具有对预期测量范围的预测。所述预测之外的测量可以是无效的。例如,网络分析器188可以具有指定沿特定路由可用的广告带宽的信息。如果网络分析器188接收到高于所述广告带宽的吞吐量信息——这与预期有所矛盾,则网络分析器188可以确定广告带宽信息不正确或者吞吐量信息不正确。在一些实施方式中,网络分析器188对照来自之前测量的历史趋势来验证信息。

网络分析器188还汇总数据346。网络分析器188形成来自多个来源和网络优势点的测量以及使用各种测量策略所收集的测量的集合。数据汇总346还允许网络分析器188将整个自治系统视为用于路由分析目的的单一链路。即,即使在传输网络114(a)入口节点(例如,服务网络边缘节点164)和传输网络114(a)出口节点(例如,接入网络边缘节点166)之间可能存在多条路由,但是网络分析器188也能够针对所述入口和出口节点之间经过传输网络114(a)的所有路由汇总所有的测量。网络分析器188随后能够将传输网络114(a)视为所述节点之间的单一链路,其具有汇总测量所描述的特性。网络分析器188和控制器180并不一定对经过传输网络114(a)自身的路由具有控制,但是能够选择是否使用传输网络114(a)。汇总数据在描述通过传输网络114(a)传递的任意数据的整体可能经历时是有用的,并且因此在决定是否在路由中使用传输网络114(a)时是有用的。在一些实施方式中,网络分析器188对与所测量业务相关联的网络地址的测量进行分组。例如,在一些实施方式中,针对具有特定地址范围(例如,无类别域间路由(“cidr”)地址范围)中的目的地的所有分组的测量被汇总在一起。

在阶段260,网络分析器188生成网络拓扑模型,并且分析经处理的数据以基于所述经处理数据来向所述网络拓扑模型的部分指派一个或多个质量分值。例如,在一些实施方式中,网络分析器188使用来自拓扑分析器328的网络图数据集合作为网络模型。在一些实施方式中,网络分析器188对来自多个拓扑分析器328的多个网络图数据集合进行组合。在一些实施方式中,网络分析器188修改或细化网络图数据集合以包括网络分析器188可获得的附加数据。在一些实施方式中,网络拓扑模型例如基于地理位置、连接特性(例如,连接是否经过第三方交换或者经过as控制的多归属网络设备)等来对自治系统(“as”)网络的不同入口或出口节点加以区分。在一些实施方式中,网络拓扑模型包括每个as入口或出口的标识符(例如,网络地址、机器访问控制(“mac”)地址、端口号、供应商名称、as控制实体名称等)。

在一些实施方式中,在阶段260,网络分析器188对经汇总数据执行进一步的异常检测362。使用经汇总数据进行的附加交叉验证可以不同于个体测量或测量集群的验证。在一些实施方式中,网络分析器188使用计算模型来检查汇总测量关于网络有什么样的指示。该分析366可以包括情景仿真(例如,识别向各条路由添加负载或者将负载从一条路由移动至另一条路由的影响)。在一些实施方式中,网络分析器188对数据施加假设条件并且分析366允许识别网络将如何应对所述假设条件。例如,网络分析器188可以测试网络将如何在一天中的各个时间应对更高的业务负载。在一些实施方式中,网络分析器188对趋势进行外推并且生成有关网络在那些趋势推进的情况下看上去将会如何的预测。

网络分析器188能够作为整体地对与每个自治系统(“as”)网络相关联的时延进行量化。为了这样做,网络分析器188针对源节点和相应目的地as(例如,按照目的地ip地址块或子网)的配对提取经过每个服务网络边缘节点164的业务量。业务从服务网络118去往“下一个网络”as。基于拓扑分析器328所生成的网络模型,网络分析器188识别所测量业务的路径并且识别来自下一个网络as的出口点。网络分析器188针对去往目的地ip地址块或子网和/或去往相同地理位置(或城市地区)中的其它网络地址的对应路径使用往返时间测量。网络分析器188使用该信息来针对所测量业务预测去往端点设备120的as路径并且测量所预测路径的时延。测量可以针对沿所预测路径的不同网络块(例如,针对不同子网,针对不同as网络,或不同as段,即路径所穿过的as网络的部分)以不同的时间粒度来执行。即,沿所预测路径的第一as网络的测量窗口中的时间长度可能与沿相同的所测量路径的第二as网络的测量窗口中的时间长度有所不同。

在一些实施方式中,网络分析器188对as路径和与所述路径或者相同地理地区中的替选路径中的相应as网络相关联的时延之间的线性关系进行建模。as路径时延是路径中的每个个体as网络的时延之和。利用对沿多条重叠as路径的时延的充分测量,网络分析器188能够构建线性模型或线性等式的集合并且求解与多条路径中的个体as网络相关联的估计时延(或时延范围)。在一些实施方式中,网络分析器188使用最小二乘或加权最小二乘来估计as路径时延或网段时延。在一些实施方式中,在度量的测量值针对沿潜在路由的网段有所缺失时,网络分析器188针对缺失的测量值近似或估计一个值。例如,在针对两个网络节点之间的时延缺失测量值的情况下,网络分析器188使用与所述两个节点之间的地理距离成比例的值。较大的地理距离自然将会具有较大的时延。在一些实施方式中,该值基于类似网络的趋势,所述类似网络例如分离类似地理距离的其它网络节点。在一些实施方式中,在度量的测量值针对沿潜在路径的网段有所缺失时,网络控制器180使得一些网络业务经过所述网络分段进行路由并且网络分析器188从该业务获得测量。在一些实施方式中,网络分析器188使用所述测量以及与各网段相关联的推断来估计或推断通过多个分段的网络路径的测量值。例如,网络分析器188能够针对从主机150经传输网络114(b)去往传输网络114(c)中的场外高速缓存154的路径中的网段获得度量的测量,以及针对从场外高速缓存154去往用于接入网络112中的终端设备120的接入节点126的路径中的网段获得度量的测量。网络分析器188随后使用这两条路径中的分段的测量值来推断从主机150经由传输网络114(b)去往用于终端设备120的接入节点126的路径的度量值。针对特定网段的测量和推断随后可以被用来针对行经特定网段的其它潜在路由作出联网决策。例如,如果网络分析器188确定传输网络114(b)拥塞,则从主机150去往接入节点126处的终端设备120的数据流可能通过替选路径进行路由,所述替选路径诸如经过传输网络114(a)的路径。在一些实施方式中,网络分析器188使用一个或多个标注图来识别多条路径共用的网段。在一些实施方式中,网络分析器188将图数据集合与一个或多个网络度量或特性的测量标注一起存储。

在一些实施方式中,网络分析器188对源自于服务网络118以外——例如在接入网络112处——的数据流所采取的路由进行建模。例如,终端设备120可以向主机150上传数据以供存储、处理、或分享。这些进入流可以根据接入网络112如何对它们进行路由而采取多条不同路由。来自相同接入网络112的业务可能在多个不同边缘节点164到达服务网络118。在服务网络118之外的节点——例如在场外高速缓存154的节点或终端设备120的节点——所生成的网络拓扑发现数据和网络测量数据为识别和测量外部起源的数据流可能采取的路由提供了有帮助的优势点。这些外部节点的外部视角模仿这些外部源。

在阶段280,网络分析器188从所述模型和质量分值生成有用数据。例如,网络分析器188能够生成报告,针对控制器180识别优选路由,针对附加场外高速缓存放置识别有利放置位置,或者甚至协助评估潜在的对等互连机会。

在一些实施方式中,网络分析器188将当前测量和模型信息与记录在存储374中的历史测量和模型进行比较。该比较可以包括趋势、平均值、变化(例如,标准偏差的计算),等等。在一些实施方式中,如果网络分析器188识别出异常,例如突发的时延尖峰或吞吐量下降,则网络分析器188生成警报条件。例如,时延可能由于用户行为模式而在一天中的特定时间较高或较低(例如,在一个地理地区中的网段上的活动可能在深夜时段期间较低,此时该地理地区中的大多数人在睡觉);如果网络分析器188在非预期时间(例如,深夜)检测到较高时延,则这可能是异常的。异常可以指示网络故障,或者可能归因于诸如恶意的拒绝服务攻击事件的一些非常规事件。在一些实施方式中,所述警报条件通过电子邮件、sms文本消息、自动化电话呼叫、即时消息、以及用于紧急通信的任何其它可用介质被报告给一个或多个系统运营者。

在一些实施方式中,网络分析器188进行仿真以预测所提出的改变对于各种业务流的影响。在一些实施方式中,网络分析器188进行仿真以确定针对进入和/或外出业务是否存在较低时延的路径,以及识别出存在的较低时延路径。在一些实施方式中,网络分析器188运行仿真以确定周期性网络状况是否与其它时间事件相一致。在一些实施方式中,网络分析器188运行仿真以确定添加假想链路或对等方是否将会提升性能。在一些实施方式中,网络分析器188针对as网络识别出性能的异常变化并且识别出所述as网络周围的网络拓扑的对应变化。该信息随后被用来识别异常状况归因于对等关系的变化、本地服务对as带宽利用的增加(或减少)、还是第三方服务对as带宽使用的增加(或减少)。

图4是图示用于基于多个第三方网络的网络分析来进行路由选择的示例方法400的流程图。在方法400的宽泛概述中,在阶段410,网络分析器188从位于不同自治系统网络中的多个网络度量监视器接收网络评估信息。在阶段420,网络分析器188汇总所接收的网络评估信息。在阶段430,网络分析器188对从第一自治系统网络到第二自治系统网络中的节点的多条潜在路由进行分析。随后,在阶段440,网络分析器188或网络控制器180基于所述分析来从该多条潜在路由中选择一条或多条路由,以及在阶段450,使用所选择的路由针对从第一网络通过第二网络中的所述节点的业务设置路由策略。

更详细地参考图4,在方法400的阶段410,网络分析器188从位于不同自治系统(“as”)网络——例如接入网络112或传输网络114——中的多个网络度量监视器接收网络评估信息。网络分析器188使用该信息来识别并表征第一网络和第二网络之间的路由。所述路由可以包括除第一和第二网络之外的一个或多个“中间”网络。这些中间网络例如可以是接入网络112或传输网络114。

在阶段420,网络分析器188如上文参考图3所描述的对所接收到的网络评估信息进行汇总。网络分析器188构建网络图数据集合,其中所述数据集合中的图节点均表示相应的路由域或自治系统,并且所述数据集合中的图链路均表示两个路由域或自治系统之间的连接或对等互连。网络分析器188利用汇总特性测量信息对网络图数据进行标注。在一些实施方式中,所述标注包括自治系统的地理数据,例如自治系统网络的管辖区域或城市地区。在一些实施方式中,所述标注包括自治系统中例如网关节点的节点的地理数据,例如对等点设施的地址或经纬度对。所标注的数据集合描述了第一网络(例如,服务网络118)和第二网络(例如,接入网络112)之间的网络路径的拓扑和特性,其中所述网络路径跨过作为自治系统的第三方所控制的一个或多个中间传输网络114。

在阶段430,网络分析器188对从第一自治系统网络到第二自治系统网络中的节点的多条潜在路由进行分析。在一些实施方式中,网络分析器188基于所汇总的信息来识别从第一网络到第三网络中的节点的均满足准则集合的一条或多条路由。例如,在一些实施方式中,所述准则是端到端时延低于时延阈值且可靠性高于可靠性阈值。例如,在一些实施方式中,可靠性是稳定性、分组延迟变化、和重传率的函数。在一些实施方式中,网络分析器188向网络图数据集合中的每个节点应用分值,其中所述分值表示通过相应网络发送数据的合意性或货币成本。使用这些分值作为权重,网络分析器188识别经过将第一网络连接至第二网络中的节点的图的最低成本的路径。该路径表示所期望的路径。在一些实施方式中,网络分析器188识别去往节点或者去往仅能够通过所述节点到达的网络设备的多条期望路径。多条路径例如可以在相等成本多路径(“ecmp”)或加权成本多路径(“wcmp”)路由中使用。在一些实施方式中,网络分析器188使用特定于业务类别的函数来生成分值。即,可以有针对第一类别的业务指示路径合意性的第一分值以及针对第二类别的业务指示路径合意性的第二分值。例如,在一些实施方式中,数据业务可以被归类为“时延敏感”或“延迟容忍”。时延敏感业务的示例是用于实时人类音频和/或视频通信的数据业务,其中由于高时延所导致的被感知滞后对通信的可用性有所干扰。延迟容忍业务的示例是电子邮件,其中额外的几分钟传送时间通常不会被用户所注意到。因此,在一些这样的实施方式中,网络分析器188生成用于与时延敏感业务一起使用的第一分值(例如,该分值可以将低时延和实际吞吐量强调为比货币成本更加重要)以及用于与延迟容忍业务一起使用的第二分值(例如,该分值可以将传输的低货币成本强调为比时延或吞吐量更加重要)。在一些实施方式中,使用多于两种类别的业务,例如一些业务可能容忍中度时延但是不能容忍高分组延迟变化(例如,一些媒体流送),一些业务则可能对时延不敏感但是无法容忍高失败率(例如,文件传输可以慢,但是每一个丢失分组都必须要重新发送),以及一些业务可能是时延敏感的但是容忍中度失败率(例如,互联网语音传输协议(“voip”)的一些实施方式能够应对偶发丢失或迟到分组,只要有足够数目的分组足够快速地到达以生成具有最小可感知滞后的尚可的语音声音即可)。在一些实施方式中,网络分析器188生成针对每个业务类别定制的相应分值。在一些实施方式中,网络分析器188生成分值和业务类别的矩阵。

在阶段440,网络分析器188或网络控制器180基于所述分析来从多条潜在路由中选择一条或多条路由,以及在阶段450,使用所选择的路由针对从第一网络经过第二网络中的节点的业务设置路由策略。例如,在一些实施方式中,网络分析器188使得去往所述节点的所有业务都经过提供沿优选路由到下一个as网络的连接的边缘设备。在一些实施方式中,网络控制器180向服务网络118内的网络设备发布路由表或rib以实施路由策略。在一些实施方式中,服务网络118是软件定义网络(“sdn”),并且sdn流控制器将流指派至沿优选路径经过下一个网络as的路由。

图5是示例网络设备131的框图。示例网络设备131适于在依据说明性实施方式实现本文所描述的中间网络设备时使用。下文参考图6所描述的计算系统141也可以适合作为网络设备131。例如,利用网络功能虚拟化(“nfv”),通常以硬件电路实现的一些网络功能被实现为在处理器(例如,通用处理器)上执行的软件。在宽泛概述中,网络设备131包括控制模块138以及例如用于存储设备配置和路由数据的存储器134。网络设备131包括转发引擎132,其使用存储在存储器134中的设备配置和路由数据来管理网络接口136处的数据业务。在一些实施方式中,网络设备131被实现以供在软件定义网络(“sdn”)中使用,其中网络设备131由外部sdn控制器所控制。在一些实施方式中,网络设备131的一个或多个功能组件被实现为由通用处理器所执行的软件组件。

更为详细地参考图5,设备131包括网络接口136的集合。每个网络接口136可以由一个或多个链路连接至一个或多个外部设备,从而形成网络(例如,图1所示的网络110)。外部设备经由这些链路向网络设备131发送数据分组,所述数据分组经由入口接口(例如,网络接口136(a))到达。网络设备131将所接收的数据分组经由出口接口(例如,网络接口136(c))转发至适当的下一跳。在一些实施方式中,转发引擎132确定哪个网络接口136用于转发每个所接收的数据分组。

转发引擎132使用存储器134中的配置和路由数据来管理网络接口端口136处的数据业务。存储器134中的配置和路由数据由控制模块138所控制。在一些实施方式中,转发引擎132在将分组转发至出口网络接口端口136之前对分组报头进行更新。例如,转发引擎136可以更新分组报头中的ecn、ttl或校验和信息。在一些实施方式中,传入分组包含嵌入在所述传入分组的报头中的路由指令,并且转发引擎132基于所嵌入的指令来转发分组。

存储器134可以是适于存储计算机可读数据的任何设备。示例包括但并不局限于半导体存储器设备,诸如eprom、eeprom、sdram、和闪存设备。在一些实施方式中,网络设备131的存储器134包括专用于存储用于识别分组流的模式的存储器,例如作为三态内容可寻址存储器(“tcam”)。在一些实施方式中,网络设备131的存储器134包括专用于在分组流行经网络设备131时对它们进行缓冲的存储器。网络设备131可以具有任何数目的存储器设备134。

控制模块138管理网络设备131的性能。在一些实施方式中,控制模块138从外部控制设备接收指令。例如,在软件定义网络(“sdn”)中,控制模块138可以从网络设备131之外的sdn控制器接收控制指令。在一些实施方式中,控制模块138处理路由信息分组(即,控制面分组)并且利用对转发引擎132所使用的路由表的修改来更新存储器134。在一些实施方式中,控制模块138将到达出口接口136的数据读入到存储器134中所存储的缓冲区中。控制模块138可以使用通用处理器或者例如专用集成电路(“asic”)的专用逻辑电路来实现。

图6是示例计算系统141的框图。示例计算系统141适于在依据说明性实施方式实现本文所描述的计算机化组件时使用。在宽泛概述中,计算系统141包括用于依据指令执行动作的至少一个处理器148以及用于存储指令和数据的一个或多个存储器设备144或149。所图示的示例计算系统141包括经由总线142与存储器144进行通信的一个或多个处理器148,具有用于连接至网络(未示出)的网络接口端口146的至少一个网络接口控制器143,以及例如输入/输出(“i/o”)组件147的其它组件145。通常,处理器148将执行从存储器所接收的指令。所图示的处理器148包含或直接连接至高速缓存存储器149。在一些实例中,指令从存储器144被读入到高速缓存存储器149并且由处理器148从高速缓存存储器149执行。

更详细地,处理器148可以是处理指令的任何逻辑电路,所述指令例如是从存储器144或高速缓存149所取得的指令。在许多实施例中,处理器是微处理器单元或专用处理器。计算设备141可以基于能够如本文所描述进行操作的任何处理器或处理器集合。处理器148可以是单核或多核处理器。处理器148可以是多个不同的处理器。在一些实施方式中,处理器148被实现为一个或多个“芯片”上的电路。

存储器144可以是适于存储计算机可读数据的任何设备。存储器144可以是具有固定存储的设备或者用于读取可移动存储介质的设备。示例包括所有形式的非易失性存储器、介质和存储器设备、半导体存储器设备(例如,eprom、eeprom、sdram和闪存设备)、磁盘、磁光盘,以及光盘(例如,cdrom、dvd-rom或盘)。计算系统141可以具有任何数目的存储器设备144。

高速缓存存储器149为了快速访问时间而通常处于紧邻处理器148放置的计算机存储器的形式。在一些实施方式中,高速缓存存储器149是处理器148的一部分或者与其处于相同芯片上。在一些实施方式中,存在多个层级的高速缓存149,例如l2和l3高速缓存层级。

网络接口控制器143管理经由网络接口146(有时被称作网络接口端口)的数据交换。网络接口控制器143处置osi模型中的物理和数据链路层以供进行网络通信。在一些实施方式中,一些网络接口控制器的任务由一个或多个处理器148来处置。在一些实施方式中,网络接口控制器143例如作为相同芯片上的电路而被合并到处理器148中。在一些实施方式中,计算系统141具有由单个控制器143所控制的多个网络接口146。在一些实施方式中,计算系统141具有多个网络接口控制器143。在一些实施方式中,每个网络接口146是用于物理网络链路(例如,cat-5以太网链路)的连接点。在一些实施方式中,网络接口控制器143支持无线网络连接并且接口端口146是无线(例如,无线电)接收器/发射器(例如,用于ieee808.11协议、近场通信“nfc”、蓝牙、ble、ant、或者任何其它无线协议中的任一种)。在一些实施方式中,网络接口控制器143实现诸如以太网的一种或多种网络协议。通常,计算设备141通过网络接口146而经由物理或无线链路与其它计算设备交换数据。网络接口146可以直接链接至另一个设备或者经由中间设备链接至另一个设备,例如,所述中间设备是诸如集线器、网桥、交换机、或路由器的网络设备,其将计算设备141连接至诸如互联网的数据网络。

计算系统141可以包括一个或多个输入或输出(“i/o”)组件147或者针对其提供接口。输入设备包括而不限于:键盘、麦克风、触摸屏、脚踏板、传感器、midi设备,以及诸如鼠标或轨迹球的指示设备。输出设备包括而不限于:视频显示器、扬声器、可刷新盲文终端、灯、midi设备,以及2-d或3-d打印机。

其它组件145可以包括i/o接口、外部串行设备端口,以及任何的附加协同处理器。例如,计算系统141可以包括用于连接输入设备、输出设备或附加存储器设备(例如,便携式闪存驱动器或外部媒体驱动器)的接口(例如,通用串行总线(“usb”)接口)。在一些实施方式中,计算设备141包括诸如协同处理器的附加设备145。例如,算术协同处理器能够以高精度或复杂计算来辅助处理器148。

该说明书中所描述的主题和操作能够以数字电子电路来实施,或者以体现于有形介质上的计算机软件、固件或硬件——包括该说明书中所公开的结构及其结构等同物来实现,或者以它们中一个或多个的组合来实现。该说明书中所描述主题的实施方式能够被实现为实施在有形介质上的一个或多个计算机程序,即在一个或多个计算机存储介质上进行编码以供由数据处理装置执行或者控制其操作的一个或多个计算机程序指令模块。计算机存储介质可以是计算机可读存储设备、计算机可读存储基底、随机或串行访问存储器阵列或设备、或者它们中一个或多个的组合,或者包括于其中。计算机存储介质还可以是一个或多个单独的组件或介质(例如,多个cd、碟片或其它存储设备),或者包括于其中。计算机存储介质可以是有形且非瞬态的。

计算机程序(也被称作程序、软件、软件应用、脚本、或代码)能够以任何形式的编程语言进行编写,包括编译语言、解释语言、声明性语言、或过程性语言,并且其该计算机程序能够以任何形式部署,包括作为独立程序或者作为适于在计算环境中使用的模块、组件、子例程、对象、或其它单元。计算机程序可以对应于文件系统中的文件,但是并非需要如此。程序可以存储在保持其它程序或数据(例如,标记语言文档中所存储的一个或多个脚本)的文件的一部分之中,存储在专用于所讨论程序的单个文件中,或者存储在多个协同文件(例如,存储一个或多个模块、库、子程序、或代码部分的文件)中。计算机程序能够被部署为在一台计算机上执行或者在位于一个地点或跨多个地点分布并且通过通信网络进行互连的多台计算机上执行。

该说明书中所描述的过程和逻辑流程能够由一个或多个可编程计算机来实现,所述可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。所述过程和逻辑流程还能够实现为例如现场可编程门阵列(“fpga”)或专用集成电路(“asic”)的专用逻辑电路,并且装置也能够被实现为所述专用逻辑电路。这样的专用电路可以被称作计算机处理器,即使其并非是通用处理器。

虽然该说明书包含许多具体实施细节,但是这些并不应当被理解为对任何发明或者所要求保护的内容的范围进行限制,而是作为特定于特定发明的特定实施方式的特征的描述。该说明书中在分开的实施例的场境下进行描述的某些特征也能够在单个实施方式中以组合方式来实现。相反,在单个实施方式的场境下进行描述的各种特征也能够单独或以任何合适的子组合在多个实施方式中实现。此外,虽然特征在上文中可以被描述为以某种组合作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以脱离该组合,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然操作在图中以特定顺序进行描绘,但是这并不应当被理解为要求这样的操作以所示出的特定顺序或以连续顺序来执行,或者所有所图示的操作都要被执行以实现所期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,以上所描述实施方式中的各种系统组件的分离并不应当被理解为在所有实施方式中都要求这样的分离,并且应当理解的是,所描述的程序组件和系统通常能够在单个软件产品中集成在一起或者被封装到多个软件产品中。

对“或”的引用可以被理解为是包含性的,而使得使用“或”描述的任何术语都可以指示单个、多于一个、以及所有的所描述术语中的任一种。称谓“第一”、“第二”、“第三”等并不一定意味着指示排序,而通常仅是被用来在相同或相似的项目或要素之间加以区分。

因此,已经对该主题的特定实施方式进行了描述。其它实施方式处于所附权利要求书的范围之内。例如,权利要求书中所记载的动作可以以不同顺序来执行并且仍然实现所期望的结果。作为一个示例,附图中所描绘的过程并非必然要求所示出的特定顺序或连续顺序以实现所期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1