Hoofdindex » Servers » TechTalk » OSI Model
Webservers en meer
TechTalk
Het OSI model

Technische informatie

Ooit gehoord van APSTNDP? Dit zijn de eerste letters van de 7-lagige OSI-model, dat best onthouden wordt door volgende tekst:
All People Seem To Need Data Processing, of
People Do Need To See Pamela Anderson.

Bij het opstellen van protocollen in ingewikkelde systemen (en het internet is redelijk ingewikkeld, misschien heb je dat nu ook door) is het belangrijk een strikte taakverdeling door te voeren. Daarom werd de verdeling in lagen voorgesteld.

    Veronderstel twee kapiteinen, ieder op hun eigen schip. Ze willen de laatste voetbalmatches bespreken.
  • Eerste probleem: de eerste kapitein spreek engels, de tweede duits.
    Gelukkig hebben beide schepen een kok aan bood, en die spreken beide frans, zodat ze de boodchappen kunnen vertalen. Iedere kok zet de uitgaande berichten om in een standaard-taal (frans) en zet de inkomende berichten om in de lokale taal (engels of duits).
  • Tweede probleem: de schepen zitten op een zekere afstand van elkaar, zodat roepen (zelfs zeer luid) niet helpt.
    Maar natuurlijk zit er op ieder schip ook een marconist, en die zet de franse tekst keurig om in morse, die dat uitgezonden kan worden.

De mensen kunnen logisch communiceren op een horizontaal niveau: beide kapiteins weten wat voetbal is, beide koks spreken frans en beide marconisten kennen de morse-kode. Maar de capiteinen spreken geen frans en kunnen een morse-sleutel niet bedienen, de koks weten niets af van voetbal of van morse en de marconisten weten niets af van voetbal en spreken geen frans.

Fysisch communiceren ze echter vertikaal: iedere boodschap gaat van de kapitein over op de kok en de marconist.

In het echte OSI model gebeurt precies hetzelfde: de hoogste laag, de application laag bevat de user interface (client) en de server. De client communiceert logisch met de server, gebruik maken van een overeengekomen protocol (bijvoorbeeld HTTP). De fysische communicatie loopt echter over algemene protocollen (TCP) die dan uiteindelijk over draden of vezelkabel getransporteerd moet worden.

We gaan de lagen één voor één bespreken. De bovenste drie lagen vormen één laag in het internet model (application).

Application
In deze laag horen de protocollen die direct communiceren met de eindgebruiker. In deze laag zitten de clients en de servers. Ze sturen bestanden door naar elkaar maar weten niet hoe dit gebeurt. De client kan vragen "maak een verbinding met die server, en vraag deze internet-pagina aan". Dit is de laag van de 'hogere protocollen': HTTP, FTP, POP-3, IMAP-4, SMTP, TELNET, ... (jaaa, telnet is een hogere protocol!)

Presentation
Als de gegevens gecomprimeerd of versleuteld moeten worden, gebeurt dit hier. De client en server hoeven niet te weten hoe de kodering is gebeurd. Als een computer een mainframe is dat een andere talstelsel gebruikt (EBCDIC in plaats van ASCII), dan gebeurt de omzetting hier. De applikaties weten niet dat de bestanden onderweg vertaald zijn geweest. Webpagina's worden regelmatig gecomprimeerd doorgestuurd (transfer-encoding: gzip). Voor de browser zelf maakt dit niets uit.
Deze laag bestaat niet onder Windows; als een applikatie bestanden moet comprimeren, dat moet het programma dat zelf doen. Omzetting naar een ander talstelsel en versleuteling worden eveneens niet op een native manier (door windows zelf) ondersteund.

Session
Deze laag houdt zich bezig hoe de verbinding opgesteld moet worden. Dit gebeurt zeer algemeen. De applikatie vraagt bijvoorbeeld een bestand aan, de presentatielaag (voor zover aanwezig) versleutelt, comprimeert en/of vertaalt de aanvraag, en de session maakt en verbreekt de verbinding.
Transport
Dit is de laag dat zich bezig houdt met het verdelen van een bestand in verhandelbare stukken. Het bestand wordt namelijk in packets verdeeld, waardoor een betere benutting van de beschikbare bandbreedte bekomen wordt (iedereen kan nagenoeg terzelfdertijd gegevens doorsturen). Dit is de laag van de TCP en UPD: dit zijn twee protocollen die aangeven hoe een bestand moet verdeeld worden in paketten. Meer info over TCP kan je ook hier vinden.

Network
TCP en UDP gebruiken het IP (internet protocol) om de paketten te versturen. Deze laag houdt zich bezig met de routering over verschillende subnetten; het intelligent doorsturen van pakketten. Hier wordt er gewerkt met IP adressen, want deze zijn routeerbaar. Een router hoort op dit niveau. Een IP adres is een logisch adres dat aan een host wordt toegekend. Het "internet" dankt zijn naam aan de benaming van één enkele protocol.

