sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · sieci...

14
2012-05-24 1 Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 Sieci komputerowe – Warstwa transportowa 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

Upload: others

Post on 03-Jul-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 2: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 3: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

2012-05-24

3

Segmentacja

7

Sterowanie konwersacjami

8

Sterowanie konwersacjami

9

Page 4: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

2012-05-24

4

Protokoły

10

Nagłówki TCP i UDP

11

Adresacja portów

12

Page 5: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

2012-05-24

5

Adresacja portów

13

Numery portów

14

Numery portów

15

Page 6: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 7: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 8: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

2012-05-24

8

Nawiązywanie i finalizowanie

22

Nawiązywanie i finalizowanie

23

Nawiązywanie i finalizowanie

24

Page 9: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 10: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 11: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 12: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 13: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

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

Page 14: Sieci komputerowe - macos.ukw.edu.plmacos.ukw.edu.pl/sieci/sieci/sieci_06_transportowa.pdf · Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 – a Wprowadzenie

2012-05-24

14

Procesy UDP

40