U.S. patent application number 15/784404 was filed with the patent office on 2018-12-27 for method and system of providing quality of experience visibility in an sd-wan.
The applicant listed for this patent is Nicira, Inc.. Invention is credited to STEPHEN CRAIG CONNORS, AJIT RAMACHANDRA MAYYA, THOMAS HAROLD SPEETER, PARAG PRITAM THAKORE, STEVEN MICHAEL WOO.
Application Number | 20180375744 15/784404 |
Document ID | / |
Family ID | 64692893 |
Filed Date | 2018-12-27 |
![](/patent/app/20180375744/US20180375744A1-20181227-D00000.png)
![](/patent/app/20180375744/US20180375744A1-20181227-D00001.png)
![](/patent/app/20180375744/US20180375744A1-20181227-D00002.png)
![](/patent/app/20180375744/US20180375744A1-20181227-D00003.png)
![](/patent/app/20180375744/US20180375744A1-20181227-D00004.png)
![](/patent/app/20180375744/US20180375744A1-20181227-D00005.png)
![](/patent/app/20180375744/US20180375744A1-20181227-D00006.png)
United States Patent
Application |
20180375744 |
Kind Code |
A1 |
MAYYA; AJIT RAMACHANDRA ; et
al. |
December 27, 2018 |
METHOD AND SYSTEM OF PROVIDING QUALITY OF EXPERIENCE VISIBILITY IN
AN SD-WAN
Abstract
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.
Inventors: |
MAYYA; AJIT RAMACHANDRA;
(saratoga, CA) ; THAKORE; PARAG PRITAM; (LOS
GATOS, CA) ; CONNORS; STEPHEN CRAIG; (SAN JOSE,
CA) ; WOO; STEVEN MICHAEL; (los altos, CA) ;
SPEETER; THOMAS HAROLD; (SAN MARTIN, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Nicira, Inc. |
Palo Alto |
CA |
US |
|
|
Family ID: |
64692893 |
Appl. No.: |
15/784404 |
Filed: |
October 16, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
62523477 |
Jun 22, 2017 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 45/124 20130101;
H04L 41/5032 20130101; H04L 43/0829 20130101; H04L 43/045 20130101;
H04L 45/125 20130101; H04L 12/2854 20130101; H04L 12/2856 20130101;
H04L 45/123 20130101; H04L 12/66 20130101; H04L 43/16 20130101;
H04L 43/087 20130101; H04L 45/302 20130101; H04L 61/25 20130101;
H04L 45/70 20130101; H04L 45/22 20130101 |
International
Class: |
H04L 12/26 20060101
H04L012/26 |
Claims
1. A computerized method useful for providing quality of experience
visibility in a software-defined networking in a wide area network
(SD-WAN) comprising: providing a path state machine; with the path
state machine, establishing a set of flags configured to determine
a path eligibility that meets a specified scheduling criteria for a
path selection condition; providing a link state machine; with the
link state machine, establishing another set of flags configured to
determine a link eligibility that meets a scheduling criteria for
an event reporting parameter.
2. The computerized method of claim 1 further, wherein the link
state machine determines that the path selection conditions are met
before setting and clearing a flag.
3. The computerized method of claim 2, wherein a network event is
generated when the flag is set or cleared.
4. The computerized method of claim 3, wherein an orchestrator
displays a summary chart of a quality of a link as measured by the
link state machine.
5. The computerized method of claim 4, wherein the orchestrator
displays a summary chart of a quality of the link as measured for a
set of target metrics.
6. The computerized method of claim 5, wherein a voice data network
traffic, a video data network traffic, a transactional data network
traffic or a bulk data network traffic are measured separately.
7. The computerized method of claim 6 further comprising:
generating a quality score based on the target metrics and quality
measurements.
8. The computerized method of claim 1, wherein the path state
machine comprises a finite state machine that runs periodically to
monitor and update a state of set of paths between a set of network
endpoints in the wide area network.
9. The computerized method of claim 2, wherein the link state
machine comprises another finite state machine that runs
periodically to monitor and update the state of links in the wide
area network.
10. The computerized method of claim 3, wherein a link comprises a
collection of paths to a remote network endpoint that originates
from a common network source.
11. A computer system useful for providing quality of experience
visibility in a software-defined networking in a wide area network
(SD-WAN) comprising: at least one processor configured to execute
instructions; a memory containing instructions when executed on the
processor, causes the at least one processor to perform operations
that: provide a path state machine; with the path state machine,
establish a set of flags configured to determine a path eligibility
that meets a specified scheduling criteria for a path selection
parameter; provide a link state machine; with the link state
machine, establish another set of flags configured to determine a
link eligibility that meets a scheduling criteria for an event
reporting parameter.
12. The computer system of claim 11, wherein the path state machine
comprises a finite state machine that runs periodically to monitor
and update a state of set of paths between a set of network
endpoints in the wide area network.
13. The computer system of claim 11, wherein the link state machine
comprises another finite state machine that runs periodically to
monitor and update the state of links in the wide area network.
14. The computer system of claim 11, wherein a link comprises a
collection of paths to a remote network endpoint that originates
from a common network source.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] 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.
FIELD OF THE INVENTION
[0002] 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.
DESCRIPTION OF THE RELATED ART
[0003] 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.
BRIEF SUMMARY OF THE INVENTION
[0004] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 illustrates an example process for providing quality
of experience visibility in an SD-WAN, according to some
embodiments.
[0006] FIG. 2 illustrates an example use case, according to some
embodiments.
[0007] FIG. 3 illustrates an example process of path selection,
according to some embodiments.
[0008] FIG. 4 illustrates a screen shot illustrating exemplary
eligibility flag information, according to some embodiments.
[0009] FIG. 5 illustrates an example process for quality score
generation, according to some embodiments.
[0010] FIG. 6 depicts an exemplary computing system that can be
configured to perform any one of the processes provided herein.
[0011] The Figures described above are a representative set, and
are not exhaustive with respect to embodying the invention.
DESCRIPTION
[0012] 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.
[0013] 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.
[0014] 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.
[0015] 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.
Definitions
[0016] Example definitions for some embodiments are now
provided.
[0017] 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.).
[0018] Gateway can be a node (e.g. a router) on a computer network
that serves as an access point to another network.
[0019] Jitter can refer to the deviation from true periodicity of a
presumably periodic signal.
[0020] Latency can be a measure of the time delay experienced by a
system.
[0021] 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.
[0022] Link state machine can be a finite state machine that runs
periodically to monitor and update the state of links.
[0023] Orchestrator can include a software component that provides
multi-tenant and role based centralized configuration management
and visibility.
[0024] 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.
[0025] Path state machine can be a finite state machine that runs
periodically to monitor and update the state of paths between
network endpoints.
[0026] 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.
[0027] Additional example definitions are provided herein.
[0028] Examples Processes
[0029] 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.
[0030] 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.
[0031] FIG. 1 illustrates an example process 100 for providing
quality of experience visibility in an SD-WAN, according to some
embodiments. In step 102, process 100 can provide a path state
machine. In step 104, with the path state machine, process 100 can
establish a set of flags to determine the eligibility of a path to
meet scheduling criteria for path selection. Example flags are
provided infra. In step 106, process 100 can provide a link state
machine. In step 108, with the link state machine, process 100 can
establish a set of flags to determine the eligibility of a link to
meet scheduling criteria for event reporting.
[0032] FIG. 2 illustrates an example use case 200, according to
some embodiments. In the present example, a single DSL 202 is
connected to two gateway A 204 and gateway B 206. Accordingly,
there is one link and two paths as shown. Path DSL->A has 1%
loss 208 and Path DSL->B has 0% loss 210. During path selection,
the dataflow determines that Path DSL->A as REALTIME_VOICE_RED
and Path DSL->B as REALTIME_VOICE_GREEN. Accordingly, traffic to
Gateway A 204 would tend to avoid this link while traffic to
Gateway B206 would not. However, this will not generate an event
because the issue is on the DSL->A path itself and does not
appear to be local to the user's link. This abstracts network
problems from the user.
[0033] FIG. 3 illustrates an example process 300 of path selection,
according to some embodiments. In step 302, process 300 can set a
jitter and loss eligibility criteria for each traffic type of a
dataflow selecting the path. In step 304, based on output of 302,
process 300 can generate a score for each path. During path
selection, each packet can first check for the path with the lowest
score that meet the jitter and loss eligibility criteria outlined
for the traffic type of the flow selecting the path. In step 306,
each data packet checks for the path with the lowest score. The
data packet can then be sent using the path with the lowest
score.
[0034] 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).parallel.
(loss_flags & REALTIME_VOICE_RED)) [0035] continue;
[0036] 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.
[0037] 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 FIG. 4) can be set in the header indicating to a
receive side to implement a jitter buffer. Once enabled for a
dataflow, a jitter buffer can remain in place for the life of the
dataflow, regardless of whether the situation clears.
[0038] 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.
[0039] FIG. 4 illustrates a screen shot 400 illustrating exemplary
eligibility flag information, according to some embodiments.
Eligibility Flags information include eligibility flags and a
condition statement template. The condition statement can be used
to determine when to utilize a respective eligibility flag.
[0040] FIG. 5 illustrates an example process 500 for quality score
generation, according to some embodiments. In step 502, the
applicable link-state machine can check if the applicable
conditions (e.g. see supra) are met. In step 504, the applicable
link-state machine can set/clear flags appropriately. In step 506,
network events can be generated when the flags are set or cleared.
In step 508, the orchestrator can display a summary chart of the
quality of the respective link(s) as measured. The orchestrator can
also display the estimated quality once error corrections are
applied. In step 510, the target metrics for voice, video,
transactional, bulk traffic, etc. are measured separately. These
target metrics can be user-configurable with applicable recommended
values. In step 512, these target metrics and quality measurements
are used to generate a Quality Score (QS) and color-coded
chart.
[0041] Example color-coded chart codes are now provided. In one
example, the following color code can be used for the before
state:
[0042] Good ("Green") can indicate that all metrics are better than
the objective (obj) thresholds--App. SLA met/exceeded.
[0043] Fair ("Yellow") can indicate that all metrics are between
the objective (obj) and maximum (max) values--App. SLA is partially
met.
[0044] Poor ("Red") can indicate that some or all metrics have
reached or exceeded the maximum (max) value--Application SLA is not
met/
[0045] In one example, the following color code can be used for the
after state:
[0046] Green can indicate that the best link meets the objective
threshold or best link is yellow but can be corrected to green.
[0047] 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.
[0048] Red can indicate that best link does not meet the objective
threshold (is red), and cannot be corrected.
[0049] 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).
[0050] FIG. 6 depicts an exemplary computing system 600 that can be
configured to perform any one of the processes provided herein. In
this context, computing system 600 may include, for example, a
processor, memory, storage, and I/O devices (e.g., monitor,
keyboard, disk drive, Internet connection, etc.). However,
computing system 600 may include circuitry or other specialized
hardware for carrying out some or all aspects of the processes. In
some operational settings, computing system 600 may be configured
as a system that includes one or more units, each of which is
configured to carry out some aspects of the processes either in
software, hardware, or some combination thereof.
[0051] FIG. 6 depicts computing system 600 with a number of
components that may be used to perform any of the processes
described herein. The main system 602 includes a motherboard 604
having an I/O section 606, one or more central processing units
(CPU) 608, and a memory section 610, which may have a flash memory
card 612 related to it. The I/O section 606 can be connected to a
display 614, a keyboard and/or other user input (not shown), a disk
storage unit 616, and a media drive unit 618. The media drive unit
618 can read/write a computer-readable medium 620, which can
contain programs 622 and/or data. Computing system 600 can include
a web browser. Moreover, it is noted that computing system 600 can
be configured to include additional systems in order to fulfill
various functionalities. Computing system 600 can communicate with
other computing devices based on various computer communication
protocols such a Wi-Fi, BLUETOOTH.RTM. (and/or other standards for
exchanging data over short distances includes those using
short-wavelength radio transmissions), Universal Serial Bus (USB),
Ethernet, cellular, an ultrasonic local area communication
protocol, etc.
CONCLUSION
[0052] 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).
[0053] 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.
* * * * *