针对体验质量度量的按需探测的制作方法

文档序号:22253035发布日期:2020-09-18 13:09阅读:104来源:国知局
针对体验质量度量的按需探测的制作方法

本公开涉及计算机网络。



背景技术:

在过去的几十年中,因特网已经从包括少量节点的小型网络成指数地增长到为超过十亿用户提供服务的全球普及网络。今天,个人用户不限于在网络上运行一些具有语音和/或数据下载的网络会话。相反,用户使用的服务范围在多媒体游戏、音频和视频流、网络服务、ip语音(voip)等方面变化很大。随着新技术渗透,诸如物联网(iot)和m2m(机器到机器)通信的利用的增加,给定用户可能需要的网络服务和软件应用也从几个会话变化到具有并发流的多个会话。随着用户越来越多地同时运行多个应用、服务和交易,这个数字正在迅速增长。用户会话和分组流的数量和种类的增加为网络服务提供商在网络性能(诸如延时、延迟和抖动)方面带来了挑战。



技术实现要素:

一般而言,本公开描述了用于评估特定应用的流量并且在接收到特定应用的流量时发起对应的合成探测过程的技术,其中探测过程为在其上传输流量的链路生成各种体验质量(qoe)度量。类似地,当实施本文描述的技术的软件定义的广域网(sd-wan)设备检测到特定应用的流量已完成,或者sd-wan设备没有在接收流量时,sd-wan设备可以停止与该应用对应的合成探测过程。

在一些sd-wan中,sd-wan路由设备可以为客户端设备和应用服务器之间的数据流指定路径。通常使用服务水平协议(sla)参数和wan链路的各种度量来选择这些路径。虽然sla参数本质上可以是更加静态的,或者至少在sd-wan设备接收流之前预先确定,但是各种wan链路的度量可以更加动态,因为描述特定wan链路的能力的度量可以根据网络的各种当前方面变化。通过在各种链路上发送探测分组并分析传输结果来获得这些度量,其中具有与数据流中的数据分组相同大小的探测分组合理地测量特定wan链路如何处理数据流。

代替经由每个wan链路上发送一个或多个预先配置的探测分组以连续地为每个链路提供所有必要的qoe度量,本文描述的技术可以仅在当前正在接收流量的链路上发起探测过程。为了详述这些技术的好处,本文描述的sd-wan设备可能仅利用那些探测分组(将为与接收和传输的流量相关联的特定应用提供有价值的qoe度量)中的一个或多个的子集,而不是在任何流量流过链路时就发送一组预先配置的探测分组。

如果在流量传输的中间,流量必须移动到不同的链路,则本文描述的sd-wan设备可以停止对之前链路的探测过程并且发起对新链路探测过程。流量可能由于各种原因而改变链路,包括基于应用的qoe度量和sla度量从默认wan链路切换到最佳等价多路径(ecmp)链路。另一个原因可以是原始链路不再满足应用的sla度量,但通过将流量移动到第二链路可以满足sla度量。

这些技术还可以在相应的链路的队列内扩展。例如,单个wan链路可以包括多个不同的队列。sd-wan设备可以仅经由正在经历流量的特定队列发送一个或多个探测分组,而不是经由wan链路的每个队列发送一个或多个探测分组。粒度的该附加水平可以增加本文描述的技术的益处。

使用本文描述的技术可能存在一个或多个优点。作为一个示例,因为本公开的技术可以根据需要发送探测分组,所以实施本文描述的技术的sd-wan网络可以更具可扩展性,使得这种网络能够包括更多潜在链路和更多客户端设备,而无需对应地增加探测过程引起的开销。对于具有相同数量的链路和客户端设备的系统,实施本文描述的技术的sd-wan可以比之前的系统消耗更少的计算资源,诸如带宽、存储器和电池功率。这通常可以提高sd-wan系统的效率,因为实施本文描述的技术的sd-wan可以消耗更少的带宽并且减少用于生成qoe度量的处理时间。总的来说,本文描述的技术可以通过减少存储的量和服务水平协议(sla)结果、日志等的处理来减少sd-wan设备上的负载。

在本文描述的技术的一个示例中,描述了一种方法,方法包括,响应于由网络设备接收针对应用的数据流的应用数据分组,由网络设备将数据流分配给多个链路中的第一链路。方法还包括,响应于接收到数据流的应用数据分组,由网络设备发起对第一链路上的数据流的探测过程,以确定第一链路的一个或多个体验质量(qoe)度量。方法还包括由网络设备检测网络设备不再接收数据流。方法还包括,响应于检测到网络设备不再接收数据流,网络设备停止针对第一链路上的数据流的探测过程。

在本文描述的技术的另一示例中,描述了一种网络设备。网络设备包括存储器。网络设备还包括与存储器通信的一个或多个处理器。一个或多个处理器被配置为响应于接收到针对应用的数据流的应用数据分组,将数据流分配给多个链路的第一链路。一个或多个处理器还被配置为响应于接收到数据流的应用数据分组,发起对第一链路上的数据流的探测过程,以确定第一链路的一个或多个体验质量(qoe)度量。一个或多个处理器还被配置为检测网络设备不再接收数据流。一个或多个处理器还被配置为响应于检测到网络设备不再接收数据流,停止针对第一链路上的数据流的探测过程。

在本文描述的技术的另一示例中,描述了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质在其上存储指令,该指令在被执行时经由执行软件定义网络(sdn)设备,使一个或多个处理器:响应于接收到应用的数据流的应用数据分组,将数据流分配给多个链路的第一链路。该指令还使得一个或多个处理器响应于接收到数据流的应用数据分组,发起对第一链路上的数据流的探测过程,以确定第一链路的一个或多个体验质量(qoe)度量。该指令还使一个或多个处理器检测网络设备不再接收数据流。该指令还使得一个或多个处理器响应于检测到网络设备不再接收数据流,停止针对第一链路上的数据流的探测过程。

