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.|
What Does Out-of-Order VoIP Packets Sound Like?
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.
Where Does Out-of-Order Packets Occur?
The problem can occur in several different locations:
- Equal-cost Layer-3 paths with per-packet load balancing
- Layer-2 trunk ports with per-packet load balancing
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.
How Do You Detect Out-of-Order Packets?
There are two ways to detect out-of-order packets in a VoIP environment:
- Call Simulator: When you simulate VoIP calls on the network with a call simulator that has out-of-order detection, it should show you if any of the packets were received out of sequence and what percentage of those packets were dropped.
- Packet Analyzer: A packet analyzer like Wireshark can be used to detect out-of-order packets, but care must be taken to have the capture occur as close to the destination as possible.
How Do You Solve Out-of-Order Packets? (Load Balancing)
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.