Articles

Che cos’è il tcp three way handshake? Cos’è SYN, pacchetti ACK?

Sappiamo che TCP è uno degli esempi di implementazione del protocollo di livello trasporto secondo il modello OSI. Il protocollo è orientato alla connessione, significa che prima di inviare qualsiasi dato al peer remoto, il client tcp imposta una connessione virtuale sulla rete IP sottostante basata su pacchetti. L’handshake a tre vie è la procedura del protocollo per ottenere la configurazione della connessione. Qui copriremo la procedura di configurazione della connessione tcp in dettaglio. La prima domanda che viene in mente è: chi è responsabile dell’avvio della connessione TCP? Il livello del protocollo stesso, all’avvio o qualche altra entità esterna che istruisce il livello per la connessione? La risposta è che l’utente TCP è responsabile dell’avvio di un handshake TCP a tre vie. Per esempio HTTP (il browser web usa HTTP), è uno degli utenti di TCP. Quando l’utente HTTP ha bisogno di inviare una richiesta web al server remoto. Prima di inviare qualsiasi dato utente, HTTP richiede a TCP di stabilire una connessione con il server remoto. Una volta che il livello TCP riceve la richiesta di connessione, inizia il tcp 3 way handshake. Come qualsiasi altro protocollo, la procedura di handshake a tre vie richiede lo scambio di pacchetti o messaggi tra client e server. Di seguito sono utilizzati nella configurazione della connessione.

Di seguito è riportato il flusso di messaggi per l’handshake a tre vie.

L’utente di HTTP emette una richiesta di connessione al livello TCP. Il livello TCP funziona come client tcp e invia il syn tcp con un numero di sequenza iniziale. Il numero di sequenza serve a mantenere la sequenza dei messaggi. Su SYN ricevuto, il Sever invia un nuovo syn e un ack del syn ricevuto al client, poi il client invia l’ACK al server per il syn ricevuto dal server. Questo completa la configurazione della connessione. Di seguito menziona ogni messaggio in dettaglio per la stretta di mano a tre vie.

Questo è il primo pacchetto dal client al server. Il messaggio TCP imposta il flag SYN a 1 nel messaggio, quindi rende il messaggio tcp come pacchetto SYN. Ha il numero di sequenza iniziale del client insieme ad altri pochi parametri.

Pacchetto TCP SYN ACK:

Dopo aver ricevuto il pacchetto SYN, il server invia il pacchetto syn ack al client. Senza contare che questo è un singolo pacchetto tcp con il bit syn e ack impostato a 1. Il numero di sequenza syn è il numero di sequenza iniziale del server che accetta la connessione. La parte ack ha il numero di sequenza del client più uno. In questo modo il server dice che è pronto ad accettare il pacchetto con il prossimo numero di sequenza dal client.

PacchettoTCP ACK:

Pacchetto finale per la configurazione della connessione è tcp ack. Il client invia il pacchetto tcp ack dopo aver ricevuto tcp syn ack dal server. Il pacchetto include il numero di sequenza dal server più uno.

Indicazione dell’utenteTCP dopo l’handshake a tre vie :

In partenza abbiamo detto che, è l’utente che inizia la richiesta di connessione. Ma come fa l’utente a sapere che la connessione è avvenuta? E l’utente può usare la connessione per inviare dati al server remoto? L’utente riceve un’indicazione sul risultato della configurazione della connessione dal livello TCP. Se l’handshake ha successo, allora ottiene l’identificatore di connessione. Altrimenti, errore. L’identificatore di connessione funziona come gestore per inviare/ricevere dati al/dal server. Mostreremo in un altro post l’esatta implementazione del client/server TCP, allora potrete avere un quadro più chiaro del gestore della connessione.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *