Ga naar hoofdinhoud

Het OSI-model

Je typt https://www.ap.be in de adresbalk en drukt op Enter. Een halve seconde later staat de pagina op je scherm. Tussen die twee momenten gebeuren tientallen dingen, in een vaste volgorde, verdeeld over verschillende lagen.

Die reis is de rode draad van deze pagina. We volgen ze eerst als verhaal, en gebruiken ze daarna om het OSI-model te begrijpen, het referentiemodel dat netwerkcommunicatie in zeven lagen opdeelt.

De reis van een URL​

Klik door de stappen. Let bij elke stap op het label linksboven: dat zegt in welke laag je zit.

https://www.ap.be
Applicatielaag

Stap 1. De browser leest de URL

De browser splitst je URL in scheme, host en pad.

Nog voor er ook maar één bit je toestel verlaat, ontleedt de browser wat je typte. Het scheme (https) bepaalt welk protocol en welke standaardpoort gebruikt worden, de host (www.ap.be) zegt met welke server gepraat moet worden, en het pad (/) zegt welke bron gevraagd wordt.

scheme = https   host = www.ap.be   poort = 443   pad = /
1 / 8

Wat opvalt aan die reis:

  • Er gebeurt veel voor er ook maar iets verstuurd wordt. URL ontleden en DNS-opzoeking komen nog helemaal aan jouw kant.
  • Eén pagina is niet één request. De HTML is het eerste request; daarna volgen er tientallen voor CSS, JavaScript, lettertypes en afbeeldingen.
  • Elke stap heeft zijn eigen zorg. DNS bekommert zich niet om versleuteling, TCP niet om wat er in het bericht staat, IP niet om of het bericht compleet aankomt.

Die laatste vaststelling is precies het idee achter een gelaagd model.

Waarom lagen?​

Stel je voor dat je een pakje naar Spanje stuurt. Jij schrijft de brief, stopt hem in een doos en geeft die af. Wat daarna gebeurt (bestelwagen, sorteercentrum, vliegtuig, lokale postbode) hoeft je niet te interesseren. Omgekeerd hoeft de piloot niet te weten wat er in de brief staat.

Netwerken werken net zo. Elke laag:

  • lost één soort probleem op;
  • gebruikt de diensten van de laag eronder;
  • levert een dienst aan de laag erboven;
  • kan vervangen worden zonder de rest te breken.

Daardoor werkt dezelfde fetch() in je code, of je nu op wifi zit, aan een kabel hangt of via 4G verbonden bent. Alleen de onderste laag verschilt.

De zeven lagen van OSI​

Het OSI-model (Open Systems Interconnection) is een referentiemodel uit 1984. Het beschrijft geen concrete software, het geeft een woordenschat om te zeggen waar een probleem zich bevindt.

#LaagWat ze doetVoorbeelden
7ApplicatieDe diensten die de gebruiker of het programma rechtstreeks gebruiktHTTP, DNS, SMTP, SSH
6PresentatieVoorstelling van data: codering, compressie, versleutelingTLS, UTF-8, JPEG
5SessieSessies opzetten, onderhouden en afsluitenSessiebeheer, WebSocket-sessies
4TransportBetrouwbaarheid, volgorde, poortnummersTCP, UDP
3NetwerkAdressering en routering tussen netwerkenIP, ICMP (ping), routers
2DatalinkFoutdetectie en adressering binnen één netwerkEthernet, MAC-adressen, switches
1FysiekBits als elektrische, optische of radiosignalenKabels, glasvezel, wifi, connectoren
Ezelsbruggetje

Van laag 7 naar 1: Alle Programmeurs Sturen Toch Nog Dagelijks Fouten.

De zeven lagen van het OSI-model naast de vier lagen van het TCP/IP-model, met per laag wat ze doet en een voorbeeldprotocolOSI-MODEL: 7 LAGENTCP/IP-MODEL: 4 LAGEN7ApplicatieWat het programma wil: een pagina, een mail, een naamHTTP · DNS · SMTP · SSH6PresentatieCodering, compressie, versleutelingTLS · UTF-8 · JPEG5SessieEen gesprek openen, onderhouden en afsluitensessiebeheer4TransportBetrouwbaarheid, volgorde, poortnummersTCP · UDP3NetwerkAdressering en routering tussen netwerkenIP · ICMP · routers2DatalinkFrames en adressen binnen één netwerkEthernet · MAC · switches1FysiekBits als stroom, licht of radiogolvenkabels · glasvezel · wifiApplicatieHTTP, DNS, TLS, SMTPTransportTCP, UDPInternetIPNetwerktoegangEthernet, Wi-FiOSI is het leermodel, TCP/IP is wat het internet effectief gebruikt. De accolades tonen welke OSI-lagen in de praktijk samenvallen.

OSI versus TCP/IP​

