The Importance of Impairment Testing for Internet Protocol Reliability

Impairment Testing / Bing AI

The Internet Is an Imperfect and Hostile Place

The world is an imperfect place. The internet is no exception. The internet has its good days and it has its bad days. Or to be more precise, the internet has its good seconds and its bad seconds.

What Are The Different Types Of Impairment In Networking?

The different types of impairment in networking include latency, packet loss, jitter, and bandwidth limitations. These are like the various challenges you encounter in different weather conditions. Just as rain, snow, or fog can affect your commute, these impairments can impact your data's journey across the internet.

  • There will always be natural random events that damage internet packets. These events include lightning, solar flares, electrical noise, wind (blowing branches onto wires or across radio paths), and even things as mundane as a squirrel chewing on a cable.

  • Internet performance is strongly affected by congestion within the net. Congestion is common on the relatively skinny links that bring the internet into homes and small businesses. Congestion is quite common in the more industrial portions of the internet where large capacity “pipes” come together at inter-carrier exchange points and big data centers. Congestion doesn’t just mean that data flows become sluggish. Congestion can also cause loss of packets or, somewhat surprisingly, congestion can cause the duplication or re-ordering of data packets (typically as side effects of congestion induced changes in packet routing.)

  • Network devices are often underpowered. Their software is often flawed. And their configuration settings are often inappropriate for the loads they are expected to handle. These deficiencies can cause devices to fumble when handling internet traffic, or cause them chatter incorrectly, or even to blither incoherently.

  • There are intentional malicious attacks that intend to disrupt the internet by inducing ill behavior or by simply inducing large traffic overloads.

  • And finally, there are a lot of old devices on the internet. Although many of us think of the internet as something modern we should recognize that today’s internet has gone through many generations of ideas, protocols, and implementations. These may speak old dialects. These devices are somewhat like a Shakespearian character dropped into our modern world: they may be able to interact with others, but not well.

The software in many network devices is written as if many of these imperfections do not exist. This intentional ignorance of risks makes it easy for developers to produce new products quickly and cheaply. But it also means that once in the hands of customers and consumers these products may wobble in strange ways or simply fail when they encounter network conditions that were not considered or anticipated.

Which Are The Most Common Network Impairments?

Some network impairments are more common than others, like how you're more likely to encounter rain than a blizzard. Let's take a closer look at the most prevalent ones:

  1. Latency: Think of latency as the delay in data delivery. It's like the lag in a phone call when the person on the other end is far away. High latency can frustrate your online experience, especially for activities requiring real-time interaction, like online gaming or video conferencing.

  2. Packet Loss: Imagine sending a letter, but some words get lost. Packet loss is similar when data packets fail to reach their destination. It can lead to incomplete or garbled information, affecting the quality of your online communication.

  3. Jitter: Jitter is like the inconsistent rhythm of a song. In networking, it's the variation in the delay between data packets. It can make your internet connection feel unstable, causing disruptions in activities like streaming videos or making voice calls.

  4. Bandwidth Limitations: Picture a narrow road that can only accommodate a few vehicles at a time. Bandwidth limitations are similar; they restrict the data traveling through a network at a given moment. This can result in slower downloads, buffering during video streaming, or delayed file uploads.


Understanding these common network impairments is essential because they impact your internet experience daily. They affect everything from smooth video conferencing to online gaming and basic web browsing. But even more critical is knowing how to test and address these impairments to ensure a seamless online experience. That's why you should care about impairment testing of internet protocols.

What Is Impairment Testing?

Impairment testing is a method through which developers exercise their network code (including the applications layered onto that code) and their network products without spending time and money traveling about the internet looking for unusual or ill conditions.

Impairment testing uses special network tools to create unusual, odd, bad, or improper network conditions.

Often network impairment tools act in a “man in the middle” role. That means that the impairment tool sits between the device under test (DUT) and the rest of the network. As a consequence, every packet to and from the DUT has to pass through the impairment tool.

At its most basic level a network impairment tool may do what we call “standard impairments”:

  • Packet Drop

  • Packet Duplication

  • Packet Delay (fixed or variable, the latter being called “jitter”.)

  • Packet Corruption

  • Rate Limitation

  • Changing the sequence in which packets are delivered.

More sophisticated network impairment tools may enrich these standard impairments by adding the ability to define triggers, to create burst effects, or to choreograph patterns that vary the impairments over time.

Some network impairment tools can also alter the contents of packets or create new packets.

And some tools can track the state of protocol handshaking and apply impairments in ways that are affected by that state. For example, a stateful impairment might reach into a stream of video packets and swap the order of the last packet of a video frame with the first packet of the next frame.

Controlling Chaos

It is broadly acknowledged that the weakest and least tested parts of most software are the parts that handle errors and infrequently occurring conditions. This under-tested code is usually the place where the bugs and security holes lurk.

The intent of impairment tools is to force software in a device under test (DUT) to exercise those code pathways that are not followed under routine conditions.

