rtp –real time protocol - zcu.czledvina/prednasky-pds-2007/09a-rtp_voip.pdf · rtp –real time...

35
RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina, CSc. RTP – přehled RTP – Real Time Protocol RTCP – Real Time Control Protocol ST-II Internet Stream Protocol – náhrada TCP, přenos streamů, řídicí protokol, datový přenos

Upload: others

Post on 27-Mar-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTP –Real Time protocol

Přednášky z projektování distribuovaných systémůIng. Jiří ledvina, CSc.

RTP – přehled

� RTP – Real TimeProtocol

� RTCP – Real TimeControl Protocol

� ST-II Internet StreamProtocol – náhrada TCP, přenos streamů, řídicíprotokol, datový přenos

Page 2: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTP - přehled

� Pouze část mozaiky: rezervace, OS, …

� Produkt IETF, RFC 1889, 1890 (3550, 3551)

� Iniciováno H.323 (konferencing, internetový telefon), RTSP, SIP

� Podpora pro funkce, nikoliv omezení implementací

� Komprese pro úzkopásmové sítě: CRTP (RFC 2508)

Cíle RTP

� Lehká kategorie: specifikace a implementace

� Přizpůsobivý: představuje mechanizmus, nediktuje algoritmus

� Protokolově neutrální: UDP/IP, ST-II, IPX, ATM-AAL, …

� Měřitelný (scalable): unicast, skupinový od 2 do cca 107

� Oddělené řízení a data: některé funkce mohou být realizovány protokolem pro řízení konference

� Bezpečný: podpora šifrování, možné ověřování

Page 3: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTP – transport dat

� RTP = data + řízení

� Data: časování, detekce ztrát, označování obsahu (značky), spřádání hovorů, šifrování

� Řízení: RTCP – Real Time Control Protocol� QoS zpětná vazba

� Odhad členství

� Detekce smyček

Funkce RTP

� Fragmentace a defragmentace pomocí UDP (nebo podobný protokol)

� Znovu uspořádání (pokud je to třeba)

� Detekce ztrát (pro odhad kvality), obnova

� Synchronizace uvnitř média

� odstranění „chvění“ zpoždění prostřednictvím přehrávací vyr. paměti

� vyrovnání vzorkovacích hodin

� synchronizace mezi audiem a videem

� QoS zpětná vazba a adaptace rychlosti

� Identifikace zdroje

Page 4: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Mixery a převodníky (translátory)

� Mixer: � Mixuje několik mediálních proudů na jeden nový proud (nové

kódování)

� Redukuje požadovanou šířku pásma

� Jeví se jako nový zdroj s vlastním identifikátorem

� Translátor:� Jeden mediální proud

� Může konvertovat kódování

� Transformace protokolu (nativní ATM – IP), obranné valy

� Pro všechny pakety: zdrojová adresa = adresa translátoru

Mixery a převodníky (translátory)

Page 5: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Záhlaví RTP paketu

Záhlaví RTP paketu

� payload type: metoda kódování audio/video, může se během relace měnit

� SSRC: synchronization source – zdroje vybírají náhodně, po kolizi se může měnit

� Sequence number: zvyšuje se o 1 pro každý paket → detekce ztrát paketů

� P: padding - dorovnání (pro šifrování) → poslední slabika má čítačdorovnání

� M: marker bit, počátek spřádání hovoru (talkspurt) → úprava zpoždění

� CC: kontent source count (pro mixery)� CSRC: identifikátory toho, co je mixováno v paketu� Leader extension: rozšířené hlavičky – pro různé způsoby kódování,

protokoly� H.261 – video� MPEG video� PCM audio

Page 6: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTP časové značky

� Zvyšuje se o 1 pro vzorek (např. 160 pro 20ms pakety a vzorkování 8000Hz)

� Náhodná počáteční hodnota

� Pro audio různé předem dané rychlosti

� Pro video 90 kHz

� Několik video rámců může mít tutéž časovou značku →mezery – ticho

� Čas na paket se může měnit

� Rozštěpení video rámce před pakety

� Typicky: 20 až 100ms zvuku

RTP v síti

� Používá UDP, libovolný port, RTCP = RTP+1

� Velikost UDP paketu omezena na stovky slabik (OS, síť, fragmentace)

� Nativní ATM: přímo do rámce AAL5

� Typicky: jedno médium (audio, video, … ) na pár portů

� Výjimka: svázaný MPEG

