Studium protokolu Session Decription Protocol Jaroslav Vilč 5. února 2007
Session Description Protocol (SDP) SDP je určen pro popis multimediálních relací. Jedná se o dobře definovaný formát postačující pro zprostředkování informací pro prozkoumání a zapojení se do multimediální relace. Multimediální relace je množina odesilatelů a příjemců a datový proud tekoucí od odesilatelů k příjemcům. SDP slouží výhradně pro popis relací, neobsahuje definici požadavků na transportní protokol. Různé transportní protokoly ho mohou využívat. Příkladem multimediální relace je např. telefonní hovor VoIP, příjem internetových vysílání(rádio, tv), multimediální konference. Co najdeme v SDP zprávě : Nepovinné údaje jsou označeny * Celá zpráva je strukturována do 3 částí. A to na popis relace definice relace stejná jako výše uvedená multimediální relace, popis času položky týkající se času, a popis média médium zde chápeme jako datový proud mezi odesilateli a příjemci. SDP zpráva obsahuje jednopísmenné příznaky, podle kterých je zřejmé o jakou informaci se jedná. Na prvním řádku je vždy příznak v= a napsána verze protokolu. Tím je zároveň odstartován popis dané relace, protože v jedné SDP zprávě může být popsáno více relací. Pokud informace nejsou v níže uvedeném pořadí, celý proces je vyhodnocen jako chybný. Popis relace v = verze protokolu o = tvůrce a identifikátor relace s = jméno relace i =* textová zpráva s informací, co se v dané relaci děje u =* URI popisu e =* emailová adresa na osobu zodpovědnou za relaci(nemusí to být tvůrce relace) p =* telefonní číslo na osobu zodpovědnou za relaci(nemusí to být tvůrce relace) c =* informace pro spojení b =* šířka pásma z =* nastavení časového pásma k =* šifrovací klíč a =* vlastnosti relace, tento příznak se může opakovat 1
Popis času t = začátek a konec relace r =* naplánování automatického zopakování relace(např. každou středu v 10:00 na 1 hodinu) Popis média m = typ médiální relace (video, audio, textová atd.), transportní potokol i =* název média c =* informace pro spojení b =* šířka pásma k =* šifrovací klíč a =* vlastnosti média SDP ve VoIP SDP je použito signalizačním protokolem SIP(Session Initation Protocol) a obsahuje informace o nastavení spojení. Obrázek 1: Schéma zapojení Nyní se podíváme na konkrétní případ, ve kterém je nakonfigurována pobočková ústředna(pbx) Asterisk pro telefonování s využitím protokolu SIP. K této PBX jsou softwarovými telefony připojeni 2 uživatelé(obr.1). Etherealem je 2
zachycen hovor mezi nimi od vytočení až po ukončení. Celý hovor je řízen protokolem SIP(obr.2). Obrázek 2: Průběh hovoru řízený protokolem SIP Bylo vytočeno číslo 950030007. Nás momentálně zajíma rámec obsahující SIP s pozvánkou k audio relaci. Request : INVITE sip:950030007@195.113.113.145, with session description Žádost na vytvoření multimediální relace je poslána na 195.113.113.145, kde běží PBX Asterisk. V těle této zprávy se nachází SDP obsahující informace k nastavení spojení. Informace získané z SDP : Session Description Protocol Version (v): 0 Verze protokolu. Owner/Creator, Session Id (o): 4 2 IN IP4 1.1.1.3 - jméno tvůrce = - ID relace = 4 - verze relace = 2 - typ sítě tvůrce = IN (internet) - typ adresy tvůrce = IP4 3
- adresa tvůrce = 1.1.1.3 Session Name (s): CounterPath X-Lite 3.0 Název relace. Connection Information (c): IN IP4 1.1.1.3 - typ sítě = IN - typ adresy = IP4 - adresa připojení= 1.1.1.3 Time Description, active time (t): 0 0 - čas začátku relace = 0 - čas konce relace= 0 Media Description, name and address (m) : audio 65336 RTP/AVP 107 119 0 98 8 3 101 - typ média = audio - port = 65336 - transportní protokol = RTP/AVP Media attribute (a) : alt:1 1 :nnhgxhhl 5IuJ4OUM 1.1.1.3 65336 Media attribute (a) : fmtp:101 0 15 Media attribute (a) : rtpmap:107 BV32/16000 Media attribute (a) : rtpmap:119 BV32-FEC/16000 Media attribute (a) : rtpmap:98 ilbc/8000 Media attribute (a) : rtpmap:101 telephone-event/8000 - Atribut rtpmap vyznačí podle čísla zátěže(uvedeného v řádku (m) ) název kódování a taktovací kmitočet. Informace slouží protokolu RTP k nastavení zátěže(nákladu). 4
Čísla napsané za RTP/AVP (107 119 0 98 8 3 101) umožňují odesilateli popsat svůj RTP/AVP (Audio/Video Profil). Pod čísly jsou skryty informace jako např. : jaké kodeky podporuje jaké metody šifrování jakou latenci, rychlost atd. Media attribute (a) : sendrecv Zařízení bude spuštěno v módu pro odesílání a příjem. SDP v internetových rádiích Není řečeno, že pokud je vytvořena multimediální relace, tak je pro její popis použit protokol SDP. Například na webu http://www.play.cz můžeme poslouchat česká nebo zahraniční rádia. Při přihlášení se k zahraničnímu rádiu se protokol SDP nevyskytuje. Popis relace je zde řešen jiným způsobem. Zato při přihlášení k poslechu např. Frekvence 1 je využito SDP protokolu. přímý odkaz http://www.play.cz/listen/listen.php?sh=frekvence1&bitrate=128 Přenos je sestaven a řízen na aplikační vrstvě protokolem RTSP(Real Time Streaming Protocol). Z Etherealu lze vyčíst následující průběh. První slovo má uživatel, který žádá o popis rádia. DESCRIBE rtsp://netshow4.play.cz/frekvence1-128?wmcontentbirate=130000 RTSP/1.0 Na to server posílá potvrzení s přiloženou SDP zprávou, která popisuje vlastnosti potencionální relace. REPLY: RTSP/1.0 200 OK, with session description Výtažek z SDP zprávy : Session Description Protocol Version (v): 0 Verze protokolu. Owner/Creator, Session Id (o): 200701242135520849 200701242135520849 IN IP4 127.0.0.1 - jméno tvůrce = - ID relace = 200701242135520849 - verze relace = 200701242135520849 - typ sítě tvůrce = IN (internet) 5
- typ adresy tvůrce = IP4 - adresa tvůrce = 127.0.0.1 Session Name (s): No Title Bez názvu relace. Connection Information (c): IN IP4 0.0.0.0 - typ sítě = IN - typ adresy = IP4 - adresa připojení= 0.0.0.0 Bandwidth Information (b): AS:251 - Modifikátor šířky pásma = AS - Maximální šířka pásma = 251 Session Attribute (a): maxps:5976 Atribut není definován v RFC. - Název vlastnosti relace = maxps - Hodnota = 5976 Time Description, active time (t): 0 0 - čas začátku relace = 0 - čas konce relace= 0 Session Attribute (a): control:rtsp://netshow4.play.cz/frekvence1-128/ Atribut není definován v RFC. - Název vlastnosti relace = control - Hodnota = rtsp://netshow4.play.cz/frekvence1-128/ Session Attribute (a): etag:{46b82c77-1810-a805-78c3-6584b7e6bdfd} Atribut není definován v RFC. - Název vlastnosti relace = etag 6
- Hodnota = {46B82C77-1810-A805-78C3-6584B7E6BDFD} Session Attribute (a): range:npt=3.065-3.065 Atribut není definován v RFC. - Název vlastnosti relace = range - Hodnota = npt=3.065-3.065 Session Attribute (a): type:broadcast Typ přenosu v rámci relace. - Název vlastnosti relace = type - Hodnota = broadcast Session Attribute (a): recvonly Aplikace bude data jen přijímat. Media Description, name and address (m) : audio 0 RTP/AVP 96 Nastavéní RTP/AVP profilu. - typ média = audio - port = 0 - transportní protokol = RTP/AVP - media format = 96 Závěr SDP se obvykle vyskytuje před uskutečněním relace. Ta strana, která relaci nabízí, pošle v SDP zprávě informace obsahující vlastnosti prostředí, na kterém bude přenos probíhat. Většina vlastností je popsána ve výše uvedených sledováních. 7
Reference [1] Rfc2327, M. Handley, V. Jacobson, 1998 SDP: Session Description Protocol http://www.ietf.org/rfc/rfc2327.txt/ [2] Rfc4566, M. Handley, V. Jacobson, 2006 SDP: Session Description Protocol http://tools.ietf.org/html/rfc4566 [3] SIP protokoly, mechanizmy, komunikace, Miroslav Vozňák, VŠB TU-Ostrava [4] Multicasts http://service.real.com/help/library/guides/helixuniversalserver/htmfiles/multicst.htm/ [5] Internetová rádia http://www.play.cz/ 8