Some things are never out-of-order. In a busy deli at lunch time, you must take a number and wait your turn, no matter how hungry you are or how important you are. They won’t call the numbers out of order, and if you don’t hear your number, be prepared to go hungry because they’ve already moved on. Real-time protocols like VoIP, UC and video are like that.
In addition, if a packet gets delivered out of order, it must be discarded. The reason is that the out-of-order packet cannot be re-sequenced back into the conversation after the next packet has already been played back to the user--it would sound awkward. It can be done, but it is so awkward when out-of-sequence you’d never do it, much like you'd never put your socks on over your shoes.
Consider the sentence: "The quick brown fox jumped over the lazy dog". If the words were out of order, the context would be irreparably changed: "The quick brown jumped fox over the lazy dog". The first sentence has a fox jumping over a lazy dog. The second sentence does not have the same meaning.
Since VoIP does not send one word per packet, but portions of audio per packet, it would sound very broken to have out-of-order packets played back as part of the audio stream.
As a result, out-of-order packets are intentionally dropped.
Note: | On some VoIP systems there is some ability to re-sequence out-of-order packets back into sequence. This is entirely dependent on the jitter buffer being large enough and the timing of the playback being delayed enough to allow the re-sequence, and the receiving device having enough CPU horsepower to splice the packet correctly. In most cases, these conditions are not met so the out-of-order packet is dropped. |
If you have a network that has out-of-order packets, it's equivalent to having packet loss, except that the network didn't actually drop the packet. The end result is the same: clipping, dropped words and phrases.
The problem can occur in several different locations:
The problem of out-of-order packets is getting worse due to the fact that networks are rapidly becoming more resilient and have multiple Layer-2 and Layer-3 paths that can convey the traffic.
There are two ways to detect out-of-order packets in a VoIP environment:
Solving the problem involves implementing "per flow load balancing" on Layer-2 trunk ports as well as Layer-3 route paths. Equal cost Layer-3 load balancing should be avoided, as it creates a perfect environment for a significant number of out-of-order packets to occur as well as other problems like asymmetric routing.
Out-of-order packets can be prevented if the right information is brought to bear about your network's performance and configuration.
Review our VoIP Troubleshooting white paper, our Webinar on Packet Loss, or contact us with questions about how PathSolutions can solve call quality and many other VoIP issues.