But simply throwing packet noise at a DUT is likely to leave a developer dazed and confused. A developer needs tools that can focus the impairment effects in repeatable ways so that problems be isolated, diagnosed, repaired, and then re-tested to be sure that the repairs actually fixed the problem.

What Are Some Examples of Network Impairment Testing?

A large storm is blowing outside as I write this note. The rain and wind are creating terrible network conditions. Many packets are being lost and the packet delay ranges from a few milliseconds to many seconds. Many of my Apps have become temporarily unusable because of these conditions.

Storms, and these kinds of network conditions are hardly unusual. And applications that do not work well under these conditions are also hardly unusual. Some applications degrade nicely and gracefully; but many others fail in awful ways that do not reflect well on their developers or vendors.

A person developing a network-based product who cares about how their application or product behaves under imperfect conditions can use an impairment device to re-create those conditions in their development lab.

Notice that in the testbed shown above that all packets to and from the device under test (DUT) are flowing through the impairment device and are being equally subject to the impairment conditions.

Not All Packets and Flows Need to Be Impaired in the Same Way

In these days of home or company networking, or as the “Internet of Things” becomes more widespread it will become less likely that all packets will be candidates for impairments. On a typical home or business network a lot of traffic may be handled locally on good quality, high bandwidth paths that do not exit the home or business and thus are not likely to encounter bad conditions. For this reason it is useful if an impairment device can distinguish between “local” and “non-local” traffic and impose different impairment regimes on each.

Sometimes a developer may want to focus on certain kinds of traffic. For instance, Voice over IP (VoIP) is often far more sensitive to network conditions than typical web browsing.

For these reasons it can be very useful if impairment tools can differentiate between different kinds of traffic.

What Results Can You Expect from Impairment Testing?

Sometimes bad network conditions cause application or operating system code to completely fail; to crash. From a developer’s point of view these are often the easiest to diagnose and fix. From a user’s point of view they are certainly inescapably obvious failures.

But more often an application or network stack will degrade more rapidly than it should or begin to exhibit odd side effects. We have all experienced voice conversations that become incomprehensible or sound like we are in an echo-chamber even when there is no apparent degradation to web browsing. Without impairment tools developers have a hard time testing and tuning their code so that the user gets the best possible experience.

Because the effects of network impairments on an application are often subtle rather than catastrophic the developer needs to understand the desired behavior of the Device Under Test (DUT) and be sensitive to deviations. For example, if one is subjecting a streaming video application to impairments the impact may be reflected, rather obviously, as visual blotches on the receiving screen. Or the impact may be reflected less obviously as a stuttering of the received frame rate – resulting in a distracting video that jerks and sputters along.

What Are the Risks of Failing to Do Impairment Testing?

A significant concern for a product vendor is the discovery that the product fails in some way when used by customers. These problems are the most expensive to diagnose and repair, potentially damaging the vendor’s reputation. The risks of failing to do impairment testing are:

  1. Poor User Experience: Users may face slow loading times, interrupted services, or dropped calls, leading to frustration and potential loss of customers.

  2. Network Downtime: Without impairment testing, you risk network outages due to unforeseen issues that could have been detected and resolved beforehand.

  3. Security Vulnerabilities: Impaired networks can make you susceptible to security breaches and cyberattacks, as vulnerabilities might go unnoticed.

  4. Loss of Revenue: Downtime and poor user experience can directly impact your revenue stream, especially if your business relies on online services.

  5. Damage to Reputation: Network issues can harm your brand's reputation, causing users to lose trust in your services.

  6. Compliance Violations: If your industry has regulatory requirements for network performance, failing to meet them can result in legal consequences and fines.

  7. Inefficient Resource Allocation: Without impairment testing, you might invest resources in the wrong areas, wasting time and money.

  8. Difficulty in Troubleshooting: Identifying the root cause of network problems becomes challenging without regular impairment testing, prolonging downtime.

  9. Customer Churn: Frustrated customers may switch to competitors with more reliable services, losing market share.

  10. Higher Support Costs: Dealing with customer complaints and network issues can increase your support team's workload and costs.

  11. Unpredictable Performance: Without testing, you can't predict how your network will perform under different conditions, making it harder to plan for the future.

  12. Missed SLA Commitments: Failure to meet service level agreements (SLAs) due to network issues can result in contractual penalties.

  13. Data Loss: Network problems can lead to data loss or corruption, affecting critical business information.

The worst thing that can happen to a product vendor is to discover that the product is failing or misbehaving when it is used by customers. Problems at that phase are expensive to diagnose and repair, and they damage the reputation of the vendor.

Experience Seamless Impairment Testing with IWL

Impairment testing can help you find and repair flaws before your product reaches your customers.

Impairment testing is not a panacea. Impairment testing is, however, a prudent tool to have in your product testing suite.
If you’re looking for a reliable, secure way to test your business’ critical apps and functionality by simulating various network conditions, check out IWL's network emulators or download our whitepaper to understand how apps perform on the network, even under adverse network conditions.

Previous
Previous

SNMP Agent Simulator

Next
Next

Waveforms in KMAX