在附图和以下描述中阐述了一个或多个示例的细节。根据描述和附图以及权利要求,其他特征、目的和优点将显而易见。

附图说明

图1是图示根据本公开的技术的执行按需主动合成探测过程的示例软件定义的广域网系统的框图。

图2是图示根据本公开的一种或多种技术的示例软件定义的广域网的框图。

图3是图示根据本公开的技术的被配置为使用流量引擎执行一个或多个按需主动合成探测功能的示例软件定义的广域网设备的框图。

图4是图示根据本公开的技术的用于执行按需主动合成探测功能的软件定义的广域网系统的示例技术的流程图。

具体实施方式

图1是图示根据本公开的技术的执行按需主动合成探测过程的示例软件定义的广域网系统的框图。

图1的示例网络系统包括服务提供商网络2,其作为专用网络来操作,以向用户设备16提供基于分组的网络服务。即,服务提供商网络2为用户设备16提供网络接入的认证和建立,使得用户设备可以开始与可以是诸如因特网的内部或外部基于分组的网络的公共网络12交换数据分组。

在图1的示例中,服务提供商网络2包括经由服务提供商软件定义的广域网7(以下称为“sd-wan7”)和路由器8向公共网络12提供连接性的接入网络6。sd-wan7和公共网络12提供可供用户设备16请求和使用的基于分组的服务。作为示例,sd-wan7和/或公共网络12可以提供大量数据传送、因特网协议语音(voip)、因特网协议电视(iptv)、短消息服务(sms)、无线应用协议(wap)服务或客户专用的应用服务。公共网络12可以包括例如局域网(lan)、广域网(wan)、因特网、虚拟lan(vlan)、企业lan、层3虚拟专用网(vpn)、由操作接入网络6的服务提供商操作的因特网协议(ip)内联网、企业ip网络或它们的某种组合。在各种示例中,公共网络12连接到公共wan、因特网或其他网络。公共网络12执行一个或多个分组数据协议(pdp),诸如,ip(ipv4和/或ipv6)、x.25或点对点协议(ppp),以使公共网络12的基于分组的传输能够服务。

通常,用户设备16经由接入网络6连接到网关路由器8,以接收到用于由用户设备16或路由器9托管的应用的用户服务的连接性。例如,用户可以表示企业、住宅用户或移动用户。例如,用户设备16可以是个人计算机、膝上型计算机或位于客户设备(ce)11后面的其他类型的计算设备,其可以提供本地路由和交换功能。用户设备16中的每个可以运行各种软件应用,诸如文字处理和其他办公室支持软件、网页浏览软件、支持语音呼叫、视频游戏、视频会议和电子邮件的软件等。例如,用户设备16可以是各种网络使能的设备,通常被称为“物联网”(iot)设备,诸如,相机、传感器(s)、电视机、电器等。另外,用户设备16可以包括经由无线接入网络(ran)6访问服务提供商网络2的数据服务的移动设备。示例移动用户设备包括移动电话、具有例如3g无线网卡的膝上型或台式电脑、支持无线的上网本、视频游戏设备、寻呼机、智能电话、个人数据助理(pda)等。

网络服务提供商操作或在某些情况下租赁接入网络6的元件,以在用户设备16和路由器8之间提供分组传输。接入网络6表示聚合来自一个或多个用户设备16的数据流量以用于向/从服务提供商的sd-wan7传送的网络。接入网络6包括网络节点,该网络节点执行通信协议,以传送控制和用户数据,以促进用户设备16和路由器8之间的通信。接入网络6可以包括宽带接入网络、无线lan、公共交换电话网络(pstn)、客户驻地设备(cpe)网络或其他类型的接入网络,并且可以包括或以其他方式提供诸如无线电接入网络(ran)(未示出)的蜂窝接入网络的连接性。示例包括符合通用移动电信系统(umts)架构的网络、被称为长期演进(lte)的umts的演进、由因特网工程任务组(ietf)标准化的移动ip、以及由第三代合作伙伴计划(3gpp)、第三代合作伙伴计划2(3ggp/2)和wimax论坛提出的其他标准。

sd-wan设备18可以是客户边缘(ce)路由器、提供商边缘(pe)路由器或在接入网络6和sd-wan7之间的其他网络设备。sd-wan7向附接到接入网络6的用户设备16提供基于分组的连接,以用于访问公共网络12(例如,因特网)。sd-wan7可以表示由服务提供商拥有和操作的互连多个网络(可以包括接入网络6)的公共网络。sd-wan7可以实施多协议标签交换(mpls)转发,并且在这种实例中可以被称为mpls网络或mpls骨干网。在一些实例中,sd-wan7表示多个互连的自治系统,诸如提供来自一个或多个服务提供商的服务的因特网。公共网络12可以表示因特网。公共网络12可以表示经由转接网络22和一个或多个网络设备(例如,客户边缘设备,诸如客户边缘交换机或路由器)耦接到sd-wan7的边缘网络。公共网络12可以包括数据中心。路由器8可以经由虚拟网络20与服务节点10交换分组,并且路由器8可以经由转接网络22将分组转发到公共网络12。

