Dynamic prediction and management of application service level agreements

By monitoring the end-to-end performance of application data flow in the SD-WAN system and self-learning to predict the SLA parameters of the application, the problem of difficulty in adaptively optimizing network performance in the prior art is solved, and better network performance and users are achieved Experience.

CN114006937BActive Publication Date: 2025-02-25HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011047270.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-07-14
Filing Date
2020-09-29
Publication Date
2025-02-25
Estimated Expiration
2040-09-29

AI Technical Summary

Technical Problem

The prior art is difficult to adaptively predict and configure service level agreement (SLA) parameters for different applications, resulting in poor network performance optimization results.

Method used

By monitoring the end-to-end performance of application data flow in a software-defined wide area network (SD-WAN) system, using TCP sequence number analysis and packet retransmission monitoring, self-learning predicts the application's SLA parameters such as round trip time and jitter.

Benefits of technology

It realizes adaptive prediction and optimization of application SLA parameters without user intervention, improves network performance and user experience, and ensures the best utilization of resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114006937B_ABST
    Figure CN114006937B_ABST
Patent Text Reader

Abstract

In general, the present disclosure describes techniques for adaptively determining one or more parameters of a service level agreement for an application. For example, a network device may monitor a round trip time of multiple packets of a data stream of the application transmitted on a link between an application server and a client device. The network device may determine an amount of retransmissions of packets that occurred during transmission of the multiple packets of the data stream. The network device may predict a round trip time parameter for a service level agreement associated with the application based at least in part on the round trip time of the multiple packets of the data stream and the amount of retransmissions of packets that occurred during transmission of the multiple packets of the data stream.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to computer networks. Background Art

[0002] Over the past few decades, the Internet has grown exponentially from a small network including several nodes to a world-class popular network serving over one billion users. Today, individual users are not limited to running some network sessions through voice and / or data downloads on the network. Instead, the scope of services used by users has changed widely in terms of multimedia games, audio and video streaming, network services, IP telephones (VoIP), etc. With the breakthrough of new technologies, such as the increasing use of Internet of Things (IoT) and M2M (machine to machine) communications, the network services and software applications that a given user may require have also changed from several sessions to multiple sessions with concurrent streams. As users increasingly run multiple applications, services and transactions simultaneously, this number is growing rapidly. The increase in the number and variety of user sessions and packet flows has brought challenges in network performance to network service providers, such as latency, delay and jitter. Summary of the invention

[0003] In general, the present disclosure describes techniques for evaluating traffic flows for a particular application to adaptively predict service level agreement (SLA) parameters for the application so as to allocate traffic originating from the application to links having quality of experience (QoE) metrics that meet the predicted SLA parameters for the application.

[0004] In some software-defined wide area networks (SD-WANs), SD-WAN routing devices can use SLA parameters of WAN links and various QoE metrics to select paths for data flows sent by applications to client devices. SLA parameters can be application-specific, so that data flows of different applications can have different SLA parameters. Although network administrators can try to manually configure SLA parameters for different applications based on the network administrator's own experience and knowledge, such as round-trip time and jitter, network administrators may lack the knowledge to optimally configure SLA parameters for different applications.

[0005] The SD-WAN system can implement the technology of the present disclosure to perform end-to-end monitoring of the data flow of the application between the application server and the client device, and perform self-learning based on such end-to-end monitoring of the data flow to adaptively predict one or more SLA parameters of the application. Specifically, for the data flow of the application transmitted on the link to the client device via the Transmission Control Protocol (TCP), the SD-WAN system can perform TCP sequence number analysis to track the round-trip time, jitter, retransmission, and packet loss of the data flow of the application between the application server and the client device to determine one or more SLA parameters of the application.

[0006] The SD-WAN system can determine, for a data flow of an application on a link, whether the data flow of the application is experiencing packet retransmissions based on monitoring packet retransmissions of the data flow of the application, given the round-trip time experienced by the packets of the data flow. If the SD-WAN system determines that the data flow of the application is not experiencing TCP retransmissions of packets in a given round-trip time, the SD-WAN system can set the round-trip time parameter of the SLA parameter for the application to the round-trip time experienced by the data flow of the application. On the other hand, if the SD-WAN system determines that the data flow of the application is experiencing TCP retransmissions of packets, and packet retransmissions may be an indication of link degradation, the SD-WAN system can determine that the current round-trip time of the packets is not the optimal round-trip time for the data flow of the application. When the round-trip time experienced by the packets of the data flow of the application changes, the SD-WAN system can continuously monitor the packet retransmissions of the data flow of the application, and can adjust the round-trip time parameter of the SLA parameter for the application based on such monitoring of the data flow of the application. In this way, the SD-WAN system can adaptively predict the SLA parameters for the application.

[0007] There may be one or more advantages of using the techniques described herein. The techniques described herein may enable the SD-WAN system to adaptively predict one or more SLA parameters for an application without user intervention. That is, instead of a network administrator manually setting one or more SLA parameters for an application, the techniques described herein may enable the SD-WAN system to determine one or more SLA parameters for an application based on the actual data flow of the application within the SD-WAN system. By adaptively predicting one or more SLA parameters based on the actual end-to-end data flow of the application to the client device, the techniques described herein may be able to determine SLA parameters based on the actual network conditions of the links in the SD-WAN system, thereby generating SLA parameters that may be more suitable for the actual network conditions in the SD-WAN system than the manually determined SLA parameters. Therefore, the techniques described herein may provide end users with a better experience and better resource utilization of the entire network.

[0008] In one example of the technology described herein, a method is described. The method includes monitoring, by a network device, a round trip time of a plurality of packets of a data stream of an application transmitted on a link between an application server and a client device. The method also includes determining, by the network device, an amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data stream. The method also includes predicting, by the network device and at least in part based on the round trip time of the plurality of packets of the data stream and the amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data stream, a round trip time parameter for a service level agreement (SLA) associated with the application.

[0009] In another example of the technology described herein, a network device is described. The network device includes a memory. The network device also includes one or more processors in communication with the memory, the one or more processors being configured to: monitor a round trip time of a plurality of packets of a data stream of an application transmitted on a link between an application server and a client device; determine an amount of retransmissions of packets occurring during transmission of the plurality of packets of the data stream; and predict a round trip time parameter for a service level agreement (SLA) associated with the application based at least in part on the round trip time of the plurality of packets of the data stream and the amount of retransmissions of packets occurring during transmission of the plurality of packets of the data stream.

[0010] In another example of the technology described herein, a non-transitory computer-readable storage medium is described on which instructions are stored. The instructions, when executed, via execution of a software-defined wide area network device, cause one or more processors to: monitor a round trip time of a plurality of packets of a data flow of an application transmitted on a link between an application server and a client device; determine an amount of retransmissions of the packets that occurred during transmission of the plurality of packets of the data flow; and predict a round trip time parameter for a service level agreement (SLA) associated with the application based at least in part on the round trip time of the plurality of packets of the data flow and the amount of retransmissions of the packets that occurred during transmission of the plurality of packets of the data flow.

[0011] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 is a block diagram illustrating an example software defined wide area network system that adaptively determines service level agreement parameters for applications in order to allocate traffic originating from the applications to links in accordance with techniques of this disclosure.

[0013] Figure 2 is a block diagram illustrating an example software-defined wide area network, in accordance with one or more techniques of this disclosure.

[0014] Figure 3 is a block diagram illustrating an example SD-WAN device configured to implement the techniques described herein.

[0015] Figure 4 is a flow chart illustrating an example technique for a software defined wide area network system to adaptively determine a service level agreement for an application in accordance with techniques of this disclosure. DETAILED DESCRIPTION

[0016] Figure 1is a block diagram illustrating an example software defined wide area network system that adaptively determines service level agreement parameters for applications in order to allocate traffic originating from the applications to links in accordance with techniques of this disclosure. Figure 1 The example network system 1 includes an SD-WAN system 2 that includes a public network and a private network to provide packet-based network services to a user device 16. That is, the SD-WAN system 2 provides authentication and establishment of network access for the user device 16 so that the user device can begin exchanging data packets with the public network 12 (which can be an internal or external packet-based network, such as the Internet).

