TCP 3-Way Handsake-analyse in Wireshark

Tcp 3 Way Handsake Analyse In Wireshark



Het Transmission Control Protocol is een zeer belangrijk protocol in de transportlaag voor het OSI- of TCP/IP-model. Er zijn veel voordelen in TCP, zoals:

  • TCP verzendt opnieuw als verzonden gegevens niet binnen enige tijd door de ontvanger worden bevestigd.
  • TCP brengt een verbinding tot stand voordat de gegevens worden verzonden. We noemen die verbinding een 3-weg handdruk.
  • TCP heeft een congestiecontrolemechanisme.
  • TCP kan op bepaalde manieren fouten detecteren.

Laten we vooral leren over TCP 3-way handshake. Laten we ook meer te weten komen over de belangrijke velden in Wireshark voor 3-weg handshake.







3-weg handdruk

Er zijn drie frame-uitwisselingen die plaatsvinden in een 3-way handshake:



  1. SYN
  2. BEKIJK+ACK
  3. AK

Het eerste frame wordt altijd door de client naar de server gestuurd. Laten we dit begrijpen aan de hand van een eenvoudig diagram:



'CLIENT SERVER'

Frame1: Client stuurt SYN-frame naar server -------------------------------------------------->

<---------------------------------------------------------Server verzendt SYN+ACK-frame naar opdrachtgever: Frame2

Frame3: Client stuurt ACK-frame naar server -------------------------------------------------->

We kunnen deze drie frames zien in Wireshark. Het 'tcp' -filter kan in Wireshark worden gebruikt om alle TCP-frames te zien. Hier is het screenshot voor de drie frames:





Laten we nu alle drie de frames in detail begrijpen:



SYN

Dit frame bevat veel informatie over de mogelijkheden van de client om de server te informeren. De volgende schermafbeelding toont alle belangrijke velden van het SYN-frame:

Dit zijn de belangrijke velden voor het SYN-frame:

Bronpoort: 50602
Bestemmingshaven: 80
Volgnummer: 0
Bevestigingsnummer: 0
Koplengte: 32 bytes
Vlaggen: 0x002 (SYN):
Bevestiging: niet ingesteld
Push: niet ingesteld
Resetten: niet ingesteld
Syn: Set  ----> Deze bit is ingesteld omdat dit een SYN-frame is.
Fin: niet ingesteld

Venster: 65535
Dringende aanwijzer: 0
TCP-optie - Maximale segmentgrootte: 1460 bytes
TCP-optie - Vensterschaal: 3 (vermenigvuldig met 8)
TCP-optie - SACK toegestaan

BEKIJK+ACK

Dit frame bevat veel informatie over de mogelijkheden van de server om de client te informeren. De volgende schermafbeelding toont alle belangrijke velden van het SYN+ACK-frame:

Dit frame bevestigt ook het SYN-frame dat door de client is verzonden.

Dit zijn de belangrijke velden voor het SYN+ACK-frame:

Bronpoort: 80
Bestemmingspoort: 50602
Volgnummer: 0
Bevestigingsnummer: 1

Koplengte: 32 bytes (8)
Vlaggen: 0x012 (SYN, ACK)
Bevestiging: ingesteld
Push: niet ingesteld
Resetten: niet ingesteld
Zijn: ingesteld
Fin: niet ingesteld

Venster: 29200
Dringende aanwijzer: 0
TCP-optie - Maximale segmentgrootte: 1412 bytes
TCP-optie - SACK toegestaan
TCP-optie - Vensterschaal: 7 (vermenigvuldig met 128)

We kunnen zien dat de bits 'Acknowledge' en 'SYN' in dit frame zijn ingesteld. Dit komt omdat dit frame SYN+ACK is.

AK

Dit frame is het laatste frame van de 3-way handshake en ook de bevestiging van de SYN+ACK door de client. De volgende schermafbeelding toont alle belangrijke velden van het ACK-frame:

Dit zijn de belangrijke velden voor het ACK-frame:

Bronpoort: 50602
Bestemmingspoort: 80
Volgnummer: 1
Bevestigingsnummer: 1
Koplengte: 20 bytes (5)
Vlaggen: 0x010 (ACK)
Dringend: niet ingesteld
Bevestiging: ingesteld
Push: niet ingesteld
Resetten: niet ingesteld
Syn.: niet ingesteld
Fin: niet ingesteld

Venster: 32768

Hier wordt alleen de 'Acknowledge'-bit ingesteld omdat dit een ACK-frame is.

Uitleg voor enkele belangrijke gemeenschappelijke velden

Poort 80 : We hebben één vaste poort 80 waargenomen in deze zelfstudie. Het is omdat dit een HTTP-capture is en poort 80 vast is (serverzijde) voor HTTP-communicatie.

Volgnummer : Het volgnummer van dat frame. Sync is het eerste frame, dus we hebben 0 als volgnummer.

TCP-vlaggen:

Erkenning – Deze bit is ingesteld als het frame een ACK is. Voorbeeld: SYN+ACK, ACK-frame.

SYN – Deze bit is ingesteld als het frame een SYN is. Voorbeeld: SYN.

Raam : Dit veld deelt de maximale venstergrootte van de afzender in de ontvangstmodus. Voorbeeld: we hebben de venstergrootte van 65535 bytes in het SYN-frame. Dit betekent dat de ontvanger op elk moment maximaal TCP-gegevens van 65535 bytes kan ontvangen.

ZAK Toegestaan : Deze bit is ingesteld als verzenden SACK [selectieve bevestiging] ondersteunt.

Maximale segmentgrootte : We kunnen het ook MSS noemen. Dit definieert het maximale dataframe dat de afzender kan ontvangen. Voorbeeld: we krijgen MSS als 1460 bytes in het SYN-frame.

Conclusie

We leerden over de TCP 3-way handshake en alle bruikbare velden voor SYN-, SYN+ACK- en ACK-frames. Als u meer wilt weten over TCP, kunt u deze RFC-link volgen https://tools.ietf.org/html/rfc793 .