At some point, every application in an enterprise will underperform, some will even grind to a crawl. No application is immune to poor performance, regardless of whether it is running in an on-premises data center or in the cloud.
There are three main networking factors that affect application performance across the WAN: loss, latency, and jitter. Other factors that can impinge on performance fall into the realm of compute, virtualization, or storage, which are outside the scope of this article.
In its simplest form, packet loss is a condition where a certain number of data packets sent across the network do not arrive at their destination.
Loss has two main causes. The first involves a network device, such as a router, receiving more packets than it can send out. This usually occurs due to speed mismatch between higher bandwidth LAN environment and lower bandwidth WAN circuits. In this case the router needs to buffer or queue packets received on the LAN interfaces until sufficient bandwidth resources become available to send those packets out to the WAN.
If congestion is not relieved, the queue will continue to build, and at some point the router will start dropping packets. Packets may be dropped from the tail of the queue (called tail-drop) or just randomly (called Random Early Discard or RED) based on the desired router behavior. Either way, packet loss will occur.
The second cause of packet loss involves transmission errors. These can result from a poor quality terrestrial circuits or due to less reliable wireless medium, such as satellite and cellular communication.
Network latency is a measurement of how long it takes one packet to traverse a network segment, such as a WAN circuit.
There are two main elements to network latency. The first is the physics of how long it takes data to travel from point A to point B. This is sometimes called the propagation delay. The second is the time it takes for a network device, such as a router, to receive, process, and send a packet onto its destination. Both elements combined constitute overall network latency.
While physical distance is a factor in calculating latency, slow transmission generally does not mean that something is broken. Connection-oriented protocols, such as transmission control protocol (TCP), respond unfavorably to high latency network conditions. This results in slower data transmission rates, even over underutilized long haul WAN circuits. Connectionless protocols, such as user datagram protocol (UDP), are likely to achieve higher data transmission rates over the same long haul WAN circuits.
Jitter is the variation in latency for packets transmitted between two points in the network. These variations often occur due to changes in network performance characteristics.
Jitter tends to be a bigger problem in real-time communications where it can cause intermittently distorted audio and video and an overall poor user experience. It can also be a serious issue for hosted desktops and virtual desktop infrastructure.
Best Practices for Avoiding Poor Application Performance
While loss, latency, and jitter are a fact of life, a well-designed network can mitigate their impact on application performance. Here’s how:
1. Build a robust and intelligent connectivity model
Enterprises and organizations should choose the most appropriate connectivity models for their requirements. These include MPLS, Broadband, 3G/4G LTE cellular, satellite, and point to point. In addition, WAN virtualization technologies, such as software-defined wide area network (SD-WAN), can be used to implement a diverse connectivity model in accordance with desired behaviors irrespective of the underlying physical transports and topologies. For example, a combination of MPLS and Internet transports is often referred to as a hybrid WAN. Diverse connectivity also eliminates shortcomings around performance characteristics (loss, latency and jitter) associated with a single WAN circuit. Augmenting a broadband or MPLS circuit with 3G/4G LTE can ensure higher uptime and allow the network to make intelligent path selection decisions based on desired application service level agreements (SLAs).
2. Implement Multidimensional Quality of Service
Avoiding application performance problems requires a multidimensional Quality of Service (QoS) model that spans both device-specific and network-wide QoS.
Let’s examine device-specific QoS first. Traffic shaping and policing controls can keep application traffic within contracted bandwidth across the WAN. This prevents the LAN environment from sending too much traffic to the service provider. It is better to control application traffic on the WAN edge router, than relying on the service provider to deal with it in their WAN core.
As bandwidth narrows between the higher throughput LAN and typically lower throughput WAN, QoS markings provide an effective means for enforcing differentiated service at the WAN edge boundary and across the WAN.
Network-wide QoS ensures application SLAs across the WAN. By monitoring end-to-end path performance characteristics of loss, latency, and jitter, the network can make intelligent decisions to steer select application traffic across only those paths that comply with desired SLAs. An application aware network topology (full-mesh, hub-and-spoke, regional mesh, star, and so on) can construct optimally performing paths based on application needs.
Many organizations are transitioning from an all-MPLS to hybrid (MPLS plus broadband) connectivity model, and at times, to broadband-only connectivity. MTU (Maximum Transmission Unit) and dynamic path MTU discovery (PMTUD) can play a pivotal role in preventing packet fragmentation and reassembly which degrade network throughput.
For cases where physical distances become significant and TCP throughput suffers, consider deploying network-based TCP optimizations to significantly shorten the “wait time” for TCP acknowledgements. This can dramatically improve TCP throughput over long haul WAN circuits.
Multidimensional QoS also extends into applications themselves. For example, most modern unified communications (UC) applications use codecs that are resilient to packet loss. This largely eliminates the need to support packet loss recovery functions at the network level. In addition, many UC endpoints, such as IP phones and video conferencing devices, also support jitter buffer to smoothen out the effects of network jitter.
3. Application Awareness
Application awareness elevates network intelligence and allows the network to deliver a more comprehensive set of services for private, public, and hybrid cloud application deployments. By understanding, classifying, and characterizing applications, WAN edge routers are able to enforce differentiated QoS behavior, such as traffic prioritization, on an individual application basis.
For applications hosted in infrastructure-as-a-service (IaaS) public cloud environments, such as Amazon Web Services (AWS) and Microsoft Azure, WAN virtualization techniques such as SD-WAN, can be used to extend the WAN straight into those environments..
Extending the WAN into IaaS clouds enables the network to deliver a consistent set of QoS and security services to applications regardless of whether they are hosted in a public or private cloud on-premises. It also supports a ubiquitous approach for hybrid cloud deployments where applications reside in both private data centers and the public IaaS cloud environments.
For software-as-a-service (SaaS) applications, such as Office 365, Salesforce, and Google Apps, direct Internet access from the WAN edge router can be used, or traffic from branches can be sent to a regional hub facility to access the Internet. If the performance of a local Internet circuit becomes inadequate, application traffic can be seamlessly rerouted through the regional hub to maintain desired SLAs.
Poor application performance can result from a multitude of causes. Fortunately, today’s network engineers have a plethora of tools and network design alternatives to mitigate their impact on service delivery and overall user experience.