Page 7: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Struktura RTCP paketu

RTCP - typy

� Podobné datovým paketům

� SR – sender report:

� počet poslaných slabik → odhad rychlosti,

� časové značky → synchronizace

� RR – reception report:

� Počet poslaných a očekávaných paketů → ztráty, „chvění – jiter“ během příjmu, zpoždění oběhu

� BYE – explicitní ukončení – navíc (kromě timeoutu)

� APP – rozšíření – závislé na aplikaci

Page 8: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTCP – typy (pokračování)

� SDES – source description: jméno, e-mail, umístění,

� CNAME – canonical end-point identifier…

� Unikátní, identifikuje zdroj jestliže se SSRC změní

� Spojen s RTP relacemi

[email protected]éna

� NAME – uživatelské jméno (reálné jméno použité pro popis zdroje)

� EMAIL – adresa elektronické pošty – jmé[email protected]éna

� PHONE – číslo telefonu

� LOC – geografické umístění – řetězec

� TOOL – aplikace nebo jméno prostředku – ‘Videotool 1.2‘

� NOTE – poznámka nebo stav – popisuje aktuální stav zdroje.

RTCP – typy (SDES)

Page 9: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Výpočet intervalu oznamování

� Cíle:

� Odhad počtu a identifikace účastníků – dynamicky

� SDES → kdo komunikuje?

� Zpětná vazba QoS → nastavení rychlosti vysílání

� Do cca 1000 účastníků, několik % z dat

� Velikost skupiny omezená tolerovatelným stářím stavu

� Dává aktivním odesílatelům širší pásmo

� Změna stavu: vypustit je-li zticha

RTCP úprava šířky pásma

� Každý účastník periodicky multicastem RTCP paket do téže skupiny jako data

� Každý ví, kdo je zde

� Šířka pásma relace:� Jeden audio stream

� Suma souběžně aktivních video streamů

� Perioda odesílání RTCP pro odesílatele:

Page 10: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTCP úprava šířky pásma (pokračování)

� Perioda odesílání RTCP pro příjemce“

� next packet = last packet + max(5s, T) * random( 0.5 až1.5)

� prevence vzniku shluků

� další redukce šířky pásma pro RTCP – alternace mezi komponentami SDES

RTCP sender report (SR)

Page 11: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTCP sender report (SR)

� SSRC – identifikace zdroje dat

� Časová značka NTP – čas odeslání

� Časová značka RTP – odpovídající čas příjmu →synchronizace

� Čítač paketů odesílatele: celkový počet odeslaných paketů

� Čítač oktetů odesílatele: celkový počet odeslaných oktetů

� Mohou následovat reporty příjemce

RTCP reception report (RR)

Page 12: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTCP reception report (RR)

� SSRC of source: identifikuje původce záznamu

� Fraction lost: krátkodobé ztráty

� Cumulative number of packet lost: dlouhodobé ztráty

� Higest sequence number received: pro porovnání ztrát, přerušení spojení

� Interarrival jitter: vyhlazené „chvění“ mezi pakety

� LSR: čas posledního příjmu SR

� DLSR: zpoždění od posledního SR

Synchronizace

Synchronizace různých streamů audio, video, snímky, … )� Časové značky jsou často v náhodných intervalech

� Nemusí tikat nominální rychlostí

� SR slouží ke korelaci reálného času pomocí časových značek RTP

Page 13: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Agregace dat

� přenos více RTP streamů do téže cílovéoblasti

� velká režie: např. G.729, paletizace po 30ms, 30 slabik audio, 40 slabik záhlaví(IP+UDP+RTP)

� řešení: spojeníněkolika volání do jedné RTP relace, pro 24 kanálů využití 89%

Detekce kolizí a jejich řešení

� Kolize:

� dva zdroje mají stejné SSRC

� pro 1000 členů relace souběžně spojených je pravděpodobnost asi 10-4

� poslání BYE, získání nového identifikátoru

Page 14: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTP implementace

RTSP – Real-time Streaming

Protocol

Page 15: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Video on demand (video na přání)

� Používá Real-time Streaming Protocol

� Přehrávání i záznam synchronně, ne v striktním reálném čase

� Výuka, semináře

� Hlasová pošta

� Vzdálená digitální editace

� Instrukce (návody) na přání

� Internetové rádio

Aplikace:

Streaming media - problémy

