sdp sdp description
Transcription
sdp sdp description
SDP : Session Description Protocol • SDP : RFC 2327 (1998) – dernière version RFC 4566 (2006) – utilisé p.e. par SAP (Session Announcement Protocol) RFC2974 (2000) • Les sources décrivent leurs sessions via SDP • Ces descriptions sont annoncées/publiées (SAP, SIP, RTSP, Web, …) • Un client – consulte les sessions disponibles (SAP, …) – choisit une session et lance les outils (audio, vidéo, tableau blanc, …) manuellement ou automatiquement 2011 RMMQoS-chap2 1 sdp • Format de fichier texte – suites de lignes • attribut=valeur(s) • ex : téléphone de l’administrateur de la session p=+358 9 4572037 – SDP ne décrit pas comment cette description est transportée/ utilisée – utilisable par d autres protocoles Multimédia SAP, SIP, RTSP, … 2011 RMMQoS-chap2 2 sdp description • quelques descripteurs : c=<nettype> <addrtype> <connection-address> nettype IN (internet) addrtype IP4 ,IP6 connection-address adresse[/ttl] [nombre] ttl utilisé pour la portée multicast en IPv4 nombre : codage hiérarchique en couches remarque : numéro de port donné séparément par média b = bandwidth k=<method>:<encryption key> il faut alors utiliser un sdp crypté, pour transmettre ces clés 2011 RMMQoS-chap2 3 1 sdp description • timing t=<start-time> <stop-time> temps donnés en format NTP (secondes depuis 1900) r=<repeat interval> <active duration> <offsets from starttime> permet de répéter à intervalle régulier depuis start-time ex : diffusion d une émission de télé r=604800 7200 0 90000 (604800 = 1semaine, 7200 = 2h, 90000 = 25h) ⇒ 2h tous les lundis à 14h et mardi à 15h si start-time représente le premier lundi à 14h (et stop-time la fin de l année) 2011 RMMQoS-chap2 4 sdp description • sélecteur de type attribut a=flag ex: a=recvonly a=<attribute>:<value> ex : a=framerate:25 (25 images par seconde) les attributs peuvent être • globaux pour la session ou • spécifiques à un média • média autant de descripteurs que de média m=<media> <port> <proto> <fmt> ... ex : m=audio 9800 RTP/AVP 0 port UDP 9800 RTP, payload type 0 (PCM) il peut y avoir une adresse spécifique pour ce média c= … 2011 RMMQoS-chap2 5 exemple description sdp /* paramètres généraux de la session */ v=0 /* version SDP */ o=Administrator 3187559694 3287721570 IN IP4 193.166.0.38 s=FUNET-TV 1 (H.261) /* nom session */ i=FUNET-TV I-Studio /* info session */ u=http://www.funet.fi /* URI descriptif */ [email protected] (Administrator) /* email responsable */ p=+358 9 4572037 /* phone */ c=IN IP4 233.6.205.98/63 /* connexion */ t=3187721570 3298326370 /* début => fin */ r=604800 604800 0 /* répétition = 1 semaine par semaine */ 2011 RMMQoS-chap2 6 2 exemple description sdp(2) a=recvonly /* a : attribute */ a=tool:CDT mAnnouncer 1.1.2 a=cat:MBone/Others a=type:broadcast m=audio 9800 RTP/AVP 0 /* media name and transport address : PORT RTP/ Payload 0 = PCM */ c=IN IP4 233.6.205.98/63 /* connexion audio IP/TTL */ m=video 9900 RTP/AVP 31 /* idem vidéo 31 = MPEG1 */ c=IN IP4 233.6.205.99/63 a=framerate:25 a=quality:5 a=grayed:0 a=x-MacTV-CMhost:SAP Listener 2011 RMMQoS-chap2 7 2011 RMMQoS-chap2 8 sdp • une description sdp donne donc – des paramètres pour l utilisateur • nom, responsable, …, quand ? – les paramètres pour • choisir les outils – en fonction des types de média • paramétrer les outils – adresses de connexion – codages, … 2011 RMMQoS-chap2 9 3 Protocole SAP • RFC2974 – un annonceur envoie un message SAP • en multicast 224.2.127.254 port 9875 – portée globale (internet) – éventuellement locale • à intervalle régulier interval = max(300, (8*#annonceurs*taille_annonce)/limit) où #annonceurs est le nombre détecté dans le groupe (implique annonceur écoute SAP) 2011 RMMQoS-chap2 10 Format 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=1 |A|R|T|E|C| auth len | msg id hash |! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+! | |! : originating source (32 or 128 bits) :! : :! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+! | optional authentication data |! : .... :! *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*! | optional payload type |! + +-+- - - - - - - - - -+! | |0| |! + - - - - - - - - - - - - - - - - - - - - +-+ |! | |! : payload :! | |! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+! ! ! 2011 RMMQoS-chap2 11 A : 0 (IPv4) 1 (IPv6) R : 0 (réservé) T : 0 (Annonce) 1 (Retrait) E : 1 = encrypté C : 1 = compressé payload type : chaîne ASCII au format MIME Application/sdp (par défaut : peut être omis) message hash + orig. source = ident session 2011 RMMQoS-chap2 12 4 Ecouter SAP avec VLC 2011 RMMQoS-chap2 13 2011 RMMQoS-chap2 14 analyse trace SAP/RTP/RTCP Exemple wireshark - trace SAP/SDP +RTP/RTCP - écoute SAP (via VLC), sélectionne session UCTV remarque : wireshark « intelligent » utilise les annonces sap pour décoder rtp 2011 RMMQoS-chap2 15 5 analyse trace (suite) - - - - - - - annonces SAP noter fréquence des annonces IGMP : adhésion au groupe, paquets RTP port 4454 vidéo mpeg4 port 4654 audio mpeg4 Rapports RTCP 2011 RMMQoS-chap2 16 RTSP protocoles 2011 RMMQoS-chap2 17 Le protocole de streaming en temps réel (RTSP) • RTSP (Real Time Streaming Protocol) • • – ietf mmusic (Multiparty Multimedia Session Control) RFC 2326 (version 2 en cours de normalisation) Que fait RTSP : – Permet de contrôler la distribution de flux multimédia sur un réseau IP – Protocole hors bande : informations du protocole transitent séparément des données – Protocole de niveau applicatif • Ce que ne fait pas RTSP – – – – • Pas de compression/décompression Pas de définition de mécanismes d’encapsulation des data multimédia Pas de pré-requis sur le protocole transport utilisé Pas d’obligation de bufferisation sur le client RTSP agit comme une télécommande magnétoscope (VCR) réseau 2011 RMMQoS-chap2 18 6 RTSP • Fonctionnalités – Récupération des flux depuis un serveur – Enregistrements des flux (arrêt, pause, etc.) • Protocole « orienté » texte (comme http) • Supporte plusieurs type de description de session (sdp, xml, etc.) • Fonctionne en unicast ou multicast 2011 RMMQoS-chap2 19 RTSP • Nécessite de maintenir des états dans les serveurs (contrairement à http) – y compris à travers connexions TCP successives • Signalisation RTSP « hors-bande » – indépendant du transport des médias • ports et protocoles différents 2011 RMMQoS-chap2 20 RTSP : schéma général Client HTTP GET Navigateur Web Fichier de description de présentation (sdp) Serveur Web SETUP Lecteur Media PLAY Flux audio/video (RTP) RTCP Serveur de streaming PAUSE TEARDOWN 2011 RMMQoS-chap2 21 7 Méthodes RTSP • Méthodes non-optionnelles – – – – SETUP : Initialisation de la session RTSP PLAY : Démarrage de la transmission de flux PAUSE : Pause dans la transmission de flux TEARDOWN : Libération des ressources (fin de la session) • Méthodes additionnelles – OPTION : réception des méthodes disponibles – ANNOUNCE : Changement de la description du media – DESCRIBE : récupération du premier niveau de description du média – RECORD : Enregistrement d un flux sur le serveur – REDIRECT : Redirection d un client sur un nouveau serveur – SET_PARAMETER : fixe paramètre : bandwidth … 2011 RMMQoS-chap2 22 Exemple Serveur Web Serveur Audio Serveur Vidéo 1. an m De 2. Ouverture 3.4.Lecture session/flux Arrêt RTSP de rip sc de n tio Client 2011 RMMQoS-chap2 23 Exemple : Description (1/4) • C->W: GET /flux.sdp HTTP1.1 host: www.exemple.com accept: application/sdp • W->C: HTTP/1.1 200 OK Content-type: application/sdp v=0 s= RTSP Session m=audio 0 RTP/AVP 0 a=control:rtsp://audio.exemple.com/flux1/audio.en m=video 0 RTP/AVP 12 a=control:rtsp://video.exemple.com/flux1/video 2011 RMMQoS-chap2 24 8 Exemple : Session rtsp (2/4) • C->A: SETUP rtsp://audio.exemple.com/flux1/audio.en RTSP/1.0 CSeq: 1 /* numéro de requête */ Transport: RTP/UDP; unicast;client_port=3056; mode=PLAY • A->C: RTSP/1.0 200 OK CSeq: 1 /* numéro correspondant requête */ Session :4321 /* numéro pour toute la session audio */ Transport: RTP/UDP;unicast;client_port=3056;server_port=5000 • C->V: SETUP rtsp://audio.exemple.com/flux1/video RTSP/1.0 CSeq: 1 Transport: RTP/UDP; unicast;client_port=3058; mode=PLAY • V->C: RTSP/1.0 200 OK CSeq: 1 Session :578952 /* session vidéo */ Transport: RTP/UDP;unicast;client_port=3058;server_port=5001 2011 RMMQoS-chap2 25 Exemple : Lecture (3/4) • C->A: PLAY rtsp://audio.exemple.com/flux1/audio.en RTSP/1.0 CSeq: 2 Session: 4321 Range: npt=0- • A->C: RTSP/1.0 200 OK CSeq: 2 Session :4321 • C->V: PLAY rtsp://audio.exemple.com/flux1/video RTSP/1.0 CSeq: 2 Session: 578952 Range: npt=0- • V->C: RTSP/1.0 200 OK CSeq: 2 Session :578952 2011 RMMQoS-chap2 26 Exemple : Arrêt (4/4) • C->A: TEARDOWN rtsp://audio.exemple.com/flux1/audio.en RTSP/1.0 CSeq: 3 Session: 4321 • A->C: RTSP/1.0 200 OK CSeq: 3 • C->V: TEARDOWN rtsp://audio.exemple.com/flux1/video RTSP/1.0 CSeq: 3 Session: 578952 • V->C: RTSP/1.0 200 OK CSeq: 3 2011 RMMQoS-chap2 27 9 RTSP : Gestion du temps • NPT (Normal Play Time) – Donne la position de départ de la présentation – 2 formats possibles : • Hours:minutes:secondes.subseconds • Seconds.subseconds – Exemple : • npt=8:05:00-8:10:12 • npt=62.43-108 2011 RMMQoS-chap2 28 npt (suite) • le NPT permet de se positionner dans le flux – retour au début – « rewind », « forward » 2011 RMMQoS-chap2 29 exemple telnet • Connexion en mode texte telnet 195.154.101.20 554 OPTIONS rtsp://son.radio-france.fr:554 RTSP/1.0 CSeq: 1 RTSP/1.0 200 OK CSeq: 1 Date: Thu, 09 Nov 2006 08:58:28 GMT Server: Helix Server Version 9.0.3.916 (linux-2.2-libc6-i586-server) (RealServer compatible) Public: OPTIONS, DESCRIBE, ANNOUNCE, PLAY, SETUP, GET_PARAMETER, SET_PARAMETER, TEARDOWN 2011 RMMQoS-chap2 30 10 exemple telnet (suite) DESCRIBE rtsp://son.radio-france.fr:554/locales/provence/ entreprise/280306.rm RTSP/1.0 CSeq: 2 => on obtient la description (format sdp) 2011 RMMQoS-chap2 31 exemple RTSP Connxion à rtsp://streaming.od.tv-radio.com/francemusique/ matinmus_mercredi/ matinmus_mercredi_20081022-32k.rm 2011 RMMQoS-chap2 32 Multimédia : protocoles Application signalisation Qualité de service Transport média Media (H. 261, MPEG) H. 323 SIP RTSP RSVP RTCP RTP Noyau TCP UDP IPv4, IPv6 PPP 2011 ATM RMMQoS-chap2 Ethernet 33 11