在包括有线/宽带接入网络的网络2的示例中,路由器8可以表示宽带网络网关(bng)、宽带远程访问服务器(bras)、mplspe路由器、核心路由器或网关、或电缆调制解调器终端系统(cmts)。在包括作为接入网络6的蜂窝接入网络的网络2的示例中,路由器8可以表示移动网关,例如,网关通用分组无线服务(gprs)服务节点(ggsn)、接入网关(agw)或分组数据网络(pdn)网关(pgw)。在其他示例中,关于路由器8描述的功能可以在交换机、服务卡、或另一个网络元件或组件中实施。在一些示例中,路由器8本身可以是服务节点。

管理至少部分网络2的网络服务提供商通常向与接入服务提供商网络2的设备(例如,用户设备16)相关联的用户提供服务。例如,所提供的服务可以包括传统的因特网接入、voip、视频和多媒体服务、以及安全服务。如上文关于sd-wan7所描述的,sd-wan7可以支持连接到服务提供商网络接入网关以提供对所提供服务的访问的多种类型的接入网络基础设施。在一些实例中,网络系统可以包括附接到具有变化架构的多个不同接入网络6的用户设备16。

通常,用户设备16中的任何一个或多个可以通过向诸如sd-wan设备18或路由器8的网关设备发送会话请求来请求授权和数据服务。进而,软件定义的广域网(“sd-wan”)设备18可以访问中央服务器(未示出),注入认证、授权和计费(aaa)服务器,以认证请求网络接入的一个用户设备16。在认证之后,任何的用户设备16可以向sd-wan7发送用户数据流量,以访问和接收由公共网络12提供的服务,并且这种分组可以作为至少一个分组流的一部分穿过路由器8。在一些示例中,sd-wan设备18可以将所有经认证的用户流量转发到公共网络12,并且如果用户流量需要服务节点10上的服务,则路由器8可以应用服务15和/或将特定用户流量引导到数据中心9。要应用到用户流量的应用(例如,服务应用)可以被托管在服务节点10上。

例如,当转发用户流量时,路由器8可以通过在安装在路由器9内的一个或多个服务卡上执行的服务15来引导单独的用户分组流。附加地或备选地,服务提供商网络2包括数据中心9,数据中心9具有提供大多数虚拟化网络服务的执行环境的一组服务节点10。在一些示例中,服务节点10中的每个表示服务实例。服务节点10中的每个可以将一个或多个服务应用于流量。因此,路由器8可以通过由服务节点10提供的定义的服务集来引导用户分组流。即,在一些示例中,每个用户分组流可以通过由服务节点10提供的服务的特定有序组合来转发,每个有序的集合在本文被称为“服务链”。作为示例,服务15和/或服务节点10可以应用状态防火墙(sfw)和安全服务、深度分组检测(dpi)、载波级网络地址转换(cgnat)、流量目的地功能(tdf)服务、媒体(语音/视频)优化、因特网协议安全(ipsec)/虚拟专用网(vpn)服务、超文本传输协议(http)过滤、计数、计费、收费、和/或分组流的负载平衡、或应用于网络流量的其他类型的服务。

在图1的示例中,可以沿着包括服务15和/或由服务节点10应用的服务中的任何一个的服务链引导用户分组流。在服务链的终端节点(即,将被应用到沿着特定服务路径流动的分组的最后一个服务)处理之后,流量可以被引导到公共网络12。

尽管“服务链”定义了以特定顺序应用的一个或多个服务,以向绑定到服务链的分组提供应用的复合服务,但“服务隧道”或“服务路径”是指由服务链处理的分组流采取的逻辑和/或物理路径以及根据服务链排序转发分组流的转发状态。每个服务链可以与相应的服务隧道相关联,并且与每个用户设备16相关联的分组流根据与相应的用户相关联的服务配置文件沿服务隧道流动。例如,给定的用户可以与特定服务配置文件相关联,特定服务配置文件又被映射到与特定服务链相关联的服务隧道。同样,另一个用户可以与不同的服务配置文件相关联,该服务配置文件又被映射到与不同的服务链相关联的服务隧道。在一些示例中,在sd-wan18对用户进行认证和建立访问会话之后,sd-wan18或路由器8可以沿着适当的服务隧道为用户引导分组流,从而使数据中心9为给定的用户应用必要的定制服务(orderedservices)。在一些示例中,sdn控制器14还可以向sd-wan18或路由器8提供转发规则集,以用于管理转发路径。在一些示例中,sdn控制器14通过数据中心9中的所有元件从路由器8开始来管理转发路径。

在一些示例中,服务节点10可以使用内部配置的转发状态来实施服务链,该转发状态引导沿着服务链的分组流的分组,以用于根据所标识的服务节点10的集合进行处理。这种转发状态可以指定隧道接口,以用于使用诸如ip或通用路由封装(gre)隧道的网络隧道、使用gre(nvgre)的网络虚拟化,或者通过使用vlan、虚拟可扩展lan(vxlan)、mpls技术等,在服务节点10之间进行隧道化。在一些实例中,将服务节点10互连的实际或虚拟交换机、路由器或其他网络元件可以被配置为根据服务链将分组流引导到服务节点10。

在图1的示例中,服务提供商网络2包括软件定义网络(sdn)和网络功能虚拟化(nfv)架构。sdn控制器设备14可以提供用于配置和管理服务提供商网络2的路由和交换基础设施的高级控制器。nfv编排器设备13可以提供高级编排器,以用于配置和管理到数据中心9的服务节点10中的网络服务的虚拟化。在一些实例中,sdn控制器14管理数据中心9的操作环境内的虚拟机(vm)的部署。例如,sdn控制器14可以与提供商边缘(pe)路由器8交互,以指定在下面更详细描述的服务链信息。例如,由sdn控制器14提供的服务链信息可以指定由服务节点10提供的服务、用于沿服务路径隧道化或以其他方式传送分组流的流量工程信息、速率限制、服务类型(tos)标记、或指定用于将分组流匹配到特定服务链的标准的分组分类器的任何组合和排序。sdn控制器的进一步的示例细节在2013年06月05日提交的pct国际专利申请pct/us13/44378中描述,其全部内容通过引用并入本文。

