Articles

Wat is tcp three way handshake ? Wat zijn SYN, ACK pakketten ?

We weten dat TCP een van de voorbeelden is van een transportlaag protocol volgens het OSI model. Het protocol is verbindingsgeoriënteerd, wat betekent dat de tcp client een virtuele verbinding opzet over een op pakketten gebaseerd onderliggend IP netwerk, voordat hij gegevens verstuurt naar de peer op afstand. Drie-wegs handdruk is de protocol procedure om de verbinding op te zetten. Hier zullen we de tcp verbindingsopbouw procedure in detail behandelen. De eerste vraag die in je opkomt is, wie is verantwoordelijk voor het starten van TCP connectie? De protocol laag zelf, bij het opstarten of een andere externe entiteit die de laag instrueert om verbinding te maken? Het antwoord is TCP gebruiker is verantwoordelijk voor het starten van een TCP drie weg handdruk. Bijvoorbeeld HTTP (web browser gebruikt HTTP), is een van de gebruikers van TCP. Wanneer een HTTP gebruiker een web verzoek moet sturen naar een server op afstand. Alvorens gebruikersdata te versturen, vraagt HTTP aan TCP om een verbinding te maken met de server op afstand. Zodra de TCP-laag het verbindingsverzoek ontvangt, start het de 3-wegs handshake van TCP. Net als elk ander protocol, vereist de drie-wegs handshake procedure de uitwisseling van pakketten of berichten tussen client en server. De volgende berichten worden gebruikt om een verbinding op te zetten.

Hieronder volgt de berichtenstroom voor drieweg handshake.

Gebruiker van HTTP dient een verbindingsverzoek in bij de TCP-laag. De TCP-laag werkt als een tcp-client en verstuurt de tcp-syn met een initieel volgnummer. Sequentienummer is om de volgorde van de berichten te handhaven. Na ontvangst van de SYN stuurt de Sever een nieuwe syn en een ack van de ontvangen syn naar de client, daarna stuurt de client de ACK naar de server voor de van de server ontvangen syn. Hiermee is het opzetten van de verbinding voltooid. Hieronder volgt een gedetailleerde beschrijving van elk bericht voor een drie-weg handshake.

Dit is het eerste pakket van de client naar de server. TCP bericht zet SYN vlag op 1 in het bericht, dus maakt het tcp bericht als SYN pakket. Het bevat het initiële volgnummer van de client, samen met een paar andere parameters.

TCP SYN ACK packet:

Na ontvangst van SYN packet, stuurt de server het syn ack packet naar de client. Niet te vergeten dat dit een enkel tcp pakket is met syn en ack bit op 1. Het syn sequentie nummer is het initiële sequentie nummer van de server die de verbinding accepteert. Het ack gedeelte heeft client sequentie nummer plus een. Op deze manier vertelt de server dat hij klaar is om het pakket met het volgende volgnummer van de client te accepteren.

TCP ACK packet:

Het laatste pakket voor het opzetten van de verbinding is tcp ack. Client stuurt tcp ack pakket na ontvangst van tcp syn ack van server. Het pakket bevat het volgnummer van de server plus één.

TCP user indication after three way handshake :

In het begin hebben we gezegd dat het de gebruiker is die het verbindingsverzoek initieert. Maar hoe krijgt de gebruiker, dat de verbinding tot stand is gebracht? En kan de gebruiker de verbinding gebruiken om gegevens naar de server te sturen? De gebruiker krijgt een indicatie over het resultaat van de verbindingsopbouw van de TCP laag. Als de handshake succesvol is, dan krijgt hij de identificatie van de verbinding. Anders en foutmelding. Verbindings identifier werkt als handler voor het zenden/ontvangen van data van/naar de server. We zullen in een andere post de exacte implementatie van TCP client/server laten zien, dan kun je een duidelijker beeld krijgen van de connection handler.

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *