Przekazy multimedialne

ITpedia

Działanie protokołu RTP w sieci IP
Działanie protokołu RTP w sieci IP

Przekazywane na żywo lub uprzednio zapisane informacje audio i wideo stanowią rdzeń aplikacji i usług multimedialnych. Nadal pojawiają się nowe rozwiązania i protokoły umożliwiające tworzenie różnorodnych treści i pracę w trybie czasu rzeczywistego (real time) lub „zapamiętaj i prześlij” (store-and-forward). Dla tych zastosowań można wyróżnić dwa podstawowe podejścia do przesyłania strumieni medialnych: tworzenie strumieni czasu rzeczywistego oraz operacji „ściągnij i odtwórz” (download and play), stosownej dla przekazów „zapamiętaj i prześlij”.

W trybie strumieniowym do urządzenia użytkownika końcowego przekazywany jest kod audio/wideo, a sama prezentacja rozpoczyna się z chwilowym opóźnieniem spowodowanym koniecznością buforowania informacji. W trybie „ściągnij i odtwórz” wstępnie zapisane zbiory przesyła się do urządzenia użytkownika końcowego w całości, zanim jeszcze nastąpi ich prezentacja lub wykorzystanie.

Przesyłanie strumieni multimedialnych przez Internet wymaga określonego systemu kodowania i kompresji, takiego jak MPEG (Motion Picture Experts Group), oraz protokołów zapewniających odpowiedni poziom usług QoS. Dla takich zastosowań korzysta się z protokołów RSVP, RTP, RTCP oraz IPM (IP Multicasting) dla trybu rozsiewczego lub multicastingu (rozgłaszanie grupowe). Ostatnio do przesyłania strumieni danych multimedialnych przez Internet coraz częściej stosuje się protokoły RTSP i SCP.

Protokół czasu rzeczywistego RTP (Real-time Transport Protocol) zapewnia usługi dostarczane jako end-to-end, wspierające aplikacje transmisji danych w trybie czasu rzeczywistego, takie jak: przekazywanie interaktywnych danych audio i wideo z wykorzystaniem usług sieci multicast i unicast. Protokół ten został zdefiniowany w dokumencie IETF RFC 1889 razem z profilem dla przenoszenia sygnałów audio i wideo przez RTP (specyfikacja RFC 1890). Usługi protokołu RTP obejmują jedynie identyfikację typu ładunku (payload), numerowanie sekwencji i umieszczanie znaczników czasowych. Dostarczenie danych jest monitorowane za pomocą ściśle zintegrowanego protokołu RTCP. Protokół RTP nie ma żadnych mechanizmów zapewniających dostarczenie pakietów w odpowiednim czasie lub gwarancji QoS. Nie gwarantuje dostawy, nie zapobiega nieprawidłowościom dostawy ani nie bierze na siebie odpowiedzialności za stabilne działanie sieci.

RTCP (Real-Time Control Protocol) jest protokołem sterującym, który pracuje łącznie z RTP. Pakiety sterujące RTCP są okresowo wysyłane przez aplikację każdego uczestnika sesji RTP do pozostałych uczestników, w celu zebrania informacji o cechach środowiska sieciowego. Uzyskane w ten sposób informacje (ze sprzężenia zwrotnego w kierunku aplikacji), można wykorzystać do sterowania wydajnością trasowania i dla celów diagnostycznych.

RTSP (Real-Time Streaming Protocol) jest pomyślany jako silny protokół dla przesyłania strumienia multimedialnego z jednej do wielu aplikacji, z wykorzystaniem technik multicast i unicast oraz wspierania współdziałania pomiędzy klientami a serwerami różnych producentów. Przesyłanie strumienia polega na dzieleniu danych na pakiety o odpowiedniej wielkości dla pasma, które jest aktualnie dostępne między klientem a serwerem. Celem takiego przesyłania jest sterowanie wieloma sesjami dostarczania danych oraz zapewnienie sposobu wyboru kanałów dostawczych, takich jak UDP, TCP, IP Multicast, lub mechanizmów opartych na protokole RTP.

RTSP został tak opracowywany, aby mógł funkcjonować ponad protokołem RTP – sterując dostarczaniem danych w czasie rzeczywistym. Można go również stosować łącznie z protokołem RSVP (Resource Reservation Protocol), w celu zestawiania i zarządzania sesjami przesyłania strumieni multimedialnych z rezerwacją pasma. RTSP korzysta standardowo z protokołu SCP (Session Control Protocol) do realizacji pojedynczego połączenia TCP pomiędzy klientem a serwerem, podczas sterowania jednym lub wieloma strumieniami.

Sterowanie sesją

Do inicjowania sesji stosuje się zdefiniowany w dokumencie RFC 2543 protokół SIP (Session Initiation Protocol). Jest to protokół sterujący warstwy aplikacji, mogący zestawiać, modyfikować i kończyć wywołania lub sesje multimedialne. SIP w sposób transparentny wspiera odwzorowanie nazw i przeadresowywanie usług, pozwalając na implementację ISDN i telefonicznych usług abonenckich sieci inteligentnej IN (Intelligent Network). Protokół obejmuje pięć aspektów zestawiania i kończenia przekazów multimedialnych:

  1. lokalizację użytkownika – ustalenie systemu końcowego zastosowanego w komunikacji;
  2. możliwości użytkownika – określenie użytego medium i jego parametrów;
  3. osiągalność użytkownika – ustalenie gotowości wywoływanej strony do zaangażowania się w komunikację;
  4. zestawienie wywołania (dzwonienie) i ustalenie parametrów wywołania po stronie wywołującej i wywoływanej;
  5. utrzymanie wywołania – obejmujące transport sygnału i zakończenie wywołania.

Protokół SIP został zaprojektowany jako część kompletnej architektury danych i sterowania multimediami, obecnie obejmującej następujące protokoły: RSVP – jako RFC 2205 (Resource Reservation Protocol), użytkowany do rezerwacji zasobów sieciowych; protokół RTP – RFC 1889 (Real Time Transport Protocol), służący do przenoszenia danych w trybie czasu rzeczywistego i zapewnienia sprzężenia zwrotnego QoS; protokół RTSP – RFC 2326 (Real-Time streaming Protocol), przeznaczony do sterowania dostarczaniem strumienia mediów; protokół SAP (Session Announcement Protocol), stosowany do ogłaszania sesji multimedialnych za pośrednictwem funkcji multicasting oraz protokół SDP – RFC 2327 (Session Description Protocol), służący do opisu sesji multimedialnych.

Podczas realizacji wywołania sesji SIP abonent wywołujący najpierw lokalizuje odpowiedni serwer, a następnie wysyła żądanie. Najbardziej powszechną operacją protokołu jest zaproszenie SIP. Zamiast docierać wprost do planowanego wywołującego, z którym chce się połączyć, żądanie SIP może zostać przekierowane lub może wyzwolić łańcuch nowych żądań protokołu SIP przez serwer zastępczy (proxy).

-
-