尽管被图示为数据中心9的一部分,服务节点10可以是由sd-wan7的一个或多个交换机或虚拟交换机耦接的网络设备。在一个示例中,服务节点10中的每个可以作为vm在虚拟计算环境中运行。另外,计算环境可以包括诸如基于x86处理器的服务器的通用计算设备的可扩展集群。作为另一示例,服务节点10可以包括通用计算设备和专用设备的组合。作为虚拟化网络服务,由服务节点10提供的单个网络服务可以通过虚拟化存储器的配置、处理器利用率、存储和网络策略以及水平地通过添加附加的负载平衡的vm而如在现代数据中心中那样扩展。在其他示例中,服务节点10可以是网关设备或其他路由器。在另外的示例中,关于服务节点10中的每个描述的功能可以在交换机、服务卡或其他网络元件或组件中实施。

如本文所述,网络系统2内的元件(诸如sd-wan设备18)例如使用各种应用体验质量(qoe)度量函数(诸如实时性能监控(rpm)或双向主动测量协议(twamp))来执行应用数据监控。例如,主动测量协议(twamp)。即,可以在服务提供商网络2内使用rpm和twamp以在网络设备(也称为主机或终点)之间基于每个用户测量网络性能的单向和双向或往返度量,诸如路径连接性、路径延迟、分组抖动、分组丢失、分组重新排序等。通常,qoe测量架构包括网络设备,每个网络设备支持所使用的协议并执行特定角色以启动数据会话并交换数据会话的测试分组。在图1中图示的示例网络架构中,sd-wan设备18被配置为执行qoe度量预测。sd-wan设备18允许跨连接的负载共享并基于网络条件调整流量来改善性能。

在sd-wan拓扑中,可能存在许多“中枢和辐条(hubsandspokes)”,其包括彼此连接的用户设备16和服务15。为了测量这些连接中的每个的qoe度量,sd-wan设备18可以控制探测分组的传输,探测分组被设计成基于跨相应的连接(也称为路径或链路)中的每个的传输过程来测量这些qoe度量。然而,所有路径可能都没有在给定时间经历流量,这意味着继续在这些链路上传输探测分组可能提供有限的好处,并且只会导致链路性能下降或设备上不必要的中央处理单元(cpu)的使用以传送和接收链路。探测分组可以具有与实际应用流量的大小类似的实际大小,这意味着探测分组在传输时可以消耗相当大的带宽。本文描述的技术可以简化过程,使得探测过程仅在经历流量的路径上完成,而不是在所有那些路径上连续地执行合成探测。一旦特定路径上的流量停止,探测过程也将停止。

执行路径选择算法的sd-wan设备18还确定qoe度量,诸如包括往返时间(rtt)、抖动和分组丢失的服务水平协议(sla)度量,其受应用的实时参数(如用于确定最佳路径的分组大小、队列和分组突发)的影响。然而,不同的应用在其数据流中具有不同的分组大小。另外,当网络中的链路没有传输从服务15和路由器8接收的特定应用的数据流时,如果在相同链路上传输对应于该特定应用的主动探测分组以确定sla度量,则在这些链路上可能存在不必要流量,可能消耗可用于其他数据流的宝贵带宽。如下面参考图2和图3所述,本文描述的技术示出了sd-wan设备18如何能够实施机器学习算法来确定何时接收到特定应用的流量、将这些流量与探测分组的特定配置相匹配,并开始仅在持续接收该特定应用的流量时才活跃的合成探测过程。

根据本文描述的技术,sd-wan设备18可以不对多个链路的第一链路执行探测过程。一段时间之后,sd-wan设备18可以接收应用的数据流的应用数据分组。响应于接收到应用数据分组,sd-wan设备18可以将数据流分配给第一链路,并发起对第一链路上的数据流的探测过程,以确定第一链路的一个或多个qoe度量。在数据流完成或以其他方式中断使得sd-wan设备18不再接收数据流之后,sd-wan设备18可以检测到不再接收数据流。响应于检测到不再接收数据流,sd-wan设备18可以停止对第一链路上的数据流的探测过程。本文描述的探测过程可以包括在链路发送预先配置的探测分组的组,而不管接收的流量类型如何。在其他实例中,本文描述的探测过程可以包括仅传输单个探测分组或者两个或更多个探测分组的较小的组,其被专门设计成收集适用于传输数据流的应用的qoe度量,qoe度量是基于各种参数,诸如数据流中的分组大小、数据流内的突发存在或突发大小、探测分组的分组大小以及探测分组的突发性。由突发性测量的突发流涉及以突发的方式间歇地发送的数据分组,而不是连续流。

在一些示例中,在探测过程期间传输的qoe探测分组携带的度量可以包括用于发送或接收测试分组的时间戳、用于发送或接收测试分组的错误估计、用于发送测试分组的序列号、测试分组的生存时间(ttl)值、保持活跃的分组数据单元(pdu)和/或服务分组、字节或用户的计数中的一个或多个。单向和双向网络性能测量可以包括保持活跃或路径连接性、往返时间(rtt)、路径延迟、分组抖动、分组重新排序、分组丢失、服务延时测量或基于所接收的度量的服务负载测量。

