Jitter is damaging to your ability to provide a great user experience.
Jitter can hinder this when working over networks. You must ensure application design has measures in place to compensate for the irregular disruptions of jitter. The main tool used is the buffering feature. Both networks and applications have buffering tools. A buffer is what we use to compensate for jitter, but what should we be OK with?
The question we then need to ask is what is acceptable jitter?
What is Acceptable Jitter
Jitter is the irregular time delay in the sending of data packets over a network.
Acceptable jitter means what we are willing to accept as the irregular fluctuations in data transfers.
According to Cisco, jitter tolerance is as follows:
- Jitter should be below 30 ms.
- Packet loss shouldn’t be more than 1%.
- Network latency should not go over 150 ms. This is the latency in one direction meaning the round trip time (RTT) would be 300 ms.
These figures are best practices for maintaining quality of service (QoS).
Acceptable Jitter in Different Applications
The figures we are using above are for interactive video streaming. This is a situation where the tolerance for jitter is low. Depending on the application, jitter tolerance can be low, or irrelevant.
For example, in a Skype call, jitter is going to be of high concern. Ensuring low to non-existent jitter is very important. Our jitter acceptance numbers above are for exactly this use case.
In a second situation, if you are streaming a video from Netflix, Amazon Prime, or HBO Now, the importance placed on jitter is not as high. A much larger tolerance for jitter is present. It lies in the fact that it is in one direction. This is unidirectional video streaming. The reason is that the service can design a large buffer. The large buffer can provide more cached data. This creates the ability to handle a much larger fluctuation in data transfers.
Considerations on Buffer Memory
The main tool we will use to adjust for the effects of jitter is a buffer, or buffer memory. We can determine its design after we define our jitter tolerance and our service.
A buffer is a system that allows for the storing of temporary data. It’s use is to adjust for irregular fluctuations in data transfers. It’s design is a memory caching system to adjust for the negative effects of jitter.
The size, design, and structure of a buffer system is predicated on the size of a network. Considerations for the type of service you will be designing for it are important as well.
The three main questions to ask are:
- What is the size of my network?
- What is my jitter tolerance?
- What service am I designing for?
Once you establish these three factors, you can begin planning your buffer design.
Now that you have an overview of your jitter tolerance, you can build your network.
Article originally published on the Datapath.io Blog.