[0017] exist Figure 1 In an example of , the SD-WAN system 2 includes an access network 6 that provides connectivity to a public network 12 via a service provider software defined wide area network 7 (hereinafter referred to as "SD-WAN 7") and a router 8. The SD-WAN 7 and the public network 12 provide packet-based services that can be requested and used by user devices 16. As an example, the SD-WAN 7 and / or the public network 12 can provide bulk data delivery, Internet Protocol voice (VoIP), Internet Protocol television (IPTV), short message service (SMS), wireless application protocol (WAP) services, or customer-specific application services. The public network 12 may include, for example, a local area network (LAN), a wide area network (WAN), the Internet, a virtual LAN (VLAN), an enterprise LAN, a layer 3 virtual private network (VPN), an Internet Protocol (IP) intranet operated by a service provider accessing the access network 6, an enterprise IP network, or a specific combination thereof. In various examples, the public network 12 is connected to a public WAN, the Internet, or other networks. The public network 12 runs one or more packet data protocols (PDPs), such as IP (IPv4 and / or IPv6), X.25, or a point-to-point protocol (PPP), to enable packet-based transmission of services provided by the public network 12. In some examples, the public network 12 may represent the Internet. In some examples, the public network 12 may represent an edge network coupled to the SD-WAN 7 via a transit network 22 and one or more network devices (e.g., a customer edge device, such as a customer edge switch or router). The public network 12 may include a data center. The router 8 may exchange packets with the service node 10 via the virtual network 20, and the router 8 may forward the packets to the public network 12 via the transit network 22.

[0018] Typically, the user device 16 is connected to the gateway router 8 via the access network 6 to receive connectivity for user services for applications hosted by the public network 12 or the router 8. The user may represent, for example, an enterprise, a residential user, or a mobile user. The user device 16 may be, for example, a personal computer, a laptop, or other type of computing device located behind the user equipment (CE) 11, which may provide local routing and switching functions. Each of the user devices 16 may run various software applications, such as word processing and other office support software, web browsing software, software that supports voice calls, video games, video conferencing, and email, etc. For example, the user device 16 may be a variety of devices with networking capabilities, generally referred to as "Internet of Things" (IoT) devices, such as cameras, sensors (S), televisions, appliances, etc. In addition, the user device 16 may include a mobile device that accesses data services of the SD-WAN system 2 via a radio access network (RAN) 6. Example mobile user devices include mobile phones, laptops or desktop computers with, for example, 3G wireless cards, netbooks with wireless capabilities, video game devices, pagers, smart phones, personal data assistants (PDAs), etc.

[0019] The network service provider operates or in some cases leases elements of the access network 6 to provide packet transport between the user devices 16 and the router 8. The access network 6 represents a network that aggregates data traffic from one or more of the user devices 16 for transport to / from the service provider's SD-WAN 7. The access network 6 includes network nodes that run communication protocols for transporting control data and user data to facilitate communication between the user devices 16 and the router 8. The access network 6 may include a broadband access network, a wireless LAN, a public switched telephone network (PSTN), a customer premises equipment (CPE) network, or other types of access networks, and may include or otherwise provide connectivity for a cellular access network such as a radio access network (RAN) (not shown). Examples include networks that conform to the Universal Mobile Telecommunications System (UMTS) architecture, an evolution of UMTS known as Long Term Evolution (LTE), mobile IP standardized by the Internet Engineering Task Force (IETF), and other standards proposed by the 3rd Generation Partnership Project (3GPP), the 3rd Generation Partnership Project 2 (3GPP / 2), and the WiMAX Forum.

[0020] SD-WAN device 18 may be a customer edge (CE) router, a provider edge (PE) router, a firewall, an SD-WAN appliance, or other network device between access network 6 and SD-WAN 7. SD-WAN 7 provides packet-based connectivity to user devices 16 attached to access network 6 to access public network 12 (e.g., the Internet). SD-WAN 7 may represent a public network owned and operated by a service provider that interconnects multiple networks, which may include access network 6. In some examples, SD-WAN 7 may implement multi-protocol label switching (MPLS) forwarding and in such instances may be referred to as an MPLS network or MPLS backbone. In some instances, SD-WAN 7 represents multiple interconnected autonomous systems, such as the Internet, that provide services from one or more service providers.

[0021] In an example of an SD-WAN system 2 that includes a wired / broadband access network, router 8 may represent a broadband network gateway (BNG), a broadband remote access server (BRAS), an MPLS PE router, a core router or gateway, or a cable modem termination system (CMTS). In an example of an SD-WAN system 2 that includes a cellular access network as an access network 6, router 8 may represent a mobile gateway, such as a gateway general packet radio service (GPRS) service node (GGSN), an access gateway (aGW), or a packet data network (PDN) gateway (PGW). In other examples, the functionality described with respect to router 8 may be implemented in a switch, a service card, or another network element or component. In some examples, router 8 itself may be a service node.

[0022] A network service provider managing at least a portion of the SD-WAN system 2 typically provides services to users associated with devices (e.g., user devices 16) that access the SD-WAN system 2. The services provided may include, for example, traditional Internet access, VoIP, video and multimedia services, and security services. As described above with respect to the SD-WAN 7, the SD-WAN 7 may support multiple types of access network infrastructures that connect to a service provider network access gateway to provide access to the provided services. In some instances, the network system may include user devices 16 attached to multiple different access networks 6 having different architectures.

[0023] Typically, any one or more of the user devices 16 may request authorization and data services by sending a session request to a gateway device, such as an SD-WAN device 18 or router 8. In turn, the software defined wide area network (“SD-WAN”) device 18 may access a central server (not shown), such as an authentication, authorization, and accounting (AAA) server, to authenticate one of the user devices 16 requesting network access. Once authenticated, any of the user devices 16 may send user data traffic to the SD-WAN 7 to access and receive services provided by the public network 12, and these packets may pass through the router 8 as part of at least one packet flow. In some examples, the SD-WAN device 18 may forward all authenticated user traffic to the public network 12, and in the event that the user traffic requires a service on the service node 10, then the router 8 may apply the service 15 to and / or steer the specific user traffic to the data center 9. The application (e.g., service application) to be applied to the user traffic may be hosted on the service node 10.

[0024] For example, when forwarding user traffic, the router 8 can direct individual user packet flows through services 15 running on one or more service cards installed within the router 8. Additionally or alternatively, the SD-WAN system 2 includes a data center 9 having a cluster of service nodes 10 that provide an execution environment for most virtualized network services. In some examples, each of the service nodes 10 represents a service instance. Each of the service nodes 10 can apply one or more services to a traffic flow. Thus, the router 8 can manipulate the user packet flow through a defined set of services provided by the service nodes 10. That is, in some examples, each user packet flow can be forwarded through a specific ordered combination of services provided by the service nodes 10, each ordered set being referred to herein as a "service chain." As an example, service 15 and / or service node 10 may apply stateful firewall (SFW) and security services, deep packet inspection (DPI), carrier-grade network address translation (CGNAT), traffic targeting function (TDF), media (audio / video) optimization, Internet Protocol Security (IPSec) / virtual private network (VPN) services, hypertext transfer protocol (HTTP) filtering, counting, auditing, billing and / or packet flow load balancing, or other types of services applied to network traffic.

[0025] exist Figure 1 In the example of , user packet flows can be directed along a service chain including any of the services 15 and / or services applied by the service node 10. After being processed at the terminal node of the service chain, i.e., the last service to be applied to the packets flowing along the particular service path, the traffic can be directed to the public network 12.

