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 ).
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]
Specifikace RTP popisuje čtyři dílčí protokoly:
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ě.
|
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).
protokoly TCP /IP podle vrstev modelu OSI | Základní|
---|---|
Fyzický | |
odvedeny | |
síť | |
Doprava | |
zasedání | |
Zastoupení | |
Aplikovaný | |
Uplatněno jiné | |
Seznam portů TCP a UDP |