5. Protocole de transfert de données RTP (RTP Data Transfer Protocol)
5.1 Champs d'en-tête fixes RTP (RTP Fixed Header Fields)
L'en-tête RTP a le format suivant :
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Les douze premiers octets sont présents dans chaque paquet RTP, tandis que la liste des identifiants CSRC n'est présente que lorsqu'elle est insérée par un mixeur. Les champs ont la signification suivante :
version (V) : 2 bits Ce champ identifie la version de RTP. La version définie par cette spécification est deux (2).
padding (P) : 1 bit Si le bit de padding est activé, le paquet contient un ou plusieurs octets de padding supplémentaires à la fin qui ne font pas partie de la charge utile.
extension (X) : 1 bit Si le bit d'extension est activé, l'en-tête fixe DOIT être suivi d'exactement une extension d'en-tête, avec un format défini dans la Section 5.3.1.
nombre CSRC (CC) : 4 bits Le nombre CSRC contient le nombre d'identifiants CSRC qui suivent l'en-tête fixe.
marqueur (M) : 1 bit L'interprétation du marqueur est définie par un profil. Il est destiné à permettre de marquer des événements significatifs tels que les limites de trame dans le flux de paquets.
type de charge utile (PT) : 7 bits Ce champ identifie le format de la charge utile RTP et détermine son interprétation par l'application.
numéro de séquence : 16 bits Le numéro de séquence s'incrémente de un pour chaque paquet de données RTP envoyé, et peut être utilisé par le récepteur pour détecter la perte de paquets et restaurer la séquence de paquets.
horodatage : 32 bits L'horodatage reflète l'instant d'échantillonnage du premier octet dans le paquet de données RTP.
SSRC : 32 bits Le champ SSRC identifie la source de synchronisation.
liste CSRC : 0 à 15 éléments, 32 bits chacun La liste CSRC identifie les sources contributrices pour la charge utile contenue dans ce paquet RTP.
5.2 Multiplexage des sessions RTP (Multiplexing RTP Sessions)
Pour des raisons d'efficacité, le nombre de points de multiplexage doit être minimisé. Dans RTP, le multiplexage est fourni par l'adresse de transport de destination qui est différente pour chaque session RTP.
5.3 Modifications spécifiques au profil de l'en-tête RTP (Profile-Specific Modifications to the RTP Header)
L'en-tête de données RTP existant est considéré comme complet pour l'ensemble des fonctions requises. Cependant, des modifications peuvent être apportées dans des profils spécifiques.
5.3.1 Extension d'en-tête RTP (RTP Header Extension)
Un mécanisme d'extension est fourni pour permettre aux implémentations individuelles d'expérimenter de nouvelles fonctions indépendantes du format de charge utile.