RTP SERIES: RTP, RTCP, AND THEIR SECURE COUNTERPARTS
Real-Time Transport Protocol (RTP) is a networking protocol that is used to transport real-time media data streams such as voice and video over packet networks. This protocol is an industry standard that is defined by IETF RFC 3550.
Adaptive Digital Technologies’ Real Time Protocol (RTP) software provides transport layer functionality for real-time applications communicating over an IP network. This product also contains a built in, configurable, jitter buffer to compensate for network delays, out-of-order packets, and lost packets.
- Functions are C-callable.
- Multi-channel capable.
- Support of RTP version 2 protocol as defined in RFC 3550
- Independence from underlying protocol stack.
- Minimum count of consecutively increasing sequence numbers prior to playout.
- Built in jitter buffer
- eXpressDSP™ Algorithm Interoperability Standard (xDAIS) Compliant
- Automatic timestamp synchronization.
- Multiple independent RTP streams
- Re-entrant routines callable by multiple processing threads
Secure variants include support for:
– Authentication Types: HMAC-SHA and MD5
– Key Definition Schemes: PSK, MKI, and FT
– Encryption types: CM, F8
|Arm ® Devices – Cortex A8 / A9 / A15 || Armv8 Cortex-A53 / A57 | A72 / A73 || Legacy Arm9E / Arm11|
|Texas Instruments – TI TMS320C6000 C64x/C64x+/C66x, TMS320C5000 C55x|
|Windows – Win32-bit / 64-bit|
|Linux x86 (32-bit) / x64|
ADT RTP is available on the above Platforms: Other configurations are available upon request.
NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.
Adaptive Digital’s implementation of the RTP protocol is designed to provide fully re-entrant modules to allow multiple RTP streams to be processed concurrently. User supplied callback and support routines are used to allow the RTP software to be easily adapted to the application environment. Memory allocation for the packets stored within the jitter buffer is dynamic and is accomplished via a call to a user definable memory allocation support routine. To allow flexibility in interfacing with differing network stack mechanisms, the mechanism to send data over the network is accomplished via a user definable callback routine.
The built-in jitter buffer provides a storage mechanism for inbound packets. The RTP module stores incoming packets into the jitter buffer at the time of reception. The jitter buffer uses the RTP header timestamp and sequence number to position out-of-order packets correctly within the jitter buffer. Packets remain stored in the jitter buffer until they are ready for delivery to the receiving application.
RTP – The successful transport of real-time voice and video data necessitates the use of transport protocols that are different from the traditional protocols, such as TCP and UDP, that are typically used for the transport of non-real-time data. There are three primary differences:
- Voice and Video need to be “played out” in a continuous fashion in spite of the bursty nature of packet networks.
- When a packet is lost, late, or received in error, there is no time to request a retransmission.
- Packets that are received out of sequence must be re-sequenced so that they can be played out in the correct order.
RTP is specifically designed to handle the play-out requirements of real-time media streams through the use of time stamps and jitter buffering. Due to the real-time nature of the data streams, where requesting retransmissions is too costly in time, RTP is typically used in conjunction with UDP to provide low-overhead network communications between two end-points.
RFC 3550 identifies two components to the real-time transport: data transport and control. Data transport is handled by RTP while control is handled by Real Time Control Protocol (RTCP). RTCP, which can be used to help scale the network traffic to the available bandwidth, is optional.
An RTP packet identifies the media payload type (format) and its source. It also includes time stamps and sequence numbers that are used by the play-out side to handle lost or out of sequence packets. RTP provides for the use of multiple streams as in the case of a system that transmits both voice and video. The payload in an RTP payload contains the encoded voice or video information. The use of dynamically defined payload types allows RTP packets to carry virtually any type of media format.
* Adaptive Digital currently does not support RTCP.
RTP – Real-time Transport Protocol
SRTP – Secure Real-time Transport Protocol
AES – Advanced Encryption Standard
AES CM – Advanced Encryption Standard counter mode
AES-f8 – AES in f8-mode, Universal Mobile Telecommunications System (UMTS) 3G mobile networks
Authentication Algorithm HMAC – Hashed message authentication code is characteristically used to authenticate that a message has not been changed during transit. Both parties to the message must have a shared secret key. The sender combines the key and the message into a string, produces a digest of the string by using an algorithm such as SHA-1 or MD5, and transmits the message and the digest. The receiver joins the shared key with the message, applies the appropriate algorithm, and runs a comparison between the digest thus obtained with that transmitted by the sender. If the digests are precisely the same, the message has not been tampered with.
Authentication Algorithm MD5 – Message Digest 5 is a widely used cryptographic hash function with a 128-bit hash value. As an Internet standard (RFC 1321), MD5 has been employed in a wide variety of security applications, and is also commonly used to check the integrity of files.
MKI – Master key identifier