� Šířka pásma: 64 až 128 kb/s pro zvuk, 1.5Mb/s pro movies

� Kvalita: ztráta paketů, předvídavost

� Spolehlivost: aby to vypadalo dobře

� Infrastruktura placení: placení za přehrávání?

� Laciné přehrávače: musí být lacinější než stávající

Page 16: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Streaming media - požadavky

� Získání média ze serveru� Video na přání – unicast vysílání

� Blízké video na přání – časově uspořádaný multicast

� Živé události – multicast

� Vzdálená digitální editace – uspořádaný seznam pro přehrávání, potřeba záznamu

� Možnost vzdáleného ovládání zařízení

� Integrace s konferencemi

Streaming média - použití

Page 17: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Streaming média - metasoubory

Streaming média – protokol RTSP

Page 18: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Protokoly pro přenos multimédií v reálném čase

� Rezervace zdrojů: RSVP

� Transport média: RTP

� Řízení streamu: RTSP

� Popis streamu: SDP (Session Description Protocol), SMIL (Streaming media interchange language), …

Vlastnosti RTSP

� Hrubá synchronizace (doladění – RTP sender report)

� Virtuální prezentace = synchronizované přehrávání od několika serverů – časování příkazů

� Vyrovnávání zdrojů – redirekce

� Podpora libovolného popisu relace

� Podpora ovládání zařízení (např. kamera)

� Vyrovnávací paměti – obdoba http

Page 19: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTSP relace

� TCP spojení se od RTSP relace liší – relace udržována podle identifikátoru

� Jedno TCP spojení na relaci – obranné valy, obousměrné

� Jedno TCP spojení pro 1 a více příkazů

� UDP� Použití multicastu, malé zpoždění

Podobnosti RTSP a HTTP

� Formát protokolu: text, MIME záhlaví

� Typu požadavek/odpověď (požadavek, záhlaví, vlastnídata)

� Stavové kódy

� Bezpečnostní mechanizmy

� Formát URL

� Vyjednávání obsahu

Page 20: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Odlišnosti RTSP a HTTP

� Stavový server

� Odlišné metody

� Data přenášena mimo pásmo

� Odstranění HTTP chyb� Požadavky s relativními cestami

� Bez mechanizmu rozšiřování

� Kódování 8859.1

RTSP - operace

Page 21: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTSP URL

� Celá prezentace: rtsp://host:554/prezentace

� Stopa v prezentaci: :rtsp://host:554/prezentace/audiostopa

� Hierarchie jmen neodpovídá ani hierarchii média, ani souborovému systému

� Integrace do webu

� Webová stránka s popisem

� Obsahuje odkaz na popis prezentace:

RTSP – integrace do webu

� RTSP vytvoří spojení a přenese řízení� RSVP rezervuje zdroje� RTP přenese data� Metody RTSP

� OPTIONS získání dostupných metod� SETUP vytvoření transportního spojení� ANNOUNCE změna popisu mediálního objektu� DESCRIBE získání popisu mediálního objektu� PLAY spuštění přehrávání, změna pozice� RECORD start záznamu� REDIRECT přesměrování klienta na nový server� PAUSE pozastavení přenosu� SET_PARAMETER ovládání zařízení nebo kódování� TEARDOWN zrušení stávajícího stavu

Metody mohou být zřetězeny

Page 22: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTSP – integrace do webu (pokračování)

� RTSP čas� Normální čas přehrávání: v sek. a mikrosekundách

� Časové značky (sekundy, rámce)

� Absolutní čas (živé události) – časování v absolutním čase

� RTSP hlavičky - příkazy� Accept – media description formats

� Accept-Encoding – encoding of media format

� Accept-Language – human language

� Authorization – basic and digest authentication

� Bandwidth – client bandwidth available

� Conference – conference identifier

� From – name of requestor

RTSP – integrace do webu (pokračování)

� RTSP hlavičky - příkazy� If-modified-Since – conditional retrieval� Range – time range to play� Referer – how did we get here?� Scale – (play time)/(real time)� Speed – speed-up delivery� User-Agent – software

� RTSP hlavičky – odpovědi� Location – redirection� Proxy-Authenticate – authenticate to proxy� Public – methods supported� Retry-After – busy, come back later� Server – server software� Vary – cache tag� WWW-Authenticate – request authorization

Page 23: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTSP – příklad komunikace (získánístreamu)

RTSP – příklad komunikace (otevřenístreamu)

