RTP - Real-Time Transport Protocol

RTP SERIES: RTP, RTCP, AND THEIR SECURE COUNTERPARTS

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. 

data network connect

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.

Features List

  • 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

 

 Encryption Types: CM, F8
  • 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

Availability

Platforms
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.

Specifications

NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.

↓  Click on links below to view specification tables. 

RTP ARMv7A Cortex-A | ARMv8A Cortex-A

CPU UTILIZATION & MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
DirectionMIPSProgram MemoryInstance* Data Memory
Tx0.28.6K172
Rx0.2

RTP ARMv7M Cortex-M

MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
DirectionProgram MemoryData MemoryInstance* Data Memory
RTP6.4 K108200
RTP + RTCP15.7 K124660

CPU UTILIZATION
RTP FunctionAverage MIPS*
10 msec20 msec30 msec
Tx0.130.080.06
Rx0.220.120.09

RTP Arm9E / Arm11

CPU UTILIZATION & MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
DirectionMIPSProgram MemoryInstance* Data Memory
Tx.208.6K172
Rx.10

RTP C64x / C64x+ / C66x / C674x

CPU UTILIZATION
ProcessorDirectionFrame Rate (ms) AverageFrame Rate (ms) Peak
102030102030
C64xRx0.260.140.10.430.220.15
C64xTx0.20.10.070.20.10.07
C64x+ / C66xRx0.180.090.050.540.270.26
C64x+ / C66xTx0.110.060.040.210.110.07

MEMORY REQUIREMENTS
All Memory usage is given in units of byte
Processor TypeProgram MemoryInstance* Data Memory
C64x9652172
C64x+ / C66x8324172

RTP C55x

CPU UTILIZATION
ProcessorDirectionFrame Rate (ms) AverageFrame Rate (ms) Peak
102030102030
C55xRx0.260.140.10.430.220.15

MEMORY REQUIREMENTS
All Memory usage is given in units of byte
Processor TypeProgram MemoryInstance* Data Memory
C55x7056280

RTP Win32 Static Lib

CPU UTILIZATION & MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
DirectionMIPSProgram MemoryInstance* Data Memory
Tx<0.33**8.6K172
Rx<0.33

RTP Win32 DLL

CPU UTILIZATION & MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
DirectionMIPSProgram MemoryInstance* Data Memory
Tx<0.3338K172
Rx<0.33

RTP Linux x86

CPU UTILIZATION & MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
DirectionMIPSProgram MemoryInstance* Data Memory
Tx<0.33**8.6K172
Rx<0.33

Specifications

NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.

Description

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.

TERMINOLOGY

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
use AES-f8.

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

Translate »