In de praktijk draait het internet niet op OSI, maar op het TCP/IP-model: hetzelfde idee, maar met vier lagen. OSI leer je om erover te praten, TCP/IP is wat je effectief gebruikt.

OSITCP/IPProtocollen
7 Applicatie, 6 Presentatie, 5 SessieApplicatieHTTP, DNS, TLS, SMTP
4 TransportTransportTCP, UDP
3 NetwerkInternetIP
2 Datalink, 1 FysiekNetwerktoegangEthernet, Wi-Fi

Het TCP/IP-model komt later in dit hoofdstuk uitgebreider aan bod.

Encapsulatie: dozen in dozen​

Data die naar beneden door de lagen zakt, krijgt bij elke laag een extra header: een stukje administratie voor de tegenpartij op diezelfde laag. Dat heet encapsulatie.

Applicatie [ GET / HTTP/1.1 Host: www.ap.be ]
Transport [ TCP-header | GET / HTTP/1.1 ... ]
Internet [ IP-header | TCP-header | GET / HTTP/1.1 ... ]
Netwerktoegang [ Ethernet | IP-header | TCP-header | GET ... | FCS ]

Aan de andere kant gebeurt exact het omgekeerde: elke laag pelt zijn eigen header af en geeft de rest door naar boven. De webserver ziet uiteindelijk weer precies dezelfde tekst als wat de browser verstuurde.

Vergelijk het met een brief in een envelop, in een doos, op een pallet. Elke tussenpersoon leest alleen zijn eigen etiket, en de brief zelf blijft ongewijzigd.

Encapsulatie: bij de zender krijgt het HTTP-bericht per laag een header erbij, tot het als frame over de kabel gaat; bij de ontvanger pelt elke laag zijn eigen header er in omgekeerde volgorde weer afZENDER: INPAKKENONTVANGER: UITPAKKENencapsulatiedecapsulatieApplicatieHTTP-berichtTransportTCPHTTP-berichtInternetIPTCPHTTP-berichtNetwerktoegangEthernetIPTCPHTTP-berichtFCSNetwerktoegangEthernetIPTCPHTTP-berichtFCSInternetIPTCPHTTP-berichtTransportTCPHTTP-berichtApplicatieHTTP-berichtover de kabel of door de lucht, als bitsElke laag voegt zijn eigen header toe. De ontvanger pelt ze in omgekeerde volgorde weer af.Het HTTP-bericht zelf blijft van begin tot eind ongewijzigd: de server leest exact wat de browser schreef.

De reis, nu per laag​

Dezelfde stappen als hierboven, maar nu geordend volgens het model:

Stap uit de reisOSI-laagTCP/IP-laag
URL ontleden7 ApplicatieApplicatie
DNS-opzoeking7 ApplicatieApplicatie
TCP-handdruk (SYN, SYN-ACK, ACK)4 TransportTransport
TLS-handdruk en versleuteling6 Presentatie (in de praktijk boven TCP)Applicatie
HTTP-request versturen7 ApplicatieApplicatie
Pakketten routeren via routers3 NetwerkInternet
Frames over kabel of wifi2 Datalink en 1 FysiekNetwerktoegang
HTTP-response ontvangen7 ApplicatieApplicatie
Pagina renderenboven het model: de browser zelf–
Waarom dit praktisch is

Fouten zijn makkelijker te plaatsen als je weet welke laag klaagt:

  • DNS_PROBE_FINISHED_NXDOMAIN → de naam bestaat niet: applicatielaag (DNS).
  • ERR_CONNECTION_REFUSED → niets luistert op die poort: transportlaag.
  • Destination host unreachable bij ping → routering: netwerklaag.
  • 404 Not Found → verbinding is perfect, de bron bestaat niet: applicatielaag (HTTP).
  • Geen wifi-signaal → fysieke laag.

Van boven beginnen of van onder beginnen maakt niet uit; systematisch één laag per keer uitsluiten wel.

Test jezelf​

1. In welke stap van de reis wordt de domeinnaam omgezet naar een IP-adres?

2. Je krijgt `ERR_CONNECTION_REFUSED` bij het openen van localhost:5173. Waar zit het probleem het waarschijnlijkst?

3. Wat is encapsulatie?

4. Op welke OSI-laag werkt een router?

Onthoud
  • Tussen Enter en pagina zitten vaste stappen: URL ontleden → DNS → TCP → TLS → HTTP-request → routering → response → renderen.
  • Elke laag lost één probleem op en steunt op de laag eronder; daardoor is elke laag vervangbaar.
  • OSI telt zeven lagen (fysiek, datalink, netwerk, transport, sessie, presentatie, applicatie), TCP/IP vat die samen in vier.
  • Bij encapsulatie krijgt data per laag een header erbij; de ontvanger pelt ze in omgekeerde volgorde weer af.
  • Lagen zijn een diagnosemiddel: elke foutmelding hoort bij een laag.