Uzgadnianie trój-etapowe
Damian Stelmach
TCP jest protokołem połączeniowym, oznacza to, że zanim host źródłowy prześle jakiekolwiek dane do hosta docelowego, to musi najpierw zostać ustanowione połączenie pomiędzy nimi. Połączenie to nosi nazwę uzgadniania trój-etapowego (ang. three-way handshake). Host źródłowy, czyli np. klient, wysyła segment zawierający flagę SYN (SYN to flaga synchronizacji numerów sekwencyjnych) W segmencie też zawarty jest losowy numer sekwencyjny klienta (zwany także numerem ISN, SEQ=100) służący do późniejszego scalania fragmentów danych.
Odbierając ten segment host docelowy, czyli np. serwer jest informowany, że klient chce nawiązać z nim połączenie. Serwer w odpowiedzi wysyła segment z ustawioną flagą SYN i ACK (flaga ACK informuje klienta o tym, ze serwer odebrał poprzedni segment), numerem sekwencyjnym odebranym od klienta zwiększonym o 1 (ACK=101) oraz swoim – losowym numerem sekwencyjnym (SEQ=300).
Na koniec klient odsyła do serwera segment z ustawioną flagą ACK potwierdzającą odbiór poprzedniego komunikatu z numerem sekwencyjnym serwera zwiększonym o 1 (SEQ=101, ACK=301). To kończy proces nawiązywania połączenia i pozawala na właściwą transmisję danych. Proces uzgadniania trój-etapowego widoczny jest poniżej.

Dopiero kiedy klient nawiąże połączenie TCP z serwerem, może wysłać właściwe dane, np. żądanie o stronę WWW czy też plik.
Na koniec, kiedy już wszystkie dane zostaną już przesłane, musi nastąpić jeszcze zamknięcie sesji. Wówczas klient, wysyła segment z flagą FIN do serwera, która to flaga informuje serwer o zamiarze zamknięcia sesji, ten odpowiada segmentem potwierdzającym z flagą ACK, iż taki segment odebrał. Następnie serwer również wysyła segment z flagą FIN, a klient odpowiada mu potwierdzającym segmentem z flagą ACK. To zamyka sesję TCP.

Bity kodu (flagi) stosowane do zarządzania sesjami TCP:
Flaga | Zastosowanie |
---|---|
URG | Informuje istnieniu pola wskaźnik pilności w nagłówku (urgent) |
ACK | Informuje istnieniu pola numer potwierdzenia w nagłówku (acknowledgment) |
PSH | Wymuszenie przesłania pakietu (push) |
RST | Ponowne zestawienie połączenia (reset) |
SYN | Synchronizacja numerów sekwencyjnych |
FIN | Koniec danych od nadawcy |
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Prosimy, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać w komentarzach! Dziękujemy Wam za poświęcony na to czas!