lab TCP/IP Real-Time Protocol RTP RTCP Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem TCP hivatkozási modell, összes protokoll 2 UDP csomagformátum User Datagram Protocol Source Port Length Destination Port UDP Checksum DATA 3 1
lab Real Time Transport Protocol Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Real Time Transport Protocol, RTP RFC 1889 RTP végpont-végpont adatátviteli szolgáltatást nyújt valós idejű alkalmazások számára Audio, video Multicast, unicast hálózatokban Az adatátvitel kiegészül egy vezérlő protokollal: RTCP Mellyel lehetséges az adatátvitel monitorozása Minimális vezérlési funkciók megvalósítása Azonosítási feladatok elvégzése 5 RTP Jellemzői: Az UDP szegényes szolgáltatásai ellenére az RTP ügyel a csomagsorrendre és időzítést is végez A csomagokkal együtt továbbít: Időbélyeg - timestamp Sorszám - sequence number Csomag típus - packet type Visszacsatolást a sikeres megérkezésről Ennek ellenére az RTP viszont: Nem kapcsolat orientált Nem garantálja a célbajutást Nem erőforrás lefoglaló protokoll 6 2
RTP előnyei Egyszerű specifikáció és implementáció Flexibilis: nem algoritmust, mechanizmust szolgáltat Protokoll semleges: UDP/IP, ST-II, IPX, ATM- AALx,... Skálázható: unicast, multicast 2-től O (10 7 ) Különválasztott vezérlés és adattovábbítás Protokoll Biztonság: enkripció támogatása, hitelesítés (authentication) lehetősége 7 RTP RTP session - kapcsolat Címzett IP címe UDP portok: X, X+1 RTP relay átjáró Fordító média konverziók Mixer több folyam multiplexálása, szinkronizáció Egy session / egy multimédia folyam 8 RTP funkciók Szegmentálást/összeillesztést az UDP végzi Újra sorrendezés (ha szükséges) Csomagvesztés detektálás minőségi becslésekhez, visszaállításhoz Médiumokon belüli szinkronizálás Késleltetés jitter eltüntetése play-out bufferrel sampling clock kezelés Médiumok közötti szinkronizálás Szájmozgás szinkronizáció (audio és video) QoS visszacsatolás és igényelt sávszélesség (rate) adaptáció Forrás azonosítás 9 3
Referencia modell Application (RT) RTP UDP ATM, IP RTCP 10 RTP fejléc 11 RTP fejléc 2 Ver Version (2 bit) RTP verzió szám = 2 P Padding (1 bit) Bebillentve: a csomag végén egy vagy több padding bájt található, melyek nem részei az adatnak. Az utolsó bájt tartalmazza, hogy hány bájt tartozik hozzá X Extension (1 bit) Bebillentve a fix fejlécet pontosan egy fejléc kiegészítés követi Cc CSRC count (4 bits) A CSRC azonosítők száma, melyek a fix fejlécet követik 12 4
RTP fejléc 3 M Marker (1 bit) Profil határozza meg a jelentését Fontosabb pontok jelölhetők meg vele az adatfolyamban Pl. frame boundary A profil meghatározhat más marker biteket is, vagy megadhatja, hogy nincs marker bit: a payload type bitjeinek megváltoztatásával PT - Payload Type (7 bit) Megadja az RTP payload formátumát, meghatározza az alkalmazás általi interpretációját Egy profil meghatározza, a payload típusok statikus jelentését a formátumra. Más payload típuskódok megadhatók dinamikusan is 13 RTP fejléc 4 Sequence Number (16 bit) A sorszám eggyel növekszik minden elküldött RTP adatcsomagban A fogadó csomagvesztés detektálásra és csomagsorrend helyreállításra használhatja Time Stamp (32 bit) Jelzi az első oktet mintavételi időpontját az RTP adatcsomagban A mintavételi időt egy monoton, lineárisan növekvő óra szerint kell számítani, hogy alkalmas legyen a szinkronizációra és jitter kalkulációra Az óra felbontása: legyen elégséges a szinkronizáció pontosságához, és a jitter méréshez (egy egység/video frame általában nem elégséges) 14 RTP fejléc 5 SSRC Synchronization source (32 bit) Szinkronizációs forrás azonosítása Az érték véletlen választású, kikötés: ugyanazon RTP kapcsolatban nem lehet két azonos SSRC CSRC - Contributing source (32 bit) 0-tól 15-ig terjedő CSRC elemekből álló tömb, mely azonosítja a közreműködő forrásokat az adott csomagban lévő payloadokra. A elemk számát a CC mező határozza meg A CSRC azonosítókat a mixerek helyezik a csomagba SSRC azonosítókat használva Pl.: a különböző forrásoktól érkező audio csomagokba a mixer összekeverés után az SSRC mezők alapján felépíti ezt a listát. Így azonosíthatóak a beszélők a fogadónál 15 5
Definíciók RTP payload: Az RTP csomagban szállított adat, pl. tömörített video RTP csomag: Adatcsomag, mely tartalmaz egy fix fejlécet, egy akár üres listát a közreműködő forrásokról (CSRC) és a payloadot Néhány alsóbb rétegbeli protokollnál meg kell adni az RTP enkapszulációt. Általában egy RTP csomag egy alsóbb rétegbeli csomagba kerül, de akár több RTP is kerülhet egy csomagba, ha az enkapszuláció megengedi Port: Az RTP az alsóbb protokolloktól függően használhatnak portokat az RTP és RTCP csomagok multiplexálásához egy kapcsolaton belül 16 Definíciók 2 Szállítási (transport) cím: A hálózati cím és a port kombinációja meghatároz egy szállítási rétegbeli végpontot (IP cím és UDP port) A csomagok forrás szállítási címtől a cél szállítási címig továbbítódnak RTP kapcsolat (session): RTP kommunikációt folytatók összessége. Az összes résztvevőnek a kapcsolat bizonyos cél szállítási címpárként értelmezett (egy hálózati cím és egy port pár az RTP és az RTCP kapcsolatnak) A cél szállítási cím lehet egyforma az összes résztvevő számára (IP multicast), vagy lehet különböző (IP unicast, azonos portpárokkal) Egy multimédia kapcsolatban egy médium egy külön RTP kapcsolatban továbbított. A több RTP kapcsolat különválasztása különböző portszámok, vagy multicast címek alapján lehetséges 17 Definíciók 3 Synchronization source (SSRC) szinkronizációs forrás Az RTP csomagok forrását egy 32-bites SSRC azonosító jelzi, így az em függ a hálózati címtől Minden, egy szinkronizációs forrástól érkező csomag azonos időzítési és sorszámozási térbe esik, így a forrás az érkező csomagokat szinkronizációs forrásonként csoportosítva képes visszajátszani 18 6
Definíciók 4 Contributing source (CSRC), közreműködő forrás Olyan RTP forrás, melyet több RTP forrás adatfolyamait fogja össze (RTP mixer) A mixer a csomagba beilleszt egy listát az adatfolyamok eredeti küldőiről (SSRC azonosítók alapján), melyektől érkező csomagok alapján készíti a mixelt csomagot. Ez a CSRC lista Példa: audio konferencia esetén a mixer így jelezheti, hogy mely forrástól érkeznek az adatcsomagok. Így lehetséges, hogy bár az SSRC azonosító mindig ugyanaz (a mixer ID-ja), mégis a fogadónál megjeleníthető, hogy ki beszél 19 Mixer, Translator (fordító) Mixer: Többszörös média adatfolyam egy folyamba összefogása (új kódolással) mixer: alacsony sávszélességű hálózatokban (dial-up) Új forrásként jelenik meg önálló azonosítóval Translator (fordító): Egy média adatfolyam Kódolások konverzióját is végezheti Protokoll fordítás (ATM - IP), tűzfal Minden csomagban: source address = translator address 20 Mixer, Translator (2) 21 7
Mixer Mixer: Közvetítő rendszer, mely egy vagy több forrástól fogad RTP csomagokat (szükség szerint változtathat azok formátumán), és új RTP csomagként továbbítja őket Mivel az időzítések a forrásokban nem szinkronizáltak, a mixer még időzítési beállításokat is végez. Saját időzítést alkalmaz a kombinált adatfolyamra Így minden, mixertől származó adatcsomagban a szinkronizációs forrásként a mixer kerül megadásra 22 Translator - fordító Translator: Közvetítő rendszer, mely RTP csomagokat továbbít a sértetlen szinkronizációs forrásazonosítóval Példák Eszközök, melyek különböző kódolásokat konvertálnak mixelés nélkül Ismétlők (replicators) multicastból unicastba Alkalmazás szintű szűrők tűzfalakban 23 Monitor Monitor: Egy olyan alkalmazás, mely RTCP csomagokat fogad az RTP kapcsolatokban résztvevőktől, és megbecsüli az adott QoS jellemzőket, hiba diagznósit végez és hosszú távú statisztikákat készít A monitorozó funkció A résztvevő alkalmazásokba lehetnek beépítve Lehetnek külön alkalmazások is, melyek nem vesznek részt a kapcsolatokban nem küldenek és fogadnak RTP adatcsomagokat,. Ezek a third party monitor ok 24 8
lab Real-Time Control Protocol RTCP Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem RTCP feladatai QoS felügyelet, monitorozás Torlódásvezérlés Forrás azonosítók Médiák közötti szinkronizáció Vezérlési jelzések (Visszacsatolás megoldása az RTP mellett) 26 RTCP RTCP csomagtípusok Sender report SR Elküldött bájtok -> küldési sebesség becslése timestamp -> szinkronizáció Reception report RR Az elküldött és a várt csomagok száma -> csomagvesztés, érkezési idők ingadozása (jitter), körülfordulási késleltetés Source Description Items SDES Név, email, hely,... CNAME (canonical name = user@host) a médián keresztüli felhasználó azonosítás Bye BYE App Specific Functions APP Minden kapcsolatban résztvevő rendszeresen küld RTCP csomagokat az RTP működése ezeken alapul 27 9
RTCP csomag 28 RTCP (sender report) csomagformátum 1 3 rész: fejléc (csomag típus, hossz, küldő ID) Küldő információk Fogadó információi 29 RTCP csomagformátum 2 Ver Version RTCP verzió = 2 P Padding A csomag végén található-e padding RC Report count Report blockok száma a csomagban PT Report type Report típusa Length csomag hossza Sender SSRC A csomag küldőjének SSRC-je 30 10
RTCP csomagformátum 3 NTP timestamp NTP általi abszolút idő (1900 jan. 1. óta eltelt idő mp-ben) RTP timestamp Küldő általi abszolút idő Sender s packet count RTP adatcsomagok teljes száma az átvitel kezdete óta Sender s octet count Az átvitt adatok teljes száma bájtokban 31 RTCP csomagformátum 4 SSRC_n Más küldők SSRC azonosítói, melyek a csomag küldőjéhez érkeztek. A különböző report blokkok száma függ a forrás által fogadott más forrásoktól érkező adatok számától Fraction lost: A legutolsó report óta elveszett RTP csomagok száma Cumulative number of packets lost: Az SSRC_n-től érkező elveszett RTP csomagok teljes száma 32 RTCP csomagformátum 5 Extended highest sequence number received: A SSRC_n forrástól érkezett legnagyobb sorozatszámú RTP csomag sorszáma Interarrival jitter: Az érkezési időközök becsült varianciája az adott forrástól Ha a csomag rendszeresen érkezik a jitter értéke 0 Ingadozáskor nő Last SR timestamp (LSR): A középső 32 bitje a 64 bites NTP timestamp-nek, mely a legutoljára érkezett RTCP csomagban érkezett a SSRC_n forrástól Delay since last SR (DLSR): Időkésleltés az utolsó SR csomag és az adott exception report block között 1/65536 mp-es egységekben (SSRC_n forrás felé) 33 11
Alkalmazások QuickTime Digitális video és média folyamok kezelése. Nincs szükség a média fájlok letöltésére. Támogatja az RTP és RTSP szabványokat. RealAudio and RealVideo Digitális médiák átvitele, magas minőség, RTP és RTSP támogatottság NetMeeting IP telefónia, white boarding, szöveges chat és alkalmazások/fájlok megosztása; RTP és RTSP támogatás CU-seeMe: Internet video chat szoftver: video, audio, szöveg és whiteboard kommunikáció. RTP a valós idejű átvitelhez IP/TV: Kliens szerver alkalmazás, támogatja a magas minőségű video és audio szabványokat (e.g., MPEG, H.261) Live video, scheduled video, és video on demand (VoD) 34 lab Real-Time Streaming Protocol RTSP Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Real-Time Streaming Protocol (RTSP) Számos időszinkronizált, folyamatos audio és video streamátvitelt és vezérlést végez Az adatforrások lehetnek élőadások és tároltak Unicast és multicast támogatása RTSP nem felelős az adatfolyamok célba juttatásáért De a média stream védelme a vezérlő streammel lehetséges RTSP kapcsolat alatt az RTSP kliens több megbízható kapcsolatot is létesíthet a szerverrel az RTSP igények kiszolgálására Az RTSP által vezérelt adatfolyam lehet RTP, de az RTSP működése nem függ ettől a protokolltól 36 12
Referencia modell RT Applications RTSP RTP/RTCP UDP IP TCP 37 Támogatás Különböző médiák elérése médiaszervereken Kliens HTTP, vagy más metóduson keresztül hivatkozhat a médiára Ha multicast, a küldött információk tartalmazzák a multicast címet és portot a hozzáféréshez Ha unicast egyedül a kliens lesz a fogadó a kliens adja a fogadási címet biztonsági okokból Konferencia invitálás médiaszerverhez Egy média szerver meghívható egy folyó konferencia résztvevőjének Média anyagok lejátszására teljes, illetve részleges rögzítésre Folyó előadáshoz további médiák hozzáadása Különösen élő prezentációk esetén hasznos, ha a kliens értesítve lehet arról, hogy további médiák váltak elérhetővé 38 RTSP protokoll jellemzői Kiterjeszthető Új eljárások és paraméterek könnyen hozzáadhatók Könnyen elemezhető (parsing) HTTP és MIME parserek használhatóak Biztonságos Minden HTTP webes biztonsági hitelesítési eljárás alkalmazható Szállítási réteg független UDP, RDP (Reliable Datagram Protocol), TCP Multi-server képesség Egy média több szerveren is elhelyezkedhet, a szüksége kapcsolatokat automatikus képes kiépíteni Rögzítő eszközök vezérlése Visszajátszás és rögzítés vezérlés 39 13
RTSP protokoll jellemzői Adatfolyam vezérlés és konferencia meghívás elkülönített kezelése Professzionális alkalmazásokhoz illeszthető Frame-szintű pontosság SMPTE időbélyegekkel SMPTE relatív időbélyeg: a klip kezdete óta eltelt idő Proxy és tűzfal barát Alkalmazási és szállítási rétegbeli tűzfalkezelés HTTP támogatás Szerver vezérlési lehetőség Kliens kezdeményezheti és állhatja meg az adatfolyamot Képesség egyeztetés 40 RTSP állapotok SETUP Erőforrások lefoglalása RTSP kapcsolat létesítése PLAY és RECORD Adatátvitel indítása PAUSE Az adatfolyam átmeneti megállítása az erőforrások felszabadítása nélkül TEARDOWN: Az adatfolyam erőforrásainak felszabadítása 41 RTSP működése HTTP GET Session/presentation desription web server Kliensszerver architektúra client RTSP SETUP RTSP PLAY (browser software) RTP audio RTP video RTCP media server RTSP PAUSE RTSP TEARDOWN 42 14
RTSP parancsok Name Options setup announce describe play RECORD REDIRECT PAUSE SET_PARAMETER TEARDOWN Description receives available options creates a transport changes the description of a media object receives the low level description of the media object starts playout starts recoding redirects client to new server pauses delivery, but holding state controls tool or coder tears the state down 43 RTSP URL használata Egy médiafolyam elérése: rtsp://media.example.com:554/twister Pl. ugyanennek az audio része csak: rtsp://media.example.com:554/twister/audio Az RTSP név hierarchia különbözik a klasszikus HTTP névhierarchiától 44 15