Warstwa transportowa
Warstwa transportowa - ProtokoÅy kontroli przesyÅu informacji ...
Warstwa transportowa - ProtokoÅy kontroli przesyÅu informacji ...
- 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