Het proces dat een client gebruikt om contact op te nemen met een server nadat een gebruiker een domeinnaam heeft opgegeven, omvat verschillende stappen, waarbij voornamelijk gebruik wordt gemaakt van het Domain Name System (DNS) en het TCP/IP-protocolpakket. Hier is een overzicht:
1. Gebruikersinvoer: De gebruiker typt de domeinnaam (bijvoorbeeld 'www.example.com') in zijn browser of applicatie.
2. DNS-resolutie:
* Recursieve oplosser: Het besturingssysteem van de client maakt contact met een recursieve DNS-resolver. Dit wordt vaak geleverd door de internetprovider (ISP) van de klant of handmatig geconfigureerd. De recursieve solver fungeert als tussenpersoon en verzorgt het proces van het opvragen van verschillende DNS-servers.
* Rootnaamservers: De recursieve solver begint met het bevragen van de root-naamservers. Deze servers kennen het IP-adres van `www.example.com` niet, maar ze weten waar ze de servers kunnen vinden die *wel* op de hoogte zijn van het `.com`-topniveaudomein.
* TLD-naamservers: De recursieve solver maakt vervolgens contact met de naamservers van het topniveaudomein (TLD) (bijvoorbeeld `.com`-naamservers). Deze servers kennen de gezaghebbende naamservers voor `example.com`.
* Gezaghebbende naamservers: De recursieve solver maakt contact met de gezaghebbende naamservers voor `example.com`. Deze servers zijn verantwoordelijk voor het onderhouden van de DNS-records voor dat domein. Ze bevatten het IP-adres (of de adressen) dat is gekoppeld aan 'www.example.com'.
* Resultaat: De gezaghebbende naamservers retourneren het IP-adres (of adressen – vaak meerdere voor taakverdeling) die overeenkomen met 'www.example.com'. De recursieve solver stuurt dit IP-adres terug naar de client.
3. TCP/IP-verbinding tot stand brengen:
* IP-adres: De client heeft nu het IP-adres van de server.
* TCP-drieweghandshake: De client initieert een TCP-verbinding met de server met behulp van het IP-adres en de gewenste poort (meestal poort 80 voor HTTP of 443 voor HTTPS). Het gaat om een handdruk in drie richtingen:
* SYN: De client stuurt een SYN-pakket (synchroniseren) naar de server en vraagt om een verbinding.
* SYN-ACK: De server reageert met een SYN-ACK-pakket (synchronize-acknowledge), waarbij het verzoek wordt bevestigd en zijn eigen synchronisatie-informatie wordt verzonden.
* ACK: De client verzendt een ACK-pakket (acknowledge), waarmee de verbinding wordt bevestigd.
* Verbinding succesvol: Zodra de drieweghandshake is voltooid, wordt er een TCP-verbinding tot stand gebracht tussen de client en de server.
4. Gegevensoverdracht: De client kan nu verzoeken (bijvoorbeeld HTTP-verzoeken) naar de server sturen via de tot stand gebrachte TCP-verbinding. De server verwerkt deze verzoeken en stuurt antwoorden terug.
5. Verbinding sluiten: Zodra de communicatie is voltooid, wordt de TCP-verbinding netjes gesloten.
In het kort: De client gebruikt DNS om de domeinnaam te vertalen naar een IP-adres en gebruikt vervolgens TCP om verbinding te maken met de server op dat IP-adres voordat er gegevens worden uitgewisseld. Het hele proces gebeurt transparant voor de gebruiker, die alleen de website of applicatie ziet laden. |