This application relates generally to computer networking, and more specifically to a system, article of manufacture and method of providing quality of experience visibility in an SD-WAN.
An SD-WAN network can be a specific application of software-defined networking (SDN) technology applied to WAN connections, which are used to connect enterprise networks (e.g. branch offices, data centers, etc.) over geographic distances. In the SD-WAN Network, the quality of paths is continuously monitored for loss, latency and jitter. These metrics can be used to select the best possible path for transmitting network traffic.
In one aspect, a computerized method useful for providing quality of experience visibility in a software-defined networking in a wide area network (SD-WAN) includes the step of providing a path state machine. With the path state machine, the method establishes a set of flags configured to determine a path eligibility that meets a specified scheduling criteria for a path selection condition. The method provides a link state machine. With the link state machine, the method establishes another set of flags configured to determine a link eligibility that meets a scheduling criteria for an event reporting parameter.
The Figures described above are a representative set, and are not exhaustive with respect to embodying the invention.
Disclosed are a system, method, and article of manufacture for providing quality of experience visibility in an SD-WAN. The following description is presented to enable a person of ordinary skill in the art to make and use the various embodiments. Descriptions of specific devices, techniques, and applications are provided only as examples. Various modifications to the examples described herein can be readily apparent to those of ordinary skill in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the various embodiments.
Reference throughout this specification to “one embodiment,” “an embodiment,” ‘one example,’ or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
Furthermore, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art can recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
The schematic flow chart diagrams included herein are generally set forth as logical flow chart diagrams. As such, the depicted order and labeled steps are indicative of one embodiment of the presented method. Other steps and methods may be conceived that are equivalent in function, logic, or effect to one or more steps, or portions thereof, of the illustrated method. Additionally, the format and symbols employed are provided to explain the logical steps of the method and are understood not to limit the scope of the method. Although various arrow types and line types may be employed in the flow chart diagrams, and they are understood not to limit the scope of the corresponding method. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the method. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated steps of the depicted method. Additionally, the order in which a particular method occurs may or may not strictly adhere to the order of the corresponding steps shown.
Example definitions for some embodiments are now provided.
Path can refer to (e.g. a MultiPath tunnels/path) that is established between two endpoints of a computer network (e.g. a VPN, SD-WAN, etc.).
Gateway can be a node (e.g. a router) on a computer network that serves as an access point to another network.
Jitter can refer to the deviation from true periodicity of a presumably periodic signal.
Latency can be a measure of the time delay experienced by a system.
Link can refer to a physical and/or logical network component used to interconnect hosts or nodes in a computer network. A link can be a collection of paths to a remote network endpoint that originate from the same source.
Link state machine can be a finite state machine that runs periodically to monitor and update the state of links.
Orchestrator can include a software component that provides multi-tenant and role based centralized configuration management and visibility.
Packet loss can refer to when one or more data packets travelling across a computer network fail to reach their destination. Packet loss can be measured as a percentage of data packets lost with respect to data packets sent.
Path state machine can be a finite state machine that runs periodically to monitor and update the state of paths between network endpoints.
SD-WAN (software-defined networking in a wide area network (WAN)) can refer to a specific application of software-defined networking (SDN) technology applied to WAN connections, which are used to connect enterprise networks (e.g. branch offices, data centers, etc.) over geographic distances.
Additional example definitions are provided herein.
Examples Processes
It is noted that an SD-WAN can include the following computer network elements, inter alia: edges, gateways, controllers and orchestrator(s). Edges can be enterprise-class appliances for zero-touch branch deployment and/or flexible datacenter insertion. Edge can provide secure and optimized connectivity to on-premises applications and resources. Edges can perform various operations, such as, inter alia: deep application recognition, application steering, performance metrics, end to end quality of experience in addition to hosting virtual services, etc. The SD-WAN can be delivered via a cloud-computing platform. The SD-WAN can incorporate a distributed network of gateways deployed at top tier cloud datacenters around the world to also provide direct, optimized paths to cloud applications and services. Gateways can provide the scalability, redundancy and on-demand flexibility of a network-as-a-service to support migrations to hybrid cloud architectures. An orchestrator and distributed controllers can provide centralized enterprise-wide installation, configuration and/or real-time monitoring in addition to orchestrating the dataflow through the cloud network. The orchestrator can enable one-click provisioning of virtual services and easy service chaining of distributed services.
In a SD-WAN Network, the quality of paths is continuously monitored for loss, latency and jitter. These metrics can be used to determine the quality of an individual path for transmitting voice, video, transactional or bulk traffic across the path. Based on measurements taken to establish thresholds for “good”, “degraded” and “unacceptable” quality for the different traffic types, thresholds have been established and mapped to “green”, “yellow” and “red” respectively to easily display this quality to the user and use the data to select the best possible path for transmitting traffic. In addition, once these measurements are performed, error correction techniques can be performed and the quality of the underlying paths can be improved and this improved state can also be displayed. Additionally, for all the paths from a given source (i.e. a WAN link), a composite view of the quality can be provided by taking the best measurements of each individual path.
For example, on the first selection of a data packet in real-time (e.g. assuming networking and/or processing latencies) the check can be as follows:
if((jitter_flags & REALTIME_VOICE_RED)∥
(loss_flags & REALTIME_VOICE_RED))
If all the path fails, the path with the lowest score can still be chosen with the appropriate flags noted. For example, if there are multiple eligible paths the following can be implement. A ‘fixed’ path select can pick the lowest score eligible path and stick to it. A ‘replicate’ path select can send on the best scoring path for each packet and only start replicating if loss becomes an issue. A ‘loadbalance” path select can pick the best scoring path for each packet, eventually using all the eligible path if the load is high enough.
Jitter-related examples are now discussed. It is noted that when an eligible path is found, the dataflow can select the path with jitter correction disabled. If no eligible paths are found, the dataflow can fall back to traditional path selection with jitter correction enabled. A flag (e.g. see eligibility flag examples of
Loss-related examples are now discussed. When eligible paths are found, the dataflow can select the path with loss correction disabled. If no eligible paths are found, the dataflow can fall back to a traditional path selection methodology with loss correction enabled. For example, a loss correction state can be toggled dynamically on a per-packet basis based on the latest network conditions.
Example color-coded chart codes are now provided. In one example, the following color code can be used for the before state:
Good (“Green”) can indicate that all metrics are better than the objective (obj) thresholds—App. SLA met/exceeded.
Fair (“Yellow”) can indicate that all metrics are between the objective (obj) and maximum (max) values—App. SLA is partially met.
Poor (“Red”) can indicate that some or all metrics have reached or exceeded the maximum (max) value—Application SLA is not met/
In one example, the following color code can be used for the after state:
Green can indicate that the best link meets the objective threshold or best link is yellow but can be corrected to green.
Yellow can indicate that the best link does not meet the objective threshold and is yellow or best link is red but can be corrected to yellow.
Red can indicate that best link does not meet the objective threshold (is red), and cannot be corrected.
QS calculation can be implemented with the following equation: Quality Score=10*(% of time link was Green)+5*(% of time link was Yellow)+0*(% of time link was Red).
Although the present embodiments have been described with reference to specific example embodiments, various modifications and changes can be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices, modules, etc. described herein can be enabled and operated using hardware circuitry, firmware, software or any combination of hardware, firmware, and software (e.g., embodied in a machine-readable medium).
In addition, it can be appreciated that the various operations, processes, and methods disclosed herein can be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer system), and can be performed in any order (e.g., including using means for achieving the various operations). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. In some embodiments, the machine-readable medium can be a non-transitory form of machine-readable medium.
This application claims priority to U.S. Provisional Application No. 62/523,477, titled and METHOD AND SYSTEM OF RESILIENCY AND VISIBILITY IN CLOUD-DELIVERED SD-WAN filed on 22 Jun. 2017. This provisional application is incorporated by reference in its entirety. These applications are incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
62523477 | Jun 2017 | US |