Module 1 — When Voice Became Data
What this examination covers
Module 1 traced a single arc: the telephone network solved real-time audio by physics — circuit switching and the 1962 T1 carrier reserved a synchronous 64 kbps lane per call — and packet switching deliberately threw that guarantee away. Danny Cohen's Network Voice Protocol pushed the first packet voice across the ARPANET in 1973–74 and proved two things at once: that voice could survive a packet network, and that it needed a standard framing layer it did not yet have. The Mbone audiocast of the March 1992 IETF meeting in San Diego ran on the draft that became that layer: RTP (RFC 1889, January 1996; Schulzrinne, Casner, Frederick, and Jacobson; revised as RFC 3550 in July 2003), which rebuilt the circuit's clock as per-packet metadata, and RTCP, its feedback channel. Underneath both sit the 1972 decisions of G.711 — PCM at 8 kHz with μ-law companding — and the choice of UDP over TCP, because for a phone call late data is worse than lost data.
You have 75 minutes. The examination has three parts: Part A is code, graded per check with partial credit and hints disabled; Part B is forensic diagnosis of canned artifacts; Part C is concepts. The pass mark is 80 percent. Everything runs offline in this page — no camera, no microphone, no network.
Since RFC 5761 (April 2010, Perkins and Westerlund), RTP and RTCP typically share a single port, and every receiver's first job is telling them apart: read the second byte of the packet as a full 8-bit value — 192–223 means RTCP (Sender Report = 200, Receiver Report = 201), while an RTP packet with a dynamic payload type of 96–127 puts 96–127 there (marker bit clear) or 224–255 (marker bit set), never 192–223. The capture in Problem A1, supplied as CAPTURE (an array of Uint8Arrays), is such a mixed stream: Opus on payload type 111 at the 48 kHz RTP clock (RFC 7587), interleaved with the sender's SR and the far end's RR. All multi-byte fields are big-endian.
Three problems: demultiplex and parse a mixed RTP/RTCP capture, reconstruct stream statistics across a sequence-number wrap, and build the μ-law quantization pipeline.
Lab A1
Demultiplex and parse a mixed RTP/RTCP capture
Graded in the browser against 5 assertions; the editor and harness require JavaScript.
Lab A2
Reconstruct stream statistics across the wrap
Graded in the browser against 6 assertions; the editor and harness require JavaScript.
Lab A3
The μ-law quantization pipeline
Graded in the browser against 5 assertions; the editor and harness require JavaScript.
Each scenario below presents a canned artifact — counters shaped like getStats output, a spectrogram, packet timelines. Read the artifact, then answer the corresponding question in the quiz that follows. One question per scenario.
Incident 1 — choppy but lossless. A receiver reports steady packetsReceived, packetsLost = 0, and strictly contiguous sequence numbers — yet the audio is choppy, with audible gaps and stutters. The jitter buffer is repeatedly starving and refilling.
Incident 2 — the robotic tone. A test harness plays a pure 5 kHz tone into a legacy 8 kHz G.711 gateway whose anti-aliasing filter has been misconfigured out of the path. Listeners describe the result as "robotic." The spectrogram of what the far end hears is sketched in Figure E1.1: the sent tone never appears; a strong component sits at 3 kHz instead.
Incident 3 — the timestamp cliff. An RTP timeline from a 48 kHz Opus stream shows this around the twelve-second mark:
seq=1999 ts=159040 arr=11.980 s
seq=2000 ts=160000 arr=12.000 s
seq=2001 ts=400000 arr=17.023 s ts jumped +240,000 ticks = 5.0 s
seq=2002 ts=400960 arr=17.043 s
Exhibit B.3 — Incident 3 artifact: sequence numbers contiguous, RTP timestamp discontinuous by five seconds of media time.
Incident 4 — one identity, two voices. A capture at the receiver shows packets bearing a single SSRC arriving from two different transport addresses, with two interleaved sequence-number and timestamp series:
ssrc=0x5A13F00D pt=111 seq=4021 ts=1728000 from 203.0.113.7:49170
ssrc=0x5A13F00D pt=111 seq=17755 ts=88970240 from 198.51.100.9:61044
ssrc=0x5A13F00D pt=111 seq=4022 ts=1728960 from 203.0.113.7:49170
ssrc=0x5A13F00D pt=111 seq=17756 ts=88971200 from 198.51.100.9:61044
Exhibit B.4 — Incident 4 artifact: the same SSRC from two sources, two independent sequence/timestamp series.
One question per incident. Diagnose before you look at the options.
Check your understanding
Auto-graded check
4 auto-graded questions with an explanation for every wrong answer. Requires JavaScript. (m1-exam-quiz-b)
Part C examines the quantitative bedrock of the module — Nyquist (1928) and Shannon (1949) on sampling, the ITU-T G.114 guidance that one-way mouth-to-ear delay should stay at or below 150 ms, the split of labor between sequence numbers and timestamps, and RFC 3550's rule that RTCP traffic is held to 5 percent of session bandwidth.
Five questions. Do the arithmetic; the wrong options are the standard mistakes.
Check your understanding
Auto-graded check
5 auto-graded questions with an explanation for every wrong answer. Requires JavaScript. (m1-exam-quiz-c)
Examination score
The scorecard totals this page’s graded work as you go. It requires JavaScript.
The Impossible Call · Module 1 Examination