Elements of VoIP Delay
For VoIP communication to occur as in Figure 1, we typically encounter the following types of delay components:
Coder delay: Analog-to-digital speech conversion and PCM compression
Packetization delay: Time to fill a packet payload
Serialization delay: Time to push a packet payload onto the wire
Output queuing: Scheduling a voice packet out of device queues
WAN delay: Transmission delay across the WAN
Dejitter delay: Smoothing the inter-arrival time of voice packets
Each of these delay components contributes to the overall budget; the design engineer must mix-and-match them appropriately. If the engineer gets it wrong, the network may exhibit variable delay, giving rise to unsatisfied customers such as our friend Terry Dactyll.
Perhaps the most subtle delay component is that of output queuing, which relates to basically getting voice packets through intermediate routing devices. The complication arises because routers are used for data and voice packets; in other words, non-real time and real time.
Let's say that three packets are in transit through a router, as illustrated in Figure 3. The rightmost data packet is already being queued prior to be being pushed onto the line. Even if a voice packet has just arrived behind this data packet, the queuing already in progress will not stop. However, the voice packet on the left side of Figure 3 will skip the data packet ahead of it. This strategy helps to preserve the high priority of voice packets as they move through the network.
Figure 3 Voice packet queue precedence.
If the router becomes congested, it may start to drop packets. This is not such a disaster for data packets (which can be retransmitted) but it has a serious impact on a voice service. As we've seen, voice service is unforgiving of both delay and packet loss. The same is true of advanced surveillance projects such as planetary exploration (or possibly even in the unmanned drone planes operating over Afghanistan). Clearly, this class of application has a one-way data streamwe're looking at them and not vice versa! Data is acquired and transmitted back to the receiving station; by the time it's received, it can't be retransmitted due to speed of acquisition, limited storage, and so forth. Given the critical nature of these applications, it's commonplace to add extra redundancy to the data prior to transmission, which allows the receiver to correct any errors that occur in transit. This is the interesting area of error correction as opposed to error detection. Correction schemes allow receivers to fix errors, whereas detection schemes usually require retransmission.