06.09.2015 Views

Warstwa transportowa

Warstwa transportowa - Protokoły kontroli przesyłu informacji ...

Warstwa transportowa - Protokoły kontroli przesyłu informacji ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Warstwa</strong> <strong>transportowa</strong><br />

Model OSI Model TCP/IP<br />

Aplikacji<br />

Prezentacji<br />

Aplikacji<br />

zapewnienie poprawnego transportu<br />

danych w komunikacji ze zdalnym<br />

komputerem ;<br />

podział danych na segmenty<br />

Sesji<br />

Transportowa<br />

Sieciowa<br />

Transportowa<br />

Sieciowa<br />

Łącza danych<br />

Fizyczna<br />

Dostępu<br />

do sieci<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Funkcje warstwy transportowej<br />

zestawienie logicznego kanału przesyłu informacji między końcowymi systemami komunikacji (end-to-end)<br />

SIEĆ IP<br />

kontrola przepływu informacji<br />

ok, zwalniam<br />

wysyłanie<br />

zwolnij wysyłanie...<br />

nie jestem w stanie<br />

przetworzyć tyle<br />

informacji na raz...<br />

niezawodność przesyłu informacji<br />

nie dostałem<br />

trzeciego<br />

segmentu..<br />

retransmituj<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Prosty, teoretyczny model kontroli<br />

przepływu : stop-and-wait<br />

●<br />

prostota<br />

●<br />

niski poziom wykorzystania<br />

pasma zależny od odległości<br />

pomiedzy nadajnikiem a<br />

odbiornikiem oraz szybkości<br />

transmisji<br />

●<br />

niska efektywność w realnych<br />

