Skip to content

Tcp ip protocol stack

TCP/IP Protocol Stack

Om communicatie mogelijk te maken tussen twee verschillende devices hebben we meer dan één protocol nodig. We hebben een protocol nodig wat regelt dat twee applicaties met elkaar kunnen communiceren, een protocol wat de route bepaalt tussen twee devices, en zelfs een protocol wat stelt hoe je een berichtje over een verbinding zoals een koperdraad of een ethernetkabel moet verzenden. De ‘stapel’ van protocollen waarmee we alle benodigde functionaliteiten hebben noemen we een protocol stack.

De meest-gebruikte protocol stack is tegenwoordig de TCP/IP Protocol Stack. De TCP/IP Protocol Stack is een implementatie van het OSI-model, een theoretisch model dat beschrijft welke ‘lagen’ er nodig zijn om succesvol te communiceren. De TCP/IP Protocol Stack bestaat uit vijf lagen: de application layer, de transport layer, de network layer, de link layer en de physical layer.

Application Layer

Op de application layer hebben we het over applicatieprotocollen, het startpunt van elke communicatiesessie. Elke host heeft verschillende applicaties, of computerprogramma’s, die draaien. Zodra een applicatie wilt gaan communiceren met een andere host begint er een communicatiesessie. Om deze communicatie tussen applicaties soepel te laten verlopen wordt er gebruik gemaakt van gestandaardiseerde applicatieprotocollen. De applicatieprotocollen beschrijven hoe je een bestandje moet formatteren zodat de ontvangende applicatie het correct uit kan lezen. Bekende protocollen op de applicatielaag zijn bijvoorbeeld HTTP, HTTPS, SMTP, FTP, DNS of DHCP. Een pakketje dat wordt verstuurd via de application layer heet ook wel een message.

Transport Layer

Een applicatieprotocol beschrijft wat je gaat versturen. Op de transportlaag wordt bepaald hoe je het pakketje wilt versturen. Op deze laag noemen we een verzonden pakketje ook wel een segment, vaak omdat de messages van de applicatielaag worden opgedeeld om ze beter te kunnen versturen. Er zijn twee belangrijke protocollen op deze laag: TCP en UDP. TCP wordt gebruikt als je zekerheid wilt: zekerheid dat je pakketje goed wordt ontvangen, zekerheid dat de ontvanger de pakketjes in de juiste volgorde kan zetten, zekerheid dat het netwerk niet overbelast raakt.. Het biedt veel zekerheid, maar tegelijkertijd zorgt dit ook voor een tragere verzending. De tegenhanger is UDP. UDP is een stuk sneller, het heeft minder zogeheten overhead, maar je mist ook een hoop belangrijke aspecten van TCP. Zo geeft UDP geen ontvangstbevestigingen, en is het aan de applicatie om de pakketjes weer in de juiste volgorde te zetten.

Vaak is er een vaste koppeling tussen het applicatieprotocol en het transportprotocol. Als een applicatie er bijvoorbeeld baat bij heeft dat pakketjes in de juiste volgorde binnenkomen, zoals bij een e-mail of website, dan gebruikt het TCP. Als snelheid van belang is, pakketjes niet in stukken worden geknipt omdat ze erg klein zijn, of er soms wat pakketjes mogen ontbreken, dan is UDP de beste optie.

Network Layer

Zodra bekend is welke applicaties met elkaar willen praten, en op welke manier het pakketje verzonden moet worden, is het tijd om de locatie van het pakketje én de route daarnaartoe te bepalen. Dit wordt gedaan op de network layer. Op de network layer verpakken we informatie in datagrams. Om de locatie te bepalen gebruiken we IP-adressen: manieren om met cijfers (decimaal of hexadecimaal) individuele hosts op het Internet te identificeren. Een pakketje wordt verpakt in een IPv4 of een IPv6 pakket. Op de network layer zijn er 2 belangrijke taken: routing, oftewel het bepalen van de route die een pakketje moet nemen over het Internet, en forwarding, het bepalen per individuele router naar welke uitgang elk pakketje moet.

Op de netwerklaag is er nog één ander protocol wat belangrijk is om te benoemen: ICMP. ICMP wordt gebruikt om de status van de verschillende routes te bepalen. Een belangrijke implementatie van ICMP is bijvoorbeeld het ping-commando.

De netwerklaag is te vergelijken met een vervoersbedrijf: het bepaalt de route die wordt genomen tussen verzender en ontvanger, en welke distributiecentra er op die route worden aangedaan. Binnen zo’n distributiecentrum zorgt de netwerklaag ervoor dat een pakketje weer in de juiste truck, bus, of vliegtuig terechtkomt.

Als laatste zijn er de link layer en de physical layer. Vaak worden deze twee lagen samengevoegd. De link layer zorgt ervoor dat een pakketje in het juiste format staat zodat het over een specifieke verzendingstechniek kan worden gestuurd. Er is altijd een fysiek verzendingsmiddel waarmee twee netwerkonderdelen met elkaar worden verbonden. Denk bijvoorbeeld aan Ethernet, WiFi, of Bluetooth. Elk medium waarover je data verstuurt heeft eigen vereisten hoe je dit verstuurt. De link layer zorgt ervoor dat elk pakketje wordt klaargezet voor het juiste medium. Zodra een pakketje wordt verzonden door de link layer, gaat het naar de volgende node in het netwerk. Dit duurt net zolang totdat het op plaats van bestemming is.