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