[0026] While a "service chain" defines one or more services to be applied in a specific order in order to provide a composite service for an application to a packet flow bound to the service chain, a "service tunnel" or "service path" refers to the logical and / or physical path taken by the packet flow processed by the service chain, and the forwarding state used to forward the packet flow according to the service chain sequence. Each service chain can be associated with a corresponding service tunnel, and the packet flow associated with each user device 16 flows along the service tunnel according to the service configuration associated with the corresponding user. For example, a given user can be associated with a specific service configuration, which is in turn mapped to a service tunnel associated with a specific service chain. Similarly, another user can be associated with a different service configuration, which is in turn mapped to a service tunnel associated with a different service chain. In some examples, after the SD-WAN device 18 has authenticated and established an access session for the user, the SD-WAN device 18 or router 8 can direct the user's data flow along the appropriate service tunnel, thereby enabling the data center 9 to apply the necessary ordered services for a given user. In some examples, the SDN controller 14 can also provide a forwarding rule set to the SD-WAN device 18 or router 8 for managing the forwarding path. In some examples, SDN controller 14 manages forwarding paths through all elements in data center 9 starting from router 8 .

[0027] In some examples, the service nodes 10 may implement service chaining using internally configured forwarding state that directs packets of a packet flow along the service chain for processing according to an identified set of service nodes 10. Such forwarding state may specify a tunnel interface for tunneling between service nodes 10 using a network tunnel, such as an IP or Generic Routing Encapsulation (GRE) tunnel, Network Virtualization using GRE (NVGRE), or by using VLANs, Virtual Extensible LANs (VXLANs), MPLS technology, etc. In some instances, real or virtual switches, routers, or other network elements that connect service nodes 10 to each other may be configured to direct packet flows to service nodes 10 according to the service chain.

[0028] exist Figure 1In the example of , the SD-WAN system 2 includes a software defined network (SDN) and a network function virtualization (NFV) architecture. The SDN controller 14 may provide a high-level controller for configuring and managing the routing and switching infrastructure of the SD-WAN system 2. The NFV coordinator device 13 may provide a high-level coordinator for configuring and managing the virtualization of network services in the server node 10 of the data center 9. In some instances, the SDN controller 14 manages the deployment of virtual machines (VMs) within the operating environment of the data center 9. For example, the SDN controller 14 may interact with the provider edge (PE) router 8 to specify service chain information described in more detail below. For example, the service chain information provided by the SDN controller 14 may specify any combination and ordering of services provided by the service node 10, traffic engineering information for tunneling or otherwise transmitting packet flows along a service path, rate limiting, service type (TOS) marking, or specifying a packet classifier for matching a packet flow to a specific service chain. Further example details of an SDN controller are described in PCT International Patent Application PCT / US13 / 44378 filed on June 5, 2013, the entire contents of which are incorporated herein by reference.

[0029] Although illustrated as part of the data center 9, the service node 10 can be a network device coupled by one or more switches or virtual switches of the SD-WAN 7. In one example, each of the service nodes 10 can run as a VM in a virtual computing environment. In addition, the computing environment can include a scalable cluster of general-purpose computing devices (such as servers based on x86 processors). As another example, the service node 10 may include a combination of general-purpose computing devices and dedicated devices. As a virtualized network service, the individual network services provided by the service node 10 can be scaled as in a modern data center through the allocation of virtual memory, processor utilization, storage and network policies, and by horizontally adding additional load balancing VMs. In other examples, the service node 10 can be a gateway device or other router. In another example, the functions described with respect to each of the service nodes 10 can be implemented in a switch, a service card, or another network element or component.

[0030] As described herein, elements within the SD-WAN system 2 may perform end-to-end application data monitoring using various application quality of experience (QoE) metric functions, such as real-time performance monitoring (RPM) or two-way active measurement protocol (TWAMP). That is, RPM and TWAMP may be used within the SD-WAN system 2 to measure one-way and two-way or round-trip metrics of network performance, such as path connectivity, path delay, packet jitter, packet loss, packet reordering, etc., for example, between network devices (also referred to as hosts or endpoints) for each user. Typically, the QoE measurement architecture includes network devices, each of which supports the protocol used and performs a specific role to start a data session.

[0031] The SD-WAN system 2 can determine QoE metrics, such as service level agreement (SLA) metrics, including round-trip time, jitter, and packet loss, which are affected by the real-time parameters of the application (such as packet size, queues, and bursts of packets) to determine the best path. QoE aims to improve the user experience at the application layer by continuously monitoring the service class parameters and the SLA compliance of the application traffic, thereby ensuring that the application data is sent on the most SLA-compliant link available. Specifically, when transmitting application traffic, the SD-WAN system 2 can try to select a link for transmitting application traffic that meets the SLA parameters of the application.

[0032] According to the techniques described herein, one or more components of the SD-WAN system 2, such as the router 8, NFV coordinator 13, SDN controller 14, or SD-WAN device 18, can implement techniques for predicting SLA parameters for an application by monitoring the end-to-end data flow of the application. The SD-WAN system 2 can use the set of predicted SLA parameters to guide the SD-WAN device 18 to find the best link to send the data flow to the intended destination.

[0033] In some examples, for new data flows whose SLA parameters are initially unknown, the SD-WAN system 2 may implement a probeless technique to predict SLA parameters, such as round trip time, jitter, and TCP retransmissions. That is, the SD-WAN device 18 may adaptively determine the SLA parameters for the data flow without sending any test packets or probe packets in order to find an appropriate link for sending the data flow to the intended destination. Instead, the SD-WAN system 2 may predict the SLA parameters for the data flow based on monitoring the data flow. The SD-WAN system 2 may determine, based on the predicted SLA parameters for the data flow, a suitable link for transmitting the data flow that meets the predicted SLA parameters.

[0034] In some examples, the SD-WAN system 2 can predict SLA parameters for data streams transmitted via the Transmission Control Protocol (TCP). TCP uses a technique called retransmission acknowledgment, which requires the receiver to respond with a confirmation message when it receives data. The sender can maintain a record of each packet sent by the sender and can maintain a retransmission timer of a specific length. If the retransmission timer for a packet sent by the sender expires before the sender receives an acknowledgment from the receiver, the sender retransmits the packet to the receiver. The occurrence of such packet retransmissions may give the end user a poor experience and may also increase the load on the network. In the example of a data stream carrying streaming video, packet retransmissions of the data stream may cause the streaming video to freeze.

[0035] The SD-WAN system 2 can determine the SLA parameters of the data flow by monitoring the data flow of the application on one or more links, and the SLA parameters reduce the amount of retransmission. For example, when the data flow is transmitted on the link, the SD-WAN system 2 can determine the round-trip time parameters for the application based on monitoring the round-trip time of the packets of the application data flow, the packet retransmissions of the application data flow, and the jitter. The SD-WAN system 2 can feed the data collected when monitoring the data flow of the application into the SLA management engine, and the SLA management engine can be able to adaptively determine or predict the SLA parameters for the application based on the collected data.

[0036] According to aspects of the present disclosure, the SD-WAN system 2 may monitor the round trip time of packets of a data flow of an application being transmitted on a link between an application server and a client device. The SD-WAN system 2 may determine the amount of retransmissions during transmission of packets of the data flow by monitoring the amount of retransmissions of packets that occurred during transmission of the data flow on the link. The SD-WAN device 2 may determine a round trip time parameter for an SLA associated with the application based at least in part on the round trip time of packets of the data flow and the amount of retransmissions that occurred during transmission of the data flow on the link.

[0037] In some examples, if the SD-WAN system 2 determines that the amount of retransmissions experienced by the data flow is below a predefined retransmission threshold, the SD-WAN device may determine that the round-trip time experienced by the data flow is a "good" value. Therefore, the SD-WAN system 2 may set the round-trip time parameter for the SLA associated with the application to the round-trip time experienced by the packets of the data flow. In some examples, if the SD-WAN system 2 determines that the amount of retransmissions experienced by the data flow is at or above a predefined retransmission threshold, the SD-WAN device may refrain from setting the round-trip time parameter for the SLA associated with the application to the round-trip time experienced by the packets of the data flow. In some examples, the predefined retransmission threshold may specify a number of retransmissions, such as 1 retransmission, 2 retransmissions, etc., and may be predefined in the SD-WAN system 2, such as by programming by a network administrator, factory programming, etc.

