35
V. Liberatore
Pervasive Computing
RTP Packet
*Header
nVersion (2 bits)
nPadding (1 bit)
nExtension (1 bit)
nCSRC count (4 bits)
nMarker (1 bit)
nPayload type (7 bits)
nSeqno (16 bits)
nTimestamp (32 bits)
nSSRC id (32 bits)
nCSRC ids (32 bits each)
*
*Payload
*Padding
nPadding
nPad count (8 bits)
Version: The version field identifies the version of RTP, which is currently version 2
Padding (P): Some protocols or algorithms require a packet to be a specific size. The
padding field is a variable field that fills space to make the header the proper size.
CSRC count: The CSRC field contains the number of CSRC identifiers that follow the
fixed header.
Marker: The marker field is used in specific applications to identify groups of RTP packets.
Payload type: This field identifies what type of information is in the payload portion
of the RTP packet and is used by applications to determine how to handle the packet.
Sequence number: The sequence number keeps a count of RTP packets by Real-Time Transport Protocol
incrementing the field by one for each packet that is sent, and is used to detect
packet loss and to maintain the sequence of the packets that are received.
Timestamp: The timestamp field records the time when the RTP packet was
created and is derived from a clock that increments monotonically and linearly
in time to allow synchronization and jitter calculations.
Synchronization source (SSRC): The SSRC field contains a randomly
generated 32-bit number to identify individual RTP sessions for the purpose of
separating individual RTP sessions and synchronizing the data transmission
across multiple end-points.
Contributing source (CSRC): The CSRC field is another layer of
identification for sessions that have the same SSRC number, but the data in the
stream needs to be differentiated further. For example, in a conference call, all
the RTP packets in the session would contain the same SSRC identifier but the
CSRC could be used to identify each caller who is speaking.