Quali sono i passaggi in una stretta di mano TCP?

Quali sono i passaggi in una stretta di mano TCP?

Il protocollo di controllo TCP o di trasmissione è un protocollo di livello di trasporto standard che Internet utilizza per trasmettere i dati. Richiesta di commenti (RFC) 793 definisce il TCP come un protocollo affidabile e orientato alla connessione. Poiché è orientato alla connessione, è necessario stabilire un percorso o una connessione prima di trasmettere qualsiasi dati. TCP utilizza un meccanismo a tre vie per stabilire una connessione tra due dispositivi. In questa guida, vedremo come funziona il meccanismo di stretta di mano a tre vie. Vediamo per la prima volta i problemi con il modello di stretta di mano a due vie.

Problemi con il modello di stretta di mano a due vie

Il modello di stretta di mano a due vie non è riuscito a causa di un vecchio problema di pacchetti duplicati. Supponiamo che un vecchio pacchetto duplicato arrivi sulla macchina del server. Questo vecchio pacchetto è arrivato da una connessione precedentemente chiusa e contiene un numero di sequenza "Z". In un certo momento durante la nuova connessione, il server accetta un pacchetto con un numero di sequenza "Z". Quando riceve questo vecchio pacchetto con lo stesso numero di sequenza "Z", accetta inconsapevolmente questo vecchio pacchetto e scarta il pacchetto effettivo dalla nuova connessione.

Nel caso sopra, se una connessione non si svolge tra client e server, l'arrivo di un vecchio pacchetto di richiesta di connessione duplicata provoca ancora problemi. Se il server riceve tale pacchetto, risponderà con un pacchetto Syn+ACK. Questo pacchetto verrà lasciato cadere dal client perché non intendeva connettersi. Ma il server inserirà lo stato di deadlock, in attesa che il client invii i dati.

Un altro problema è che se un host C invia una richiesta di connessione al server impersonando il client, il server risponderà con un ACK al client. Il client eliminerà questo pacchetto "ACK" e dirà al server di terminare la connessione. Durante questo intervallo di eventi, l'host C può lanciare un attacco di spoofing inviando molti pacchetti.

Il modello di stretta di mano a tre vie in TCP/IP

Il modello di stretta di mano a tre vie è molto importante. Se non lo utilizziamo e iniziamo direttamente a inviare dati, l'applicazione di ricezione può iniziare a ricevere pacchetti duplicati. L'attaccante potrebbe avere la possibilità di lanciare attacchi (come DDoS) tra una connessione. La procedura di stretta di mano a tre vie viene avviata da una macchina e l'altra parte risponde ad essa. La seguente convenzione viene utilizzata per spiegare questa procedura:

"Se un sito riceve un pacchetto con numero di sequenza" x ", risponderà con il numero ACK" x+1 "."

Riassumiamo i passaggi eseguiti nella stretta di mano a tre tra una macchina client e una macchina del server:

Passo 1. Nella prima handshake, il client invia un pacchetto di richiesta di connessione syn con un numero di sequenza iniziale casuale ('x') al server.

Passo 2. Nella seconda handshake, il server risponde con un pacchetto syn che ha un numero di sequenza casuale ('y') e un pacchetto ACK con un numero di sequenza ('x+1') per riconoscere il numero di sequenza iniziale ('x') dal cliente.

Passaggio 3. Nella terza handshake, il client invierà un pacchetto ACK con un numero di sequenza ('y+1') al server per riconoscere il pacchetto syn ('y') inviato dal server.

Passaggio 4. Entrambe le estremità sono sincronizzate ora e possono iniziare a trasmettere i dati in modo indipendente. [1]

La procedura TCP Handshake a tre vie è ancora valida se entrambi i lati avviano contemporaneamente il processo di inizializzazione. In tale situazione, ogni macchina, dopo aver inviato un pacchetto "syn", riceverà un segmento "syn" senza alcun riconoscimento. Se un vecchio pacchetto "syn" duplicato arriva al ricevitore, può sembrare al ricevitore che un processo di iniziazione di connessione sta avvenendo contemporaneamente. Possiamo usare i pacchetti "Ripristina" per rimuovere questa ambiguità.

Terminatura della connessione TCP

Entrambi i due lati possono terminare una connessione TCP. Per questo, qualsiasi lato può trasmettere un segmento TCP con il set di bit pinne. Ciò significherà che il lato di invio non ha più dati da inviare. Il lato ricevente riconoscerà questo pacchetto di pinne inviando un pacchetto di riconoscimento. Questo chiuderà la connessione da un lato (il lato del mittente). Ora il ricevitore utilizzerà gli stessi passaggi per terminare la connessione per suo conto. Questo chiuderà completamente la connessione.

Problemi con il modello di stretta di mano a tre vie

Nel caso in cui un ACK da client al server sia perso o bloccato nella terza fase della stretta di mano, il client non sarà a conoscenza di questa situazione. Il client assumerà che la connessione sia stabilita e inizierà a inviare dati. Il server sta ancora aspettando l'ACK, che era già perso, quindi scarterà i dati ricevuti dal client. [2]

Conclusione

In questa guida, abbiamo appreso le procedure di connessione TCP utilizzando una stretta di mano a tre vie. Abbiamo anche visto il problema dei pacchetti duplicati associati alla procedura di stretta di mano a due vie e come è stato risolto con un modello di stretta di mano a tre vie. Molti ricercatori hanno contribuito con vari articoli di ricerca per migliorare il modello di stretta di mano a tre e superare i problemi associati ad esso.

Riferimenti

  1. Hsu, f., Hwang, y., Tsai, c., Cai, w., Lee, c., & Chang, K. (2016). Trap: un server Handshake a tre vie per la connessione TCP Stabilimento. Scienze applicate, 6 (11), 358. https: // doi.org/10.3390/APP6110358
  1. Qin-Min MA, Shou-yin Liu, Xiao-jun Wen. (2016). Protocollo TCP a tre vie di Handshake basato sull'entanglement quantistico. Journal of Computers, 27 (3), 33-40, doi: 10.3966/199115592016102703004