sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · sieci...
TRANSCRIPT
2012-05-24
1
Sieci komputerowe Warstwa transportowa
dr inż. Maciej Piechowiak
1
Siec
i ko
mp
ute
row
e –
War
stw
a tr
ansp
ort
ow
a
Wprowadzenie
• umożliwia jednoczesną komunikację poprzez sieć wielu aplikacjom uruchomionym na tym samym urządzeniu,
• zapewnia (jeśli jest to wymagane), że wszystkie dane są dostarczone w sposób niezawodny, w dobrej kolejności i do odpowiedniej aplikacji,
• używa mechanizmów obsługi błędów.
2
Wprowadzenie
3
2012-05-24
2
Cele warstwy transportowej
• śledzenie indywidualnej komunikacji pomiędzy aplikacjami na źródłowym i docelowym hoście,
• segmentacja danych i odpowiednie oznaczanie każdego fragmentu,
• łączenie podzielonych segmentów w strumienie danych,
• identyfikacja różnych aplikacji.
4
Cele warstwy transportowej
5
Separacja komunikacji
6
2012-05-24
3
Segmentacja
7
Sterowanie konwersacjami
8
Sterowanie konwersacjami
9
2012-05-24
4
Protokoły
10
Nagłówki TCP i UDP
11
Adresacja portów
12
2012-05-24
5
Adresacja portów
13
Numery portów
14
Numery portów
15
2012-05-24
6
Segmentacja i scalanie
16
Procesy TCP na serwerze
17
URG - ważność pola "Pilny" (ang. Urgent) w nagłówku TCP; ACK - ważność pola "Potwierdzenie" (ang. Acknowledgment) w nagłówku TCP; PSH - wykorzystanie funkcji PUSH; RST - używana jest do kończenia połączenia; SYN - wskazuje na Synchronizację numerów sekwencyjnych; FIN - wskazuje koniec danych od nadawcy.
Nagłówek TCP
18
2012-05-24
7
Połączenie TCP
19
Połączenie trójetapowe: • ustala czy urządzenie jest obecne w sieci; • sprawdza, czy urządzenie docelowe (serwer) ma aktywną usługę i
akceptuje połączenia na porcie, który urządzenie inicjujące połączenie (klient) chce użyć podczas sesji;
• informuje urządzenie docelowe (serwer), że urządzenie inicjujące połączenie (klient) zamierza ustanowić sesję na porcie o tym numerze.
Nawiązywanie i finalizowanie
20
Nawiązywanie i finalizowanie
21
2012-05-24
8
Nawiązywanie i finalizowanie
22
Nawiązywanie i finalizowanie
23
Nawiązywanie i finalizowanie
24
2012-05-24
9
Scalanie segmentów TCP
25
Potwierdzenie segmentów TCP
26
Potwierdzenie segmentów TCP
• przykład: zaczynając z numerem sekwencyjnym równym 2000, jeśli host docelowy otrzyma 10 segmentów każdy zawierający po 1000 bajtów danych, w potwierdzeniu wysłanym do nadawcy tej partii danych numer potwierdzenia wyniesie 12001,
• ilość danych, którą nadawca może wysłać zanim musi otrzymać potwierdzenie nazywana jest rozmiarem okna (ang. window size),
• rozmiar okna jest polem w nagłówku TCP, które umożliwia zarządzanie utraconymi danymi i kontrolą przepływu.
27
2012-05-24
10
Retransmisja TCP
• usługa TCP na hoście docelowym zwykle potwierdza ciągłą partię danych – jeżeli brakuje jednego lub więcej segmentów, to potwierdzane są tylko te dane w segmencie, które poprzedzają pierwszy brakujący fragment,
• przykład: adresat otrzymał segmenty z numerami sekwencyjnymi od 1500 do 3000 i od 3400 do 3500 – numer potwierdzenia wyniesie 3001 (segmenty z numerami sekwencyjnymi od 3001 do 3999 nie zostały odebrane),
• kiedy nadawca nie otrzyma potwierdzenia w określonym czasie powróci do numeru sekwencyjnego, który miał ostatnio potwierdzony i wyśle ponownie wszystkie dane, zaczynając od bajtu o tym numerze.
28
Retransmisja TCP
• dla typowej implementacji protokołu TCP host może wysyłać segment, umieszczając równocześnie jego kopię w kolejce retransmisyjnej i uruchamiając zegar,
• kiedy potwierdzenie otrzymania danych z wysłanego segmentu jest odebrane, kopia segmentu umieszczona w kolejce retransmisyjnej jest z niej usuwana,
• jeżeli potwierdzenie nie zostanie otrzymane przed upływem określonego czasu oczekiwania, segment jest retransmitowany,
• selektywne potwierdzenia – odbiorca potwierdza bajty w nieciągłych segmentach i po otrzymaniu takiego potwierdzenia nadawca retransmituje tylko brakujące dane.
29
Kontrola przepływu
• mechanizm kontroli zwrotnej TCP dostosowuje efektywne tempo przesyłania danych do maksymalnego poziomu, który sieć oraz adresat mogą obsłużyć bez utraty danych,
• protokół TCP usiłuje zarządzać tempem przesyłu tak, aby całe wysłane dane zostały odebrane i ilość retransmisji była zminimalizowana,
• przykład: w prezentowanej sesji początkowy rozmiar okna został ustalony na 3000 bajtów. Kiedy nadawca wysłał 3000 bajtów, musi poczekać na potwierdzenie otrzymania tych 3000 bajtów zanim w tej sesji wyśle kolejne segmenty,
• gdy nadawca otrzyma potwierdzenie od odbiorcy, może wysyłać kolejne 3000 bajtów.
30
2012-05-24
11
Kontrola przepływu
31
Kontrola przepływu
• podczas przerwy w transmisji, polegającej na oczekiwaniu na potwierdzenie, w tej sesji nadawca nie będzie nadawał żadnych dodatkowych segmentów,
• w okresach przeciążenia sieci lub zajętości zasobów hosta odbierającego, opóźnienia mogą się wydłużać,
• jeżeli długość tego okresu przestoju będzie rosła, efektywne tempo transmisji danych dla tej sesji będzie malało,
• spowolnienie tempa przesyłania danych pomoże zlikwidować problem przestojów występujący u nadawcy.
32
Przesuwne okno
• gdy sieć jest przeciążona i zdarzają się częste retransmisje, protokół TCP może zmniejszyć rozmiar okna, aby spowodować konieczność częstszego potwierdzania otrzymanych segmentów – zmniejszenie tempa przesyłu danych (nadawca musi częściej czekać na potwierdzenie ich dostarczenia),
• host odbierający wysyła rozmiar okna wskazujący ilość bajtów, które jest gotów odebrać w jednej partii danej sesji,
• jeżeli host odbierający potrzebuje zmniejszyć ilość przesyłanych danych z powodu ograniczenia buforu odbioru, może wysłać zmniejszony rozmiar okna do nadawcy w segmencie potwierdzającym (z ustawionym bitem ACK).
33
2012-05-24
12
Przesuwne okno
• Jak pokazano na schemacie, jeśli odbiorca jest przeciążony, może odpowiedzieć do nadawcy segmentem ze zmniejszonym rozmiarem okna,
• po pewnym czasie transmisji bez utraty danych oraz przeciążenia zasobów, odbiorca rozpocznie zwiększanie wartości rozmiaru okna,
• działanie to ogranicza obciążenie sieci z powodu zmniejszenia ilości potwierdzeń, które muszą być wysłane,
• rozmiar okna będzie rósł, aż do wartości, przy której nastąpi utrata danych, co spowoduje ponowne zmniejszenie wartości rozmiaru okna.
• zwiększanie i zmniejszanie rozmiaru okna jest procesem ciągłym.
34
Przesuwne okno
35
Protokoły (UDP)
36
UDP
2012-05-24
13
Nagłówki TCP i UDP
37
Protokół UDP
38
• protokół DNS (ang. Domain Name System), • protokół SNMP (ang. Simple Network Management Protocol), • protokół DHCP (ang. Dynamic Host Configuration Protocol), • protokół RIP (ang. Routing Information Protocol), • protokół TFTP (ang. Trivial File Transfer Protocol), • gry online.
Scalanie datagramów UDP
39
2012-05-24
14
Procesy UDP
40