[3]. 3 Way- Handshake
Il processo di sincronizzazione di una connessione TCP/IP viene definita 3 Way-HandShake
(3 Vie, Stretta di Mano). In pratica avviene in questo modo:
L'Origine invia un pacchetto con il flag SYN impostato e con un SEQ che chiameremo ISN
(Initial Sequence Number, Numero iniziale di sequenza) ad un deamon, server. Il computer
che ha ricevuto il pacchetto decide se accettarlo o meno (se il campo porta destinazione
è effettivamente in ascolto), e se viene accettato invia un altro numero s_ack che è l'ISN
incrementato e il suo numero di SEQUENZA con il flag SYN e ACK impostato. A questo punto
l'origine invia il suo numero di SEQUENZA che è il numero ACK che ha ricevuto e il campo
s_ack che risulta uguale al ISN incrementato questa volta con il flag ACK impostato. Questo
processo risultera più comprensibile con questi schemi:
MITTENTE: [ISN = CALCOLO ISN, SYN IMPOSTATO] ---> RICEVENTE
RICEVENTE: [SEQ = CALCOLO SEQ, ACK = ISN+1 SYN IMPOSTATO] --> MITTENTE
.
. /| \
/|\ |
| + --------+
+----|----+
| |
\|/ \|/
' '
MITTENTE: [SEQ = ACK, ACK = SEQ, ACK IMPOSTATO] --> RICEVENTE
Vediamo una sessione dump di una sincronizzazione di una connessione TCP/IP:
127.0.0.1:2118 >127.0.0.1:25 SEQ:2361518645 ACK:0 FLAGS: SYN
127.0.0.1:25 >127.0.0.1.1:2118 SEQ:0548318403 ACK:2361518646 FLAGS: SYN ACK
|\
127.0.0.1:2118 >127.0.0.1.2:23 SEQ:2361518646 ACK:0548318403 FLAGS: ACK
Da questo punto la connessione è sincronizzata.
| <Pag 2 |