Laboratorium nr 3 – protokoły transmisyjne
Transkrypt
Laboratorium nr 3 – protokoły transmisyjne
Laboratorium nr 3 – protokoły transmisyjne dr inż. Jerzy Domżał Akademia Górniczo-Hutnicza w Krakowie, Katedra Telekomunikacji 27-28 października 2014 r. dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 1 / 32 Spis treści 1 Mechanizmy kontroli transmisji w TCP 2 Źródła TCP 3 Odbiorcy TCP 4 Ćwiczenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 2 / 32 Spis treści 1 Mechanizmy kontroli transmisji w TCP 2 Źródła TCP 3 Odbiorcy TCP 4 Ćwiczenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 2 / 32 Spis treści 1 Mechanizmy kontroli transmisji w TCP 2 Źródła TCP 3 Odbiorcy TCP 4 Ćwiczenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 2 / 32 Spis treści 1 Mechanizmy kontroli transmisji w TCP 2 Źródła TCP 3 Odbiorcy TCP 4 Ćwiczenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 2 / 32 Spis treści 1 Mechanizmy kontroli transmisji w TCP 2 Źródła TCP 3 Odbiorcy TCP 4 Ćwiczenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 3 / 32 Zestawianie połączenia TCP musi nawiązać połączenie z adresatem przed rozpoczęciem transmisji TCP używa tzw. three-way handshake: 1 2 3 Klient wysyła pakiet SYN (losowy numer sekwencyjny, n) Serwer odpowiada pakietem SYN-ACK (losowy numer sekwencyjny, m, potwierdzenie: n + 1) Klient wysyła potwierdzenie: ACK (numer sekwencyjny, n + 1, potwierdzenie: m + 1) dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 4 / 32 Niezawodność transmisji TCP używa numerów sekwencyjnych do identyfikacji każdego bajtu danych Odbiorca ustawia potwierdzenie na numer bajtu, który chce otrzymać Otrzymanie potwierdzenia bajtu n oznacza, że wszystkie bajty do numeru n − 1 zostały odebrane poprawnie Istnieją indywidualne i skumulowane potwierdzenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 5 / 32 Okno przesuwne ang. Sliding window Odbiorca może sterować szybkością wysyłania danych przez nadawcę: Odbiorca ustawia w polu Rozmiar Okna wartość mówiącą ile bajtów może otrzymać jeszcze od nadawcy Nadawca otrzymawszy potwierdzenie, może wysłać tylko tę wskazaną ilość danych, zanim otrzyma kolejne potwierdzenie Rozmiar okna ustawiony na 0 oznacza zatrzymanie transmisji Nadawca ustawia wtedy tzw. persist timer po czym wysyła zapytanie o aktualizację dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 6 / 32 Mechanizmy sterowania przeciążeniami Następujące mechanizmy wprowadzono do TCP by nie dopuścić do przeciążeń Slow-start Congestion Avoidance Fast Retransmit Fast Recovery dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 7 / 32 Mechanizm powolnego startu ang. Slow Start mechanism Nadawca utrzymuje licznik, tzw. okno przeciążeń (Congestion Window, CWD) CWD oznacza liczbę pakietów jakie można wysłać bez potwierdzenia Mechanizm Slow-Start: 1 Początkowo CWD = 1 2 Każdy pakiet ACK zwiększa CWD o 1 3 Gdy pojawi się przeciążenie: CWD wraca do 1 dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 8 / 32 Mechanizm unikania przeciążeń ang. Congestion Avoidance mechanism Algorytm dynamicznego wymiarowania okna 1 Gdy pojawi się przeciążenie, zapamiętaj połowę wartości CWD 2 Ustaw CWD na 1 3 Do połowy poprzedniego CWD: mechanizm Slow-Start 4 Od połowy: CWD rośnie liniowo (zwiększane jest o 1 w odstępach czasu równych opóżnieniu potwierdzenia RTT) dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 9 / 32 Fast Retransmit, Fast Recovery Wprowadzone przez TCP Reno Gdy 4 kolejne ACK są identyczne, TCP ustawia ssthresh na wartość CWD/2 Przeprowadza Szybką Retransmisję (Fast Retransmit) Następnie wchodzi w fazę Fast Recovery ustawia CDW = ssthresh + 3 jeśli ponownie przychodzi to samo podwójne potwierdzenie to CWD jest zwiększany o jeden i transmitowany jest nowy pakiet do wielkości CWD jeśli przychodzi potwierdzenie nowego segmentu (nie zduplikowanego) to CWD = ssthresh i Congestion Avoidance dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 10 / 32 Spis treści 1 Mechanizmy kontroli transmisji w TCP 2 Źródła TCP 3 Odbiorcy TCP 4 Ćwiczenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 11 / 32 Źródła TCP Symulator ns-2 wspiera wiele wersji źródeł TCP. Obiekty realizują podstawową funkcjonalność TCP, w tym sterowanie przeciążeniami i reakcje na błędy. Nie są one jednak dokładnymi replikami rozwiązań stosowanych w rzeczywistych sieciach. Nie ma w nich przykładowo rozgłaszania okna, nie ma sygnalizacji i dane tak naprawdę nie są transmitowane (nie ma mechanizmów sprawdzających sumę kontrolną) dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 12 / 32 Agenci TCP W ns-2 istnieje wiele typów agentów: TCP – agent źródła “Tahoe” (CWD = 1 po każdej stracie pakietu) TCP/Reno – agent źródła “Reno” (z mechanizmem fast recovery) TCP/Newreno – agent źródła “zmodyfikowany Reno” (zmiany w mechaniźmie fast recovery) TCP/Sack1 – agent źródła SACK TCP/Fack – agent źródła “forward” SACK TCP/FullTcp – agent źródła dla w pełni funkcjonalnej dwukierunkowej transmisji TCP TCP/Vegas – agent źródła “Vegas” TCP/Vegas/RBP – agent źródła Vegas TCP z mechanizmem “rate based pacing” dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 13 / 32 Agenci TCP c.d. TCP/Reno/RBP – agent źródła Reno TCP z mechanizmem “rate based pacing” TCP/Asym – agent źródła “Tahoe” (eksperymentalny) dla łączy asymetrycznych TCP/Reno/Asym – agent źródła “Reno” (eksperymentalny) dla łączy asymetrycznych TCP/Newreno/Asym – agent źródła “Newreno” (eksperymentalny) dla łączy asymetrycznych TCPSink – agent odbiorcy dla “Reno” oraz “Tahoe” (nie stosowany dla FullTcp) TCPSink/DelAck – agent odbiorcy dla “delayed-ACK” TCPSink/Asym – eksp. agent odbiorcy dla łączy asymentr. TCPSink/Sack1 – agent odbiorcy dla “SACK” TCPSink/Sack1/DelAck – agent odbiorcy dla “delayed-ACK SACK” dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 14 / 32 Podstawowe źródło TCP – Tahoe Zawiera mechanizmy sterowania przeciążeniami Wielkość okna przeciążenia jest zwiększana o 1 z każdym otrzymanym potwierdzeniem podczas powolnego startu Wielkość okna przeciążenia jest zwiększana o 1/CWD z każdym otrzymanym potwierdzeniem podczas przeciwdziałania przeciążeniom (congestion avoidance) Tahoe TCP zakłada, że pakiet zostaje utracony wskutek przeciążenia, gdy źródło otrzyma czterokrotnie potwierdzenie poprzedniego pakietu lub gdy RTT zostanie przekroczony. W każdym z przypadków Tahoe TCP zapisuje do zmiennej ssthresh połowę aktualnej wielkości okna i ustawia okno na wartość początkową. Rozpoczyna więc w ten sposób działanie algorytmu slow-start. dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 15 / 32 Reno TCP Rozwiązanie podobne do Tahoe, ale ulepszone działaniem fast recovery Gdy 4 kolejne ACK są identyczne, TCP ustawia ssthresh na wartość CWD/2 Przeprowadza Szybką Retransmisję (Fast Retransmit) Następnie wchodzi w fazę Fast Recovery ustawia CWD = ssthresh + 3 jeśli ponownie przychodzi to samo podwójne potwierdzenie to CWD jest zwiększany o jeden i transmitowany jest nowy pakiet do wielkości CWD jeśli przychodzi potwierdzenie nowego segmentu (nie zduplikowanego) to CWD = ssthresh i Congestion Avoidance dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 16 / 32 Newreno TCP Rozwiązanie podobne do Reno, ale ulepszone Modyfikacja polega na reakcji na otrzymane potwierdzenie w fast recovery. Wyjście z fast recovery jest możliwe po otrzymaniu potwierdzenia ostatniego wysłanego pakietu, a nie dowolnego dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 17 / 32 Vegas TCP TCP Vegas jest wersją protokołu TCP zaproponowaną w 1994, a więc zanim opracowano algorytmy NewReno, SACK i FACK. Fundamentalną różnicą jest procedura unikania przeciążenia polegająca na szacowaniu możliwej przepustowości pasma do regulacji okna CWD – w tym przypadku nie ma oczekiwania na zaginięcie pakietu jako sygnału o przeciążeniu sieci i redukcji okna, gdyż TCP Vegas wykorzystuje różnicę pomiędzy szacowaną a aktualną przepustowością do regulacji rozmiaru okna. Zakłada, że podczas przeciążenia sieci rzeczywista przepustowość będzie mniejsza od szacowanej i na tej podstawie zmniejsza bądź zwiększa wartość okna dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 18 / 32 Vegas TCP c.d. TCP Vegas probuje wykryć i wykorzystać dodatkową przepustowość łącza, kiedykolwiek staje się to możliwe bez przeciążania sieci, co odróżnia go od TCP Reno, który powodował ciągłe utraty pakietów podczas dążenia do efektywnego wykorzystania dostępnego pasma. dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 19 / 32 Sack TCP Modyfikacja “selektywne potwierdzanie” (SACK – ang. Selective ACK) wykorzystuje te same mechanizmy kontroli przeciążenia co TCP Reno, jeśli chodzi o regulację okna CWD. Główną różnicą jest sposób zachowania się algorytmu w przypadku utraty większej ilości pakietow należących do jednego okna danych. Dzięki implementacji dodatkowych opcji w nagłówku TCP, odbiorca ma możliwość poinformowania nadawcy o tym, które segmenty zostały poprawnie odebrane, a których brakuje. Wykorzystując te informacje nadawca może retransmitować jedynie brakujące segmenty bez konieczności oczekiwania na upłynięcie czasu retransmisji dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 20 / 32 Fack TCP Mechanizm potwierdzeń generowanych w przód (FACK – ang. Forward Acknowledgment) bazuje na podstawowych algorytmach kontroli przeciążenia, wykorzystując rownież do swojej pracy dodatkową opcję SACK. Podobnie jak mechanizm selektywnych potwierdzeń zapewnia efektywniejsze działanie procedury odtwarzania pakietow w przypadku wielokrotnych ich strat w jednym oknie danych. Głównym celem jest wykorzystanie informacji z opcji TCP SACK do bardziej precyzyjnej kontroli wtłaczania danych do sieci podczas wykonywania się fazy szybkiej retransmisji i odtwarzania. Nazwa wynika z tego, że algorytm rejestruje najwyższą wartość numeru sekwencyjnego poprawnie odebranych danych. dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 21 / 32 Spis treści 1 Mechanizmy kontroli transmisji w TCP 2 Źródła TCP 3 Odbiorcy TCP 4 Ćwiczenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 22 / 32 Odbiorcy TCP Opisane źródła TCP reprezentują jednokierunkowe transmisje. Muszą być one powiązane z odbiorcą, który reprezentowany jest przez TCP Sink dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 23 / 32 Podstawowy TCP Sink Agent/TCPSink – odpowiedzialny za powrót potwierdzeń do źródła Generuje jedno potwierdzenie dla każdego otrzymanego pakietu Rozmiar potwierdzeń może być konfigurowany dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 24 / 32 Delayed-ACK TCP Sink Agent/Agent/TCPSink/DelAck – używany do symulowania odbiorcy TCP, który selektywnie wysyła potwierdzenia Obiekt zawiera zmienną ograniczającą interval, która stanowi liczbę sekund do odczekania pomiędzy wysyłaniem potwierdzeń Pakiety otrzymane poza kolejnością generują natychmiastowe potwierdzenie dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 25 / 32 Sack TCP Sink Agent/TCPSink/Sack1 – obiekt selektywnego potwierdzania Obiekt zawiera zmienną ograniczającą maxSackBlocks, która stanowi maksymalną liczbę bloków informacji w dostępnym potwierdzeniu (wartość domyślna to 3) Delayed i selective ACKs są zaimplementowane wspólnie w obiekcie Agent/TCPSink/Sack1/DelAck. dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 26 / 32 Spis treści 1 Mechanizmy kontroli transmisji w TCP 2 Źródła TCP 3 Odbiorcy TCP 4 Ćwiczenia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 27 / 32 Ćwiczenie nr 1 Proszę zapoznać się z zawartością skryptu Lab3 1.tcl Proszę znaleźć błąd na poniższym rysunku Pakiety 1000 B, okno 10 pakietów n0 kolejka 5 Mb/s, 2 ms, Droptail n2 3 Mb/s, 1 ms, Droptail n3 5 Mb/s, 2 ms, Droptail Pakiety 1000 B, okno 10 pakietów n1 Figure: Analizowana topologia dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 28 / 32 Ćwiczenie nr 2 Lab3 1.tcl – proszę przeanalizować ilość danych docierających do węzła docelowego od każdego ze źródeł w zależności od: opóźnienia łącza między węzłami n2 i n3 wielkości kolejki w łączu między węzłami n2 i n3 rozmiaru pakietu maksymalnej wielkości okna dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 29 / 32 Ćwiczenie nr 3 Lab3 1.tcl – proszę przeanalizować ilość danych docierających do węzła docelowego od każdego ze źródeł w zależności od: wersji protokołu TCP, czyli usatwienia odpowiednich agentów dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 30 / 32 Ćwiczenie nr 4 Lab3 2.tcl – wprowadzono dwie zmiany w stosunku do Lab3 1.tcl łącze między węzłami n2 i n3 zostaje w pewnym momencie uszkodzone i potem naprawione – proszę wskazać odpowiednie czasy tych operacji wielkość wysyłanej informacji wyznaczana jest losowo (zgodnie z rozkładem Pareto) – proszę wskazać parametry rozkładu Pareto dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 31 / 32 Ćwiczenie nr 5 Lab3 2.tcl – proszę dopisać kod umożliwiający rozpoczęcie transmisji przez węzły źródłowe w sposób losowy, zgodnie z rozkładem wykładniczym dr inż. Jerzy Domżał (AGH) Wprowadzenie do Sieci z Gwarancją Obsługi 27-28 października 2014 r. 32 / 32