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