Information Technology Reference
In-Depth Information
RTP and cRTP
The Real-time Transport Protocol (RTP, RFC 3550) is used to transport voice and video media packets across a network. RTP uses
User Datagram Protocol (UDP) as its transport protocol.
RTP uses UDP rather than TCP as its transport layer protocol mainly because TCP retransmission is not suitable (it takes too long),
TCP congestion control/slow start mechanisms can lead to an inability to ensure sufficient packet rates, and TCP headers are larger
than UDP headers. Finally, note that RTP/UDP is preferred over TCP for voice media transport because TCP does not provide
required encoding and timestamp information.
RTP uses sequence numbers and timestamps to detect packet loss and ensure correct playout timing. RTP timestamps for each session
begin with a random number, so time information provided by RTP is relative. (Absolute time, such as that provided by Network
Time Protocol [NTP], is not required to run RTP.)
The Real Time Control Protocol (RTCP) provides out-of-band reporting of QoS statistics for RTP flows, including information
relating to packet loss, jitter, and round-trip time. Although NTP is not required to run RTP, RTCP can make use of NTP.
The IP/UDP/RTP headers that encapsulate voice media packets total 40 bytes, and this overhead is significant when you consider that
the voice media payload may, for example, be 20 bytes (G.729). So, IP/UDP/RTP headers make up a large proportion of total voice
media packet size, and on slow speed links, it can be advantageous to compress these headers to save bandwidth.
Compression of the IP/UDP/RTP headers can be achieved using Compressed RTP (cRTP). According to RFC 2508 and 3545, the
40 bytes of IP/UDP/RTP headers can typically be compressed down to 2 to 4 bytes. The compressed header is 2 bytes when no UDP
checksums are sent (the checksum is zero), and 4 bytes when (nonzero) checksums are sent.
The following sample calculation illustrates bandwidth savings that can be realized when using cRTP:
Bandwidth = (Layer 2 header + Layer 3 header + Layer 4 header + Voice payload in bytes) * 8 bits * Packets per second
So, let's assume the G.711 codec (default 160 byte payload), with MLP (1 + 6 bytes overhead), at 50 pps:
Without cRTP
Bandwidth = ( [1 + 6] + 20 + 8 + 12 + 160) = 207 bytes * 8 = 1656 * 50 pps = 82,800 bps = 82.8 Kbps
 
Search WWH ::




Custom Search