lab
IP ALAPÚ TÁVKÖZLÉS
TCP/IP Real-Time Protocol RTP RTCP
Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
TCP hivatkozási modell, összes protokoll
2
1
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
User Datagram Protocol UDP csomagformátum Source Port
Destination Port
Length
UDP Checksum
DATA
3
lab
IP ALAPÚ TÁVKÖZLÉS
Real Time Transport Protocol
Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
2
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
3
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
RTP előnyei Egyszerű specifikáció és implementáció Flexibilis: nem algoritmust, mechanizmust szolgáltat Protokoll semleges: UDP/IP, ST-II, IPX, ATMAALx,... Skálázható: unicast, multicast 2-től O (107) 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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
4
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
Referencia modell
Application (RT)
RTCP
RTP ATM, …
UDP IP
10
5
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
RTP fejléc
11
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
6
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
7
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
8
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
9
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
10
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
Mixer, Translator (2)
21
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
11
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
12
lab
IP ALAPÚ TÁVKÖZLÉS
Real-Time Control Protocol RTCP
Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
13
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
RTCP csomag
28
14
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
15
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
16
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
17
lab
IP ALAPÚ TÁVKÖZLÉS
Real-Time Streaming Protocol RTSP
Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
18
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
Referencia modell
RT Applications RTSP RTP/RTCP
TCP
UDP IP
37
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
19
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
20
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
RTSP működése Kliensszerver architektúra
HTTP GET Session/presentation desription
web server
RTSP SETUP
client (browser software)
RTSP PLAY
RTP audio RTP video
media server
RTCP RTSP PAUSE RTSP TEARDOWN
42
21
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
RTSP parancsok Name
Description
Options
receives available options
setup
creates a transport
announce
changes the description of a media object
describe
receives the low level description of the media object
play
starts playout
RECORD
starts recoding
REDIRECT
redirects client to new server
PAUSE
pauses delivery, but holding state
SET_PARAMETER TEARDOWN
controls tool or coder tears the state down 43
TMIT BME
IP ALAPÚ TÁVKÖZLÉS
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
22