Analisi dell'handsake a 3 vie TCP in Wireshark

Analisi Dell Handsake A 3 Vie Tcp In Wireshark



Il protocollo di controllo della trasmissione è un protocollo molto importante nel livello di trasporto per il modello OSI o TCP/IP. Ci sono molti vantaggi in TCP come:

  • TCP ritrasmette se i dati inviati non vengono riconosciuti dal destinatario entro un certo periodo di tempo.
  • TCP stabilisce una connessione prima di inviare i dati. Chiamiamo quella connessione stretta di mano a 3 vie.
  • TCP ha un meccanismo di controllo della congestione.
  • TCP può rilevare l'errore utilizzando alcuni metodi.

Impariamo principalmente sull'handshake a 3 vie TCP. Impariamo anche i campi importanti in Wireshark per l'handshake a 3 vie.







Stretta di mano a 3 vie

Ci sono tre scambi di frame che avvengono in una stretta di mano a 3 vie:



  1. SIN
  2. VISUALIZZA+CONFERMA
  3. ACK

Il primo frame viene sempre inviato dal client al server. Cerchiamo di capirlo da un semplice diagramma:



“CLIENTE” “SERVER”

Frame1: il client invia il frame SYN al server----------------------------------->

<----------------------------------------------------Il server invia il frame SYN+ACK al cliente: Frame2

Frame3: il client invia un frame ACK al server----------------------------------->

Possiamo vedere questi tre frame in Wireshark. Il filtro 'tcp' può essere utilizzato in Wireshark per vedere tutti i frame TCP. Ecco lo screenshot per i tre frame:





Vediamo ora di capire tutti e tre i frame in dettaglio:



SIN

Questo frame contiene molte informazioni sulle capacità del client di informare il server. La seguente schermata mostra tutti i campi importanti del frame SYN:

Ecco i campi importanti per il frame SYN:

Porta di origine: 50602
Porta di destinazione: 80
Numero di sequenza: 0
Numero di riconoscimento: 0
Lunghezza intestazione: 32 byte
Flag: 0x002 (SYN):
Riconoscimento: non impostato
Spinta: non impostato
Reimposta: non impostato
Syn: Set  -----> Questo bit è impostato perché si tratta di un frame SYN.
Pinna: non impostata

Finestra: 65535
Puntatore urgente: 0
Opzione TCP - Dimensione massima del segmento: 1460 byte
Opzione TCP - Scala finestra: 3 (moltiplicare per 8)
Opzione TCP - SACK consentito

VISUALIZZA+CONFERMA

Questo frame contiene molte informazioni sulle capacità del server di informare il client. La seguente schermata mostra tutti i campi importanti del frame SYN+ACK:

Questo frame riconosce anche il frame SYN inviato dal client.

Ecco i campi importanti per il frame SYN+ACK:

Porta sorgente: 80
Porta di destinazione: 50602
Numero di sequenza: 0
Numero di riconoscimento: 1

Lunghezza intestazione: 32 byte (8)
Flag: 0x012 (SYN, ACK)
Riconoscimento: impostato
Spinta: non impostato
Reimposta: non impostato
Suo: Set
Pinna: non impostata

Finestra: 29200
Puntatore urgente: 0
Opzione TCP - Dimensione massima del segmento: 1412 byte
Opzione TCP - SACK permesso
Opzione TCP - Scala finestra: 7 (moltiplicato per 128)

Possiamo vedere che i bit 'Acknowledge' e 'SYN' sono impostati in questo frame. Questo perché questo frame è SYN+ACK.

ACK

Questo frame è l'ultimo frame dell'handshake a 3 vie e anche il riconoscimento del SYN+ACK da parte del client. La seguente schermata mostra tutti i campi importanti del frame ACK:

Ecco i campi importanti per il frame ACK:

Porta di origine: 50602
Porta di destinazione: 80
Numero di sequenza: 1
Numero di riconoscimento: 1
Lunghezza intestazione: 20 byte (5)
Flag: 0x010 (ACK)
Urgente: non impostato
Riconoscimento: impostato
Spinta: non impostato
Reimposta: non impostato
Sin: non impostato
Pinna: non impostata

Finestra: 32768

Qui viene impostato solo il bit 'Acknowledge' perché si tratta di un frame ACK.

Spiegazione di alcuni importanti campi comuni

Porto 80 : Abbiamo osservato una porta fissa 80 in questo tutorial. È perché si tratta di un'acquisizione HTTP e la porta 80 è fissa (lato server) per la comunicazione HTTP.

Sequenza di numeri : Il numero di sequenza di quel fotogramma. Sync è il primo fotogramma quindi abbiamo 0 come numero di sequenza.

Flag TCP:

Riconoscimento – Questo bit è impostato se il frame è un ACK. Esempio: SYN+ACK, frame ACK.

SIN – Questo bit è impostato se il frame è un SYN. Esempio: SIN.

Finestra : Questo campo condivide la dimensione massima della finestra del mittente in modalità di ricezione. Esempio: abbiamo la dimensione della finestra di 65535 byte nel frame SYN. Ciò significa che il destinatario può ricevere un massimo di dati TCP di 65535 byte in qualsiasi momento.

SACCO Consentito : Questo bit è impostato se l'invio supporta SACK [riconoscimento selettivo].

Dimensione massima del segmento : Possiamo anche chiamarlo MSS. Questo definisce il frame di dati massimo che il mittente può ricevere. Esempio: otteniamo MSS come 1460 byte nel frame SYN.

Conclusione

Abbiamo imparato a conoscere l'handshake TCP a 3 vie e tutti i campi utili per i frame SYN, SYN+ACK e ACK. Se vuoi saperne di più su TCP, puoi seguire questo link RFC https://tools.ietf.org/html/rfc793 .