Datalink
Deze laag houdt zich bezig met de adressering op MAC adres-niveau. Een MAC adres is een fysisch adres dat ingebakken zit in de netwerkkaart. Switches horen op dit niveau. Zij zijn in staat ontvangen pakketten door te sturen naar de juiste computer, gebaseerd op het MAC adres. Switches weten niets af van het IP adres (de omzetting van IP adres naar MAC adres - ARP of address resolution protocol is juist boven hun hoofd gebeurd). Een switch heeft een MAC adres (één per poort zelfs), maar geen IP adres (terwijl een router beide heeft). ATM bridges horen op dit niveau omdat zij een (weliswaar beperkte) routing uitvoeren.

Physical layer
Dit is de laag van de kabels en de hubs. Hubs verdelen ieder ontvangen pakket over alle uitgangen, zonder zich bezig te houden met het feit of de ontvanger wel gedient is met dergelijk pakket. (de ontvanger 'vergeet' ogenblikkelijk een pakket dat niet voor hem bestemd is, maar dit veroorzaakt echter onnodig trafiek op het netwerk). Een hub weet absoluut niet wat hij ontvangt: hij stuurt het gewoon door naar iedereen die aangesloten is. In deze laag horen ook de bridges, modems, access points en kabels. Alles waarmee een technieker zich bezig houdt zit gecomprimeerd in één laag. De softwaremannen hebben het weer voor het zeggen gehad.

Protocol stack

    Een bestand dat verstuurd moet worden moet de volledige toren doorlopen:
  • http/pop-3/smtp/…: de webapplikatie, mail, ...,
  • tcp: het inpakken en uitpakken en fouten corrigeren
  • ip: het versturen van de pakketten over verschillende subnets (subnet: een logische onderverdeling)
  • arp: (het versturen van de pakketten gebaseerd op hun fysisch adres).
    Omdat deze protocollen in elkaar overlopen in het windows systeem wordt soms gesproken over het protocol stack: de opeenstapeling van protocollen dat een bestand moet doorlopen.
Andere digitale systemen (denk maar aan de GSM, dat ook een zeer uitgebreid systeem is) gebruiken ook het OSI model om een complexe opgave (het in real-time overzetten van spraak over een grote afstand, met een zeer beperkte bandbreedte en een onbetrouwbare verbinding) in kleinere taken te splitsen. Iedere laag voert een zeer specifieke taak uit (bijvoorbeeld het localiseren van een correspondent).

Toepassing van het OSI model: windows SMB

Bovenstaande plaatje toont ons de hele struktuur van Windows. Het deel in het geel mag je vergeten: het IPX protocol zal je nergens meer aantreffen, het NetBEUI werd in de eerste windows-versies toegepast ("windows for workgroups") en het DECnet protocol is merkgebonden (en eveneens niet meer gebruikt).

De lagen bij deel 2 zijn de lagen die gebruikt worden bij algemene internet-toepassingen (web, mail,…). Windows zelf houdt zich hier op de achtergrond. Het programma (bijvoorbeeld Firefox) maakt de verbinding met de server (session), versleutelt/comprimeert de gegevens indien vereist (presentation) en toont de resultaten op het scherm (application).

Bij het sharen van bestanden en printers (deel 1) speelt het SMB protocol een grote rol (SMB: server message block). Dit is de taal dat gesproken wordt tussen windows computers onderling. Er bestaan verschillende versies van deze taal (naargelang de windows implementatie), maar in het algemeen kan men stellen dat de SMB goed gestandardiseerd is en probleemloos door andere systemen kan gebruikt worden om met windows computers te communiceren. Als een UNIX computer met een Windows computer wenst te communiceren, dan kan dit via SMB (bijvoorbeeld via het unix programma Samba).
NetBIOS is een reeks systeemaanroepen (API calls) die gebruikt worden voor het effectief uitvoeren van de opdracht. Je kan het vergelijken met de interrupt-aanvragen in de DOS-wereld die eveneens gebruikt werden om de besisopdrachten van het disk operating system uit te voeren.

Ondertussen heeft het OSI model wel aan waarde verloren omdat de praktische uitvoering verschillend is van het strakke lagenmodel. Maar het zal nog tot in het jaar 2059 op school onderwezen worden.
Een voorbeeld: encryptie zou volgens het model in de presentatielaag moeten geburen. In de praktijk gebeurt dit op een veel lager niveau, bijvoorbeeld op de fysische laag (draadloos netwerk) of netwerklaag (IPSec) of zelf in de applikatie zelf (https)

Maar de basis van het OSI model blijft altijd geldig:

  • de logische communikatie gebeurt horizontaal (van applikatie tot applikatie, van hub tot hub,...)
  • de fysische communikatie gebeurt vertikaal (een datapakket loopt de stack van de eerste host vertikaal af en bij de ontvanger wordt de omgekeerde weg in de stack afgelegd).
Het OSI model is een perfekt voorbeeld hoe een complex systeem in eenvoudigere deeltaken kan gesplitst worden.

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's