DeJitter Buffer Delay

De-jitter buffer delay is the third voice delay component. Jitter happens in data networks. You can control it, and minimize it for jitter-sensitive traffic, but you cannot eliminate it. Buy why talk about jitter in the section on delay? Because a key tool in defeating the effects of jitter, the de-jitter buffer (sometimes called the jitter buffer) actually increases delay.

The de-jitter buffer collects voice packets and delays playing out the voice to the listener, to have several ms of voice waiting to be played. By doing so, if the next packet experiences jitter and shows up late, the de-jitter buffer's packets can be played out isochronously, so the voice sounds good. This is the same tool used in your CD player in your car—the CD reads ahead several seconds, knowing that your car will hit bumps, knowing that the CD temporarily will not be readable—but having some of the music in solid-state memory lets the player continue to play the music. Similarly, the de-jitter buffers "reads ahead" by collecting some voice before beginning playout, so that delayed packets are less likely to cause a break in the voice.

The de-jitter buffer must be filled before playout can begin. That delay is called the initial playout delay and is depicted in Figure 1-22.

Figure 1-22 De-Jitter Buffer Initial Playout Delay, No Jitter in First Three Packets

T=0 - No Packets Received Yet for This Call

T=X - Instant That First Packet Has Been Received

De-Jitter Buffer

No Playout of Voice ->

De-Jitter Buffer

20 ms Voice Payload - Packet 1

T=X+20-Instant That Second Packet Has Been Received, NO JITTER

T=X+40-Instant That Third Packet Has Been Received, NO JITTER

De-Jitter Buffer

20 ms Voice Payload

20 ms Voice Payload

- Packet 2

- Packet 1

No Playout of Voice -

No Playout of Voice -

De-Jitter Buffer

20 ms Voice Payload

20 ms Voice Payload

- Packet 3

- Packet 2

Playing out Packet 1 ->-

Playing out Packet 1 ->-

In this figure, the de-jitter buffer shows the initial playout delay. The time difference between when the initial packet arrives, and when the third packet arrives, in this particular case, is 40 ms. (Cisco IOS gateways default to 40 ms of initial playout delay.) In fact, if the initial playout delay were configured for 40 ms, this delay would be 40 ms, regardless of when the next several packets arrive. Consider, for instance, Figure 1-23, which gives a little insight into the operation of the de-jitter buffer.

In Figure 1-23, the playout begins at the statically set playout delay interval—40 ms in this case—regardless of the arrival time of other packets. A 40-ms de-jitter playout delay allows jitter to occur—because we all know that jitter happens—so that the played-out voice can continue at a constant rate.

Figure 1-23 De-Jitter Buffer Initial Playout Delay, 10 ms Jitter for Third Packet

T=0 - No Packets Received Yet for This Call

T=X - Instant That First Packet Has Been Received

De-Jitter Buffer

De-Jitter Buffer

20 ms Voice Payload - Packet 1

No Playout of Voice ->

No Playout of Voice ->

T=X+20 - Instant That Second Packet Has Been Received, NO JITTER

T=X+40 - 3rd Packet Not Received Yet

T=X+50 - 3rd Packet Received Had +10 Jitter

De-Jitter Buffer

Readers' Questions

  • alighiero
    What the difference between delay and buffer time for packet?
    1 year ago
  • Delay is the amount of time that it takes for a packet to be sent from one node to another over a network. Buffer time is the amount of time that it takes for a packet to be stored in between two nodes before it is sent on. Delay is the time difference between when a packet is sent and when it is received, while buffer time is the amount of time a packet is held before it is sent.

    Disclosure: Some of the links above are affiliate links. This means that, at zero cost to you, I will earn an affiliate commission if you click through the link and finalize a purchase.

    20 ms Voice Payload - Packet 2

    20 ms Voice Payload - Packet 1

    De-Jitter Buffer

    20 ms Voice Payload - Packet 2

    De-Jitter Buffer

    20 ms Voice Payload - Packet 3

    20 ms Voice Payload - Packet 2

    Playing out Packet 1 ->-

    Playing out Last 10

    Playing out Packet 1 ->-

    Playing out Last 10

    Figure 1-24 summarizes all the delay components for a voice call. This figure repeats the same example delay values as did Figure 1-20, but with voice-specific delays added for codec, packetization, and de-jitter delays shown.

    Figure 1-24 Complete End-to-End Voice Delay Example

    Delays for Packets Flowing Left-to-Right: Total Delay: 164 ms

    Hanna

    Forwarding: 0 Queuing: 0 Serialization: 0

    Codec: 10 Packetization: 20

    Buffer Delay Pipeline System

    Forwarding: 0 Queuing: 15 Serialization: 4 Propagation: .5

    Forwarding: 0 Queuing: 15 Serialization: 9 Propagation: .5

    Forwarding: 0 De-jitter: 40 ms Queuing: 0

    Serialization: 0 Propagation: 0

    Server 1

    Server 1

    Network: 50 (Note: Do Not Count R2 Serialization Here and at R2!)

    The delay has crept beyond the acceptable limits of one-way delay, according to G.114, but slightly under the limit of 200 ms suggested by Cisco. Without the additional voice delays, the 150-ms delay budget seemed attainable. With 30 ms of codec and packetization delay, however, and a (reasonable) default of 40-ms de-jitter delay (actually, de-jitter initial playout delay), 70 ms of that 150/200-ms delay is consumed. So, what can you do to stay within the desired delay budget? You attack the variable components of delay. Table 1-19 lists the different delay components, and whether they are variable.

    Table 1-19 Delay Components, Variable and Fixed

    Delay

    Component

    Fixed or Variable

    Comments

    QoS Tools That Can Help

    Codec

    Fixed

    Varies slightly based on codec and processing load; considered fixed in course books (and probably on exams). Typically around 10 ms.

    None.

    Packetization

    Fixed

    Some codecs require a 30-ms payload, but packetization delay does not vary for a single codec. Typically 20 ms, including when using G.711 and G.729.

    None.

    Propagation

    Variable

    Varies based on length of circuit. About 5 ms/100 km

    Move your facilities to the same town.

    Queuing

    Variable

    This is the most controllable delay component for packet voice

    Queuing features, particularly those with a priority-queuing feature.

    Serialization

    Fixed

    It is fixed for voice packets, because all voice packets are of equal length. It is variable based on packet size for all packets.

    Fragmentation and compression.

    Network

    Variable

    Least controllable variable component.

    Shaping, fragmentation, designs mindful of reducing delay.

    De-jitter buffer (initial playout delay)

    Variable

    This component is variable because it can be configured for a different value. However, that value, once configured, remains fixed for all calls until another value is configured. In other words, the initial playout delay does not dynamically vary.

    Configurable playout delay in IOS gateways; not configurable in IP Phones.

    Continue reading here: Voice Jitter Considerations

    Was this article helpful?

    0 0