图2是图示根据本公开的一种或多种技术的示例sd-wan37的框图。在本文描述的示例中,sd-wan7包括三个不同的wan链路:第一wan链路40、第二wan链路42和第三wan链路44,第一wan链路40将sd-wan设备38耦合到多协议层交换(mpls)网络50,第二wan链路42将sd-wan设备38耦合到因特网52,以及第三wan链路44将sd-wan设备38耦合到长期演进(lte)网络54。在其他示例中,sd-wan7可以包括用于在客户端侧(例如,客户端设备36和sd-wan设备38)和应用侧(例如,sd-wan设备56和应用服务器58)之间传输数据流的任何合适类型的任何数量的链路。

根据本文描述的技术,sd-wan设备38可以接收特定应用的应用数据分组流量。例如,客户端设备36可以开始在本地执行应用。应用的执行可以包括与应用服务器58通信,并且sd-wan设备38可以被配置为经由链路40、42和44中的任何一个链路将数据流从客户端设备36转发到应用服务器58。

在从客户端设备36接收到应用的数据流时,sd-wan设备38可以将数据流分配给链路40、42、44中的一个。sd-wan设备38可以基于链路是系统的默认链路、链路是应用的默认链路,或者链路是当时基于链路中的每个的qoe度量的最佳链路而执行该分配。例如,sd-wan设备38可以将数据流分配给因特网链路42。除了分配数据流之外,sd-wan设备38还可以通过开始在因特网链路42上发送一个或多个探测分组来发起对因特网链路42的探测过程以确定因特网链路42的一个或多个qoe度量。

sd-wan设备38可以在稍后的时间通过完成或某种其他形式的中断来检测特定应用的流量已经结束。响应于该确定,sd-wan设备38可以通过抑制发送对应于特定应用的附加探测来停止合成探测过程。

在一些实例中,sd-wan设备38可以在wan链路40、42和44中的每个中对多个队列或覆盖路径执行这些技术。例如,因特网链路42可以包括可用于处理数据流的8个不同的队列或覆盖链路。sd-wan设备38可以仅在实际传输数据流的因特网链路42内的队列上发送用于特定探测过程的探测分组以在更精细粒度意义上获得用于因特网链路42中的队列的度量,而不是一般地将多个探测分组发送到因特网链路42。在整个本公开中,可以在每个链路的基础上执行的任何技术也可以在相应的链路内在每个队列的基础上执行,包括将数据流重新分配给在相同的链路内的其他队列,或者将数据流从一个链路中的队列重新分配给不同链路中的队列。

sd-wan设备38可以配置单个默认覆盖链路,直到接收到流量。在流量被传输到特定节点n1之后,节点n1就可以通知sd-wan设备38,并且sd-wan设备38可以获取用于该ecmp的所有链路的配置(例如,适合该应用的策略、合成探测等)。主动探测从这一点开始。在合成探针的sla结果可用之前,流量可以被放置在默认链路上。一旦结果可用,基于sla度量,可以在满足sla的链路上发送流量。

图3是图示根据本公开的技术的被配置为使用流量引擎110执行一个或多个按需主动合成探测功能的示例软件定义的广域网设备80的框图。sd-wan设备80在这里可以在图1的服务提供商网络2的上下文中进行描述,并且例如可以表示路由器8或sd-wan设备18中的任一个。另外,虽然关于特定网络设备(例如,路由器)进行描述,但是这些技术可以由可以作为sd-wan设备(诸如客户端设备、层3(l3)或l2/l3交换机,或服务器)操作的任何网络设备实施。

在该示例中,sd-wan设备80被划分为三个逻辑或物理“平面”以包括为设备执行控制操作的控制平面81、用于转发转接网络流量的数据平面85,和用于将一个或多个网络服务87应用于由路由器转发的转接分组流的服务平面83。即,路由器81逻辑地(例如,作为在相同的硬件组件的集合上执行的单独软件实例)或物理地(例如,作为单独的物理专用硬件组件,其以硬件的方式静态地实施功能或动态执行软件或计算机程序来实施功能)实施三个分离的功能(例如,路由/控制、转发数据和网络服务功能)。在该示例中,高速内部交换结构105将控制平面81、服务平面83和数据平面85耦合,以在单元之间递送数据单元和控制消息。交换结构105可以表示内部交换结构或交叉条、总线或链路。

在图3的示例中,控制平面81包括具有主微处理器102的控制单元82,其执行sd-wan设备80的设备管理服务、用户认证和控制平面路由功能。微处理器102可以包括一个或多个通用或专用处理器,诸如数字信号处理器(dsp)、asic、现场可编程门阵列(fpga)或任何其他等效的逻辑设备。因此,本文所使用的术语“处理器”或“控制器”可以是指前述结构中的任何一个或多个或可操作以执行本文描述的技术的任何其他结构。诸如流量引擎110和服务131的可执行程序可以由微处理器102操作以执行sd-wan设备80的各种动作、操作或功能。例如,sd-wan设备80的微处理器102可以获取并执行由各种数据存储所存储的指令,该指令使微处理器102执行流量引擎110和服务131的操作。

sd-wan设备80内的一个或多个存储组件(例如,rib104)可以存储用于在sd-wan设备80的操作期间处理的信息(例如,sd-wan设备80可以存储在sd-wan设备80处执行期间,由流量引擎110和服务131访问的数据)。在一些示例中,存储组件是临时存储器,意味着存储组件的主要目的不是长期存储。sd-wan设备80上的存储组件可以被配置为易失性存储器以短期存储信息,并且因此如果断电则不保留存储的内容。易失性存储器的示例包括随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)以及本领域中已知的其他形式的易失性存储器。

