Protokół TCP jest protokołem zorientowanym połączeniowo. Wymaga on
ustanowienia połączenia przed rozpoczęciem przesyłania danych. Aby ustanowić
lub zainicjować połączenie, muszą zostać zsynchronizowane początkowe numery
sekwencyjne (ISN) obu hostów. Synchronizacja polega na wymianie ustanawiających
połączenie segmentów zawierających bit kontrolny zwany SYN (synchronizacja)
oraz numery ISN. Segmenty zawierające bit SYN są również nazywane segmentami
„SYN". Rozwiązanie to wymaga odpowiedniego mechanizmu wybierania
początkowego numeru sekwencyjnego oraz procesu uzgadniania służącego do wymiany
numerów ISN.
Synchronizacja wymusza wysłanie przez każdą ze stron własnego początkowego
numeru sekwencyjnego i odbiór potwierdzenia wymiany (ACK) od strony przeciwnej.
Każda strona musi również odebrać od drugiej strony numer ISN i wysłać
potwierdzenie ACK. Kolejność jest następująca:
- Wysyłający host (A) inicjuje połączenie przez wysłanie pakietu SYN do
odbiorcy (hosta B) ze swoim numerem początkowym ISN = X:
A —> B
SYN, seq A = X
- B otrzymuje pakiet, zapamiętuje, że numer sekwencyjny seq hosta A = X,
odpowiada pakietem z ustawionym bitem ACK i numerem potwierdzenia X + 1, a
także określa swój numer początkowy ISN = Y. Potwierdzenie ACK z numerem X + 1
oznacza, że host B otrzymał wszystkie oktety do oktetu X włącznie i będzie
oczekiwał na oktet o numerze X + 1:
B —> A ACK, seq A = X, SYN
seq B = Y, ACK = X + 1
- A otrzymuje pakiet od B, wie, że numer sekwencyjny seq hosta B = Y, i
odpowiada pakietem z ustawionym bitem ACK i numerem potwierdzenia Y + 1, co
kończy proces ustanawiania połączenia:
A —> B ACK, seq B = Y,
ACK = Y + 1
Wymiana ta jest zwana uzgadnianiem trójetapowym.
Uzgadnianie
trójetapowe jest konieczne ze względu na to, że numery sekwencyjne nie są
związane z globalnym zegarem w sieci i protokoły TCP mogą mieć różne mechanizmy
wybierania numeru ISN. Odbiorca pierwszego segmentu SYN nie ma innego sposobu
na rozpoznanie starego lub spóźnionego segmentu niż pamiętanie ostatniego
numeru podczas kolejnego połączenia. Pamiętanie tego numeru nie zawsze jest
możliwe. Dlatego odbiorca musi zwrócić się do wysyłającego o weryfikację
segmentu SYN.