Netwerken

Wat zijn de stappen in een TCP-handshake??

Wat zijn de stappen in een TCP-handshake??

TCP of Transmission Control Protocol is een standaard transportlaagprotocol dat internet gebruikt om gegevens te verzenden. Request  For  Comments  (RFC)  793 definieert TCP als een betrouwbaar en verbindingsgericht protocol. Omdat het verbindingsgericht is, moet er een pad of verbinding tot stand worden gebracht voordat gegevens worden verzonden. TCP gebruikt een drieweg-handshakemechanisme om een ​​verbinding tussen twee apparaten tot stand te brengen. In deze gids zullen we zien hoe het drieweg-handshake-mechanisme werkt. Laten we eerst eens kijken naar de problemen met het tweerichtingshandshake-model.

Problemen met het Two Way Handshake-model

Het tweerichtingshandshake-model is mislukt vanwege een oud duplicaat-pakketprobleem. Stel dat er een oud duplicaatpakket aankomt op de servermachine. Dit oude pakket is aangekomen van een eerder gesloten verbinding en bevat een volgnummer 'z'. Op een bepaald moment tijdens de nieuwe verbinding accepteert de server een pakket met een volgnummer 'z'. Wanneer het dit oude pakket ontvangt met hetzelfde volgnummer 'z', accepteert het onbewust dit oude pakket en verwijdert het het daadwerkelijke pakket van de nieuwe verbinding.

In het bovenstaande geval, als er geen verbinding is tussen client en server, veroorzaakt de aankomst van een oud duplicaat verbindingsverzoekpakket nog steeds problemen. Als de server zo'n pakket ontvangt, zal het terug antwoorden met een SYN+ACK pakket. Dit pakket wordt door de client verwijderd omdat het niet de bedoeling was om verbinding te maken. Maar de server gaat naar de deadlock-status en wacht tot de client de gegevens verzendt.

Een ander probleem is dat als een host C een verbindingsverzoek naar de server stuurt door zich voor te doen als de client, de server terug zal reageren met een ACK naar de client. De client zal dit 'ACK'-pakket weggooien en de server vertellen om de verbinding te beëindigen. Tijdens dit interval van gebeurtenissen kan host C een spoofing-aanval lanceren door veel pakketten te verzenden.

Het Three-Way HandShake-model in TCP/IP

Het three-way handshake-model is erg belangrijk. Als we het niet gebruiken en direct beginnen met het verzenden van gegevens, kan de ontvangende applicatie dubbele pakketten gaan ontvangen. De aanvaller krijgt mogelijk de kans om aanvallen (zoals DDoS) uit te voeren tussen een verbinding in. De drievoudige handshake-procedure wordt gestart door één machine en de andere kant reageert erop. De volgende conventie wordt gebruikt om deze procedure uit te leggen:

“Als een site een pakket ontvangt met volgnummer 'x', zal het reageren met ACK-nummer 'x+1'.”

Laten we de stappen samenvatten die worden uitgevoerd in de drievoudige handshake tussen een clientcomputer en een servermachine:

Stap 1. Bij de eerste handshake stuurt de client een SYN-verbindingsverzoekpakket met een willekeurig initieel volgnummer ('x') naar de server.

Stap 2. Bij de tweede handshake antwoordt de server met een SYN-pakket met een willekeurig volgnummer ('y') en een ACK-pakket met een volgnummer ('x+1') om het oorspronkelijke volgnummer ('x') te bevestigen door de klant.

Stap 3. In de derde handshake stuurt de client een ACK-pakket met een volgnummer ('y+1') naar de server om het SYN-pakket ('y') te bevestigen dat door de server is verzonden.

Stap 4. Beide uiteinden zijn nu gesynchroniseerd en kunnen onafhankelijk beginnen met het verzenden van gegevens. [1]

De TCP three-way handshake procedure is nog steeds geldig als beide kanten gelijktijdig het initialisatieproces starten. In een dergelijke situatie ontvangt elke machine, na het verzenden van een "SYN" -pakket, een "SYN" -segment zonder bevestiging. Als een oud duplicaat "SYN"-pakket bij de ontvanger aankomt, kan het voor de ontvanger lijken alsof er tegelijkertijd een verbindingsinitiatieproces aan de gang is. We kunnen de "reset" -pakketten gebruiken om deze dubbelzinnigheid te verwijderen.

Beëindiging van TCP-verbinding

Elk van de twee kanten kan een TCP-verbinding beëindigen. Hiervoor kan elke zijde een TCP-segment verzenden met de FIN-bitset. Dit betekent dat de verzendende kant geen gegevens meer heeft om te verzenden. De ontvangende kant zal dit FIN-pakket bevestigen door een bevestigingspakket te verzenden. Hiermee wordt de verbinding van de ene kant (de kant van de afzender) gesloten. Nu zal de ontvanger dezelfde stappen gebruiken om de verbinding namens hem te beëindigen. Dit zal de verbinding volledig sluiten.

Problemen met het Three-Way Handshake-model

In het geval dat een ACK van client naar server verloren gaat of wordt geblokkeerd in de derde handshake-fase, zal de client zich niet bewust zijn van deze situatie. De client gaat ervan uit dat de verbinding tot stand is gebracht en begint met het verzenden van gegevens. De server wacht nog steeds op de ACK, die al verloren was, dus het zal de gegevens verwijderen die van de client zijn ontvangen. [2]

Conclusie

In deze handleiding hebben we geleerd over TCP-verbindingsprocedures met behulp van een drieweg-handshake. We hebben ook het probleem gezien van dubbele pakketten in verband met de tweerichtingshandshake-procedure en hoe dit werd opgelost met een drieweg-handshakemodel. Veel onderzoekers hebben verschillende onderzoekspapers bijgedragen om het three-way handshake-model te verbeteren en de daarmee samenhangende problemen te overwinnen.

Referenties

  1. Hsu, F., Hwang, Yu., Tsai, Californië., Cai, W., Lee, Californië., & Chang, K. (2016). TRAP: een drieweg-handshakeserver voor het tot stand brengen van een TCP-verbinding connection. Toegepaste Wetenschappen, 6(11), 358. https://doi.org/10.3390/app6110358
  1. Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016). TCP Three-Way Handshake-protocol op basis van Quantum Entanglement. Journal of Computers, 27 (3), 33-40, doi:10.3966/19915592016102703004
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...
OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...
Top 5 Game Capture-kaarten
We hebben allemaal gezien en genoten van streaming gameplays op YouTube. PewDiePie, Jakesepticye en Markiplier zijn slechts enkele van de beste gamers...