在一些示例中,存储组件还包括一个或多个计算机可读存储介质。一些示例中的存储组件包括一个或多个非暂态计算机可读存储介质。存储组件可以被配置为存储比通常由易失性存储器存储的信息量更大的信息量。存储组件还可以被配置为非易失性存储空间以用于长期存储信息并且在电源开/关循环之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪存,或电可编程存储器(eprom)或电可擦除和可编程(eeprom)存储器的形式。存储组件可以存储与流量引擎110和服务131相关联的程序指令和/或信息(例如,数据)。存储组件248可以包括被配置为存储与流量引擎110和服务131相关联的数据或其他信息的存储器。

通常,控制单元82表示硬件或硬件和控制软件的组合,其实施控制平面协议89a-89n(“路由协议89”)以学习和维护路由信息库104(“rib104”)内的路由信息。rib104可以包括定义网络(诸如图1的服务提供商网络)的拓扑的信息。路由协议89与在控制单元82上执行的内核100交互(例如,通过api调用),以基于由sd-wan设备80接收的路由协议消息来更新rib104。内核100可以解析由rib104中的路由信息定义的拓扑,以选择或确定经过网络的一个或多个路由。例如,内核可以基于rib104中表示的网络拓扑以转发信息库103a-103n(“fib103”)的形式生成转发信息,即,执行路由解析。通常,内核100以基数或其他查找树的形式生成fib103,以将分组信息(例如,具有目的地信息和/或标签栈的报头信息)映射到下一跳并最终到达与相应的转发单元112相关联的ifc114的接口端口。例如,fib103中的每个可以将网络目的地与特定的下一跳和对应的ifc114相关联。对于与mpls相关的流量转发,对于给定的fec,fib103存储包括传入标签、传出标签以及用于分组的下一跳的标签信息。然后,控制单元82可以利用fib103对数据平面85的转发单元112进行编程,控制单元82将fib安装在查找asic106内。

在该示例中,数据平面85是分散的数据平面,因为数据平面功能和分组转发功能分布在多个转发单元112a-112n(“转发单元112”)之间。在sd-wan设备80的示例中,数据平面85包括转发单元112,其经由入站链路116a-116n到出站链路118a-118n提供由接口卡114a-114n(“ifc44”)接收的网络流量的高速转发。转发单元112均可以包括耦合到相应的接口卡114的一个或多个分组转发引擎(“pfe”),并且可以表示例如密集端口集中器(dpc)、模块化端口集中器(mpc)、灵活物理接口卡(pic)集中器(fpc)或例如,可插入在sd-wan设备80的机箱或机箱组合内的其他线卡。

如图3的示例中所示,每个转发单元112包括查找asic106a-106n(“查找asic106”)中的相应的一个,查找asic经由ifc卡114接收控制和数据会话流量、执行路由查找,并且基于安装到fib103的路由,将流量转发到控制单元82(目的地为sd-wan设备80的控制流量)或转发到转发单元40中的一个(转接数据流量)以便经由接口输出到输出链路48中的一个。在一个示例中,查找asic106是微码控制的芯片组,其由在转发单元112中的每个上执行的从微处理器(未示出)可编程地配置。具体地,在该示例中,asic106中的每个可以由从微处理器编程的内部微码控制。

当转发分组时,每个查找asic106内的控制逻辑遍历相应的fib103,并且在到达用于分组的fib条目(例如,叶节点)时,微代码实施的控制逻辑自动地选择一个或多个转发下一跳(fnh),以用于转发该分组。以这种方式,当分组遍历sd-wan设备80的内部架构时,转发单元112的asic106通过在相应的内部分组转发路径上对每个分组执行一系列操作来处理分组。例如,可以基于对应的进入接口、进入pfe114、外出pfe114、外出接口或该分组在外出之前被引导到的sd-wan设备80的其他组件(诸如一个或多个服务卡)中的任何一个对每个分组执行操作。转发单元112均包括转发结构,该转发结构在被执行时检查每个分组的内容(或另一个分组的属性,例如,传入接口),并在此基础上例如做出转发决定、应用过滤器,和/或执行计费、管理、流量分析和负载平衡。

在一个示例中,转发单元112中的每个将转发结构布置成下一跳数据,该下一跳数据可以沿着用于网络设备的内部分组转发路径被链接在一起作为一系列的“跳”。在许多实例中,转发结构在asic106的内部存储器内执行查找操作,其中可以针对树(或字典树)搜索、表(或索引)搜索执行查找。可以用下一跳指定的其他示例操作包括过滤器确定和应用,或速率限制器确定和应用。查找操作在查找数据结构(例如,查找树)内定位匹配分组内容的项目或匹配分组或分组流的另一属性(诸如分组的入站接口)的项目。根据由asic106内的下一跳转发结构定义的操作的分组处理的结果确定分组被转发单元112从其ifc114中的一个上的输入接口转发到其ifc114中的一个上的输出接口的方式或以其他方式处理的方式。

可以使用转发专用集成电路(asic)、现场可编程门阵列(fpga)或任何其他等效的集成或离散逻辑电路装置以及这些组件的任何组合来实施查找asic106。转发单元112中的每个可以包括基本相似的组件以执行基本相似的功能。

sd-wan设备80的服务平面83包括多个服务单元113a-113k(“服务单元13”),其可以是例如可移动服务卡,其被配置为将网络服务应用于流过数据平面85的分组。即,当转发分组时,转发单元112可以将分组引导到服务平面83,以由服务单元113应用一个或多个网络服务131。在该示例中,服务单元113中的每个包括微处理器127,微处理器127被配置为执行管理程序129以提供用于多个网络服务131的操作环境。作为示例,服务单元113可以应用防火墙和安全服务、运营商级网络地址转换(cg-nat)、媒体优化(语音/视频)、ipsec/vpn服务、深度分组检查(dpi)、http过滤、计数、计费、收费,以及应用于网络流量的分组流的负载平衡或其他类型的服务。例如,服务131中的每个可以被实施成由管理程序129和微处理器127执行的虚拟机或容器。