Page 24: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTSP – příklad komunikace (otevřenístreamu)

RTSP – příklad komunikace (přehrávání)

Page 25: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTSP – příklad komunikace

(přehrávání)

RTSP – příklad komunikace (ukončenírelace)

Page 26: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

RTSP – příklad komunikace

RTSP Redirect

RTSP Record

Voice over IP

Page 27: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

IP telefonie

VoIP - architektura

Page 28: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

SIP – zásobník protokolů

Protokol H.323

� Určený pro přenos multimediální informace paketovými sítěmi

� Doporučení ITU, 1. verze 1996, 4. verze 2000

� Zastřešující standard� H.225.0 – hovorová signalizace

� Q.931 – signalizační protokol dle L3 ISDN (přenos ypráv H.225.0)

� H.245 – vyjednávání parametrů multimediálních kanálů

� H.235 – bezpečnostní a ověřovací mechanizmy

� RTP – přenos dat v reálném čase

� H.450.x – doplňkové služby

� a další

� Zprávy popsány ASN.1, kódování PER (Packed Encoding Rules)

Page 29: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Entity H.323

� Terminál – IP telefon, počítač s VoIP

� Brána – komunikace se zařízeními v jiné komunikační síti� MGC – Media Gateway Controller – signalizace

� MG – Media Gateway – směrování audio/video streamů

� Konferenční jednotka – MCU – Multipoint Controller Unit� MC – Multipoint Controller – signalizace během konference

� MP – Multipoint processor – obsluha multimediálních kanálů

� Gatekeeper – centrální jednotka - překlad adres a řízení provozu

H.323 komunikace

� Komunikace terminál – gatekeeper, gatekeeper –gatekeeper� Port 1719/UDP, 1718/UDP – multicast

� Používá H.225.0-RAS (registration, Admission, Status) –registrace, povolení hovoru, ukončení hovoru

� Multicast pro komunikace s gatekeepery 224.0.1.41

Page 30: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

H.323 komunikace (pokračování)

� Komunikace terminál – terminál� Signalizace Q.931

� Přenos zakódované zprávy H.225.0 jako blok dat v Q.931 (PER)

� Q.931 se přenáší TCP/1720

� Vyjednávání parametrů� H.245 – volba kodeků, čísla portů (RTP)

� Separátní TCP spojení (základní verze)

SIP (Session Initiation

protocol)

Page 31: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

SIP – použité protokoly

SIP – architektura

� Koncové zařízení – User Agent� Servery

� Proxy server– jeho úkolem je směrovat hovorovou signalizaci mezi koncovými zařízeními. Proxy servery mohou být takézřetězeny.

� Redirect server – provádí přesměrování hovorů na jinou adresu, obvykle je implementován jako součást proxy serveru.

� Registrar – registruje koncová zařízení a poskytuje služby převodu SIPové adresu na aktuální umístění (IP adresu).

Page 32: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

SIP� RFC 2543� SIP/SDP – Session Initiation

Protocol/Session Description Protocol

� Vychází z HTTP (požadavek, odpověď)

� Požadavek:<řádek požadavku><hlavička zprávy>CRLF<tělo zprávy>

� Odpověď:<stavový řádek><hlavička zprávy>CRLF<tělo zprávy>

� Návratové kódy100 Trying180 Ringing181 Call is Being Forwarded200 OK300 Multiple Choices301 Moved Permanently302 Moved Temporarily400 Bad request401 Unautorized482 Loop Detected486 Busy Here500 Server Internal Error600 Busy Everywere

SIP - adresování

Page 33: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

SIP – příkazy (výběr)

� INVITE – žádost o vytvoření relace

� ACK – potvrzuje vytvoření relace (použití např. po předchozím INVITE)

� BYE – ukončuje relaci

� CANCEL – ruší předchozí INVITE

� OPTIONS – dotaz na schopnosti protistrany

� REGISTER – registrace adresy na SIP registraru –vytvoří vazbu mezi trvalou (SIPovou) adresou a aktuálním umístěním (tj. IP adresou). SIP pracuje s adresami ve tvaru URL, např. “sip:[email protected]”.

SIP - příklad

Př. vytvoření spojení

Page 34: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Navázání spojení = proxy

Navázání spojení - redirect

Page 35: RTP –Real Time protocol - zcu.czledvina/Prednasky-PDS-2007/09a-rtp_VoIP.pdf · RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina,

Kodeky