[0038] The SD-WAN system 2 can adaptively adjust the round-trip time parameters of the SLA for the data flow based on monitoring the round-trip time of the packets of the data flow and the amount of retransmissions that occur during the transmission of the data flow on the link. When the data flow is transmitted over the link, the round-trip time of the packets of the data flow may change (e.g., increase and / or decrease) due to changes in network conditions such as the link (e.g., an increase or decrease in the network traffic carried by the link). When the round-trip time of the packets of the data flow changes, the SD-WAN system 2 can adaptively determine whether to change the round-trip time parameters of the SLA for the data flow based on the change in the round-trip time of the packets of the data flow.

[0039] Specifically, in the event that the round trip time of packets of a data flow increases, if the amount of retransmissions experienced by the data flow remains below a predefined retransmission threshold, the SD-WAN system 2 may increase the round trip time parameter of the SLA for the data flow. For example, if the SD-WAN system 2 determines that packets of a data flow being transmitted on a link have a first round trip time, and if the SD-WAN system determines that the data flow being transmitted on the link has a retransmission rate that is below a predefined retransmission threshold, the SD-WAN system 2 sets the round trip time parameter of the SLA for the data flow to the first round trip time. If the round trip time of packets of the data flow changes from the first round trip time to a second round trip time that is greater than the first round trip time, the SD-WAN system 2 may determine whether the data flow is experiencing an amount of retransmissions that is still below the predefined retransmission threshold. If the SD-WAN system 2 determines that the data flow is still experiencing an amount of retransmissions that is still below the predefined retransmission threshold, the SD-WAN system 2 sets the round trip time parameter of the SLA associated with the application to the second round trip time.

[0040] For example, the SD-WAN system 2 may monitor a data flow through an application being transmitted on a link, where a round trip time of packets of the data flow is 30 milliseconds (ms) in a first time window and may monitor the data flow for retransmissions of packets in the data flow during the first time window, where a predefined retransmission threshold is 1. If the SD-WAN system 2 does not detect any retransmissions of packets in the data flow during the first time window when the link has a round trip time of 30 ms, the SD-WAN system 2 may set the round trip time parameter for the SLA associated with the application to the round trip time of packets of the data flow, which is 30 ms.

[0041] In the second time window, the round trip time of packets of the data flow of the application transmitted over the link may change from 30 ms to 50 ms, such as due to more load being transmitted over the link. The SD-WAN system 2 may continue to monitor the data flow being transmitted on the link in the second time window to monitor the data flow for packet retransmissions in the data flow. If the SD-WAN system 2 detects packet retransmissions in the data flow during the second time window, the SD-WAN system 2 may refrain from changing the round trip time parameter for the SLA associated with the application from its value of 30 ms to the round trip time of packets of the data flow during the second time window, which is 50 ms.

[0042] In the third time window, the round trip time of packets of the data flow of the application being transmitted on the link may be changed to 40 ms. The SD-WAN system 2 may continue to monitor the data flow being transmitted on the link in the third time window to monitor the data flow for packet retransmissions in the data flow. If the SD-WAN system 2 does not detect any packet retransmissions in the data flow during the third time window, the SD-WAN system 2 may change the round trip time parameter for the SLA associated with the application from a value of 30 ms to a value of 40 ms.

[0043] As can be seen, the SD-WAN system 2 can determine an initial round trip time parameter for the SLA for the application, and can be able to adaptively increase the round trip time parameter for the SLA associated with the application without increasing packet retransmissions in the data flow if the increased value of the round trip time parameter does not increase packet retransmissions in the data flow. Because the round trip time parameter for the data flow can be an upper limit value for the round trip time, the data flow can be transmitted on a link with a round trip time equal to or less than the round trip time parameter for the SLA associated with the application without increasing the amount of retransmissions of the data flow. Therefore, by increasing the round trip time parameter for the SLA associated with the application, the SD-WAN system 2 can be able to increase the number of links with a quality of experience metric that can meet the SLA associated with the application.

[0044] In some examples, different sessions or instances of an application may send different data streams on different links, and packets of the different data streams may experience different round-trip times. The SD-WAN system 2 may therefore monitor different data streams of the application on different links in order to determine round-trip time parameters for an SLA associated with the application. For example, an application may send a first data stream on a first link, and packets of the first data stream may experience a first round-trip time (e.g., 40ms). An application may send a second data stream on a second link, and packets of the second data stream may experience a second round-trip time (e.g., 30ms). If the SD-WAN system 2 detects packet retransmissions of the first data stream transmitted on the first link but does not detect any packet retransmissions of the second data stream transmitted on the second link, the SD-WAN system 2 may set the round-trip time parameter for the SLA associated with the application to the second round-trip time (e.g., 30ms).

[0045] The SD-WAN system 2 may use the SLA associated with the application to select a link in the SD-WAN system 2 for transmitting the data flow of the application. Specifically, the SD-WAN system 2 may select, for the application, a link with a quality of experience metric that satisfies the SLA associated with the application. For example, for an application with an SLA specifying a round-trip time parameter of 40 ms, the SD-WAN system 2 may select a link for transmitting the data flow of the application that can satisfy the round-trip time parameter of 40 ms.

[0046] There may be one or more advantages of using the techniques described herein. The techniques described herein may enable the SD-WAN system 2 to adaptively predict one or more SLA parameters for an application without user intervention. By adaptively predicting one or more SLA parameters based on the actual end-to-end data flow of the application to the client device, the techniques described herein may be able to determine SLA parameters based on the actual network conditions of the links in the SD-WAN system 2, thereby generating SLA parameters that may be more suitable for the actual network conditions in the SD-WAN system 2 than manually determined SLA parameters. For example, by using the SLA parameters of the application to select a link that meets the round-trip time parameters of the SLA for the application, the SD-WAN system 2 can minimize the amount of TCP retransmissions experienced by the data flow of the application. The present technology can also provide information for the SD-WAN system 2 to switch the application data flow out of over-utilized links and avoid other links with available bandwidth from becoming under-utilized. Therefore, the techniques described herein can provide a better experience for end users and better resource utilization of the entire network.

[0047] Figure 2is a block diagram illustrating an example SD-WAN in accordance with one or more techniques of the present disclosure. In the example described herein, the SD-WAN 37 includes three different WAN links: a first WAN link 40 coupling the SD-WAN device 38 to a multi-protocol layer switching (MPLS) network 50, a second WAN link 42 coupling the SD-WAN device 38 to the Internet 52, and a third WAN link 44 coupling the SD-WAN device 38 to a long term evolution (LTE) network 54. In other examples, the SD-WAN 37 may include any number of links of any appropriate type for transporting data flows between a client side (e.g., client devices 36 and SD-WAN devices 38) and an application side (e.g., SD-WAN devices 56 and application servers 58).

[0048] In some examples, the SD-WAN device 56 periodically sends probe packets of various sizes to each of the potential WAN links 40, 42, and 44 in order to maintain an up-to-date record of metrics for the WAN links 40, 42, and 44 so that data flows can be quickly routed after receipt. For example, the SD-WAN device 56 may have a reference data repository with indications of probe packets of various data packet sizes in data flows that are typically processed by the SD-WAN device 56. Periodically, the network device may send multiple probe packets to each of the available WAN links 40, 42, and 44 (e.g., one for each size specified in the reference data repository) in order to obtain current metrics for a particular WAN link if the WAN link is to transmit a data flow having a corresponding packet size, and store the metrics in the reference data repository.

[0049] For example, the SD-WAN device 56 may receive a data flow for an application. The SDN controller 14 may monitor the data flow for the application, such as via the techniques described above, to determine an SLA associated with the application. The SDN controller 14 may, in response to determining the SLA associated with the application, send an indication of the SLA associated with the application to the SD-WAN device 56.

