Het internet is het beste te vergelijken met een internationale pakket- of postdienst: van de ene computer wordt via verschillende 'distributiecentra' een pakket 'bezorgd' bij een andere computer. Op deze pagina zal nader worden toegelicht hoe de pakketjes van punt A naar punt B reizen.
OSI-model
Meestal wordt de werking van het internet in het zogenaamde OSI-model uitgelegd. Dit model definieert zeven lagen in de werking van het internet:
- Toepassingslaag
- Presentatielaag
- Sessielaag
- Transportlaag
- Netwerklaag
- Datalinklaag
- Fysieke laag
Het model karakteriseert het basisprincipe in de werking van het internet: de toepassingslaag heeft weinig te maken met de presentatielaag en de datalinklaag heeft geen weet van wat er in de netwerklaag gebeurt. Alle combinaties van protocollen en technieken zijn mogelijk. Het is het beste te vergelijken met een postpakket dat in een andere doos wordt gestopt bij het ene postkantoor en dicht bij de eindbestemming er weer uit wordt gehaald.
In deze handleiding zullen de presentatie- en sessielaag niet nader worden toegelicht, gezien deze zaken niet veel helderder zullen maken. Ook de fysieke laag zullen we overslaan.
Toepassingslaag
Op het allerhoogste niveau in het internet staat de toepassing. De toepassing zorgt ervoor dat er bepaalde pakketten met bepaalde afspraken worden verstuurd. HTTP, het HyperText Transfer Protocol, is er één van. Het protocol zorgt ervoor dat browsers kunnen communiceren met een computer waarop een website staat.
Denk aan het schrijven en versturen van een brief. Je brief begint altijd met een aanhef, sluit af met een groet en je naam en eventueel een handtekening: een protocol. Als je de brief klaar hebt, ben je eigenlijk klaar met de inhoud van je mededeling, maar je brief is nu nog niet klaar om verstuurd te worden…
HTTP
HTTP is in feite niets anders dan een set afspraken over hoe die communicatie verloopt. Zo heeft jouw browser (waarin je dit nu leest) net nog een verzoek gestuurd naar www.antagonist.nl voor deze pagina. De server op www.antagonist.nl heeft geantwoord met de webpagina die je nu aan het lezen bent. De pagina die terug is gestuurd, was in HTML (HyperText Markup Language), de opmaaktaal die je browser begrijpt.
DNS
Een ander, heel belangrijk, protocol is DNS (Domain Name System). DNS heeft eigenlijk toepassing op de netwerklaag, waar adressering relevant is, maar het protocol zelf is een applicatie. DNS doet eigenlijk niets anders dan domeinnamen omvormen in (IP-)adressen die door de computer worden begrepen. Zo kan DNS www.antagonist.nl vertalen in het adres van de server waarop je deze pagina nu leest.
Meer informatie over DNS kun je in deze handleiding terugvinden.
Er zijn naast HTTP en DNS nog veel meer protocollen. De belangrijkste zijn onder andere FTP (File Transfer Protocol) en IMAP (Internet Message Access Protocol).
Transportlaag
Als een applicatie zijn pakket verstuurt, dan heeft deze er eigenlijk geen weet van wat er daarna mee gebeurt. De transportlaag zorgt ervoor dat een pakket betrouwbaar van de ene computer naar de andere computer komt. Deze laag is nodig, omdat de netwerklaag geen garanties geeft of een pakket daadwerkelijk aankomt. Pakketten kunnen op netwerkniveau uit volgorde raken, een enorme omweg nemen of gewoon verloren gaan.
TCP (Transmission Control Protocol) en UDP (User Datagram Protocol) zijn de belangrijkste protocollen op dit niveau. Deze protocollen leggen een verbinding met een andere computer door deze eerst op de hoogte te stellen van de transmissie die er aan zit te komen en sluit aan het einde van de transmissie ook netjes weer af.
Het verschil tussen beide protocollen zit hem in het feit dat TCP garanties biedt over de pakketten die aankomen. UDP doet dat niet en is vooral bestemd voor zaken als internetradio en -video, waarbij veel pakketten in één keer worden verstuurd en het niet erg is als een pakket verloren gaat.
TCP biedt onder andere congestiecontrole, door 'af te tasten' hoeveel pakketten er verloren gaan. Als er veel verloren gaan, wordt het aantal pakketten per seconde verminderd. Daarnaast worden pakketten genummerd, waardoor gecontroleerd kan worden of een pakket aan is gekomen. En als een pakket is gearriveerd, wordt ook weer teruggestuurd dat deze is ontvangen. Verder biedt TCP foutcontrole.
Als je weet dat het postbedrijf niet betrouwbaar is (soms verdwijnen er wel brieven), moet je voorzorgsmaatregelen nemen. Ook weet je dat je de komende paar dagen veel brieven zult gaan sturen. Het is belangrijk dat ze in volgorde aankomen, maar het postbedrijf geeft ook daarover geen garanties. Je schrijft dus een volgnummer op de envelop; de ontvanger weet dat hij eerst met brief 1 moet beginnen, dan naar brief 2 moet kijken, enzovoorts. Mist er een brief, dan belt de ontvanger op of je misschien die brief nogmaals kunt versturen. Maar is alles goed gegaan, dan zal hij je opbellen om te vertellen dat je je geen zorgen hoeft te maken.
Netwerklaag
De netwerklaag zorgt ervoor dat een internetpakket een adres heeft en bepaalt hoe dit over de wereld zal gaan. Hiervoor wordt een lokale kaart gemaakt van alle 'hops' ('distributiecentra') er zijn en welke het minste kost om het pakket uiteindelijk naar zijn eindbestemming te brengen.
Er zijn twee belangrijke verschillende soorten 'hops': routers en switches. Een router bepaalt steeds opnieuw waar een pakket naar toe moet worden gestuurd. Routers zie je ook terug als je een zogenaamde 'traceroute' doet naar een bepaald adres. Switches zijn transparanter en geven alleen maar pakketten door op datalinkniveau. Het verschil tussen de twee 'hops' is dan ook dat routers op netwerkniveau werken, terwijl switches een laag lager werken.
Hiervoor wordt meestal IP gebruikt (Internet Protocol) en de adressen in het IP worden IP-adressen genoemd. Er zijn twee versies van het Internet Protocol: IPv4 en IPv6. Het belangrijkste verschil is het verschil in de adressering. In IPv4 zijn er maar 4 miljard adressen mogelijk, terwijl IPv6 340 sextiljoen adressen mogelijk maakt. IPv4 wordt nu langzaam uitgefaseerd, omdat de adressen op beginnen te raken.
Meer informatie over IPv6 en de uitputting van IP-adressen vind je in deze handleiding.
De laatste hand aan je brief leg je door op de envelop twee adressen te schrijven: jouw eigen adres en het adres van de ontvanger. Alles is nu klaar om verzonden te worden en je brengt het dus over naar het postkantoor. Het postkantoor beslist dat jouw brief naar de VS het beste via luchtpost verstuurd kan worden. Daarvoor wordt het doorgestuurd naar het postkantoor op het vliegveld, welke het doorstuurt naar de luchtpostdienst. Deze levert het af op het vliegveld in de VS, waar het nog een aantal keer wordt doorgestuurd voor het in de juiste brievenbus belandt.
Datalinklaag
Op de laagste laag die we hier bespreken, worden pakketten op korte afstanden getransporteerd. Hierbij moet je denken aan het vertrek van een pakket vanaf een computer naar een router, of tussen routers. Op deze laag worden adressen niet meer op IP-niveau, maar op een lokaler MAC-niveau afgesproken. Iedere netwerkkaart heeft een eigen MAC-adres en bij ieder 'distributiecentrum' wordt het opnieuw geadresseerd.
Ook op deze laag vindt er foutcontrole plaats, omdat er op een laag niveau vaak dingen mis kunnen gaan, bijvoorbeeld door interferentie. Hogere lagen (zoals TCP) zorgen ervoor dat een pakket opnieuw wordt gestuurd als hier iets mis gaat.
Bij het doorsturen tussen de verschillende postbedrijven worden busjes ingezet. Een busje heeft een lijst met de brieven die afgeleverd moeten geleverd bij zich, maar de postbode heeft er weinig aan dat een pakket naar de VS gestuurd moet worden. Hij hoeft alleen maar te weten dat het naar het postkantoor bij het vliegveld hoeft. Op de lijst in het busje staan dan ook alleen maar de interne codes van de verschillende postkantoren, om verwarring te voorkomen.