Warstwa transportowa TCP/IP
Uzgadnianie trójetapowe

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:

  1. 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

  2. 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

  3. 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.


Łącza WWW