A. Ciarkowski, KSM WETI PG Transmisja multimediów w sieciach IP Protokoły Voice/Video over Data Usługi multimedialne 1
Protokoły UDP i TCP w transmisji multimediów NAT Traversal Wsparcie dla transmisji multimediów w protokole IPv6 Multicasting Quality of Service Brak strat (reliability) pakiet dociera do miejsca przeznaczenia Niskie opóźnienia pakiet możliwie szybko dociera do miejsca przeznaczenia Niewielki narzut protokołu nagłówki dodawane przez protokół transmisyjny są zaniedbywalnie małe w stosunku do danych (payload) Stabilność transmisji dane są odbierane z tą samą prędkością, z jaką są nadawane 2
UDP Nagłówek 8B Bezpołączeniowy Brak mechanizmu retransmisji i kontroli przepływu Mniejsze opóźnienia Straty Zaburzenia sekwencyjności TCP Nagłówek 20B Połączeniowy Mechanizm retransmisji i kontroli przepływu Większe Opóźnienia Brak strat Zachowanie sekwencyjności Nagłowek warstwy sieciowej (IP) Nagłówek warstwy transportowej (UDP, TCP) Nagłówek warstwy aplikacyjnej (np. RTP) dane ramki (payload) Przykład: bitrate 16kbps, ramka 20ms Ramka = 40B + nagłówek RTP = 52B + nagłówek UDP = 60B + nagłówek IP = 80B Rzeczywisty bitrate: 32kbps 3
700% 600% narzut [%] 500% 400% 300% UDP, 20ms TCP, 20ms UDP, 10ms TCP, 10ms 200% 100% 0% 0 5000 10000 15000 20000 25000 30000 35000 40000 bitrate [bps] UDP Prymitywny protokół Niewielki nakład pracy w urządzeniach pośredniczących Przekazywanie pakietów w sieci odbywa się w sposób bezsesyjny (bezstanowy) Niewielkie opóźnienia TCP Transmisja sesyjna urządzenia pośredniczące utrzymują maszynę stanu dla każdego połączenia Mechanizmy kontroli transmisji wymuszają retransmisję utraconych pakietów i mogą ograniczać pasmo Efektem są znaczne opóźnienia 4
UDP Każdy pakiet wysyłany jest tylko 1 raz Transmisja bez potwierdzeń Uszkodzenie fragmentu sieci lub tłok (congestion) w urządzeniu pośredniczącym prowadzą do utraty pakietu TCP Transmisja z potwierdzeniami kolejny pakiet jest wysyłany dopiero po potwierdzeniu odbioru poprzedniego Transmisja jest ponawiana w przypadku braku potwierdzenia w określonym czasie protokół zapewnia reliability Przewlekłe utraty pakietów prowadzą do zerwania sesji W niektórych urządzeniach sieciowych obsługa ruchu UDP ma priorytet nad TCP Protokół UDP bywa częściej blokowany przez administratorów W przypadku protokołu UDP jest znacznie więcej szans nawiązania sesji P2P w obecności urządzeń takich jak NAT, Firewall 5
Większość urządzeń konsumenckich IP znajduje się za urządzeniami typu NAT (Network Address Translator translator adresów) Ograniczona pula adresów IPv4 wymusza stosowanie translacji Bez stosowania specjalnych technik NAT traversal nie jest możliwe nawiązanie sesji komunikacji multimedialnej w kierunku urządzenia znajdującego się za translatorem adresu 1 podejście: odwrócić kierunek łączenia... a gdy obydwa urządzenia są za NAT-em? częste w przypadku VoIP Zastosowanie pośrednika (relay) kosztowne w sensie zasobów pośrednika, zwiększone opóźnienia Techniki NAT Hole Punching metodologia STUN, ICE skuteczność ~85-90% - w zasadzie tylko dla UDP UPnP wsparcie po stronie niektórych urządzeń IGD (Internet Gateway Device) ALG Application Layer Gateway NAT dokonuje inspekcji pakietów i nadpisuje ich treść Więcej na ten temat: http://tools.ietf.org/html/rfc5389 6
Duża przestrzeń adresowa zarezerwowana dla adresów Multicast i zarządzanie grupami MC w protokole ICMPv6 Wsparcie dla mechanizmów QoS (nagłówki priority i flow label) Realizacja idei Integrated Services obsługa ruchu real-time na równi z best-effort Więcej informacji: http://tools.ietf.org/html/rfc1633 Dystrybucja 1 do wielu Odbiorca widziany jako pojedynczy adres grupa multicastowa Informacja przekazywana do grupy multicastowej pokonuje dane łącze jednokrotnie większa efektywność wykorzystania łączy niż w przypadku transmisji unicast Zastosowania: telewizja i radio internetowe, telekonferencje 7
Wymagania nałożone na połączenie telekomunikacyjne realizowane przez sieć Kształtowanie i ograniczanie przepustowości Sprawiedliwy dostęp do zasobów Priorytetyzacja ruchu Zarządzanie opóźnieniami w transmisji pakietów Określona charakterystyka gubienia pakietów Pole Type of Service w nagłówku IP Mała ziarnistość kontroli Niejednoznaczna interpretacja Bardzo często ignorowane, urządzenia pośredniczące mają prawo dowolnie modyfikować pole ToS przesyłanych pakietów Windows XP i nowsze niemodyfkowalne bez uprawnień administratora, silently ignored 8
Resource Reservation Protocol rezerwacja zasobów sieciowych Precyzyjna kontrola min., max. pasmo, żądane gwarancje Traffic shaper wymusza interwał nadawania Stosowanie w Internecie mocno wątpliwe tylko sieci pod kontrolą (wymaga implementacji end-to-end) Pojęcia VoIP, VoATM, VoTDM Sygnalizacja Streaming Rozwiązania hybrydowe 9
VoIP: Voice/Video over IP Telefonia IP Od instalacji budowanych przez operatorów telekomunikacyjnych po niewielkie, domowe VoATM To samo, ale w sieci ATM Sieć szkieletowa operatorów telekomunikacyjnych VoTDM Ogólny termin, określający multipleksację wielu połączeń VoD w ramach pojedynczego połączenia Pozwala znacząco zmniejszyć narzut protokołów VoIP Wykorzystywane do realizacji połączeń pomiędzy punktami zbiorczymi urządzeniami Media Gateway itp.. Sygnalizacyjne transmisja danych kontrolnych połączenia (sesji) Inicjowanie, modyfikacja i kończenie sesji Adresacja Usługi dodatkowe, np. SMS, Voice Mail itp. Przykłady: SIP, RTSP, XMPP/Jingle Streaming transmisja danych multimedialnych Przykłady: RTP Zintegrowane (sygnalizacja + streaming) Przykłady: H.323, IAX2 10
Protokół tekstowy Transport UDP Architektura Podstawowa funkcjonalność: rejestracja i nawiązanie połączenia Rozszerzenie SIMPLE: instant messaging & presence Łączność zza NAT-a Opis sesji protokół SDP (podobnie jak w RTSP) Format wiadomości jak w HTTP, obsługa MIME Istotne różnice UTF-8 Kolejność nagłówków ma znaczenie Szyfrowanie S/MIME tylko payload! Format tekstowy łatwy do debugowania Bezpieczeństwo! 11
Brak sesji większa wydajność i skalowalność Stateless proxy Straty wymagana rozbudowana warstwa transakcyjna Alternatywne transporty: TCP i TLS W przyszłości: DTLS SIP Client 1 SBC Registrar Media Gateway SIP Client 2 SIP Proxy Sygnalizacja Media 12
Rejestracja związanie aktualnego adresu Internetowego klienta (kontaktu) z jego publicznym ID (SIP URL) Nawiązanie połączenia (sesji) metoda INVITE 13
Komunikator internetowy Przesyłanie krótkich wiadomości tekstowych metoda MESSAGE W kontekście istniejącego połączenia Poza połączeniem Publikowanie informacji o dostępności/statusie użytkownika (presence) Bramka SIP/XMPP Nagłówek Via Routing symetryczny: rport Mechanizmy keep-alive Wykorzystanie STUN/TURN Zbyt mądre NAT-y 14
Wymiana informacji o parametrach sesji Typ mediów (audio/video) Transport (RTP) Adresy (IP i port RTP) Obsługiwane kodeki (payload map) Kierunek transmisji 1. Inicjator przysyła listę obsługiwanych kodeków w SIP INVITE priorytet: kolejność na liście 2. Odbiorca ustala wspólny podzbiór i odsyła zmodyfikowany payload map w odpowiedzi 15
Powtórna wiadomość SIP INVITE ze zmodyfikowanym opisem SDP Zastosowanie: funkcja HOLD Zmiana adresu IP RTP na 0.0.0.0 Zmiana kierunku sesji music on hold Podstawowa funkcjonalność RTP Transmisja kodów DTMF Kodowanie szumu komfortowego RTP via NAT 16
Porządkowanie pakietów Wykrywanie straty pakietu Identyfikacja nadawców w miksie Identyfikacja ładunku Zastosowanie: automaty IVR i inne aplikacje telefoniczne In-band signalling Kodek telephone-event (RFC 2833) 17
Mechanizm early media/address & port latching Bezpieczeństwo! Metodologia ICE (draft-ietf-mmusic-ice-13) Inter-Asterisk Exchange, wersja 2 Stworzony w celu łączenia internetowych centralek PBX Asterisk Podstawowe cele: Minimalizacja pasma Redukcja problemów z NATami Dwa protokoły w jednym: sygnalizacja i dane 18
Trzy rodzaje ramek Full frame Mini frame Meta frame Wsparcie dla szyfrowania (AES) IAX2 może przenosić oprócz dźwięku także wideo, tekst, obraz Popularna implementacja: iaxclient Sygnalizacja i dane w jednym strumieniu UDP Trunking Wykorzystanie jednego portu Protokół binarny Dane przechodzą zawsze przez serwer Prosty protokół (mniejszy zakres zastosowań) Brak standaryzacji (draft, nie RFC) 19
Technika progressive download Internet broadcasting MMS Zastosowania: odtwarzanie multimediów z poziomu języka Flash Wszystkie najpopularniejsze serwisy (YouTube, etc) Odtwarzanie odbywa się na zasadzie pobierania pliku, który jest równocześnie odtwarzany To nie jest streaming plik jest przechowywany lokalnie operacje cofania odwołują się do już pobranego pliku (w streamingu żądanie jest wysyłane do nadawcy, który modyfikuje pozycję w strumieniu) zmiana położenia w pliku w przód wymaga rozpoczęcia pobierania od wybranej pozycji 20
Radio i telewizja internetowa Potencjalne zastosowanie Multicast Protokół RTSP (mutacja HTTP) kontroluje odtwarzanie (funkcje play, stop itp.) Protokół RTP transmisja mediów Wymaga sieci pakietowej z dostępem do Internetu lub intranetu Wysyłanie wiadomości: umieszczenie jej na serwerze centrum wiadomości multimedialnych Odbiór wiadomości: powiadomienie SMS zawierające link do wiadomości na serwerze U wybranych operatorów możliwość obejrzenia wiadomości bezpośrednio na serwerze poprzez Internet 21