Jitter

Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.

Jitter

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. Which statement best defines jitter?
A The total number of packets sent per second
B The variation in latency between packets
2. Packets arrive 20 ms, 20 ms, 20 ms and 20 ms apart. What is the jitter?
A Very low, because the gaps are even
B Very high, because the gaps are 20 ms
3. Which unit is jitter normally measured in?
A Megabits per second (Mbps)
B Milliseconds (ms)
4. A video call freezes and the audio sounds choppy because packets arrive at uneven intervals. Which network problem is this?
A High jitter
B Low bandwidth cost
5. What does a jitter buffer do?
A Holds packets briefly, then plays them out at a steady rate
B Encrypts packets so they cannot be intercepted

Match the Pairs

Draw a line connecting each item on the left to its match on the right.

Left columnRight column
1jitter = max(latencies) - min(latencies) AJitter is measured in milliseconds (ms), not in a count of packets. It describes variation in delay, not how many packets there are.
2jitter_buffer_ms = 60 BJitter is the variation in latency, not the average. If every packet had the same 50 ms delay, jitter would be 0 ms.
3Jitter is measured in milliseconds, using the difference between the delays of two packets Cif jitter_ms > 30: print("Call quality poor")
4High jitter harms voice and video calls, so a call is flagged when jitter goes over a limit DHolds arriving packets for 60 ms so they can be played out at an even pace, smoothing jitter
5jitter = 20 packets Ejitter_ms = abs(delay2_ms - delay1_ms)
6Jitter is the average latency, so it is fixed at 50 ms for every packet FEstimates jitter as the spread between the slowest and fastest packet delays, measured in milliseconds

Definitions

jitter

Fill in the Blanks

Complete each line of code by filling in the missing parts.

1.
latencies = [20, 25, 22, 40] jitterMs = ___(latencies) - min(latencies) print(jitterMs)
2.
delay1 = 20 delay2 = 35 jitterMs = ___(delay2 - delay1)
3.
jitterMs = 45 if jitterMs _ 30: print("Use a bigger jitter buffer")
4.
jitterBuffer = [] jitterBuffer.______(packet) print(len(jitterBuffer))
5.
gaps = [5, 3, 18] avgJitterMs = sum(gaps) / ___(gaps) print(avgJitterMs)

Spot the Error

Shade in the letter of the line that contains an error.

Question 1
A first = 20
B second = 26
C jitter = second + first
D print(jitter, 'ms')
Question 2
A t = [20, 30, 25]
B total = 0
C for i in range(1, 3):
D total = abs(t[i]-t[i-1])
E print(total / 2, 'ms')
Question 3
A jitter_ms == 15
B buffer_ms = 40
C if jitter_ms < buffer_ms:
D print('Smooth audio')
Question 4
A buffer = []
B for p in [2, 1, 3]:
C buffer.append(p)
D play = buffer.sort()
E print(play)
Question 5
A lat = [40, 70, 35]
B spread = max(lat) + min(lat)
C print(spread, 'ms')

Answer Key

Jitter
Section A: Quick Questions
Q1
B — The variation in latency between packets
Q2
A — Very low, because the gaps are even
Q3
B — Milliseconds (ms)
Q4
A — High jitter
Q5
A — Holds packets briefly, then plays them out at a steady rate
Section B: Match the Pairs
Q1
jitter = max(latencies) - min(latencies) → Estimates jitter as the spread between the slowest and fastest packet delays, measured in milliseconds
Q2
jitter_buffer_ms = 60 → Holds arriving packets for 60 ms so they can be played out at an even pace, smoothing jitter
Q3
Jitter is measured in milliseconds, using the difference between the delays of two packets → jitter_ms = abs(delay2_ms - delay1_ms)
Q4
High jitter harms voice and video calls, so a call is flagged when jitter goes over a limit → if jitter_ms > 30: print("Call quality poor")
Q5
jitter = 20 packets → Jitter is measured in milliseconds (ms), not in a count of packets. It describes variation in delay, not how many packets there are.
Q6
Jitter is the average latency, so it is fixed at 50 ms for every packet → Jitter is the variation in latency, not the average. If every packet had the same 50 ms delay, jitter would be 0 ms.
Section C: Definitions
Q1
jitter — The variation in latency between packets, so they arrive at uneven intervals. Measured in milliseconds, it disrupts voice and video unless a jitter buffer smooths it.
Section D: Fill in the Blanks
Q1
latencies = [20, 25, 22, 40] jitterMs = max(latencies) - min(latencies) print(jitterMs)
Q2
delay1 = 20 delay2 = 35 jitterMs = abs(delay2 - delay1)
Q3
jitterMs = 45 if jitterMs > 30: print("Use a bigger jitter buffer")
Q4
jitterBuffer = [] jitterBuffer.append(packet) print(len(jitterBuffer))
Q5
gaps = [5, 3, 18] avgJitterMs = sum(gaps) / len(gaps) print(avgJitterMs)
Section E: Spot the Error
Q1
C — Jitter is the variation in latency, so you find the difference between the two latencies, not their sum. It should be jitter = abs(second - first).
Q2
D — Using = overwrites total on every loop, so only the last difference is kept. It should be total += abs(t[i]-t[i-1]) so all the differences add up.
Q3
A — A single = assigns a value. == compares, so jitter_ms never gets created and the program crashes. It should be jitter_ms = 15.
Q4
D — The list method sort() changes the list and returns None, so play would be empty. A jitter buffer releases the packets in order, so use play = sorted(buffer).
Q5
B — The spread of latencies is the highest minus the lowest, which shows how much they vary. Adding them gives a meaningless number. It should be max(lat) - min(lat).