Applications en temps réel Source: B. Forouzan, Data Communications and Networking,
Applications temps réel Plusieurs nouvelles applications Internet ont des contraintes de temps réel: Téléphonie Conférences audio/vidéo Télétraitement (médecine, robotique, …) Jeux interactifs,…
Applications temps réel Utilisent généralement UDP car TCP est lourd. Caractéristiques: Relations temporelles entre paquets Codes correcteurs d'erreurs Horodatage (Time stamp) Buffer d'affichage (Blayback) Mise en ordre de paquets Diffusion en multicast Mixage des sources de données
Pile de protocoles TCP UDP IP MAC, ATM H.261, MPEG SDP H.323 SIP RTSP RSVP RTCP RTP TCP UDP IP MAC, ATM
Protocoles pour le temps réel RTP (Real-Time Transport Protocol): Transport de données en temps réel RTCP (Real-Time Control Protocol): Échange de données de contrôle de sessions temps réel. RTSP (Real-Time Streaming Protocol): Protocole de contrôle d'affichage de données en continu RSVP (Resource reSerVation Protocol) : Réservation des ressources réseau pour les applications SIP , H323,…
Transaction HTTP Navigateur Serveur Web Fichier Audio/video Site serveur Web Navigateur GET Fichier audio/vidéo Serveur Web Réponse Fichier Audio/video
Transaction avec méta-fichier Site serveur Web GET Métafichier Navigateur Serveur Web Réponse Métafichier Application Média GET Fichier Audio/Vidéo Réponse
Transaction avec méta-fichier Site serveur Web GET Métafichier Navigateur Serveur Web Réponse Métafichier Application Média GET Fichier Audio/Vidéo Serveur média Réponse
Transaction avec méta-fichier Site serveur Web GET Métafichier Navigateur Serveur Web Réponse Métafichier Application Média Streaming Serveur média Réponse
Relations temporelles Délai constant Le délai est constant (1 sec.). Le client reçoit les données à la même vitesse que l'émission Serveur Client 00.00.00 00.00.01 00.00.10 P1 30 sec. 00.00.11 00.00.20 P2 30 sec. 00.00.21 00.00.30 P3 00.00.31
Relation temporelle Variation du délai Le délai est variable Données affichées à des temps variables Serveur Client 00.00.00 00.00.01 00.00.10 P1 30 sec. 00.00.20 P2 00.00.15 37 sec. 00.00.30 P3 00.00.27 00.00.37 Temps d'émission Temps d'arrivée et d'affichage
Relation temporelle Horodatege Le temps d'émission (Time stamp) ajouté aux paquets Utilisé pour adapter les moments d'affichage: Serveur Client 00.00.00 00.00.01 00.00.10 P1 (00.00.08) (00.00.00) 30 sec. 00.00.20 P2 (00.00.10) 00.00.15 37 sec. (00.00.18) 00.00.30 P3 (00.00.20) 00.00.27 (00.00.28) 00.00.37 (00.00.38) Temps d'émission Temps d'arrivée et d'affichage
Gestion des buffers Arrivée Affichage Arrivée Affichage Arrivée Durée service: 7 sec A 00:00:18 Arrivée Affichage Durée service: 3 sec A 00:00:28 Arrivée Affichage Durée service: 1 sec
RTP Protocole pour le transport les données en temps réel. Implanté dans l'espace usager du SE (ex. JMF: Java Media Framework) Conçu pour remédier aux faiblesses du protocole UDP Il fonctionne en mode unicast et multicast. Les paquets RTP seront encapsulées dans UDP. En-tête UDP En-tête RTP Données RTP
Les acteurs Application Émetteur (TR) RTP-RTCP UDP Routeur Routeur RSVP RSVP RTCP RSVP RSVP UDP Récepteur (TR) RTP-RSVP Application
Services de RTP Support de plusieurs types de données (texte, image, audio et vidéo) et plusieurs techniques de codage (JPEG, GIF, MPEG,…). Synchronisation entre émetteur et récepteur: Mécanisme d’horodatage (Timestamping). Synchronisation de plusieurs sources de média Outils de : Contrôle de la gigue Traduction d'un codage vers un autre Détection de paquets perdus Aucune garantie de livraison des données
Codages supporté par RTP
Paquet RTP
Paquets RTP V : version CC: nombre de champs CSRC dans l’en-tête PT : type de données transportées Numéro de séquence: ordre de l’émission du paquet. Horodatage: l’instant d’échantillonnage du premier octet des données du paquet. SSRC: identité de l’émetteur des paquets de la session. CSRC: liste des sources qui ont contribué aux données contenues dans le paquet.
Exemple d'utilisation de RTP Chaque participant émet des segments audio d’une durée de 20 ms. Chaque segment constitue un paquet RTP qui enacapsulé dans UDP. L’en-tête RTP indique le type de codage utilisé (ex. PCM). L’horodatage et le numéro de séquence sont utilisés par le récepteur pour reconstruire l’horloge fournie par l’émetteur.
Horodatage et numéro de séquence Audio: Horloge à 8 kHz Un paquet = 20 ms d'échantillons (dans un paquet UDP) Incrément de 20,000 ms /125 msec = 160 Débit des paquets = 1 sec/20 ms = 50 Hz. Numéro de séquence : incrémenté de 1 à chaque paquet TS=x Séq.=y Stream audio TS=x+160 Séq.=y+1 Stream audio Paquet RTP k Paquet RTP k+1
Horodatage et numéro de séquence Vidéo: Horloge à 90 kHz Un paquet = 1 frame vidéo (dans un o Débit des paquets = 30 Hz (ou 25 en Europe). Incrément de: (1/30) x (1/90000) = 3000 Numéro de séquence : incrémenté de 1 à chaque paquet TS=x Séq.=y Stream vidéo TS=x+3000 Séq.=y+1 Stream vidéo Paquet RTP k Paquet RTP k+1
Identification des sources Synchronization source identifier (SSRC) Identifie une source multimédia Contributing source identifier (CSRC) Utilisé par une mixeur pour identifier les sources Mixeur Traducteur Réseau SSRC=10 CSRC={} SSRC=11 SSRC=20 CSRC={10,011} SSRC=12
RTCP Real Time Control Protocol , un compagnon de RTP Transmet périodiquement des paquets de contrôle aux participants à une session. Fournit des informations sur la qualité de la session (feedback à une source, défauts de distribution, …) Garder une trace des participants (CNAME,SSRC) Contrôle le pourcentage de paquets RTCP émis …
Échanges de paquets RTCP
Récupération après pertes de paquets Raisons des pertes: Le paquet n'est jamais arrivé. Paquet reçu corrompu. Paquet arrive en retard. RTP et RTCP ne font pas de traitement des erreurs Il faut recourir à des techniques auto correctrices
Récupération après pertes de paquets FEC : Forward Error Correction; Utilise un code correcteur Exemple : Parity packet Bloc = <d1,d2,d3,…,dn-1, p> di: paquets de données P=XOR(d1,…,dn-1) Paquet FEC Si d3 est perdu, d3=XOR(d1,d2,d4…,dn-1,P)
Récupération après pertes de paquets Interleaving FEC demande plus de bande passante On réordonne les paquets avant la transmission Les paquets RTP d'origine (de 20 msec) sont scindés en petites unités, réarrangés et transmis Un paquet perdu affecte de plus petite parties 20 ms 5 unités de voix 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Perdus 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
Récupération après pertes de paquets On peut recouvrir les paquets perdus en cas de perte de petits paquets Perdu 1 2 3 4 5 1 2 2 4 5 Par répétition Interpolation 1 2 3' 4 5 Par interpolation
Récupération après pertes de paquets Perdu 1 2 3 4 5 1 2 2 4 5 Par répétition Interpolation 1 2 3' 4 5 Par interpolation
RTSP Contrôle la livraison en temps réel des données partir d'un Serveur de média (Streaming). Utilise un transport comme RTP, UDP,… Offre des fonctions de VCR à distance: Rechercher les données Inviter un serveur à joindre une présentation. Effectuer des opérations telles que: PLAY, PAUSE, FAST FORWARD, REWIND, STOP, etc.
RTSP et HTTP RTSP est généralement couplé avec HTTP : À partir d'un lien qui correspond à un document multimédia, le navigateur émet une requête de téléchargement à un serveur Web. Le serveur répond avec un Méta-fichier qui contient un URL RTSP que le navigateur passe à une application spécifique appelée Application Média (ex. RealPlayer). Cette application contacte un serveur média (ex. RealNetwork) avec RTSP. Les données sont émises à partir de ce serveur RSTP contrôle la livraison.
RTSP et HTTP Navigateur Serveur Web Site serveur Web Requête HTTP Réponse (Métafichier) Métafichier Application Média Requête RTSP Serveur Média Flux de données Multimédia (RTP, ..) Site serveur média http://christian-hosting-solutions.com/support/streamasx.php#structure
Meta fichier - Exemple Méta fichier de WMP Playlist <ASX version = "3.0"> <TITLE> Global title of the show</TITLE> <AUTHOR>The name of the author</AUTHOR> <COPYRIGHT>2004 by Your Company</COPYRIGHT> <MOREINFO HREF = "http://www.microsoft.com/windows/windowsmedia" /> <ENTRY> <REF HREF = "rtsp://ServerName/Path/FileName.wmv " /> <BANNER HREF="http://Servername/Path/Banner1.gif"> <MOREINFO HREF ="http://www.microsoft.com/windows/windowsmedia" /> <ABSTRACT>This is the description for this clip.</ABSTRACT> </BANNER> </ENTRY> </ASX> Méta fichier de WMP <ASX VERSION = "3.0"> <TITLE>Title</TITLE> <ENTRY> <REF HREF = "rtsp://ServerName/Path/title1.wmv" /> </ENTRY> <ENTRY> <REF HREF = "rtsp://ServerName/Path/title2.wmv" /> </ENTRY> <ENTRY> <REF HREF = "rtsp://ServerName/Path/title3.wmv" /> </ENTRY> </ASX> Playlist
L'application média Reçoit les données en continu du serveur Utilise RTSP pour le contrôle de la livraison Référence les documents avec une URL de la forme: rtsp://Site/document. Utilise une interface graphique adéquate Gère des erreurs de transmission en se basant sur les infos fournies par RTP et RTCP. Décode les données selon le champ PT de RTP. Élimine les effets de la variation des délais (gigue ) en utilisant le streaming.
Streaming Mémoriser des données dans une mémoire tampon du récepteur pendant une période de temps avant de les jouer. Télécharger de nouvelles données dans le buffer pour le garder suffisamment plein Adapter le flot de données qui arrive à un certain débit (Débit Réseau) au flot d’affichage (Débit d’affichage)
Streaming Buffer Débit Réseau Application Média Débit d'affichage Serveur Média Buffer
Commandes RTSP SETUP :l’application établit un canal avec le serveur PLAY : le client demande l’émission des données au serveur. PAUSE : l’application demande de suspendre temporairement l’émission des données RECORD : le client initie l'enregistrement de données sur les serveur. DESCRIBE : le client demande de lister les paramètres du média TEARDOWN: le client demande de libérer le canal
Réponse HTTP (Métafichier) Session RTSP - Exemple Navigateur Requête HTTP Serveur HTTP Réponse HTTP (Métafichier) Serveur Média SETUP Application Média PLAY Données (RTP audio) Données (RTP vidéo) Rapports RTCP PAUSE TEARDWON
Commandes RTSP SETUP :l’application établit un canal avec le serveur PLAY : le client demande l’émission des données au serveur. PAUSE : l’application demande de suspendre temporairement l’émission des données RECORD : le client initie l'enregistrement de données sur les serveur. DESCRIBE : le client demande de lister les paramètres du média TEARDOWN: le client demande de libérer le canal
SIP Session Initiation Protocol Protocole IETF pour établir et terminer des sessions multimédia sur RTP. Fonctions: Déterminer l'adresse IP courante de l'appelé L'appelé peut avoir une adresse IP dynamique (DHCP) Acheminer un appel même si l'appelé est absent Etre notifié lorsque l'appelé re-devient présent Inviter de nouveaux participants durant une session Autre alternative ITU : H.323
Commandes SIP Les commandes sont En ASCII (semblables à celles de HTTP): Requête / Réponse Commandes: INVITE: Initie un appel ACK: Réponse à INVITE BYE: Termine une connexion ou refuse un appel CANCEL: Termine une transmission en cours SUBSCRIBE: Demande de notifications d'appels NOTIFY: Notification suite à une souscription REFER: Transfert d'appel REGISTER; Enregistre l'emplacemet courant d'un usager
Dialogues SIP Session avec Proxy SIP Adresses:
Dialogues SIP
Le multicast Le multicast permet d’atteindre un groupe d’usagers en même temps: Participants à une conférences audio et vidéo Classe virtuelle Utilise les adresses mutipoint Une source émet un seul paquet à tous Économie de bande passante.
Adresses multicast Une adresse (de groupe) représente plusieurs utilisateurs. Permet de pallier aux gains de capacité requise pour le multimédia. (9 paquets) (4 paquets) Multicast Unicast
Le réseau Multicast Réseau virtuel de LAN et des tunnels reliant des routeurs muticast. Les tunnels reliant ces réseaux sont des liaisons unipoint. Les routeurs multicast exécutent un démon spécialisé (mrouted). Les paquets IP multicast sur les tunnels sont encapsulés dans des paquets unipoint.
Le réseau Multicast routeur multicast Réseau multipoint Tunnel
Adresses IP multicast Un groupe multicast possède une adresse de Classe D dans l'ensemble: 224.0.0.0 - 239.255.255.255 Les adresses 224.0.0.0 - 224.0.0.255 sot réservées aux informations des protocoles de routage multicast (ex. IGMP). Il n'est pas nécessaire d'être membre d'un groupe pour envoyer des datagrammes au groupe.
Adresses IP Spéciales Adresses IP de classe A,B, C spéciales: 0.0.0.0 Cette machine (this host) 0.1.1.25 La machine 1.1.25 sur ce LAN-ci 255.255.255.255 Adresse broadcast sur le LAN 193.1.1.255 Adresse broadcast sur le réseau 193.1.1 127.x.x.x: Boucle locale Différences entre braodact et multicast: Broadcast: tout le monde sur le réseau. Multicast: tous les membres du groupe. Adresse MAC broadcast: FF:FF:FF:FF:FF:FF
Trames en unicast Sendto Dest IP: 128.7.6.5 Dest. Port: 7433 Appl Appl UDP UDP UDP 128.7.6.99 128.7.6.255 128.7.6.5 128.7.6.255 IP IP IP MAC MAC MAC 02:60:8c:2f:4e:00 08:00:20:03:f6:42 128.7.6 08:00:20:03:f6:42 128.7.6.5 7433 Dest. MAC Dest IP Dest Port
Transfert en IP broadcast L'interface MAC effectue l'association IP broadcast - MAC broadcast. Sendto Dest. IP: 128.7.6.255 Dest. Port: 520 Appl Appl Port: 520 UDP UDP UDP 128.7.6.99 128.7.6.255 128.7.6.5 128.7.6.255 IP IP IP MAC MAC MAC 02:60:8c:2f:4e:00 08:00:20:03:f6:42 128.7.6 ff:ff:ff:ff:ff:ff 128.7.6.255 520 Dest MAC IP Dest. Port Dest
Associations multicast IP - MAC Il existe une association entre adresses multicast et adresses multicast des LAN. 23 bits Adresse de groupe classe D: e Adresse multicast Ethernet de IP: 01 00 5e
Transfert multicast de trames Sendto Dest IP: 224.0.1.1 Dest. Port: 123 Appl Appl Port: 123 Join: 224.0.1.1 UDP UDP UDP IP IP IP Receive: 01:00:5e:00:01:01 MAC MAC MAC 02:60:8c:2f:4e:00 08:00:20:03:f6:42 128.7.6 01:00:5e:00:01:01 224.0.1.1 123 Dest MAC Dest IP Dest Port
Relation temporelle Horodatege Serveur Client 00.00.00 00.00.01 00.00.10 P1 7sec (00.00.00) 30 sec. (00.00.08) 00.00.20 P2 (00.00.10) 00.00.15 37 sec. 3 sec (00.00.18) 00.00.30 P3 (00.00.20) 00.00.27 1 sec (00.00.28) 00.00.37 (00.00.38) Temps d'émission Temps d'arrivée et d'affichage