确定网络隧道的服务质量的制作方法

文档序号:19636300发布日期:2020-01-07 12:02阅读:255来源:国知局
确定网络隧道的服务质量的制作方法
本公开总体上涉及网络通信。
背景技术
:路由器是在网络之间转发数据分组的联网设备。路由器读取分组中的地址信息以确定最终目的地,例如域(例如,应用)。然后,路由器使用其路由表或路由策略中的信息,将分组转发到分组到达最终目的地的路程中的下一跳或位置。当从路由器到最终目的地的路由不止一个时,路由器可以被分配如下任务:根据策略来转发分组(例如,通过最佳路由转发以到达预期域)。本公开中要求保护的主题并不限于解决任何缺点或仅在诸如上述环境的环境中进行操作的实施例。而是,仅提供该背景来说明一个示例
技术领域
,在该示例
技术领域
中可以实践本公开中描述的一些实施例。技术实现要素:根据一些示例,描述了在端点处测量网络隧道的服务质量(qos)的方法。测量网络隧道的qos的示例方法可以包括配置从隧道源端点到隧道目的地端点的网络隧道,以及将多个状态分组传输到隧道目的地端点。状态分组中的每一个均可以在状态分组的有效载荷字段中包括时间戳,其中该时间戳指示各个状态分组从隧道源端点到隧道目的地端点的传输时间。该方法还可以包括从隧道目的地端点接收多个转发的状态分组,其中转发的状态分组中的每个状态分组可以是通过隧道源端点向隧道目的端点传输的相应状态分组的返回。该方法还可以包括确定转发的状态分组中的每个状态分组的接收时间,以及基于多个状态分组中的每个状态的传输时间和转发的状态分组中的每个状态分组的接收时间来确定网络隧道的qos测量。至少通过在权利要求中特别指出的元件、特征和组合,将实现和达到实施例的目的和优点。前面的概述和后面的详细描述均作为示例给出,是说明性的,并且不是对本发明的限制,如所要求的。附图说明从结合附图进行的以下描述和所附权利要求中,本公开的前述和其他特征将变得更加显而易见。应当理解,这些附图仅描绘了根据本公开的若干实施例,并且因此,不应当被认为是对本公开的范围的限制,通过使用附图,将以附加特征和细节来描述本公开,其中:图1示出了本公开的一些实施例可以在其上进行操作的环境和设备的概览;图2是示出使用gre存活(keepalive)分组来确定qos测量的序列图;图3是示出用于测量gre隧道的qos的示例过程的流程图;图4示出了通过任意隧道和优选隧道传输数据分组;图5是示出基于gre隧道的qos通过gre隧道传输数据分组的示例过程的流程图;以及图6示出了可以被用于测量全部根据本文描述的至少一些实施例进行布置的gre隧道的qos的边缘网络设备的环境。具体实施方式在下面的详细描述中,参考了构成其一部分的附图。在附图中,除非上下文另外指出,否则相似的符号通常标识相似的组件。在详细的描述、附图和权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离本文提出的主题的精神或范围的情况下,可以使用其他实施例,并且可以进行其他改变。如本文大体上描述的以及在附图中示出的本公开的各个方面可以以各种不同的配置进行布置、替换、组合、分离和设计,所有这些均在本文中被明确地构思。本公开尤其涉及与确定网络隧道的服务质量(qos)测量有关的方法、装置、系统、设备和/或计算机程序产品。如上所述,当从路由器到最终目的地的路由不止一个时,路由器可以被分配有如下任务:根据策略来转发分组。为了应用其策略,路由器可能需要标识分组的预期域(网站)。路由器可以执行分组的深度分组检查(dpi)以确定预期域。dpi是检查分组的数据部分的过滤形式。因此,通过检查分组的数据部分,路由器能够确定预期域,并且根据其策略转发分组。不幸的是,当分组中的数据被加密时,这是不可能的,就像今天大多数分组一样。路由器无法通过检查分组的数据部分来确定预期域,路由器在可用路由中的一个路由上来任意地转发分组。然后,路由器可以通过检查客户端与服务器(域服务器)之间的证书交换分组来确定用于域的优选路由。这是可能的,因为证书交换分组中的寻址信息是公开的。不幸的是,路由器可能需要在其能够通过检查证书交换分组来确定优选路由之前来任意地转发若干分组。这可能导致路由器在一条路由上转发预标识的分组(在确定优选路由之前的分组),并且在另一(优选)路由上转发后标识的分组。例如,许多域实现代理以为其内部网络提供安全性。当存在代理时,包括安全交换分组的数据分组中的地址信息属于代理。因此,路由器无法通过检查证书交换分组来确定优选路由,因为该地址是代理的地址,并且不是域的地址。路由器还可以建立隧道以将数据分组转发到预期域。隧道化,也称为端口转发,是允许数据从一个网络移动到另一网络的协议。隧道化涉及通过称为封装的过程在公共网络上发送的专用网络通信。封装过程允许以公用网络中的路由节点不知道该传输是专用网络的部分的方式,通过公用网络来传输旨在用于专用网络的数据。即使存在隧道化,当存在代理时,路由器也无法确定到域的优选路由。隧道是跨网络的链路,并且在两个网络端点(隧道源端点和隧道目的地端点)之间延伸。一旦配置了隧道,隧道源端点便能够通过隧道将旨在用于目的地(例如,域、应用和/或其他)的数据传输到隧道目的地端点,以便转发到目的地。以这种方式,数据可以通过配置了隧道的网络被发送到其预期目的地。典型地,一个以上的网络用于提供对目的地的存取。即,可以在多个网络中的任意一个网络上传输数据以到达预期目的地。在通过其数据可以被传输以到达目的地的多个网络可用的情况下,可以在一个或多个网络上配置隧道。由思科系统开发的通用路由封装(gre)是一种用于配置隧道的合适隧道化协议。gre隧道是路由器(其允许在传输协议内封装数据分组)上的逻辑接口。本公开总体上描述了确定适合于将数据分组发送到目的地的一个或多个隧道的qos测量,并且基于qos测量来选择多个隧道中的一个隧道,可以通过该隧道来传输数据分组以转发到目的地。本公开利用了这样的认识,即多个隧道可以被用于到达目的地,并且隧道源端点可以通过多个隧道中的任意一个隧道来传输数据分组,并且具有被转发到其预期目的地的数据分组。在一些实施例中,本公开可以使用“hello”或状态分组来确定qos测量,例如隧道的延迟、抖动、丢失等。“hello”或状态分组是隧道源端点可以用来确定网络隧道的健康状况或状态的分组。例如,以特定时间间隔,网络源端点可以通过隧道将状态分组传输到网络目的地端点。网络目的地端点在接收到状态分组之后,可以通过隧道将接收到的状态分组返回到网络源端点。网络源端点可以基于与发送和接收到的状态分组相关联的度量来确定隧道的状态,包括qos测量。在gre隧道的实例中,可以使用gre存活分组来确定qos测量,例如gre隧道的延迟、抖动、丢失等。本公开可以指定存活传输时间间隔。存活传输时间间隔是隧道源端点通过gre隧道将gre存活分组传输到隧道目的地端点的时间或频率。隧道目的地端点通过gre隧道将接收到的存活分组转发或反射回隧道源端点。因此,隧道源端点可以创建gre存活分组,以特定时间间隔传输到隧道目的地端点。隧道源端点可以在gre存活分组的有效载荷字段中包括时间戳,以指示gre存活分组正在被传输到隧道目的地端点的时间。以特定时间间隔,隧道源端点可以通过gre隧道将gre存活分组传输到隧道目的地端点,并且等待接收转发的gre存活分组。转发的gre存活分组是传输的gre存活分组(其由隧道目的地端点反射或返回到隧道源端点)。在一些实施例中,隧道源端点可以维护每个gre存活分组正在被传输到隧道目的地端点的传输时间的记录。在接收到转发的gre存活分组时,隧道源端点可以确定其接收到转发的gre存活分组的时间(转发的gre存活分组的接收时间)。隧道源端点还可以根据转发的gre存活分组的有效载荷字段中包含的时间戳来确定其传输相应的gre存活分组(即,产生转发的gre存活分组的gre存活分组)的时间。在将gre存活分组转发回隧道源端点时,隧道目的地端点不会更改有效载荷字段的内容。隧道源端点然后可以根据gre存活分组的传输时间和转发的gre存活分组的接收时间来确定用于gre隧道的往返时间(例如,往返延迟)。例如,可以将gre隧道的往返延迟确定为gre存活分组的传输时间与转发的gre存活分组的接收时间之间的差。隧道源端点可以传输多个gre存活分组,在每个特定存活传输时间间隔处有一个gre存活分组。结果,隧道源端点可能接收多个转发的gre存活分组。隧道源端点可以确定用于每个接收到的转发的gre存活分组的接收时间、来自每个接收到的转发的gre存活分组的有效载荷字段的传输时间,并且确定多个往返时间。根据多个往返时间、隧道源端点可以确定用于gre隧道的抖动。例如,可以将gre隧道的抖动确定为两个连续延迟之间的差。隧道源端点还可以确定丢失的传输的gre存活分组的数量。例如,在传输期间或者由隧道目的地端点丢弃传输的gre存活分组是可能的。在该实例中,隧道源端点在传输gre存活分组之后可能未收到转发的gre存活分组。隧道源端点可以维护丢失的传输的gre存活分组的数量的计数。例如,隧道源端点可以传输gre存活分组,并且等待特定时间段以接收转发的gre存活分组。特定时间段可以是如下时间段:在该时间段内隧道源端点期望接收转发的gre存活分组。隧道源端点可以设置或确定特定时间段,并且特定时间段可以被设置为足以使分组从一个端点穿越gre隧道到另一端点,并返回的值。如果在特定时间段内未收到转发的gre存活分组,则隧道源端点可能会认为传输的gre存活分组丢失。因此,隧道源端点可以确定gre隧道的丢失测量。隧道源端点可以基于每个gre隧道的延迟、抖动、丢失等来确定每个可用gre隧道的qos。在了解每个可用gre隧道的qos的情况下,隧道源端点可以通过基于适用的一个或多个策略来选择用于传输数据分组的gre隧道。例如,假设适用策略是使用具有最少分组丢失的gre隧道,则隧道源端点可以应用该策略并且选择具有最少分组丢失测量的gre隧道。作为另一示例,假设适用策略是使用提供最佳性能的gre隧道,则隧道源端点可以应用该策略,并且使用延迟、抖动、丢失等测量来选择提供最佳性能的gre隧道。尽管在gre隧道和gre存活分组的上下文中被描述,但是将理解,可以通过网络隧道传输和反射回的任意网络隧道和任意分组也在本公开的范围内。图1示出了根据本文描述的至少一些实施例进行布置的环境100和本公开的一些实施例可以在其上进行操作的设备的概图。环境100可以包括客户端设备102,边缘网络设备104、106和108以及云域110。客户端设备102可以被逻辑地连接至边缘网络设备104。云域110可以被逻辑地连接至边缘网络设备106和108。云域110可以提供服务或应用,并且可以由客户端设备102通过网络112或网络114到达。例如,边缘网络设备104可以是位于或提供在网络112与114的边界处、在客户端设备102与网络112和114之间的边缘路由器。边缘网络设备106可以是位于或提供在网络112的边界处、在云域110与网络112之间的边缘路由器。类似地,边缘网络设备108可以是位于或提供在网络114的边界处、在云域110与网络114之间的边缘路由器。为了促进数据从客户端设备102通过网络112移动到云域110,可以在边缘网络设备104和边缘网络设备106之间配置隧道116。对于隧道116,边缘网络设备104可以是隧道源端点,并且边缘网络设备106可以是隧道目的地端点。类似地,为了促进数据从客户端设备102通过网络114移动到云域110,可以在边缘网络设备104和边缘网络设备108之间配置隧道118。对于隧道118,边缘网络设备104可以是隧道源端点,并且边缘网络设备108可以是隧道目的地端点。在一个示例性使用场景中,云域110可以是云应用,并且客户端设备102处的用户可以执行浏览器应用以连接至云域110处的云应用并且与云域110处的云应用进行通信。从客户端设备102去往云域110的数据分组可以被发送至边缘网络设备104,以通过隧道116或隧道118进行传输。在一些实施例中,边缘网络设备104可以基于可用隧道的一个或多个策略和/或一个或多个属性来选择隧道(隧道116或隧道118),以用于对去往云域110的云应用的数据分组进行传输。例如,策略可以指定通过提供更好的服务质量(qos)的隧道传输数据分组。策略的示例可以包括选择具有最小延迟、最小抖动、最小分组丢失等的隧道。边缘网络设备104可以将可用隧道中的一个隧道标识为优选隧道,并且从客户端设备102通过优选隧道发送去往云域110的云应用的数据分组。在一些实施例中,边缘网络设备104、106和108和/或云域110中的一个或多个可以被实现为在一个或多个物理计算设备上操作的一个或多个虚拟机。附加地或可选地,边缘网络设备104、106和108和/或云域110可各自包括单独的独立计算设备。在不脱离本公开的范围的情况下,可以对图1的环境100进行修改、添加或省略。例如,尽管被示出为包括三个边缘网络设备104、106和108,两个网络112和114,两个隧道116和118以及一个云域110,但是环境100可以包括任意数量的边缘网络设备、网络、隧道、和/或云域,例如成千上万的边缘网络设备、两个以上的网络、两个以上的隧道以及多个云服务。作为另一示例,环境100还可以包括其他网络设备,例如防火墙、代理、网关等。作为另一示例,在两个边缘网络设备之间可以存在两个隧道和/或两个网络(例如,可以存在两个网络,每个在边缘网络设备104和边缘网络设备106之间都有其自己的隧道)。图2是示出使用根据本文描述的至少一些实施例进行布置的gre存活分组来确定qos测量的序列图。如图所示,序列图示出了在边缘网络设备202和边缘网络设备204之间通过隧道206(其被配置在边缘网络设备202和204之间)进行的通信。例如,边缘网络设备202和204可以是隧道206的每一端处的边缘路由器,并且隧道206可以是跨诸如verizon网络之类的网络(未示出)的gre隧道。作为隧道源端点的边缘网络设备202可能希望使用gre存活分组来确定gre隧道的qos。边缘网络设备202可以确定用于传输gre存活分组的存活传输时间间隔。边缘网络设备202还可以确定如下特定时间段:在该特定时间段内,边缘网络设备202期望在传输gre存活分组之后接收转发的gre存活分组。作为隧道源端点,边缘网络设备202可以创建gre存活分组(208),以被传输到边缘网络设备204(其是隧道目的地端点)。以特定存活传输时间间隔,边缘网络设备202可以确定当前时间,并且将当前时间作为时间戳包括在gre存活分组的有效载荷字段中,并且将gre存活分组(210)通过隧道206传输到边缘网络设备204。边缘网络设备204可以接收gre存活分组,并且将gre存活分组作为转发的gre存活分组(212)反射(例如,或者以其他方式返回)到边缘网络设备202。边缘网络设备202可以接收转发的gre存活分组并且记录接收的时间(例如,其接收到转发的gre存活分组的时间)。边缘网络设备202可以将隧道206的往返延迟测量计算为接收到转发的gre存活分组的时间与传输gre存活分组的时间之间的差。以类似的方式,边缘网络设备202可以创建gre存活分组(214),并且以下一特定存活传输时间间隔,将当前时间作为时间戳包括在gre存活分组的有效载荷字段中,并且通过隧道206将gre存活分组(216)传输向边缘网络设备204。边缘网络设备204可以将gre存活分组作为转发的gre存活分组(218)反射回为边缘网络设备202,并且边缘网络设备202可以记录其接收到转发的gre存活分组的时间。边缘网络设备202可以将隧道206的另一往返延迟测量计算为接收到转发的gre存活分组的时间与传输gre存活分组的时间之间的差。具有两个连续的往返延迟测量,边缘网络设备202可以将隧道206的抖动测量计算为两个连续的往返延迟测量之间的差。边缘网络设备202可以创建gre存活分组(220),并且以下一特定存活传输时间间隔,将当前时间作为时间戳包括在gre存活分组的有效载荷字段中,并且将gre存活分组(222)通过隧道206传输到边缘网络设备204。边缘网络设备204然后可以等待在特定时间段内(在该特定时间段内预期接收转发的gre存活分组)接收转发的gre存活分组。在特定时间段内未能接收到转发的gre存活分组,边缘网络设备202可以将gre存活分组视为丢失分组,并且增加隧道206上的丢失分组的数量的计数。边缘网络设备202可以创建gre存活分组(224),并且以下一特定存活时间传输时间间隔,将当前时间作为时间戳包括在gre存活分组的有效载荷字段中,并且将gre存活分组(226)通过隧道206传输到边缘网络设备204。边缘网络设备204可以将gre存活分组作为转发的gre存活分组(228)反射回边缘网络设备202,并且边缘网络设备202可以记录其接收到转发的gre存活分组的时间。边缘网络设备202可以创建gre存活分组,并且以特定存活传输时间间隔,将gre存活分组通过隧道206传输到边缘网络设备204。边缘网络设备202然后可以计算隧道206的附加往返延迟测量和/或其他抖动测量。边缘网络设备202还可以维护隧道206上的附加丢失分组的计数。在一些实施例中,边缘网络设备202可以在特定qos测量时间段内对qos测量(例如,延迟、抖动、丢失等)求平均值。例如,在特定qos测量时间段(例如,五分钟)内,边缘网络设备202可能已经传输了十个gre存活分组并且计算了往返延迟,如下表所示:往返延迟丢失分组?gre存活分组120秒gre存活分组218秒gre存活分组320秒gre存活分组4是gre存活分组522秒gre存活分组618秒gre存活分组722秒gre存活分组8是gre存活分组922秒gre存活分组1020秒根据上述往返延迟测量,边缘网络设备202可以在特定qos测量时间段内将平均延迟确定为20.25秒((20+18+20+22+18+22+22+20/8))。边缘网络设备202可以将抖动测量确定为2秒(20与18之间的差)、2秒(18与20之间的差)、4秒(22与18之间的差)、4秒(18与22之间的差)、以及2秒(22到20之间的差)。边缘网络设备202可以在特定qos测量时间段内将平均抖动确定为2.6秒((2+2+4+4+2)/5)。边缘网络设备202可以在特定qos测量时间段内将丢失分组的数量确定为2(gre存活分组4和8)。以与上述类似的方式,边缘网络设备202可以确定附加gre隧道的qos测量。在不脱离本公开的范围的情况下,可以对图2进行修改、增加或省略。例如,可以在边缘网络设备202和204之间传输和/或接收任意数量的gre存活分组。作为另一示例,可以在边缘网络设备202和204之间配置一个或多个附加隧道。图3是示出用于测量根据本文描述的至少一些实施例进行布置的gre隧道的qos的示例性过程的流程图300。示例性过程和方法可以包括如由框302、304、306、308、310、312、314和/或316中的一个或多个所示出的一个或多个操作、功能或动作,并且在一些实施例中,可以由诸如图6的边缘网络设备602的端点来执行这些操作、功能或动作。框302-316中描述的操作也可以作为计算机可执行指令存储在计算机可读介质(例如,边缘网络设备602的存储器614和/或数据存储装置616)中。如流程图300所示,测量gre隧道的qos的示例性过程可以从框302(“创建具有时间戳的存活分组”)开始,其中隧道源端点可以以特定存活时间间隔创建gre存活分组,并且将当前时间戳包括在gre存活分组的有效载荷字段中。当前时间戳指示gre存活分组正在被传输的时间。框302之后可以是框304(“通过隧道来传输存活分组”),其中隧道源端点可以将gre存活分组(其在有效载荷字段中包括当前时间戳)传输到gre隧道的另一端处的隧道目的地端点。框304之后可以是判断框306(“接收到转发的存活分组?”),其中隧道源端点可以确定是否接收到转发的gre存活分组。例如,在通过gre隧道传输gre存活分组之后,隧道源端点可以等待预期的返回时间段,以从gre隧道的另一端处的隧道目的地端点接收转发的gre存活分组。如果隧道源端点确定其接收到转发的gre存活分组,则判断框306之后可以是框308(“记录转发的存活分组的接收时间”),其中隧道源端点可以记录其接收到转发的gre存活分组的时间。框308之后可以是框310(“记录来自转发的存活分组的传输时间戳”),其中隧道源端点可以记录其传输gre存活分组(其产生接收的转发的gre存活分组)的时间。隧道源端点可以根据被包括在接收的转发的gre存活分组的有效载荷字段中的时间戳来确定传输gre存活分组的时间。在一些实施例中,隧道源端点可以维护针对由隧道源端点传输的gre存活分组的传输时间的记录。在该实例中,隧道源端点可以从所维护的传输时间的记录中确定其传输gre存活分组的时间。框310之后可以是框312(“基于接收时间和传输时间戳来确定隧道的qos测量”),其中隧道源端点可以基于所记录的传输时间和接收时间来确定gre隧道的qos测量,例如往返延迟、抖动等。例如,隧道源端点可以在特定时间段内传输多个gre存活分组,以每个特定存活时间间隔传输一个gre存活分组,并且使用多个传输时间和接收时间来确定gre隧道的qos测量。附加地或可选地,隧道源端点可以通过对在特定时间段内获得的qos测量求平均值来确定gre隧道的平均qos测量。否则,如果在判断框306处,隧道源端点确定其没有接收到转发的gre存活分组,则判断框306之后可以是判断框314(“过去了预期的返回时间?”),其中隧道源端点可以确定预期的返回时间是否已经过去。即,隧道源端点是否已经等待了预期的返回时间段而没有接收到转发的gre存活分组。如果隧道源端点确定其没有等待预期的返回时间段,则判断框314之后可以是判断框306,其中隧道源端点可以检查以确定是否接收到转发的gre存活分组。否则,如果隧道源端点确定其已经等待了预期的返回时间段,则判断框314之后可以是框316(“记录丢失的存活分组”),其中隧道源端点可以确定所传输的gre存活分组丢失。即,隧道源端点可以断定其将不从gre隧道的另一端处的隧道目的地端点接收转发的gre存活分组。隧道源端点可以维护丢失的gre存活分组的计数。例如,隧道源端点可以将丢失的gre存活分组的计数增加1。本领域技术人员将理解,对于本文公开的这个和其他过程和方法,在过程和方法中执行的功能可以以不同的顺序实现。此外,所概述的动作和操作仅作为示例提供,并且在不背离所公开的实施例的本质的情况下,动作和操作中的一些可以是可选的、被组合为更少的动作和操作、或者被扩展为附加的动作和操作。图4示出了通过根据本文描述的至少一些实施例进行布置的任意隧道和优选隧道的数据分组的传输。为了清楚起见,图4中与图1的组件相同标记的那些组件将不再被描述。如以上结合图1所描述的,边缘网络设备104可以基于可用隧道的一个或多个策略和/或一个或多个属性,通过隧道116向边缘网络设备106或者通过隧道118向边缘网络设备108发送去往云域110的数据分组。例如,隧道116和118可以是gre隧道,并且所应用的策略可以是选择提供更好的qos的gre隧道。不知道隧道116或118中的哪一个提供更好的qos,边缘网络设备104可以任意地选择隧道中的一个,例如隧道116,并且开始通过隧道116(402)传输去往云域110的数据分组(例如,数据流)。因为边缘网络设备104通过任意选择的隧道来发送数据流,所以边缘网络设备104可以缓冲通过隧道116发送的数据分组,直到其确定提供更好的qos(404)的隧道。同时,边缘网络设备104可以通过经由隧道116和118中的每一个来发送gre存活分组并且接收转发的gre存活分组来确定隧道116或118中的哪一个提供更好的qos,以如本文所述测量qos(406)。假设边缘网络设备104确定隧道118提供更好的qos。在确定隧道118提供比隧道116更好的qos之后,边缘网络设备104可以将隧道118指定为优选隧道,并且通过隧道118(优选隧道)(408)来重放所缓冲的数据分组。边缘网络设备104然后可以通过隧道118来发送后续数据分组。图4中仅示出了两个隧道,并且为了简单起见,在该示例中使用了两个隧道,并且本领域技术人员将理解,可以存在不同数目的隧道。在不脱离本公开的范围的情况下,可以对图4进行修改、添加或省略。例如,可以存在被配置在边缘网络设备104和106之间和/或在边缘网络设备104和108之间的一个或多个附加隧道。作为另一示例,可以存在被配置在边缘网络设备104和除了边缘网络设备106或108之外的边缘网络设备之间的一个或多个附加隧道。图5是示出基于根据本文描述的至少一些实施例进行布置的gre隧道的qos通过gre隧道来传输数据分组的示例性过程的流程图500。示例性过程和方法可以包括如由框502、504、506、508、510、512和/或514中的一个或多个示出的一个或多个操作、功能或动作,并且在一些实施例中,可以由诸如图6的边缘网络设备602之类的端点来执行这些操作、功能或动作。框502-514中描述的操作也可以作为计算机可执行指令被存储在计算机可读介质(例如,边缘网络设备602的存储器614和/或数据存储装置616)中。如流程图500所示,基于gre隧道的qos通过gre隧道来传输数据分组的示例性过程可以开始于框502(“通过任意隧道来传输旨在用于应用的数据分组”),其中网络设备(例如,边缘网络设备106)可以开始通过任意的gre隧道来传输旨在用于应用的数据分组。例如,适于向应用发送数据分组的多个gre隧道可以被配置在网络设备与一个或多个远程网络设备之间,并且网络设备可以应用策略以使用具有最小延迟的gre隧道。在不知道具有最小延迟的gre隧道的情况下,网络设备可以选择gre隧道中的一个隧道作为任意gre隧道,并且开始通过该任意gre隧道来传输数据分组。框502之后可以是框504(“缓冲所传输的数据分组”),其中网络设备对通过任意gre隧道发送的数据分组进行缓冲。例如,网络设备可以在本地存储器中缓冲数据分组。框504之后可以是框506(“确定适于到达应用的多个隧道的qos测量”),其中网络设备确定多个gre隧道中的哪个gre隧道提供最小延迟。例如,网络设备可以测量多个gre隧道中的每个gre隧道的延迟。框506之后可以是框508(“基于qos测量来选择多个隧道中的一个隧道作为优选隧道”),其中网络设备选择具有最小延迟的gre隧道作为优选gre隧道。框508之后可以是判断框510(“是任意隧道优选隧道?”),其中网络设备确定任意gre隧道与优选gre隧道是否相同。如果任意gre隧道与优选gre隧道不同,则判断框510之后可以是框512(“通过优选隧道来重放缓冲后的数据分组”),其中网络设备可以通过优选gre隧道来重放(重新传输)缓冲后的数据分组。框512之后可以是框514(“通过优选隧道来传输旨在用于应用的后续数据分组”),其中网络设备可以通过优选gre隧道来传输旨在用于该应用的后续数据分组。在确定了优选gre隧道(具有最小延迟的gre隧道)并且通过优选gre隧道重放了缓冲后的数据分组之后,网络设备无需继续通过任意gre隧道来传输数据分组。否则,如果任意gre隧道与优选gre隧道相同,则判断框510之后可以是框514,其中网络设备可以通过优选gre隧道来传输旨在用于该应用的后续数据分组。在任意gre隧道与优选gre隧道相同的情况下,则无需重放(重新传输)已经通过任意gre隧道发送(已经通过优选gre隧道发送)的数据分组。在一些实施例中,与多个隧道一起配置的远程设备可以由应用提供。在其他实施例中,与多个隧道一起配置的远程设备可以由不同于该应用的第三方应用来提供。在该实例中,远程设备可以从远程设备向应用提供必要的服务级别(例如,所需的服务级别),从而允许网络设备使用满足其一个或多个应用策略的gre隧道。图6示出了可以被用于测量根据本文描述的至少一些实施例进行布置的gre隧道的qos的边缘网络设备602的环境600。如图所示,边缘网络设备602可以包括用于与其他边缘网络设备604、606和608进行通信的多个潜在连接。例如,边缘网络设备602可以使用网络a660与边缘网络设备604进行通信、使用网络b670与边缘网络设备606进行通信、和/或使用网络c680与边缘网络设备608进行通信。边缘网络设备602、604、606和608可以与图1和图4的边缘网络设备104、106和108和/或图2的边缘网络设备202和204相似或相当。环境600可以附加地包括客户端设备650,该客户端设备650可以诸如跨外部网络域被通信地耦合至边缘网络设备602。在一些实施例中,边缘网络设备602可以包括网络a连接620、网络b连接630和网络c连接640。如网络c连接640下方的椭圆所示,任意数量的附加或其他潜在连接也可以被包括在内。在这些和其他实施例中,边缘网络设备602可以包括用于连接到一个或多个潜在连接的多个电路。例如,边缘网络设备602可以包括用于网络a连接620的电路a622和电路b624、用于网络b连接630的电路a632和电路b634以及用于网络c连接640的电路a642和电路b644。在这些和其他实施例中,边缘网络设备602可以被配置为基于由边缘网络设备602存储的一个或多个策略来沿着一个或多个电路路由业务。在一些实施例中,边缘网络设备602可以被配置为监视各种连接的一个或多个属性。例如,边缘网络设备602可以监视从边缘网络设备602到边缘网络设备604、606和/或608的各种通信链路的抖动、延迟、丢失和/或带宽。在这些和其他实施例中,边缘网络设备602还可以监视和/或存储各种通信链路的安全属性。例如,可以将网络a660上的链路662和664视为处于第一安全级别,可以将网络b670上的链路672和674视为处于第二安全级别,并且将网络c680上的链路682和684视为处于第三安全级别。在一些实施例中,链路662、664、672、674、682和/或684中的一个或多个可以是隧道,例如gre隧道。在一些实施例中,边缘网络设备602可以基于一个或多个策略和/或基于各种连接的一个或多个属性,将旨在用于一个或多个应用的业务路由到特定电路。例如,视频应用可能特别容易受到抖动的影响。边缘网络设备602可以确定视频业务可能正在跨具有10ms的抖动的链路682进行传播,并且链路662可能具有4ms的抖动。在该实例中,由于较低的抖动,边缘网络设备602可以将针对视频应用的业务转移到链路662而不是链路682。在一些实施例中,从链路682到链路662的转移可以基于基于抖动的sla。作为另一示例,边缘网络设备602可以接收针对安全敏感的应用(例如,记帐应用)的数据流,并且可以具有以下策略:用于该应用的数据将沿着网络b链路672和/或674中的一个链路进行路由,即使可以沿着网络a链路662路由其他业务。作为另一示例,边缘网络设备602可以包括给定应用具有可用于该应用的10mb/s的带宽的sla。在该实例中,边缘网络设备602可以使网络a660上的链路662可用于该应用,但是链路662可以提供5mb/s的带宽。边缘网络设备602还可以向应用提供链路682和684,以使链路662、682和684的整体组合带宽达到或超过sla的带宽协议。在这些和其他实施例中,边缘网络设备602可以被配置为基于初始接收数据流、在正在进行的数据流期间、基于数据流的触发事件和/或其他或前述的组合来执行这样的路由。附加地或可选地,这样的路由可以在路由业务流时对用于单一流的多种类型的连接的多个链路进行组合。在一些实施例中,边缘网络设备602可以被配置为基于业务的来源将业务路由到各个链路。例如,一个或多个策略可以指示来自企业的一个公司部门的业务沿着网络b连接630进行路由,而用于另一公司部门的业务可以沿着任意链路进行路由。在一些实施例中,边缘网络设备602可以包括处理器612、存储器614、存储设备616和/或通信设备618。通常,处理器612可以包括任意合适的专用或通用计算机、计算实体或者包括各种计算机硬件或软件模块的处理设备,并且可以被配置为执行存储在任意合适的计算机可读存储介质上的指令。例如,处理器612可以包括微处理器、微控制器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或任意其他被配置为解释和/或执行程序指令和/或处理数据的数字或模拟电路。尽管在图6中被示出为单个处理器,但是应当理解,处理器612可以包括分布在任意数量的网络或物理位置上的任意数量的处理器,这些处理器被配置为单独地或共同地执行本公开中描述的任意数量的操作。在一些实施例中,处理器612可以解释和/或执行程序指令和/或处理存储在存储器614、存储设备616或存储器614和存储设备616中的数据。在一些实施例中,处理器612可以从数据存储装置616获取程序指令,并且将程序指令加载到存储器614中。在将程序指令加载到存储器614中之后,处理器612可以执行程序指令。存储器614和存储设备616可以包括用于承载或具有存储在其上的计算机可执行指令或数据结构的计算机可读存储介质或一个或多个计算机可读存储介质。这样的计算机可读存储介质可以是可以由通用或专用计算机(例如,处理器612)进行存取的任意可用介质。在一些实施例中,边缘网络设备602可以包括或可以不包括存储器614和存储设备616中的任意一个。通过示例而非限制性的方式,这种计算机可读存储介质可以包括非暂态计算机可读存储介质,其包括随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)或其他光盘存储装置、磁盘存储装置或其他磁性存储设备、闪存设备(例如,固态存储设备)或者任意其他存储介质,其可以被用于携带或存储计算机可执行指令或数据结构形式的期望的程序代码,并且其可以由通用或专用计算机进行存取。以上的组合也可以被包括在计算机可读存储介质的范围内。计算机可执行指令可以包括诸如被配置为使处理器612执行特定操作或一组操作的指令和数据。通信设备618可以包括被配置为传输或接收信息的任意组件、设备、系统或前述的组合。在一些实施例中,通信设备618可以与在其他位置、相同位置处的其他设备或者甚至与同一系统内的其他组件进行通信。例如,通信设备618可以包括调制解调器、网卡(无线或有线)、光通信设备、射频换能器、超声换能器、红外通信设备、无线通信设备(例如,天线)、和/或芯片组(例如,蓝牙设备、802.6设备(例如,城域网(man))、wifi设备、wimax设备、蜂窝通信设施等)等、和/或前述的组合。通信设备618可以允许与本公开中描述的网络和/或任意其他设备或系统交换数据。例如,通信设备618可以允许边缘网络设备602与其他系统(例如,边缘网络设备604、606和608中的任意一个或多个)进行通信。在不脱离本公开的范围的情况下,可以对图6的环境600进行修改、添加或省略。例如,尽管被示出为包括一定数量的边缘网络设备602、604、606和608,但是环境600可以包括任意数量的边缘网络设备。作为另一示例,尽管被示出为包括三个通信网络(网络a660、网络b670和网络c680),但是可以利用任意数量的通信网络。如上所述,本公开中描述的实施例可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机(例如,图6的处理器612),如本文更详细地讨论的。此外,如上所述,本公开中描述的实施例可以使用计算机可读介质(其用于承载或具有存储在其上的计算机可执行指令或数据结构)(例如,图6的存储器614)来实现。尽管在gre隧道的上下文中进行了描述,但是应当理解,任意网络隧道也在本公开的范围内。此外,尽管在gre存活分组的上下文中进行了描述,但是将理解的是,可以通过网络隧道传输和反射回的任意分组也在本公开的范围内。根据一些示例,描述了在端点处测量网络隧道的服务质量(qos)的方法。在端点处测量网络隧道的qos的示例方法可以包括配置从端点到隧道目的地端点的网络隧道,该端点是隧道源端点;通过端点向隧道目的地端点传输多个状态分组,每个状态分组在状态分组的有效载荷字段中包括时间戳,该时间戳指示各个状态分组从端点到隧道目的地端点的传输时间;通过端点从隧道目的地端点接收多个转发的状态分组,转发的状态分组中的每个状态分组均是通过端点向隧道目的地端点传输的相应状态分组的返回;确定转发的状态分组中的每个状态分组的接收时间;以及基于多个状态分组中的每个状态分组的传输时间和转发的状态分组中的每个状态分组的接收时间来确定网络隧道的qos测量。在一些示例中,qos测量可以包括延迟测量。在一些示例中,qos测量可以包括抖动测量。根据其他示例,该方法还可以包括确定未接收到的预期转发的状态分组的数量;以及基于未接收到的预期转发的状态分组的数量来确定丢失的状态分组的数量。根据进一步的示例,可以以特定时间间隔传输多个状态分组中的每个状态分组。在一些示例中,可以在特定时间段内对qos测量求平均值。在一些示例中,网络隧道可以包括通用路由封装(gre)隧道,并且状态分组可以包括gre存活分组。根据其他示例,描述了被配置为确定网络隧道的qos的隧道源端点。示例隧道源端点可以包括被配置为存储指令的存储器和被配置为执行指令的处理器。指令的执行可以使处理器向隧道目的地端点传输多个状态分组,状态分组中的每个状态分组在状态分组的有效载荷字段中包括时间戳,该时间戳指示各个状态分组从端点到隧道目的地端点的传输时间;从隧道目的地端点接收多个转发的状态分组,转发的状态分组中的每个状态分组是通过端点向隧道目的地端点传输的相应状态分组的返回;确定转发的状态分组中的每个状态分组的接收时间;以及基于多个状态分组中的每个状态分组的传输时间和转发的状态分组中的每个状态分组的接收时间来确定网络隧道的qos测量。在一些示例中,隧道源端点可以包括路由器。在一些示例中,隧道目的地端点可以包括安全的web网关。在一些示例中,网络隧道可以包括通用路由封装(gre)隧道,并且状态分组可以包括gre存活分组。根据一些示例,描述了基于网络隧道的qos通过网络隧道来传输数据分组的方法。基于网络隧道的qos通过网络隧道传输数据分组的示例方法可以包括:由隧道源端点通过多个网络隧道的任意网络隧道传输数据分组,多个网络隧道中的每个网络隧道从隧道源端点到多个隧道目的地端点中的相应一个隧道目的地端点,数据分组去往应用;对去往应用的所传输的数据分组进行缓冲;选择多个网络隧道中的一个网络隧道作为优选网络隧道用于传输去往应用的数据分组,选择多个网络隧道中的一个网络隧道是基于多个网络隧道中的每个网络隧道的qos测量的,其中基于到多个隧道目的地端点中的每个隧道目的地端点的状态分组的传输来确定qos测量;以及通过多个网络隧道中的所选择的一个网络隧道传输去往应用的后续数据分组。根据其他示例,该方法还可以包括:响应于确定多个网络隧道中的所选择的一个网络隧道不同于多个网络隧道中的任意网络隧道,通过多个网络隧道中的所选择的一个网络隧道来重放去往应用的缓冲后的数据分组。在一些示例中,网络隧道可以包括通用路由封装(gre)隧道,并且状态分组可以包括gre存活分组。如本公开中所使用的,术语“模块”或“组件”可以指特定硬件实现方式,其被配置为执行模块或组件的动作;和/或软件对象或软件例程,其可以被存储在计算系统的通用硬件(例如,计算机可读介质、处理设备等)上和/或由计算系统的通用硬件(例如,计算机可读介质、处理设备等)执行。在一些实施例中,在本公开中描述的不同组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。虽然本公开中描述的一些系统和方法通常被描述为以软件(存储在通用硬件上和/或由通用硬件执行)的方式实现,但是特定硬件实现方式、固件实现方式或前述的任意组合也是可能的和预期的。在本说明书中,“计算实体”可以是如在本公开中先前描述的任意计算系统,或者在计算系统上执行的任意模块或模块的组合。在本公开和所附权利要求(例如,所附权利要求的主体)中使用的术语通常旨在作为“开放式”术语(例如,术语“包括”应当被解释为“包括但不限于”,术语“具有”应当被解释为“至少具有”,术语“包括”应当被解释为“包括但不限于”等)。此外,如果意图是所引入的权利要求叙述的特定数目,则这样的意图将在权利要求中进行明确地叙述,并且在没有这样的叙述的情况下,不存在这样的意图。例如,为了帮助理解,以下所附权利要求可以包含使用引导性短语“至少一个”和“一个或多个”来引入权利要求叙述。然而,这种短语的使用不应当被解释为暗示着由不定冠词“一”或“一个”引入的权利要求叙述将包含这种引入的权利要求叙述的任意特定权利要求限制为仅包含一个这样的叙述的实施例,即使当同一权利要求包括引导性短语“一个或多个”或“至少一个”以及不定冠词诸如“一”或“一个”(例如,“一”或“一个”应当被解释为意指“至少一个”或“一个或多个”);这同样适用于用来引入权利要求叙述的定冠词的使用。此外,即使明确地叙述了所引入的权利要求叙述的特定数目,本领域技术人员也将认识到,这样的叙述应当被解释为意味着至少所叙述的数目(例如,在没有其他修饰语的情况下,“两个叙述”的无修饰叙述意味着至少两个叙述、或者两个或更多个叙述)。此外,在使用类似于“a、b和c等中的至少一个”或“a、b和c等中的一个或多个”的惯例的那些实例中,通常这样的构造旨在包括单独的a、单独的b、单独的c、a和b一起、a和c一起、b和c一起、或a、b和c一起等。本公开中记载的所有示例和条件性语言旨在用于教导目的,以帮助读者理解本公开和发明人促进本领域而贡献的概念,并且应当被解释为不限于这些具体记载的示例和条件。尽管已经详细地描述了本公开的实施例,但是在不脱离本公开的精神和范围的情况下,可以对其进行各种改变、替换和变更。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1