Hoe is het OSI-model ontstaan?
Het Open Systems Interconnection Model (kortweg OSI-model) werd door de International Organization for Standardization (ISO) ontworpen als referentiemodel voor een open communicatie tussen verschillende technische systemen. Waarom wordt duidelijk als men terugdenkt aan de beginperiode van het internet: eind jaren 70 van de vorige eeuw stuitten de toonaangevende fabrikanten in de netwerktechnologie op het probleem dat door propriëtaire netwerkarchitecturen alleen apparaten van dezelfde fabrikanten met elkaar konden worden verbonden. Vrijwel geen fabrikant kwam op het idee hardware- of softwarecomponenten te ontwikkelen op basis van de specificaties van andere fabrikanten. Een project als het internet vergt echter bepaalde standaards opdat een gemeenschappelijke communicatie mogelijk wordt.
Het OSI-model is het resultaat van een poging tot standaardiseren en biedt als conceptueel kader een designbasis voor communicatiestandaards die niet afhankelijk zijn van fabrikanten. Daarvoor verdeelt het door ISO ontworpen OSI-model het complexe proces van de netwerkcommunicatie in zeven niveaus, de zogenaamde lagen (in het Engels layers). Daarom spreekt men ook wel van de OSI-lagen. Binnen de communicatie tussen twee systemen moeten in elke afzonderlijke laag specifieke taken worden uitgevoerd. Hiertoe behoren bijvoorbeeld de communicatieregeling, de adressering van het doelsysteem of het omzetten van datapakketten in fysieke signalen. Dat lukt echter alleen als alle systemen die bij de communicatie betrokken zijn, zich aan bepaalde regels houden. Deze regels zijn vastgelegd in zogenaamde protocollen die aansluiten op afzonderlijke lagen of die overkoepelend worden toegepast.
Het OSI-referentiemodel zelf is echter geen concrete netwerkstandaard. Het model beschrijft eerder in abstracte vorm welke operaties moeten worden geregeld, opdat de communicatie via een netwerk functioneert. Vandaar is het nuttig om hieronder over het OSI-model nadere uitleg te bieden.
De lagen van het OSI-model
Voor gebruikers lijkt de communicatie tussen twee computers triviaal, maar bij de gegevensoverdracht via een netwerk moeten talloze taken worden volbracht en deze dienen betrouwbaar, veilig en integer te zijn. Daarom is het nuttig gebleken de netwerkcommunicatie op te delen in lagen. Daarbij krijgt elke laag een exact gedefinieerd takenpakket. Een standaard dekt daarom meestal slechts een deel van het lagenmodel af. Dit model is hiërarchisch opgebouwd: elke laag heeft via een koppelvlak toegang tot de laag eronder en stelt de laag erboven diensten ter beschikking. Dit principe heeft twee belangrijke voordelen:
-
Binnen een laag zijn de taken die moeten worden volbracht en de eisen waaraan moet worden voldaan duidelijk gedefinieerd. Zo kunnen onafhankelijk van elkaar standaards voor elke laag worden ontwikkeld.
-
Doordat de afzonderlijke lagen duidelijk van elkaar zijn afgescheiden, hebben wijzigingen aan een standaard binnen de ene laag geen invloed op processen die in andere lagen lopen. Dit maakt het invoeren van nieuwe standaards gemakkelijker.
Qua taken kunnen de zeven lagen van het OSI-model worden verdeeld in twee groepen: toepassingsgeoriënteerde en transportgeoriënteerde lagen. De processen die op de afzonderlijke niveaus plaatsvinden, kunnen aanschouwelijk worden gemaakt aan de hand van de e-mailoverdracht van een eindapparaat naar de mailserver:
Data-eenheid |
Laag |
Data |
7. Toepassing |
Data |
6. Presentatie |
Data |
5. Sessie |
Segmenten |
4. Transport |
Paketten |
3. Netwerk |
Frames |
2. Datalink |
Bits |
1. Fysiek |
Toepassingsgeoriënteerde lagen
De bovenste lagen van het OSI-referentiemodel worden toepassingsgeoriënteerde lagen genoemd. Men maakt onderscheid tussen de toepassingslaag, de presentatielaag en de sessielaag.
-
Laag 7 – toepassingslaag (application layer): de toepassingslaag is het niveau van het OSI-model dat direct contact heeft met toepassingen als e-mailprogramma’s of webbrowsers. Hier worden gegevens uitgewisseld. De toepassingslaag brengt de verbinding met de lagere niveaus van het OSI-model tot stand en houdt functies voor toepassingen gereed. Aan de hand van het voorbeeld van de e-mailoverdracht kan deze laag als volgt worden verduidelijkt: een gebruiker tikt een bericht in het e-mailprogramma op zijn eindapparaat. Dit bericht wordt in de vorm van een datapakket in de toepassingslaag geladen. Daarbij wordt extra informatie aan de e-mailgegevens toegevoegd in de vorm van een ‘application header’. Dat wordt ook wel ‘inkapselen’ genoemd. Deze header bevat onder andere de informatie dat het pakket gegevens bevat die afkomstig zijn van een e-mailprogramma. Daarnaast wordt het protocol bepaald dat gebruikt wordt voor de overdracht van de e-mail op de toepassingslaag (in het geval van een e-mail meestal SMTP).
-
Laag 6 – presentatielaag (presentation layer): een centrale taak bij de netwerkcommunicatie is ervoor te zorgen dat gegevens in standaardformaten worden overgedragen. In de presentatielaag worden lokale weergaven daarom vertaald naar gestandaardiseerde formaten. In het geval van de e-mailoverdracht wordt hier bepaald hoe het bericht moet worden weergegeven. Daarvoor wordt het datapakket aangevuld met een ‘presentation header’. Deze bevat informatie over hoe de e-mail gecodeerd is (in Nederland meestal ISO 8859-1 (Latin-1) of ISO 8859-15), in welk formaat eventuele bijlagen aanwezig zijn (bijv. JPEG of MPEG4) en hoe de gegevens gecomprimeerd of versleuteld zijn (bijv. SSL/TLS). Zo kan ervoor worden gezorgd dat het formaat van de e-mail ook door het doelsysteem wordt begrepen en het bericht daar correct wordt weergegeven.
-
Laag 5 – sessielaag (session layer): de centrale taak die in de sessielaag wordt volbracht, is het regelen van de verbinding tussen de twee eindsystemen. Daarom wordt deze laag ook wel communicatielaag genoemd. Hier zijn speciale regel- en controlemechanismen actief die het tot stand komen, onderhouden en beëindigen van de verbinding regelen. Voor deze communicatieregeling is extra informatie nodig die door een ‘session header’ aan de e-mailgegevens wordt toegevoegd. De meest gangbare applicatieprotocollen, zoals SMTP of FTP, houden zich zelf met de sessies bezig of zijn net als HTTP toestandsloos. Het TCP/IP-model dat concurreert met het OSI-model vat daarom OSI 5, 6 en 7 samen tot één application layer. Andere standaards die aansluiten op laag 5 zijn NetBIOS, Socks en RPC.
Transportgeoriënteerde lagen
Op de drie toepassingsgeoriënteerde lagen van het OSI-model volgen vier transportgeoriënteerde lagen. Men maakt onderscheid tussen de transportlaag, de netwerklaag, de datalinklaag en de fysieke laag.
-
Laag 4 – transportlaag (transport layer): de transportlaag fungeert als schakel tussen de toepassingsgeoriënteerde en de transportgeoriënteerde lagen. Op dit niveau van het OSI-model wordt de logische end-to-endverbinding, het overdrachtskanaal, tussen de communicerende systemen gerealiseerd. Ook daarvoor moet aan de e-mailgegevens bepaalde informatie worden toegevoegd. Het datapakket, dat al met de headers van de toepassingsgeoriënteerde lagen is uitgebreid, wordt in laag 4 aangevuld met een ‘transport header’. Daarbij worden gestandaardiseerde netwerkprotocollen als TCP of UDP gebruikt. Bovendien wordt in de transportlaag bepaald via welke poorten toepassingen op het doelsysteem kunnen worden aangestuurd. In laag 4 wordt een datapakket dus ook aan een bepaalde toepassing toegewezen.
-
Laag 3 – netwerklaag (network layer): met laag 3 bereikt de gegevensoverdracht het internet. In de netwerklaag worden de eindapparaten logisch geadresseerd. Hieraan wordt in laag 3 een eenduidig IP-adres toegewezen. Aan een datapakket, zoals de e-mailgegevens in het voorbeeld, wordt op het 3e niveau van het OSI-model een ‘network header’ toegevoegd, die informatie bevat over de routering en over de controle van de gegevensstroom. Ook hier maken de computersystemen gebruik van internetstandaards als IP, ICMP, X.25, RIP of OSPF. Bij het e-mailverkeer wordt meestal TCP over IP gebruikt.
-
Laag 2 – datalinklaag (data link layer): in de datalinklaag zorgen functies voor het herkennen van fouten, het verhelpen van fouten en de controle van de gegevensstroom ervoor dat overdrachtsfouten worden voorkomen. Daarvoor wordt het datapakket inclusief application, presentation, session, transport en network header omgeven door een frame van data link header en data link trail. Daarnaast vindt in de 2e laag de hardware-adressering plaats. Daarbij worden zogenaamde MAC-adressen gebruikt. De toegang tot het medium wordt geregeld door protocollen als Ethernet of PPP.
-
Laag 1 – fysieke laag (physical layer): in de fysieke laag worden de bits van een datapakket omgezet in een fysiek signaal dat bij het overdrachtsmedium past. Alleen dit signaal kan via een medium als koperdraad, glasvezel of de lucht worden overgedragen. Het koppelvlak naar het overdrachtsmedium wordt bepaald door protocollen en normen als DSL, ISDN, Bluetooth, USB (fysieke laag) of Ethernet (fysieke laag).
Inkapselen en uitpakken
Datapakketten doorlopen elke laag van het OSI-model, zowel op het systeem van de afzender als op het systeem van de ontvanger. Alle andere apparaten die het datapakket op weg naar de ontvanger passeert, passen alleen laag 1 t/m 3 toe. De e-mail uit het voorbeeld passeert als fysiek signaal eerst de router, voordat hij zijn weg door het internet vervolgt. Deze is in laag 3 van het OSI-model gevestigd en verwerkt daarom alleen informatie van de eerste drie lagen; de lagen 4 t/m 7 worden genegeerd. Om toegang te krijgen tot de benodigde informatie moet de router het ingekapselde datapakket eerst uitpakken. Daarbij worden de lagen van het OSI-model in omgekeerde volgorde doorlopen.
Eerst wordt het signaal gedecodeerd in de fysieke laag. Vervolgens worden MAC-adressen in laag 2 en IP-adressen en routingprotocollen in laag 3 opgehaald. Aan de hand van deze informatie kan de router beslissen hoe en waarheen het pakket moet worden doorgestuurd. Het datapakket kan dus weer worden ingekapseld en op basis van de ingewonnen informatie naar het volgende station op weg naar het doelsysteem worden gestuurd.
Meestal zijn meerdere routers betrokken bij een gegevensoverdracht. Op al deze routers vindt het beschreven proces (uitpakken en inkapselen) plaats tot het datapakket in de vorm van een fysiek signaal aankomt bij het eigenlijke doel (bijvoorbeeld een e-mailserver). Ook hier wordt het datapakket uitgepakt doordat de lagen van het OSI-model van laag 1 tot en met laag 7 worden doorlopen. Het bericht dat via de e-mailclient is verstuurd, is nu aangekomen bij de e-mailserver, waar het klaarstaat om door een andere e-mailclient te worden opgevraagd.