在图3的示例中,控制单元82为流量引擎110提供操作环境。在一些示例中,控制单元82可以使用流量引擎110来执行一个或多个twamp或rpm逻辑角色(诸如控制客户端、服务器、会话发送器、和会话反射器)。

如果包括sd-wan设备80的sd-wan网络中存在n个节点,则每个节点可以通过被称为路径组的多个等成本覆盖路径连接到另一个节点。如果m是任意两个给定节点之间的重叠路径的数量,并且p是具有不同探测类型和/或探测参数的sla探测的数量,则在正常情况下需要维护的流的数量将是:

(n*(n-1)/2)*m*p(1)

在给定时间,如果流量实际上仅在n*(n-1)/2个总链路的x个链路上发送。因此,需要由sd-wan设备80维护的流的数量仅为:

x*m*p(2)

流量引擎110可以被配置为执行贯穿本公开描述的技术。例如,根据本文描述的技术,流量引擎110可以不对多个链路的第一链路执行探测过程。一段时间之后,流量引擎110可以接收应用的数据流的应用数据分组。

响应于接收到应用数据分组,流量引擎110可以将数据流分配给第一链路,并发起对第一链路上的数据流的探测过程,以确定第一链路的一个或多个qoe度量。在一些实例中,发起对数据流的探测过程包括在第一链路上发送一个或多个合成探测分组以确定第一链路的一个或多个qoe度量。这些合成探测分组可以简单地是多个探测分组,每个探测分组具有唯一的默认配置,并且该多个探测分组可以与应用或数据流的任何特定特征无关。

在其他实例中,除了贯穿本公开描述的链路特定的探测之外,流量引擎110还可以执行特定于应用的探测。例如,响应于流量引擎110接收到应用的数据流的应用数据分组,流量引擎110可以诸如通过使用深度分组检查(dpi)确定应用数据分组的应用签名。然后,流量引擎110可以基于应用签名确定数据流的探测分组配置。该探测分组配置可以使得在第一链路上发送的探测分组的分组大小和/或突发性类似于由流量引擎110处理的应用流量的分组大小和/或突发性。流量引擎110可以使用dpi实时地确定该信息,或者可以使用dpi来确定该信息,将应用签名的指示和该信息存储在数据库中,并且然后流量引擎110可以在以后应用发送附加流量时获取该信息。在这些实例中,发起对数据流的探测过程将包括流量引擎110在第一链路上发送根据探测分组配置而配置的一个或多个探测分组,以确定第一链路的一个或多个qoe度量。

在一些实例中,多个链路可以是多个等成本多路径(ecmp)链路。在这些实例中,发起对数据流的探测过程可以包括,响应于接收到应用的数据流的应用数据分组,流量引擎110诸如通过使用dpi确定应用数据分组的应用签名。然后,流量引擎110可以基于应用签名确定应用的一个或多个服务水平协议(sla)度量的集合以及数据流的目的地。当流量引擎110确定了朝向目的地的用于数据流的最佳链路时,流量引擎110可以将数据流分配给多个ecmp链路的默认链路。然后,流量引擎110可以在多个链路中的每个链路上发送一个或多个探测分组,以确定多个ecmp链路中的每个ecmp链路的相应的qoe度量。现在在具有每个ecmp链路的qoe度量和sla度量的情况下,流量引擎110可以确定哪个ecmp链路具有满足应用的sla度量的qoe度量。然后,流量引擎110可以将数据流从默认链路重新分配给满足应用的sla度量的ecmp链路,抑制在除第一链路之外的多个ecmp链路的每个链路上发送附加探测分组。

在一些另外的实例中,可以对队列级别而不是对整个链路级别执行本文描述的技术。例如,当第一链路包括多个队列时,流量引擎110可以通过将数据流分配给第一链路的多个队列中的第一队列来将数据流分配给第一链路。当发起对数据流的探测过程时,流量引擎110可以仅在第一链路的第一队列上(而不是在链路中的每个队列上)发送它通常将在整个链路上发送的一个或多个探测分组,以确定第一队列的一个或多个qoe度量。

在数据流完成或以其他方式中断使得流量引擎110不再接收数据流之后,流量引擎110可以检测到不再接收数据流。为了解决数据分组传输中的可能的瞬间终止,在一些实例中,流量引擎110可以检测到在数据流中不再接收数据分组并等待阈值时间量以确定是否接收到任何附加的数据分组。如果在阈值时间量内接收到附加的数据分组,则流量引擎110可以继续对第一链路上的数据流的探测过程。否则,如果在阈值时间量过去之后没有接收到附加的数据分组,则流量引擎110可以确认不再接收数据流。

响应于检测到不再接收数据流,流量引擎110可以停止对第一链路上的数据流的探测过程。在一些实例中,停止对数据流的探测过程包括抑制在第一链路上发送附加的合成探测分组,无论这些分组是默认分组还是特定配置的数据分组,无论探测分组一般在链路上还是在特定队列上发送。

在发起对数据流的探测过程之后的某个时间,可以接收其他流量或者可能发生一些其他事件,导致第一链路的一个或多个qoe度量不能满足应用的服务水平协议(sla)度量。在流量引擎110确定是这种情况之后,流量引擎110可以在多个链路的第二链路上发送一个或多个探测分组,以确定第二链路的一个或多个qoe度量。流量引擎110可以逐个地在多个链路上发送一个或多个探测分组,直到找到满意的链路,或者可以大致同时地在到达预定目的地的多个链路中的每个链路上发送一个或多个探测分组中的每个,以同时确定每个链路的qoe度量。