[0050] SD-WAN device 56 may determine which of links 40, 42, and 44 has a quality of experience metric that satisfies an SLA associated with an application, and SD-WAN device 56 may assign the data flow to the link that satisfies the SLA associated with the application. For example, SD-WAN device 56 may assign the data flow to be transmitted via Internet link 42 in response to determining that the quality of experience metric for Internet link 42 will satisfy the SLA associated with the application.

[0051] Figure 3 is a block diagram illustrating an example SD-WAN device configured to implement the techniques described herein. Figure 3 In the example of Figure 1 The present invention is described in the context of an SD-WAN system 2 of the present invention and may represent any suitable component of the SD-WAN system 2, such as the NFV coordinator 13, the SDN controller 14, the router 8, and the SD-WAN device 18. In addition, although described with reference to a specific network device (e.g., an SDN controller 14, a router, or an SD-WAN device), the present technology may be implemented by any network device that can be used as a network device in the SD-WAN system 2 (such as a client device, a layer 3 (L3) or above network device, a server, or any other network device that can be used as a TCP proxy, a TCP monitor, a TCP tracer, etc.). In some examples, the SD-WAN device may be a device running SD-WAN network function virtualization (NFV), a device providing a firewall in the SD-WAN system 2, or a device running the SD-WAN function described herein as a cloud-based service.

[0052] The SD-WAN device 60 may be used as a network service controller for a service provider network, such as in the SD-WAN system 2. Specifically, the SD-WAN device 60 may perform end-to-end monitoring of application data flows transmitted within a network containing or managed by the SD-WAN device 60 in order to determine one or more parameters of an SLA for an application.

[0053] exist Figure 3 In the illustrated example of , the SD-WAN device 60 includes a management unit 65, a control unit 64 for controlling the operation of the SD-WAN device 60, and a network interface 66 for exchanging packets with network devices through an inbound link 67 and an outbound link 68. In some examples, the control unit 64 and / or the management unit 65 can be implemented as one or more processes running on one or more virtual machines of one or more physical computing devices. That is, although generally illustrated and described as running on a single SD-WAN device 60, aspects of each of these units can be delegated to other computing devices or distributed across other computing devices.

[0054] Each of the control unit 64 and / or management unit 65 may include one or more processors (not shown) that execute software instructions, for example, software instructions for defining software or computer programs stored to a computer-readable storage medium (not shown), the computer-readable storage medium being a non-transitory computer-readable medium such as a storage device (e.g., a disk drive or an optical drive) or a memory (such as flash memory or RAM), or any other type of volatile or non-volatile memory, that stores instructions to cause the one or more processors to perform the techniques described herein. Alternatively or additionally, each of the control unit 64 and / or management unit 65 may include dedicated hardware for performing the techniques described herein, such as one or more integrated circuits, one or more application-specific integrated circuits (ASICs), one or more application-specific application-specific processors (ASSPs), one or more FPGAs, or any combination of one or more of the foregoing examples of dedicated hardware. Figure 3 The architecture of the SD-WAN device 60 illustrated in the figure is shown for example purposes only and should not be limited to the architecture. In other examples, the SD-WAN device 60 can be implemented in various ways (such as software only, hardware only, or a combination of software and hardware).

[0055] The management unit 65 may include a management layer of the SD-WAN device 60, and the control unit 64 may include a control layer of the SD-WAN device 60. The management unit 65 includes an analysis unit 61 and a configuration unit 62. The analysis unit 61 may capture information from physical and / or virtual network elements (e.g., gateways, service nodes 10) or Figure 1 9 or from each data center Figure 2 The information may include statistics, logs, events, and errors.

[0056] For example, the analysis unit 61 of the management unit 65 may perform end-to-end monitoring of an application data flow from an application server (e.g., application server 58) to a client device (e.g., client device 36). Specifically, the analysis unit 61 may monitor various metrics of the application data flow transmitted via TCP, such as round trip time, jitter, TCP retransmission, etc., which the analysis unit 61 may send to the SLA management engine 77. The analysis unit 61 may communicate with an application server (such as application server 58) via the network interface 66 to monitor the data flow of an application running on the application server for metrics associated with the data flow as the data flow is transmitted, and such data may be fed into the SLA management engine 77 to determine one or more parameters of the SLA for the application as the analysis unit 61 monitors the data flow.

[0057] For example, to monitor the flow of data from an application running on application server 58 to client device 36 over a link (e.g., one of WAN links 40, 42, and 44), analysis unit 61 may communicate with application server 58 to receive information about the flow of data sent from application server 58 to client device 36. For example, analysis unit 61 may receive, for each packet of the flow of data sent from application server 58 to the client device, a sequence number of the packet, a timestamp of the packet indicating the time the packet was sent, an acknowledgment that the packet was received by application server 58, any retransmissions of the packet by application server 58, etc. Analysis unit 61 may, in response to receiving such information about the flow of data for the application, send the received information to SLA management engine 77.

[0058] The analysis unit 61 may be capable of simultaneously monitoring multiple data streams of multiple applications. That is, the analysis unit 61 may be capable of concurrently monitoring multiple data streams transmitted from the same instance of an application to the same or different client devices, multiple data streams transmitted from different instances of the same application to the same or different client devices, or multiple data streams transmitted from different applications to the same or different client devices, and may send received information from the monitored data streams to the SLA management engine 77.

[0059] Configuration unit 62 stores configuration information for network elements within SD-WAN system 2. In some examples, the configuration information includes a virtual network configuration. Configuration unit 62 can convert a high-level data model of an intended virtual network configuration into a lower-level data model for use in interacting with network elements.

[0060] The control unit 64 of the SD-WAN device 60 implements a centralized control plane for the SD-WAN system 2 that is responsible for maintaining a constantly changing network state. The control unit 64 interacts with network elements within the SD-WAN system 2 to maintain a consistent network state across all network elements. The control unit 64 provides an operating environment for a command line interface daemon 75 (“CLI 75”) that provides an interface through which an administrator or other management entity can modify the configuration of the SD-WAN device 60 using text-based commands. The control unit 64 also provides an operating environment for several protocols 70, including the Border Gateway Protocol (BGP) 72 and the Extensible Messaging Presence Protocol (XMPP) 74, such as Figure 3According to the techniques described herein, these commands can change which QoE metrics are measured, how the SD-WAN device 60 builds the topology of the network, and whether the SD-WAN device 60 optimizes the distribution of the detection processes performed across the node devices. User configuration (e.g., intent-based configuration) can also configure the detection itself, providing instructions on whether the detection is active detection, passive detection, or a combination thereof.