warunkach (błędy transmisji,<br />

medium współdzielone,<br />

ograniczone bufory nadajnika i<br />

odbiornika<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Mechanizmy kontroli błędów i<br />

retransmisji - “go-back-N”<br />

dostałem<br />

zbiorcze<br />

potwierdzenie<br />

za 3 segmenty<br />

ponawiam<br />

transmisję od<br />

5 segmentu<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

5<br />

6<br />

7<br />

wysyłam<br />

zbiorcze<br />

potwierdzenie<br />

za 3 segmenty<br />

brakuje<br />

poprzedniego<br />

segmentu!<br />

informuję<br />

nadawcę i<br />

odrzucam<br />

wszystkie<br />

nadchodzące<br />

segmenty<br />

dopóki nie<br />

dostanę<br />

brakującego...<br />

wysyłam<br />

zbiorcze<br />

potwierdzenie<br />

za 3 segmenty<br />

●<br />

prostota<br />

implementacji<br />

●<br />

ograniczone<br />

wymagania bufora<br />

odbiornika<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Mechanizmy kontroli błędów i<br />

retransmisji - “selective ack” (c.d.)<br />

dostałem<br />

zbiorcze<br />

potwierdzenie<br />

za 3 segmenty<br />

ponawiam<br />

transmisję<br />

tylko 5<br />

segmentu<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

5<br />

8<br />

9<br />

wysyłam<br />

zbiorcze<br />

potwierdzenie<br />

za 3 segmenty<br />

brakuje<br />

segmentu nr 5!<br />

informuję<br />

nadawcę i<br />

przyjmuję dalej<br />

wszystkie<br />

nadchodzące<br />

segmenty<br />

wysyłam<br />

zbiorcze<br />

potwierdzenie<br />

za 3 segmenty<br />

● Bardziej wydajne od<br />

wersji go-back-N<br />

●<br />

minimalizacja ilości<br />

retransmisji<br />

● konieczność<br />

zwiększenia bufora<br />

odbiornika<br />

●<br />

komplikacja<br />

odbiornika<br />

(uporządkowanie<br />

otrzymanych ramek)<br />

●<br />

komplikacja<br />

nadajnika (wysyłanie<br />

ramek poza<br />

kolejnością)<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Mechanizm przesuwnego okna<br />

(ang. sliding-window)<br />

ostatni<br />

potwierdzony<br />

segment<br />

wysłane<br />

segmenty<br />

... 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 ...<br />

aktualna szerokość okna<br />

maksymalna szerokość okna<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Pola nagłówka protokołu TCP<br />

0 4 8 12 16 20 24 28 32<br />

port źródłowy<br />

port docelowy<br />

numer sekwencyjny<br />

numer potwierdzający<br />

przesunięcie<br />

danych<br />

zarezerwowane<br />

bity sterujące<br />

rozmiar okna<br />

suma kontrolna nagłówka<br />

wskaźnik danych pilnych<br />

opcje<br />

dopełnienie<br />

dane<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Nawiązanie, negocjacja,<br />

zamknięcie połączenia w sesji TCP<br />

0 4 8 12 16 20 24 28 32<br />

inne pola...<br />

numer sekwencyjny<br />

numer potwierdzający<br />

przesunięcie danych zarezerwowane bity sterujące rozmiar okna<br />

inne pola...<br />

10 11 12 13 14 15 16<br />

URG | ACK | PSH | RST | SYN | FIN<br />

INICJUJĘ POŁĄCZENIE:<br />

●<br />

wysyłam segment z nastawionym bitem SYN<br />

●<br />

nastawiam nr sekwencyjny na X<br />

●<br />

określam rozmiar okna na A<br />

POTWIERDZAM POŁĄCZENIE:<br />

●<br />

wysyłam segment z nastawionym bitem ACK<br />

●<br />

nastawiam nr potwierdzający na Y+1<br />

FIN<br />

SYN<br />

SYN+ACK<br />

FIN+ACK<br />

(RST)<br />

ACK<br />

ACK<br />

INICJUJĘ<br />

POŁĄCZENIE:<br />

●<br />

wysyłam segment z<br />

nastawionym bitem<br />

SYN+ACK<br />

●<br />

nastawiam nr<br />

sekwencyjny na Y<br />

●<br />

nastawiam nr<br />

potwierdzający na X+1<br />

●<br />

określam rozmiar<br />

okna na B<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Diagram stanów gniazd TCP<br />

źródło: htttp://wikipedia.org<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Bity sterujące TCP (c.d.)<br />

0 4 8 12 16 20 24 28 32<br />

inne pola...<br />

przesunięcie danych zarezerwowane bity sterujące rozmiar okna<br />

suma kontrolna nagłówka<br />

wskaźnik danych pilnych<br />

inne pola...<br />

10 11 12 13 14 15 16<br />

URG | ACK | PSH | RST | SYN | FIN<br />

bez bitu PSH:<br />

bufor<br />

danych<br />

aplikacji<br />

z bitem PSH:<br />

bufor<br />

danych<br />

aplikacji<br />

wskaźnik<br />

do danych<br />

pilnych<br />

bufor<br />

danych<br />

aplikacji<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Algorytmy kontroli przepływu w TCP i<br />

sterowania wielkości okna<br />

wielkość<br />

okna<br />

TCP Tahoe<br />

wielkość<br />

okna<br />

TCP Westwood<br />

W max<br />

ss_thr1<br />

W max<br />

f1(RTT)<br />

f2(RTT)<br />

ss_thr2<br />

ss_thr1<br />

t[s]<br />

t[s]<br />

wielkość<br />

okna<br />

TCP Reno<br />

wielkość<br />

okna<br />

TCP Vegas<br />

W max<br />

W max<br />

ss_thr1<br />

ss_thr2<br />

f(RTT)<br />

t[s]<br />

t[s]<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Logiczne kanały przesyłu<br />

informacji między hostami.<br />

Mechanizm portów<br />

0 4 8 12 16 20 24 28 32<br />

port źródłowy<br />

port docelowy<br />

inne pola...<br />

43214 80<br />

60112 25<br />

22 21655<br />

4667 7778<br />

55521 5222<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Pola opcji nagłówka TCP<br />

0 4 8 12 16 20 24 28 32<br />

inne pola...<br />

opcje<br />

dopełnienie<br />

inne pola...<br />

●<br />

Maksymalny rozmiar segmentu (MSS)<br />

●<br />

Skalowanie rozmiaru okna<br />

●<br />

Wybiórcze potwierdzenia (SACK)<br />

● Datownik<br />

●<br />

Tranzakcyjny TCP (T/TCP)<br />

● NOP<br />

● EOL<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Bezpołączeniowy protokół UDP<br />

(User Datagram Protocol)<br />

0 4 8 12 16 20 24 28 32<br />

port źródłowy<br />

długość<br />

port docelowy<br />

suma kontrolna nagłówka<br />

dane<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej


Podsumowanie – porównanie<br />

protokołów TCP i UDP<br />

cecha UDP TCP<br />

rodzaj protokołu bezpołączeniowy połączeniowy<br />

zawodność zawodny niezawodny<br />

kolejność odbieranych<br />

segmentów<br />

dowolna<br />

sekwencyjna<br />

fałszerstwo adresu<br />

nadawcy<br />

możliwe<br />

niemożliwe<br />

szybkość większa mniejsza<br />

skomplikowanie,<br />

wymagania sprzętowe<br />

mniejsze<br />

większe<br />

(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!