VoIP Protocols & Media Stack
The engineering behind real-time audio delivery: RFC 3550 RTP/RTCP packet sequencing, jitter buffers, and GNU ccRTP.
Real-Time Transport in IP Networks
Unlike web traffic (HTTP over TCP) or file transfers, real-time voice communication cannot tolerate the latency introduced by TCP retransmission timers. Packetized audio requires UDP transport governed by the Real-time Transport Protocol (RTP, RFC 3550).
RTP adds a lightweight 12-byte header to every UDP audio packet containing a sequence number, a timestamp, and a Synchronization Source (SSRC) identifier. These fields allow the receiving endpoint to reassemble audio samples in chronological order, compute packet jitter, and compensate for out-of-order Internet packet delivery.
GNU ccRTP Framework
GNU ccRTP provided the core C++ RTP engine for GNU Telephony. Developed by Federico Montesino Pouzols and David Sugar, ccRTP supported:
- Adaptive Jitter Buffers: Dynamically expanding and contracting playout buffers to smooth erratic network latency.
- RTCP Feedback Metrics: Calculating Interarrival Jitter, Round-Trip Time (RTT), and cumulative packet loss percentages.
- Multicast Distribution: Transmitting identical audio streams to thousands of listeners over IP Multicast without duplicating packet generation.