Czym jest RTP – protokół czasu rzeczywistego?

RTP (skrót ang. Real Time Protocol) – protokół czasu rzeczywistego. Jest to standardowy format pakietu do transportu danych czasu rzeczywistego takich jak audio i wideo przez internet. Protokół ten został zdefiniowany w dokumencie RFC 1889. Został opracowany przez Internet Engineering Task Force (IETF), która stworzyła grupę roboczą Audio Video Transport, i po raz pierwszy opublikowany w 1996 roku. RTP jest szeroko stosowany w systemach komunikacyjnych i rozrywkowych związanych z transmisją danych i mediów w czasie rzeczywistym, takich jak telefony, aplikacje do wideokonferencji, usługi telewizji internetowej (IPTV) i funkcje push-to-talk w Internecie. RTP jest wykorzystywane zarówno w usługach multicast, jak i unicast.

RTP – Real-time Transport Protocol

Protokół RTP jest używany w połączeniu z protokołem RTP Control Protocol (RTCP) oraz Session Initiation Protocol (SIP). Podczas gdy RTP przesyła strumienie multimedialne (np. dźwięk i wideo), pakiety RTCP służą do monitorowania statystyk transmisji oraz danych o jakości usługi (QoS), takich jak jitter, utrata pakietów (identyfikowana za pomocą numeru sekwencyjnego) oraz czas okrężny (round-trip time). RTCP pomaga także w synchronizacji wielu strumieni. Sesje RTP rozpoczynają się i są odbierane na numerach portów parzystych, a skojarzona komunikacja RTCP używa następnego wyższego portu nieparzystego. Dla ruchu RTP można używać dowolnych numerów portów, chociaż zazwyczaj porty te mieszczą się w zakresie od 1024 do 65535. RTP stanowi jedną z podstaw VoIP i jest wykorzystywane w połączeniu z SIP, który pomaga w ustawieniu połączeń w sieci.

Jakie są zalety i zastosowania RTP?

Jak wskazuje jego nazwa, celem projektowym RTP jest transmisja danych multimedialnych w czasie rzeczywistym od końca do końca przez sieci i internet. Ze względu na strukturę internetu, pakiety RTP są odbierane w różnych odstępach czasowych, co nazywane jest “jitter”. RTP zawiera mechanizmy kompensacji jittera, wykrywania utraty pakietów oraz dostarczania danych w złej kolejności. Aby to osiągnąć, RTP kompensuje, priorytetowo traktując szybkie dostarczanie pakietów, zamiast zapewniania, że wszystkie pakiety danych zostaną odebrane.

Przykładem tego jest sytuacja, gdy ktoś ogląda wideo online. Strumień wideo używa RTP do przesyłania danych wideo do urządzenia użytkownika. Jeśli niektóre pakiety danych zostaną utracone lub opóźnione, RTP naprawia błąd, co skutkuje utratą kilku klatek lub ułamka sekundy wideo. Efekt uboczny może być na tyle mały, że użytkownik nie zauważy go wcale.

Ponieważ RTP umożliwia równoczesne przesyłanie danych do wielu punktów docelowych za pomocą IP multicast, jest to główny standard stosowany w przesyłaniu dźwięku i wideo w sieciach IP. Mechanizmy związane z profilem i formatem ładunku, odwołujące się do projektu architektury RTP, są implementowane na poziomie warstwy aplikacji, a nie warstwy systemu operacyjnego.

Wykorzystanie RTP w aplikacjach VoIP

Aplikacje takie jak VoIP, które wymagają przesyłania multimedialnych danych w czasie rzeczywistym, zazwyczaj potrzebują terminowej dostawy danych, z różnym poziomem tolerancji na utratę pakietów. Na przykład, utrata pakietów audio w aplikacji VoIP może spowodować utratę kilku milisekund danych dźwiękowych. Taka utrata może być odpowiednio obsługiwana przez algorytmy kompensacji błędów, co sprawia, że jest nieistotna i niezauważalna dla dzwoniącego. TCP (Transmission Control Protocol) jest również standaryzowany do użytku z RTP, chociaż nie jest zazwyczaj stosowany w aplikacjach ze względu na swoje mechanizmy kontroli błędów, które mogą powodować opóźnienia i wpłynąć na terminową dostawę pakietów. Z tego powodu, większość aplikacji RTP opiera swoje implementacje na UDP (User Datagram Protocol).

Więcej informacji