Transportní protokol v reálném čase

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 15. listopadu 2014; kontroly vyžadují 25 úprav .

Protokol RTP ( Real-time Transport Protocol ) funguje na aplikační vrstvě (OSI-7) a používá se při přenosu provozu v reálném čase .  Protokol byl vyvinut skupinou Audio-Video Transport Working Group při IETF a poprvé publikován v roce 1996 jako RFC 1889 ( RFC 1889 je zastaralý od RFC 3550 v roce 2003).

Protokol RTP nese ve své hlavičce data nezbytná k obnově audio dat nebo video obrazu na přijímacím uzlu a také data o typu kódování informací ( JPEG , MPEG atd.). V hlavičce tohoto protokolu je přenášeno zejména časové razítko a číslo paketu. Tyto parametry umožňují s minimálním zpožděním určit pořadí a okamžik dekódování každého paketu a také interpolovat ztracené pakety.

RTP nemá standardní rezervované číslo portu. Jediným omezením je, že spojení je vytvořeno pomocí sudého čísla a další liché číslo se používá pro komunikaci RTCP . Skutečnost, že RTP používá dynamicky přidělované adresy portů, ztěžuje jeho průchod přes firewall . K obejití tohoto problému se obvykle používá server STUN .

Navázání a odpojení spojení není zahrnuto ve výčtu schopností RTP, takové akce provádí signalizační protokol (například protokol RTSP nebo SIP ).

Popis protokolu

RTP byl navržen jako end-to-end protokol pro streamování dat v reálném čase . Protokol zahrnuje schopnost kompenzovat jitter a detekovat datové pakety mimo sekvenci – typické události během přenosu přes IP sítě. RTP podporuje přenos dat mezi více cíli prostřednictvím Multicast . [1] RTP je považován za hlavní standard pro přenos hlasu a videa po sítích IP a společně s kodeky.

Aplikace, které generují toky v reálném čase , vyžadují včasné doručení informací a mohou tolerovat určitou ztrátu paketů, aby dosáhly tohoto cíle. Například ztráta paketů ve zvukové aplikaci může mít za následek zlomek sekundy ticha, které nemusí být patrné pomocí vhodných algoritmů pro zakrytí chyb. [2] Protokol TCP , ačkoli je standardizován pro přenos RTP, [3] se v aplikacích RTP obecně nepoužívá, protože spolehlivost přenosu v TCP generuje časová zpoždění. Místo toho je většina implementací RTP založena na UDP . Kromě toho existují další specifikace pro transportní protokoly SCTP a DCCP , ale nejsou široce používány. [4] [5]

Komponenty protokolu

Specifikace RTP popisuje čtyři dílčí protokoly:

Relace

Pro každý mediální tok je vytvořena relace RTP. Relace se skládá z IP adresy a dvojice portů pro RTP a RTCP. Například audio a video streamy budou mít různé RTP relace, což umožní přijímači alokovat pro to specifický stream. [6] Porty, které tvoří relaci, spolu komunikují pomocí jiných protokolů, jako je SIP (obsahující ve svých zprávách protokol SDP [7] ) a RTSP (používá SDP v metodě Setup). Podle specifikace nemá RTP standardní rezervované číslo portu. Jediným omezením je, že spojení je vytvořeno pomocí sudého čísla a další liché číslo se používá pro komunikaci RTCP . RTP a RTCP obvykle používají neprivilegované porty UDP (16k-32k), ale lze použít i jiné porty, protože samotný RTP je nezávislý na transportní vrstvě.

Struktura balíčku

+ Bity 0-1 2 3 4-7 osm 9-15 16-31
0 Ver. P X CC M PT Sériové číslo
32 Časové razítko
64 SSRC identifikátor
96, pokud CC>0 [identifikátory CSRC]
96+(CC×32), pokud X=1 [Název rozšíření – hodnota definovaná profilem ] [Hlavička rozšíření – počet 32bitových datových bloků (EHL)]
96+(CC×32)+32 [Záhlaví rozšíření – datové bloky]
96+(CC×32)+X*(32+32×EHL)  
Data
 
pokud P=1 Výplňové údaje L

0-1 - Ver . (2 bity) označuje verzi protokolu. Aktuální verze je 2.
2 - P (jeden bit) se používá v případech, kdy je RTP paket doplněn prázdnými bajty na konci.
3 - X (jeden bit) se používá k označení rozšíření protokolu zahrnutých v paketu.
4-7 - CC (4 bity) obsahuje počet CSRC identifikátorů následujících za trvalou hlavičkou.
8 - M (jeden bit) se používá na aplikační úrovni a je definován profilem. Pokud je toto pole nastaveno, pak data balíčku mají pro aplikaci nějaký zvláštní význam.
9-15 - PT (7 bitů) označuje formát užitečného zatížení a určuje jeho interpretaci aplikací.
64-95 - SSRC označuje zdroj hodin.
EHL (Extension Header Length) - počet 32bitových slov v datovém bloku rozšíření hlavičky.
L je poslední bajt v paketu, definující délku výplňové oblasti v bajtech (používá se pro zarovnání v posledním paketu).

Specifikace RTP

Viz také

Odkazy

Poznámky

  1. Daniel Hardy. Síť  (neopr.) . - De Boeck Université, 2002. - S.  298 .
  2. Colin Perkins, str. 46
  3. RFC 4571
  4. Farrel, Adrian. Internet a jeho protokoly  (neopr.) . - Morgan Kaufmann , 2004. - S. 363. - ISBN 9781558609136 .
  5. Ozaktas, Haldun M.; Levent Onural. TROJROZMĚRNÁ TELEVIZE  (neurčité) . — Springer, 2007. - S. 366. - ISBN 9783540725312 .
  6. Zurawski, Richard. Protokoly RTP, RTCP a RTSP // Příručka průmyslových informačních technologií  . - CRC Press , 2004. - S.  28-7 . — ISBN 9780849319853 .
  7. RFC 4566 : SDP: Session Description Protocol , M. Handley, V. Jacobson, C. Perkins, IETF (červenec 2006)