W pewnym kulturach, podczas spotkania ludzie często witają się poprzez uściśniecie sobie dłoni. Uściśnięcie sobie dłoni oznacza, dla obydwu stron, przyjazne powitanie. Nawiązanie połączenia sieciowego odbywa się na podobnej zasadzie. Pierwsze uzgodnienie jest żądaniem synchronizacji. Drugie uzgodnienie potwierdza początkowe żądanie synchronizacji, równocześnie synchronizując parametry połączenia w przeciwnym kierunku. Końcowy segment uzgodnienia jest potwierdzeniem służącym do poinformowania adresata, że obie strony są zgodne, iż zostało ustanowione połączenie.
Zanim dane mogą zostać przesłane w komunikacji między hostami przy użyciu protokołu TCP, musi być ustanowione między nimi połączenie. Natomiast kiedy transmisja danych zostanie zakończona, sesje połączeniowe są zamykane, a ustanowione na początku połączenie kończone. Mechanizmy nawiązania połączenia i mechanizm sesji zapewniają niezawodność komunikacji przy użyciu protokołu TCP. Poszczególne etapy występujące przy nawiązywaniu i kończeniu połączenia przy użyciu protokołu TCP można zaobserwować na zamieszczonym schemacie.
Host podczas sesji śledzi wysyłane segmenty danych i porównuje je z danymi otrzymanymi przez adresata, używając informacji zawartych w nagłówku TCP. TCP jest protokołem działającym w trybie full-duplex, gdzie każde połączenie składa się z dwóch jednokierunkowych strumieni komunikacyjnych, zwanych sesjami. Aby nawiązać połączenie, host używa uzgadniania trójetapowego. Bity kontrolne w nagłówku TCP wskazują postęp procesu i jego bieżący stan. Celami, stawianymi przed uzgodnieniem trójetapowym są:
- Ustalenie czy urządzenie docelowe (adresat) jest obecne w sieci;
- Sprawdzenie, czy urządzenie docelowe (serwer) ma aktywną usługę i akceptuje połączenia na porcie, który urządzenie inicjujące połączenie (klient) chce użyć podczas sesji;
- Informowanie urządzenia docelowego (serwer), że urządzenie inicjujące połączenie (klient) zamierza ustanowić sesję na porcie o tym numerze.
Podczas sesji TCP, klient ustanawia połączenie z serwerem. Trzy etapy podczas ustanawiania połączenia to:
Krok 1. Klient wysyła żądanie zainicjowania sesji klient-serwer z serwerem.
Krok 2. Serwer przyjmuje sesję komunikacyjną klient-serwer i wysyła żądanie zainicjowania sesji komunikacyjnej serwer-klient.
Krok 3. Klient przyjmuje komunikację serwer-klient.
Aby zobaczyć kroki trójetapowego uzgodnienia TCP, wybierz odpowiednio przyciski, od 1 do 3.
Aby zrozumieć technikę uzgadniania trójetapowego, ważnym jest prześledzenie różnych wartości flag, które hosty wymieniają między sobą. W segmencie TCP jest 6 jednobitowych pól (flag), które zawierają informacje kontrolne używane podczas zarządzania komunikacją TCP. Tymi polami są:
- URG - wskaźnik ważności pola
- ACK - potwierdzenie otrzymania danych (ang. acknowledgement)
- PSH - wykorzystanie funkcji PUSH
- RST - resetowanie połączenia
- SYN - synchronizacyjny numer sekwencyjny
- FIN - żądanie zakończenia sesji
Flagi ACK oraz SYN są istotne w analizie uzgadniania trójetapowego TCP.