Podstawy sieci komputerowych
11. Zadania warstwy transportowej
11.2. Uzgadnianie 3-etapowe
TCP jest protokołem połączenia, co oznacza, że zanim host źródłowy będzie mógł wysłać jakiekolwiek dane do hosta docelowego, musi zostać między nimi nawiązane połączenie. Ta kombinacja nazywana jest trójdrożnym uściskiem dłoni. Host źródłowy, czyli klient, wysyła segment zawierający flagę SYN (SYN to flaga synchronizacji numerów sekwencyjnych), a segment zawiera również losowy numer seryjny klienta (zwany również numerem ISN, SEQ=100), który służy do kolejnych scalonych fragmentów danych.
Po otrzymaniu tego segmentu host docelowy, czyli serwer, jest informowany, że klient chce nawiązać z nim połączenie. W odpowiedzi serwer wysyła segment z ustawionymi flagami SYN i ACK (flaga ACK informuje klienta, że serwer odebrał poprzedni segment), numer sekwencyjny otrzymany od klienta jest zwiększany o 1 (ACK = 101) i jego losowy numer kolejny (SEQ = 300).
Na koniec klient wysyła segment z powrotem do serwera z ustawioną flagą ACK, potwierdzając odbiór poprzedniej wiadomości z numerem sekwencyjnym serwera zwiększonym o 1 (SEQ=101, ACK=301). To kończy proces połączenia i umożliwia prawidłowe przesyłanie danych. Poniżej przedstawiono trzyetapowy proces uzgadniania.
Dopiero po nawiązaniu połączenia TCP z serwerem klient może przesłać odpowiednie dane, takie jak żądanie strony internetowej lub pliku.
Wreszcie, gdy wszystkie dane zostaną przesłane, sesja musi zostać zamknięta. Klient wysyła następnie segment do serwera z flagą FIN, która informuje serwer o zamiarze zamknięcia sesji, który odpowiada segmentem potwierdzającym z flagą ACK, że otrzymał taki segment. Następnie serwer wysyła również segment z flagą FIN, a klient odpowiada segmentem potwierdzenia z flagą ACK. Spowoduje to zamknięcie sesji TCP.
Flaga |
Zastosowanie |
URG |
Informuje o istnieniu pola wskaźnik pilności w nagłówku (urgent) |
ACK |
Informuje o 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 |