logo

Processo di handshake a tre vie TCP

Questo potrebbe anche essere visto come un modo per stabilire la connessione TCP. Prima di entrare nei dettagli, vediamo alcune nozioni di base. TCP sta per Protocollo di controllo della trasmissione il che indica che fa qualcosa per controllare la trasmissione dei dati in modo affidabile.

ordine lessicografico

Il processo di comunicazione tra dispositivi su Internet avviene secondo la corrente TCP/IP modello suite (versione eliminata del modello di riferimento OSI). Il livello Applicazione è la pila superiore di una pila di modelli TCP/IP da cui le applicazioni che fanno riferimento alla rete come i browser Web sul lato client stabiliscono una connessione con il server. Dal livello di applicazione, le informazioni vengono trasferite al livello di trasporto dove entra in gioco il nostro argomento. I due protocolli importanti di questo livello sono: TCP, UDP (protocollo datagramma utente) di cui TCP è prevalente (poiché fornisce affidabilità per la connessione stabilita). Tuttavia, puoi trovare un'applicazione di UDP interrogando il server DNS per ottenere l'equivalente binario del nome di dominio utilizzato per il sito web.



TCP fornisce una comunicazione affidabile con qualcosa chiamato Riconoscimento positivo con ritrasmissione (PAR) . La Protocol Data Unit (PDU) del livello di trasporto è chiamata segmento. Ora un dispositivo che utilizza PAR invia nuovamente l'unità dati finché non riceve una conferma. Se l'unità dati ricevuta dal ricevitore è danneggiata (controlla i dati con la funzionalità checksum del livello di trasporto utilizzato per il rilevamento degli errori), il ricevitore scarta il segmento. Quindi il mittente deve inviare nuovamente l'unità dati per la quale non viene ricevuta una conferma positiva. Dal meccanismo di cui sopra è possibile realizzare che tre segmenti vengono scambiati tra mittente (client) e destinatario (server) per stabilire una connessione TCP affidabile. Andiamo ad approfondire come funziona questo meccanismo:



    Passo 1 (SYN): Nel primo passo, il client vuole stabilire una connessione con un server, quindi invia un segmento con SYN (Synchronize Sequence Number) che informa il server che è probabile che il client inizi la comunicazione e con quale sequenza numero con cui inizia i segmenti con il Passaggio 2 (SYN + ACK): il server risponde alla richiesta del client con i bit di segnale SYN-ACK impostati. Riconoscimento (ACK) indica la risposta del segmento che ha ricevuto e SYN indica con quale numero di sequenza è probabile che inizino i segmenti con il passo 3 (ACK): Nella parte finale il client riconosce la risposta del server ed entrambi stabiliscono un rapporto affidabile connessione con la quale inizieranno il trasferimento vero e proprio dei dati