[0061] In some examples, the control unit 64 uses XMPP 74 to communicate with network elements (such as Figure 1 The control unit 64 may communicate with a gateway 8 within the SD-WAN system 2, a client device 16, or a service node 10 of a data center 9. According to XMPP 74 for communication between the SD-WAN device 60 and the network elements, virtual network routing data, statistics collection, logs, and configuration information may be sent as an extensible markup language (XML) document. The control unit 64 may also communicate with one or both of the analysis unit 61 and the configuration unit 62 of the SD-WAN device 60 using XMPP 74.

[0062] The control unit 64 also includes an SLA management engine 77. The SLA management engine 77 may enable the control unit 64 to determine one or more parameters of an SLA metric for an application that sends a data stream to a client device within the SD-WAN system 2. According to the techniques described herein, the SD-WAN device 60 may monitor application data streams on a link of the SD-WAN system 2 to determine one or more parameters associated with an SLA for an application within the SD-WAN system 2. The SLA management engine 77 may receive information associated with packets of a data stream of the application that are transmitted on a link between an application server and a client device, and the SLA management engine 77 may perform TCP sequence number analysis on packets of the data stream to determine one or more parameter prediction values ​​for the SLA for the application. The SLA management engine 77 may then store the predicted SLA parameter values ​​to the SLA database 79. A network device such as an SD-WAN device may use the SLA associated with the application to select a link for transmitting the data stream of the application that has a quality of experience metric that satisfies the SLA for the application.

[0063] The SLA management engine 77 may receive from the analysis unit 61 and for each packet of the data stream sent by the application from the application server 58 to the client device, a sequence number of the packet, a timestamp of the packet indicating the time the packet was sent, an acknowledgment that the packet was received by the application server 58, any retransmissions of the packet by the application server 58, etc. The SLA management engine 77 may be able to use such information to predict one or more parameters associated with the SLA for the application.

[0064] The SLA management engine 77 may analyze information associated with packets of a data stream to monitor various data about the data stream. For example, the SLA management engine 77 may monitor the end-to-end round trip time of packets of a data stream of an application transmitted on a link between an application server and a client device. Specifically, the SLA management engine 77 may determine, for each packet of the packet stream, the round trip time for the packets of the data stream as the time elapsed between the application sending the packet to the client device and the application receiving an acknowledgment of the packet. The SLA management engine 77 may be able to identify the packets and the corresponding acknowledgments using sequence numbers associated with the packets and the corresponding acknowledgments, and determine such round trip time of the packets by using the timestamps of the packets and the timestamps of the corresponding acknowledgments to determine the time elapsed between sending the packets and receiving the corresponding acknowledgments.

[0065] In addition to determining the round trip time of packets in the packet stream, the SLA management engine 77 may also determine the jitter of the data stream as the difference between the round trip times of the packets. The SLA management engine 77 may determine the jitter of two consecutive packets in the packet stream as the difference in the round trip time of the packets for each of the two packets. For example, if the SLA management engine 77 determines that a first packet in the data stream has a round trip time of 30 ms and a subsequent second packet in the data stream has a round trip time of 40 ms, then the SLA management engine 77 may determine the jitter between the first packet and the second packet in the data stream as 10 ms.

[0066] The SLA management engine 77 may also determine an amount of TCP retransmissions during transmission of packets of a data stream. For a data stream of an application transmitted via TCP, an application may retransmit a packet if the application does not receive an acknowledgment for a packet sent by the application within a specified amount of time. If the SLA management engine 77 determines that a data stream includes two or more packets sent by an application with the same sequence number, the SLA management engine 77 may determine that packet retransmissions have occurred in the data stream. By determining an amount of duplicate packets sent in a data stream, the SLA management engine 77 may determine an amount of retransmissions of packets in the data stream.

[0067] The SLA management engine 77 may determine a round trip time parameter for an SLA associated with an application based at least in part on the round trip time of packets of the data stream and the amount of retransmissions during transmission of packets of the data stream. Specifically, the SLA management engine 77 may determine whether the amount of retransmissions of packets in the data stream is below a retransmission threshold. In some examples, the retransmission threshold may specify a retransmission rate, which may be the number of retransmissions per a specified number of packets transmitted as part of the data stream. In some examples, the retransmission threshold may be a number, such as 1, 2, 3, etc. In some examples, if the amount of retransmissions of packets in the data stream is zero (i.e., there are no packet retransmissions in the data stream), the SLA management engine 77 may determine that the amount of retransmissions of packets in the data stream is below the retransmission threshold.

[0068] If the SLA management engine 77 determines that the amount of retransmissions of packets in the data flow is below the retransmission threshold, the SLA management engine 77 may determine a round trip time parameter for the SLA associated with the application based on the round trip time determined for the packets of the data flow. In some examples, the SLA management engine 77 may determine the round trip time for the data flow based on the round trip time determined for the packets of the data flow, and may set the round trip time parameter for the SLA to the determined round trip time. However, if the SLA management engine 77 determines that the amount of retransmissions of packets in the data flow is at or above the retransmission threshold, the SLA management engine 77 may refrain from determining the round trip time parameter for the SLA associated with the application based on the round trip time determined for the packets of the data flow.

[0069] In some examples, if all round trip times determined for the packets of the data flow have the same value, then the SLA management engine 77 may determine the round trip time for the data flow as the value of any one of the round trip times for the packets of the data flow. In some examples, the SLA management engine 77 may determine the round trip time for the data flow as the average round trip time value or the median round trip time value for the round trip times for the packets of the data flow. In some examples, the SLA management engine 77 may determine the round trip time for the data flow as the maximum round trip time value among the round trip times for the packets of the data flow. The SLA management engine 77 may also use any other suitable technique to determine the round trip time for the data flow based on the round trip times determined for the packets of the data flow.

[0070] If the round trip time parameter for the SLA associated with the application has not been determined, the SLA management engine 77 may predict the associated round trip time parameter for the SLA associated with the application as the round trip time of the data flow, and store the predicted round trip time parameter for the application in the SLA database 79. If the round trip time parameter for the SLA associated with the application has been previously determined and stored in the SLA database 79, the SLA management engine 77 may compare the currently determined round trip time of the data flow with the round trip time parameter for the SLA associated with the application to determine whether to set the round trip time parameter for the SLA associated with the application as the currently determined round trip time of the data flow. Specifically, the SLA management engine 77 may determine whether the currently determined round trip time of the data flow is greater than the round trip time parameter for the SLA associated with the application.

[0071] As described above, setting the round trip time parameter for the SLA associated with the application to a larger value can increase the number of links with a quality of experience metric that meets the quality of experience. Therefore, the SLA management engine 77 can set the round trip time parameter for the SLA associated with the application to the current determined round trip time of the data flow in response to determining that the current determined round trip time of the data flow is greater than the round trip time parameter for the SLA associated with the application. In some examples, the SLA management engine 77 can also set the jitter parameter for the SLA associated with the application to the jitter for the data flow, and can store the jitter parameter for the application in the SLA database 79. For example, the jitter for the data flow can be the average or median jitter of the data flow determined by the SLA management engine 77. The SLA management engine 77 can therefore store the SLA parameters determined for the application in the SLA database 79.

[0072] The SLA management engine 77 can perform self-learning to adaptively determine the round-trip time parameters for the SLA associated with the application. That is, the SLA management engine 77 can continuously determine the round-trip time parameters for the SLA associated with the application. In some examples, because the characteristics of the link used to transmit the data stream can change, such as the change in the amount of load carried by the link, the round-trip time of the packets of the data stream transmitted through the link can also change over time. Therefore, the SLA management engine 77 can actually divide the packets of the data stream of the application transmitted through the link into sequential groups of packets, and can determine the round-trip time and retransmission amount of each group of packets in the data stream. For example, the SLA management engine 77 can determine the round-trip time and retransmission amount of the first 100 packets of the data stream, determine the round-trip time and retransmission amount of the second 100 packets of the data stream, determine the round-trip time and retransmission amount of the third 100 packets of the data stream, and so on.

[0073] Therefore, in response to determining the round trip time of packets of a first group of packets of a data stream of an application transmitted on a link between an application server and a client device and the amount of retransmissions of packets, the SLA management engine 77 may use the techniques described above to determine the round trip time of packets of a second group of packets of the data stream of the application transmitted on the link between the application server and the client device and the amount of retransmissions of packets. For example, the SLA management engine 77 may monitor the round trip time of packets of the data stream for the second group of packets of the data stream to determine the round trip time of the second group of packets of the data stream. Similarly, the SLA management engine 77 may determine the amount of retransmissions during the transmission of the second group of packets of the data stream by, for example, determining the amount of retransmissions of packets of the data stream of the second group of packets.

[0074] The SLA management engine 77 may determine whether to update the round trip time parameters for the SLA associated with the application based at least in part on the round trip time of the second set of packets of the data flow and the amount of retransmissions during transmission of the second set of packets of the data flow, such as by storing the updated round trip time parameters for the SLA in the SLA database 79. That is, if the SLA management engine 77 determines that the amount of retransmissions of packets of the data flow of the second set of packets is below a retransmission threshold, then the SLA management engine 77 may determine whether to set the round trip time for the SLA associated with the application to the round trip time of the second set of packets of the data flow.

[0075] Specifically, if the SLA management engine 77 determines that the amount of retransmissions of packets of the data flow of the second group of packets is below a retransmission threshold, and if the SLA management engine 77 determines that the round trip time of the second group of packets of the data flow is greater than the round trip time parameter for the SLA associated with the application, then the SLA management engine 77 may set the round trip time parameter for the SLA associated with the application to the round trip time parameter for the second group of packets of the data flow. In this manner, the SLA management engine 77 may continuously determine the round trip time parameter for the SLA associated with the application.

[0076] Thus, for example, if the SLA management engine 77 determines that the round-trip time of a first group of packets of a data flow is 30 ms, and the amount of retransmissions of packets of the data flow of the first group of packets is below a retransmission threshold, the SLA management engine 77 may set the round-trip time parameter for the SLA associated with the application to 30 ms by storing the round-trip parameter of 30 ms in the SLA database 79.

[0077] Subsequently, the SLA management engine 77 determines that the round trip time for the second set of packets of the data flow is 50 ms. However, if the SLA management engine 77 determines that the amount of retransmissions of packets of the second set of packets of the data flow is at or above the retransmission threshold, then the SLA management engine 77 may refrain from setting the round trip time parameter for the SLA associated with the application to 50 ms, such as by refraining from storing the round trip parameter of 50 ms to the SLA database 79. Subsequently, if the SLA management engine 77 determines that the round trip time for the third set of packets of the data flow is 40 ms, and the amount of retransmissions of packets of the third set of packets of the data flow is below the retransmission threshold, then the SLA management engine 77 may set the round trip time parameter for the SLA associated with the application to 40 ms by storing the round trip time parameter of 40 ms to the SLA database 79. In this manner, the SLA management engine 77 may continuously determine the round trip time parameter for the SLA associated with the application.

[0078] In some examples, the SLA management engine 77 can monitor multiple data flows of an application on different links in the SD-WAN system 2 to adaptively determine round trip time parameters for an SLA associated with the application. For example, the SLA management engine 77 can use the techniques described above to determine the round trip time and the amount of retransmissions of packets of a first data flow of an application transmitted on a first link. The SLA management engine 77 can also use the techniques described above to determine the round trip time and the amount of retransmissions of packets of a second data flow of an application transmitted on a second link, wherein the transmission of the first data flow and the second data flow on the first link and the second link are at least partially concurrent.

[0079] The SLA management engine 77 may set the round trip time parameter for the SLA associated with the application to the round trip time of the first data stream in response to determining that the amount of retransmissions of packets in the first data stream is below the retransmission threshold. Subsequently, if the SLA management engine 77 determines that the amount of retransmissions of packets in the second data stream is below the retransmission threshold, it is determined whether to set the round trip time parameter for the SLA associated with the application to the round trip time for the second data stream. Specifically, if the SLA management engine 77 determines that the round trip time of the second data stream is greater than the round trip time parameter for the SLA associated with the application, the SLA management engine 77 may set the round trip time parameter for the SLA associated with the application to the round trip time of the second data stream. In this way, the SLA management engine 77 can utilize data streams of an application that are transmitted over multiple different links to determine the round trip time parameter for the SLA associated with the application.

[0080] As described above, the SD-WAN device 60 may store parameters such as round trip time, jitter parameters, etc. for an SLA associated with an application in the SLA database 79. The SD-WAN device 60 may also be able to store parameters for SLAs associated with different applications in the SLA database 79. The SD-WAN device 60 may be able to identify an application associated with a data flow via any suitable technique, such as by receiving an identification of such an application from, for example, an application server, by performing deep packet inspection, etc. In some examples, for applications that the SD-WAN device 60 cannot identify, the SD-WAN device 60 may be able to determine an application signature based at least in part on the data flow of the application and may associate the parameters for the SLA with the application in the SLA database 79.

[0081] In some examples, the SD-WAN device 60 may determine and record the traffic pattern of the data flow of the application in order to determine the application signature of the application and / or identify future traffic flows from the same application. For example, the SLA management engine 77 may record the traffic pattern of the data flow of the application, such as packets per second, inter-packet delays, bursts of packets within the data flow, session duration of the data flow, etc., to determine the application signature of the application. When the SD-WAN device 60 monitors future data flows, the SD-WAN device 60 may analyze the traffic pattern of the data flow to identify the application (or application signature) associated with the data flow.

[0082] By identifying an application associated with a data flow monitored by the SD-WAN device 60, the SD-WAN device 60 can determine whether an associated SLA is stored in the SLA database 79. The SD-WAN device 60 can, in response to identifying an application associated with a data flow monitored by the SD-WAN device 60, determine whether an SLA associated with the application is stored in the SLA database 79.

[0083] In response to determining that the SLA associated with the application is stored in the SLA database 79, the SD-WAN device 60 may assign the data flow of the application to a specific link having a quality of experience metric that satisfies the SLA associated with the application. That is, the SD-WAN device 60 may assign the data flow of the application to a specific link that satisfies the round-trip time and / or jitter parameters of the SLA associated with the application. For example, the SD-WAN device 60 may send an indication of the SLA associated with the application to a network device, such as Figure 2The SD-WAN device 56 can select and / or change the link used to transmit the data flow of the application. The network device can allocate the data flow of the application to a specific link with a quality of experience metric that satisfies the SLA associated with the application in response to receiving the SLA associated with the application. In this way, by adaptively determining one or more parameters of the SLA of the application, the SD-WAN device 60 enables the data flow of the application to be transmitted on a link that is well suited for the application.

[0084] Figure 4 is a flowchart illustrating an example technique for a software defined wide area network system for adaptively determining a service level agreement for an application according to the techniques of the present disclosure. These techniques can be referenced Figure 3 The SD-WAN device 60 is described.

[0085] According to the techniques described herein, SD-WAN device 60 may monitor a round trip time of a plurality of packets of a data flow of an application transmitted on a link between an application server and a client device (102). SD-WAN device 60 may determine an amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data flow (104). For example, SD-WAN device 60 may determine an amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data flow.

[0086] The SD-WAN device 60 may predict a round trip time parameter (106) for a service level agreement (SLA) associated with an application based at least in part on the round trip time of multiple packets of the data flow and an amount of retransmissions of packets that occurred during transmission of the multiple packets of the data flow.

[0087] For example, the SD-WAN device 60 may determine whether an amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data flow is below a predefined retransmission threshold, and may, in response to determining that an amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data flow is below the predefined retransmission threshold, predict a round trip time parameter for an SLA associated with the application based at least in part on the round trip time of the plurality of packets of the data flow. For example, the SD-WAN device 60 may determine a round trip time based on the round trip time of the plurality of packets of the data flow of the application and may set the round trip time parameter for the SLA to the round trip time.

[0088] In some examples, SD-WAN device 60 may monitor a round trip time of a second plurality of packets of a data flow of the application in response to predicting a round trip time parameter for the SLA associated with the application. SD-WAN device 60 may determine an amount of retransmissions during transmission of the second plurality of packets of the data flow. SD-WAN device 60 may determine whether to update the round trip time for the SLA associated with the application based at least in part on the round trip time of the second plurality of packets of the data flow and the amount of retransmissions that occurred during transmission of the second plurality of packets of the data flow.

[0089] In some examples, the SD-WAN device 60 may determine an amount of retransmissions of packets during transmission of a second plurality of packets of the data flow. The SD-WAN device 60 may determine whether the amount of retransmissions of packets that occurred during transmission of the second plurality of packets of the data flow is below a predefined retransmission threshold. The SD-WAN device 60 may determine the round trip time based on the round trip time of the second plurality of packets of the data flow of the application. The SD-WAN device 60 may, in response to determining that the amount of retransmissions of packets that occurred during transmission of the second plurality of packets of the data flow is below a predefined retransmission threshold and the round trip time is greater than a round trip time parameter for an SLA associated with the application, set the round trip time parameter for the SLA to the round trip time.

[0090] In some examples, the second plurality of packets of the data stream of the application includes the second plurality of packets of the data stream of the application transmitted on the link between the application server and the client device. In some examples, the second plurality of packets of the data stream of the application transmitted between the application server and the client device includes the second plurality of packets of the data stream of the application transmitted on the second link.

[0091] In some examples, the plurality of packets of the data stream are transmitted via a transmission control protocol.

[0092] In some examples, SD-WAN device 60 may assign a second data flow for the application to a particular link having a quality of experience metric that satisfies an SLA associated with the application.

[0093] In some examples, SD-WAN device 60 may include a software defined networking (SDN) device or any other software defined wide area network device.

[0094] The technology described herein can be implemented in hardware, software or any combination thereof. The various features described as modules, units or components can be implemented together in an integrated logic device or individually as discrete but interoperable logic devices or other hardware devices. In some cases, the various features of the electronic circuit can be implemented as one or more integrated circuit devices, such as an integrated circuit chip or chipset.

[0095] If implemented in hardware, the present disclosure may be directed to an apparatus, such as a processor or an integrated circuit device, such as an integrated circuit chip or chipset. Alternatively or additionally, if implemented in software or firmware, the present technology may be implemented at least in part by a computer-readable data storage medium comprising instructions that, when executed, cause a processor to perform one or more of the methods described above. For example, a computer-readable data storage medium may store such instructions for execution by a processor.

[0096] The computer-readable medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may include computer data storage media, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic or optical data storage media, etc. In some examples, the article of manufacture may include one or more computer-readable storage media.

[0097] In some examples, computer-readable storage media may include non-transient media. The term "non-transient" may indicate a storage medium that is not implemented in a carrier wave or propagating signal. In some examples, non-transient storage media may store data that changes over time (e.g., in RAM or cache).

[0098] The code or instructions may be software and / or firmware executed by a processing circuit, which includes one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Thus, the term "processor" as used herein may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described in the present disclosure may be provided within a software module or a hardware module.

Claims

1. A method comprising: Monitoring, by the network device, round trip times of a plurality of packets of a data stream of an application transmitted on a link between an application server and a client device; determining, by the network device, an amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data flow; determining, by the network device, whether the amount of retransmissions of packets during transmission of the plurality of packets in the data flow is below a predefined retransmission threshold; as well as In response to determining that the amount of retransmissions of packets occurring during transmission of the multiple packets of the data flow is below the predefined retransmission threshold, the network device predicts a round-trip time parameter for a service level agreement (SLA) associated with the application based at least in part on the round-trip time of the multiple packets of the data flow.

2. The method of claim 1 , wherein predicting the round trip time parameter for the SLA associated with the application further comprises: determining, by the network device, a round trip time based on the round trip times of the plurality of packets of the data flow of the application; as well as The round trip time parameter for the SLA is set by the network device to the round trip time.

3. The method according to claim 1 or 2, further comprising: monitoring, by the network device, the round trip time of a second plurality of packets of the data flow of the application in response to predicting the round trip time parameter for the SLA associated with the application; determining, by the network device, an amount of retransmissions of packets that occurred during transmission of the second plurality of packets of the data flow; as well as The network device determines whether to update the round-trip time parameter for the SLA associated with the application based at least in part on the round-trip time of the second plurality of packets of the data flow and the amount of retransmissions of packets that occurred during transmission of the second plurality of packets of the data flow.

4. The method of claim 3, wherein determining whether to update the round trip time parameter for the SLA associated with the application further comprises: determining, by the network device, whether the amount of retransmissions of packets occurring during transmission of the second plurality of packets of the data flow is below a retransmission threshold; determining, by the network device, a round trip time based on the round trip time of the second plurality of packets of the data flow of the application; as well as In response to determining that the amount of retransmissions of packets occurring during transmission of the second plurality of packets of the data flow is below the retransmission threshold and the round-trip time is greater than the round-trip time parameter for the SLA associated with the application, the network device sets the round-trip time parameter for the SLA to the round-trip time.

5. The method of claim 3, wherein the second plurality of packets of the data flow of the application comprises: The second plurality of packets of the data flow of the application are transmitted over the link between the application server and the client device.

6. The method of claim 3, wherein the second plurality of packets of the data stream of the application transmitted between the application server and the client device comprises: The second plurality of packets of the data flow of the application are transmitted over a second link.

7. The method of claim 1 or 2, wherein the plurality of packets of the data stream are transmitted via a transmission control protocol.

8. The method according to claim 1 or 2, further comprising: A second data flow of the application is assigned, by the network device, to a specific link having a quality of experience metric that provides at least the predicted round trip time parameter for the SLA associated with the application.

9. A network device comprising: Memory; as well as one or more processors in communication with the memory, the one or more processors configured to: monitoring a round trip time of a plurality of packets of a data stream of an application transmitted over a link between an application server and a client device; determining an amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data stream; determining whether the amount of retransmissions of packets occurring during transmission of the plurality of packets of the data stream is below a predefined retransmission threshold; as well as In response to determining that the amount of retransmissions of packets occurring during transmission of the plurality of packets of the data flow is below the predefined retransmission threshold, a round-trip time parameter for a service level agreement (SLA) associated with the application is predicted based at least in part on the round-trip time of the plurality of packets of the data flow.

10. The network device of claim 9, wherein the one or more processors configured to determine the round trip time parameter for the SLA associated with the application are further configured to: determining a round trip time based on the round trip times of the plurality of packets of the data flow of the application; and The round trip time parameter for the SLA is set to the round trip time.

11. The network device according to claim 9 or 10, wherein the one or more processors are further configured to: responsive to predicting the round trip time parameter for the SLA associated with the application, monitoring the round trip time of a second plurality of packets of the data flow of the application; determining an amount of retransmissions of packets that occurred during transmission of the second plurality of packets of the data stream; as well as A determination is made whether to update the round trip time parameter for the SLA associated with the application based at least in part on the round trip time of the second plurality of packets of the data flow and the amount of retransmissions of packets that occurred during transmission of the second plurality of packets of the data flow.

12. The network device of claim 11, wherein the one or more processors configured to determine whether to update the round trip time parameter for the SLA associated with the application are further configured to: determining whether the amount of retransmissions of packets occurring during transmission of the second plurality of packets of the data stream is below a retransmission threshold; determining a round trip time based on the round trip time of the second plurality of packets of the data flow of the application; and In response to determining that the amount of retransmissions of packets occurring during transmission of the second plurality of packets of the data stream is below the retransmission threshold and the round-trip time is greater than the round-trip time parameter for the SLA associated with the application, the round-trip time parameter for the SLA is set to the round-trip time.

13. The network device of claim 11, wherein the second plurality of packets of the data flow of the application comprises: The second plurality of packets of the data flow of the application are transmitted over the link between the application server and the client device.

14. The network device of claim 11, wherein the second plurality of packets of the data stream of the application transmitted between the application server and the client device comprises: The second plurality of packets of the data flow of the application are transmitted over a second link.

15. The network device of claim 9 or 10, wherein the plurality of packets of the data stream are transmitted via a transmission control protocol.

16. The network device according to claim 9 or 10, wherein the one or more processors are further configured to: A second data flow of the application is assigned to a specific link having a quality of experience metric that provides at least the predicted round trip time parameter for the SLA associated with the application.

17. The network device according to claim 9 or 10, wherein the network device comprises a software defined wide area network device.

18. A non-transitory computer-readable storage medium having instructions stored thereon, which when executed, via execution of a software-defined wide area network device, cause one or more processors to: monitoring a round trip time of a plurality of packets of a data stream of an application transmitted over a link between an application server and a client device; determining an amount of retransmissions of packets that occurred during transmission of the plurality of packets of the data stream; determining, by the network device, whether the amount of retransmissions of packets during transmission of the plurality of packets in the data flow is below a predefined retransmission threshold; as well as In response to determining that the amount of retransmissions of packets occurring during transmission of the multiple packets of the data flow is below the predefined retransmission threshold, the network device predicts a round-trip time parameter for a service level agreement (SLA) associated with the application based at least in part on the round-trip time of the multiple packets of the data flow.

Citation Information

Patent Citations

  • Service level agreement (SLA) based provisioning and management

    US20150156082A1

  • Data communications employing packet report messages

    US20180191588A1