无论如何,在流量引擎110确定第二链路的一个或多个qoe度量满足应用的sla度量之后,流量引擎110可以将第一数据流从第一链路重新分配给第二链路。然后,流量引擎110可以停止对第一链路上的数据流的探测过程,并继续对第二链路上的数据流的探测过程。

流量引擎110可以以类似的方式处理附加数据流,确保探测过程仅发生在当前正在经历流量的链路上。例如,流量引擎110可以在第一数据流仍然在第一链路上传输时,接收第二应用的第二数据流的第二应用数据分组。响应于接收到第二应用数据分组,流量引擎110可以将第二数据流分配给多个链路的第二链路,第二链路与第一链路不同。然后,流量引擎110可以发起对第二链路上的第二数据流的探测过程,以确定第二链路的一个或多个qoe度量。此时,流量引擎110将仅探测多个链路中的两个链路,而不是多个链路中的每个链路。以与针对第一链路所接收的流量类似的方式,流量引擎110可以检测网络设备不再接收第二数据流。响应于检测到不再接收到第二数据流,流量引擎110可以停止对第二链路上的第二数据流的探测过程。

本文描述的技术的可选的附加可以是运行适合应用类型的预先配置的合成探测。在一些基本示例中,流量引擎110可以在特定链路上传输流量时运行所有预先配置的合成探测器。

在一些其他实例中,流量引擎110可以在覆盖路径级别执行按需探测技术,从而向系统提供甚至更多的粒度。本文描述的技术可以帮助扩展网状网络中的节点。在sd-wan环境中,这些探测可以在可以是mpls、gre、ipsec或基于mpls/gre/ipsec的组合的覆盖上进行。

流量引擎110可以循环地继续该过程,在应用被接收并分配给特定链路时启动对应用的探测过程,并且停止探测不再接收应用流量的链路。以这种方式,流量引擎110可以更具可扩展性,使得这种网络能够包括更多潜在的链路和更多客户端设备,而不会对应地增加由探测过程引起的开销。对于具有相同数量的链路和客户端设备的系统,流量引擎110比之前的系统在sd-wan上消耗更少的计算资源,诸如带宽、存储器和电池功率。这通常可以提高sd-wan系统的效率,因为流量引擎110可以消耗更少的带宽并减少用于生成qoe度量的处理时间。总的来说,本文描述的技术可以通过减少对服务水平协议(sla)结果、日志等的处理来减少流量引擎110上的负载。

图4是图示根据本公开的技术的用于执行按需主动合成探测功能的软件定义的广域网系统的示例技术的流程图。示例操作可以由图1的sd-wan设备18上执行的流量引擎110执行。以下是该过程的步骤,但是在本公开的技术中执行的过程的其他示例可以包括附加步骤或者可以不包括下面列出的步骤中的一些步骤。

根据本文描述的技术,sd-wan设备18最初可以不对多个链路的第一链路执行探测过程。一段时间之后,流量引擎110可以接收应用的数据流的应用数据分组(402)。响应于接收到应用数据分组,流量引擎110可以将数据流分配给第一链路(404)并且发起对第一链路上的数据流的探测过程以确定第一链路的一个或多个qoe度量(406)。在数据流完成或以其他方式中断,使得sd-wan设备18不再接收数据流之后,流量引擎110可以检测到不再接收数据流(408)。响应于检测到不再接收数据流,流量引擎110可以停止对第一链路上的数据流的探测过程(410)。

本文描述的探测过程可以包括在链路上发送一组预先配置的探测分组,而不管所接收的流量类型如何。在其他实例中,本文描述的探测过程可以包括仅传输单个探测分组或者两个或更多个探测分组的较小的组,其被专门设计成收集适用于传输数据流的应用的qoe度量,qoe度量是基于各种参数,诸如数据流中的分组大小、数据流内的突发存在或突发大小、探测分组的分组大小以及探测分组的突发性。由突发性测量的突发流涉及以突发的方式间歇地发送的数据分组,而不是连续流。

本文描述的技术可以用硬件、软件、固件或其任何组合来实施。描述为模块、单元或组件的各种特征可以一起在集成逻辑器件中实施,或者分离地实施成离散但可互操作的逻辑器件或其他硬件设备。在一些情况中,电子电路装置的各种特征可以被实施成一个或多个集成电路装置,诸如集成电路芯片或芯片组。

如果以硬件实施,则本公开内容可以涉及诸如处理器的装置或者诸如集成电路芯片或芯片组的集成电路装置。备选地或附加地,如果以软件或固件实施,则这些技术可以至少部分通过包括指令的计算机可读数据存储介质来实施,这些指令在被执行时使处理器执行上述方法中的一个或多个。例如,计算机可读数据存储介质可以存储这样的指令以供处理器执行。

计算机可读介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括计算机数据存储介质,诸如随机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、磁或光学数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。

在一些示例中,计算机可读存储介质可以包括非暂态介质。术语“非暂态”可以指示存储介质没有在载波或传播信号中实施。在某些示例中,非暂态存储介质可以存储可以随时间改变的数据(例如,在ram或高速缓存中)。

代码或指令可以是由处理电路装置执行的软件和/或固件,处理电路装置包括一个或多个处理器,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其他等效的集成或离散逻辑电路装置。因此,本文中使用的术语“处理器”可以是指任何前述结构或适用于实施本文中描述的技术的任何其他结构。另外,在一些方面中,在本公开中描述的功能可以在软件模块或硬件模块内提供。

已经描述了各种示例。这些和其他示例在以下权利要求的范围内。

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