Systemy i terminale multimedialne – laboratorium 2020
Ćwiczenie 3: Internetowa strumieniowa transmisja obrazu
Autor: Grzegorz Szwoch, greg@multimed.org, Katedra Systemów Multimedialnych, WETI PG
Wstęp
Niniejsza instrukcja opisuje sposób wykonania w wersji zdalnej ćwiczenia dotyczącego strumieniowania obrazu w sieci. Standardowo ćwiczenie to wykonywane jest w laboratoriach WETI i polega na przesyłaniu strumieniowym obrazu ruchomego z kamery pomiędzy komputerami znajdującymi się w sieci lokalnej. Ćwiczenie w tej formie jest trudne do wykonania przez pojedyncze osoby w formie zdalnej, wymaga bowiem co najmniej dwóch komputerów w podsieci lokalnej. Aby ułatwić wykonanie ćwiczenia, studenci otrzymają gotowe zapisy transmisji sieciowej. Zadaniem studentów jest analiza ruchu sieciowego i porównanie różnych trybów strumieniowania.
Oryginalna instrukcja do ćwiczenia 3, znajdująca się na stronie WWW Katedry: https://multimed.org/student/instr/stm/stm03.pdf, zawiera wstęp teoretyczny oraz oryginalne polecenia. Niniejszy dokument zawiera polecenia do wykonania ćwiczenia w formie zdalnej, zastępują one polecenia z oryginalnej instrukcji. Pominięto nawiązywanie połączenia, strumieniowanie obrazu oraz ocenę jakości transmisji.
Do wykonania ćwiczenia potrzebny jest darmowy program Wireshark, dostępny ze strony programu (https://www.wireshark.org/download.html). Po zainstalowaniu należy zmienić (na potrzeby ćwiczenia) następujące opcje konfiguracyjne. Z menu Analizuj wybieramy pozycję Używane protokoły. W okienku, w polu Szukaj wpisujemy mp2t i w wynikach wyszukiwania odznaczamy (wyłączamy) pozycję MP2T. Następnie wpisujemy w polu Szukaj ciąg rtp i tym razem zaznaczamy (włączamy) pozycje: rtp_rtsp i rtp_udp.
Ćwiczenie polega na wczytywaniu do programu Wireshark plików zawierających zarejestrowane pakiety (pliki są zamieszczone na stronie kursu) i analizie ruchu sieciowego. Program prezentuje dane w trzech panelach. Panel górny zawiera złapane pakiety sieciowe. Panel środkowy prezentuje zawartość wybranego pakietu w formie warstw, od najniższego do najwyższego poziomu. Dolny panel prezentuje zawartość wybranej warstwy pakietu.
2.1. UDP Unicast
W programie VLC po stronie serwera (192.168.1.3) udostępniono obraz z kamery za pomocą protokołu UDP, wpisując jako cel adres: 192.168.1.1. Strumień może być odebrany przez klienta o tym adresie, po wpisaniu adresu sieciowego: udp://@:1234. Zarejestrowano tylko ruch UDP.
Wczytać do programu Wireshark plik udp.pcapng.
• Zaznaczyć dowolny pakiet UDP. Odczytać i zanotować rozmiar całego pakietu, rozmiar warstwy UDP oraz rozmiar samych danych obrazu w ramach jednego pakietu.
• Przeanalizować zawartość dowolnego pakietu UDP. Znaleźć i zanotować informacje, które mogą być przydatne odbiorcy do określenia czy pakiety nie są gubione oraz czy zawartość pakietu nie uległa uszkodzeniu.
• Klient na komputerze 192.168.1.1 podłącza się do strumienia wpisując adres udp://@:1234, czyli nie podaje w ogóle adresu serwera. Mimo to, jest on w stanie odebrać strumień. Wyjaśnić dlaczego jest to możliwe.
2.2. RTP Unicast
W programie VLC po stronie serwera (192.168.1.3) udostępniono obraz z kamery za pomocą protokołu
RTP / MPEG Transport Stream, wpisując jako cel adres: 192.168.1.1. Strumień może być odebrany
przez klienta o tym adresie, po wpisaniu adresu sieciowego: rtp://@:5004. Zarejestrowano tylko ruch UDP.
Wczytać do programu Wireshark plik rtp-uni.pcapng.
• Analizując dowolny pakiet RTP, znaleźć i podać nazwę pola, które zawiera zakodowane dane multimedialne.
• Odczytać i zanotować rozmiar całego pakietu RTP, rozmiar warstwy UDP, rozmiar warstwy RTP oraz rozmiar samych danych obrazu w ramach jednego pakietu. Obliczyć i porównać narzut danych (rozmiar nagłówków do rozmiaru danych) dla transmisji UDP i RTP.
• Przeanalizować zawartość warstwy RTP dowolnego pakietu RTP. Znaleźć i zanotować informacje, które mogą być przydatne odbiorcy do określenia czy pakiety nie są gubione oraz czy zawartość pakietu nie uległa uszkodzeniu.
• W polu Zastosuj filtr wyświetlania (jest w górnej części okna, nad listą pakietów, skrót Ctrl-/) wpisać RTCP (Enter). Przeanalizować zawartość pakietu RTCP. Znaleźć i zanotować informacje, które mogą być przydatne odbiorcy do kontroli jakości transmisji.
• Na podstawie poczynionych obserwacji, porównać zalety i wady strumieniowania obrazu za pomocą protokołów RTP i samego UDP. Zwrócić uwagę na możliwość wykrywania przez odbiorcę zdarzeń związanych z utratą pakietów i z ich pojawianiem się w różnym czasie (nie po kolei).
2.3. RTP Multicast
W programie VLC po stronie serwera (192.168.1.3) udostępniono obraz z kamery za pomocą protokołu
RTP / MPEG Transport Stream, wpisując jako cel adres: 224.1.1.1. Strumień może być odebrany przez
klienta w sieci lokalnej, po wpisaniu adresu sieciowego: rtp://224.1.1.1:5004. Zarejestrowano tylko ruch UDP.
Wczytać do programu Wireshark plik rtp-multi.pcapng.
• Porównać zapis z przypadkiem unicast. Zauważyć, że poza innym adresem docelowym, rodzaj pakietów i ich zawartość nie różnią się.
• Wyjaśnić dlaczego komputer o adresie 192.168.1.3 jest w stanie odebrać strumień, chociaż jest on wysyłany na adres 224.1.1.1. Jakie komputery (o jakich adresach) mogą odebrać ten strumień? Czy np. karta sieciowa w komputerze 192.168.1.9, którego właściciel nie jest zainteresowany oglądaniem strumienia, również odbiera pakiety?
• Porównać zalety i wady strumieniowania obrazu w trybie unicast i multicast. Podać przykład praktycznego zastosowania każdego trybu.
2.4. SAP
Transmisja odbywa się tak samo jak poprzednio (RTP multicast), ale dodatkowo w programie VLC wypełniono pole Nazwa strumienia. W oknie Lista odtwarzania programu VLC na komputerze klienta pojawia się pozycja jak na obrazie poniżej. Analizowany jest ten sam plik rtp-multi.pcapng.
• W pole filtru pakietów wpisać: sap (Enter).
• Przeanalizować zawartość pakietu SAP/SDP. Znaleźć i podać: nazwę strumienia oraz nazwę (numer wersji) programu strumieniującego (zostały one celowo zamazane na powyższym obrazie).
• Z punktu widzenia klientów, jaka jest korzyść ze stosowania protokołu SAP/SDP? Zamieszczony wcześniej obraz jest podpowiedzią.
2.5. Video on demand (VOD)
W poprzednich punktach badaliśmy transmisję inicjowaną przez nadawcę (serwer). W tym punkcie badana będzie transmisja obrazu na życzenie (VOD), inicjowana przez klienta. Na serwerze (192.168.1.9) skonfigurowano w programie VLC udostępnianie plików za pomocą narzędzia VLM. Klient (192.168.1.3) podłącza się do serwera podając adres: rtsp://192.168.1.9:554/nazwa. Program
Wireshark rejestrował komunikację UDP i TCP. Klient wykonywał różne operacje: zatrzymanie, wznowienie, przewijanie.
Wczytać do programu Wireshark plik vod.pcapng.
• Przeanalizować ruch sieciowy. Wyjaśnić za pomocą jakich protokołów odbywa się transmisja pakietów zawierających dane obrazu.
• Wpisać w pole filtru: rtsp. Przeanalizować pakiety RTSP i opisać: w jaki sposób odbywa się komunikacja między komputerami, jaka jest treść przesyłanych komunikatów.
• Odczytać i podać nazwę udostępnionego strumienia.
• Omówić zalety i wady transmisji VOD w porównaniu ze strumieniowaniem UDP i RTP inicjowanym przez serwer.