Het OSI-model is een door ISO gestandaardiseerd referentiemodel voor datacommunicatiestandaarden, ter bevordering van de interoperabiliteit tussen heterogene netwerktopologieën. OSI is de afkorting van: Open Systems Interconnect.
Inleiding
Het model onderkent zeven relevatie stadia (zowel fysiek als logisch). De bovenste laag van het model wordt de applicatielaag genoemd. Op die plaats heeft de digitale data de vorm van begrijpelijke informatie, in de vorm van (voor de mens) betekenisvolle tekst en getallen. De onderste laag van het model wordt de fysieke laag genoemd. Op die plaats is er alleen nog maar sprake van een (foto)elektrische signaal dat geschikt is voor transport over een IT-infrastructuur. Onderweg van laag 7 naar laag 1 wordt de oorspronkelijke data keer op keer opnieuw ingekapseld door, bij elke laagovergang, steeds nieuwe data toe te voegen. Deze datatoevoegingen zijn noodzakelijk voor drie hoofdzaken: de route over de infrastructuur, volgordelijkheid en de foutcorrectie. Er bevinden zich binnen het OSI-model geen toegewijde lagen ten behoeve van beveiliging, zoals bijvoorbeeld versleuteling. Databeveiliging is namelijk niet de essentie van het model. Fabrikanten staan vrij op elke laag beveiligingsalgoritmen toe te voegen, maar de beschrijving ervan bevindt zich altijd buiten dit model.
Het OSI-model heeft enigszins zijn betekenis verloren, omdat de datacommunicatiewereld de facto gestandaardiseerd is geraakt op Ethernet als netwerktopologie en TCP/IP als communicatieprotocol. Rond 1980 waren er beduidend meer netwerktopologieën en communicatieprotocollen in gebruik, omdat deze zaken toen nog fabrikantgebonden waren. Juist vanwege deze diversiteit was er veel meer behoefte aan interoperabiliteit en werd zodoende het OSI-model ontwikkeld. Het moest mogelijk zijn om van de ene netwerktopologie en/of het netwerkprotocol “over te stappen” naar de andere, met behoud van zgn. routeringinformatie en afleverzekerheden.
Geschiedenis
Opkomst
Over een tijdspanne van 10 jaar, zo grofweg tussen 1975 – 1985 was er sprake van een enorme groei in aantal, omvang en diversiteit van datanetwerken, bij zowel fabrikant, aanbieder als afnemer. IT-infrastructuur was immers het noodzakelijk fundament onder de snel groeiende ICT systemen waarmee de bedrijfseffectiviteit sterk kon worden opgevoerd. Aanvankelijk werden computernetwerken als totaaloplossing geleverd en bestond er geen operabiliteit tussen de vele netwerktypen en –technologieën. Het koppelen van heterogene netwerken was lastig, zo niet onmogelijk. Dit was een tijd van netwerktypen en –topologieën als: TTY, Baseband, Broadband, Arcnet, Token Ring, ATM en (het uiteindelijk zeer succesvol gebleken) Ethernet.
In een poging dit interoperabiliteitprobleem het hoofd te bieden, werd het OSI-comité opgericht. De geschiedenis rond de ontwikkeling van het OSI-model is echter geen wijd verbreid verhaal. Veel van het ontwerpwerk is feitelijk gedaan door Honeywell Information Systems, met Charles Bachman als voornaamste technische man. Ondanks dat de focus in de eerste instantie lag op het ontwerp van gedistribueerde databanken, begon de groep zich rond 1975 te realiseren dat eerst een gestandaardiseerde communicatie-architectuur nodig was. De groep bestudeerde daarop een aantal bestaande architecturen waaronder de “ System Network Architecture” (SNA) van IBM en veel van het werk op het gebied van datacommunicatieprotocollen in opdracht van ARPANET. Dit resulteerde in een zeven lagen tellende indeling, waarvoor tijdelijk de interne werknaam “Distributed Systems Architecture” (DSA) gebruikt werd. Ondertussen in 1977 brengt de British Standards Institute bij ISO de noodzaak onder de aandacht voor de definitie van een norm voor communicatie-infrastructuur voor gedistribueerde dataverwerking. Dit verzoek resulteerde in de formatie van het OSI-subcomité (Technical Committee 97, Subcommittee 16). Het Amerikaans Nationaal Standaardisatie-Instituut (ANSI) werd belast met de ontwikkeling van een reeks van voorstellen die als basis konden dienen bij de eerste formele vergadering van het OSI-subcomité.
Bachman en collega Canepa van Honeywell Information Systems participeerden in de vroege ANSI-vergaderingen en presenteerden daar hun zeven-lagenmodel. Dit model werd als enige geselecteerd om in te dienen bij het OSI-subcomité. Op de ISO-vergadering van maart 1978 in Washington presenteerde het Honeywell-team zijn oplossing. Men vond dat de voorgestelde lagenarchitectuur voorlopig het hoofd kon bieden aan de meeste vereisten rond de gewenste interoperabiliteit tussen de toenmalige heterogene communicatiesystemen. Consensus werd bereikt in de overtuiging dat het model voldoende mogelijkheden biedt om verder uit te breiden als dat nodig mocht zijn.
Een voorlopige versie van het model werd gepubliceerd in maart 1978. De daarop volgende versie (die op enkele punten iets verder was uitgewerkt) werd gepubliceerd in juni 1979 en later formeel gestandaardiseerd. Tegenwoordig is het een standaard van de ITU-T onder de benaming: ‘Recommendation X.200 (07/94)’
Latere uitbreidingen
Soms worden er aan het OSI-model onofficieel lagen toegevoegd of ertussen gezet, zoals bijv. “laag 8 is de gebruiker” of “laag 0 is de stoffelijkheid van de kabels De enige officieel geaccepteerde uitbreiding was de noodzakelijke opsplitsing van datalink laag (laag 2) in de sublagen: LLC (logical Link Control) en MAC (Media acces Control).
Sublaag LLC
De bovenste sublaag van de datalink laag (laag 2) is de LLC-laag (Logical Link Control). Hier worden simultaan heterogene protocollen behandeld volgens de zgn. Multiplexing techniek, zoals b.v. IEEE802.2 (Ethernet), IEEE802.5 (Token Ring) en IEEE802.11 (WiFi). De LLC sublaag verzorgt de eindpuntadressering op het niveau van de ‘device driver’ binnen de Data Link laag.
Sublaag MAC
De onderste sublaag van de datalink laag (laag 2) is de MAC-laag (Media Access Control). Hier wordt vastgesteld wanneer toegang tot het transportmedium verkregen kan worden (binnen het oude Ethernet over coax kabel heette dat mechanisme: CSMA/CD. Maar tegenwoordig met de moderne Ethernet switches als centraal knooppunt zit deze informatie in de dataframestructuur als zgn. MAC adres
Betekenis en functie van de afzonderlijke lagen
# | Laag | PDU | Functie |
---|---|---|---|
7 | Applicatielaag | Data | De gebuikersapplicatie of toepassing. |
6 | Presentatielaag | Data | Formatteert en structureert data zodanig dat het lees- interpreteerbaar is voor de applicatie. |
5 | Sessielaag | Data | Start, onderhoudt en beëindigd sessies tussen applicaties. |
4 | Transportlaag | Segment | Segmentatie en volgordelijkheid. |
3 | Netwerklaag | Packet | Logische adressering, routeinformatie, foutdetectie en correctie. |
2 | Datalinklaag | Frame | Protocol multiplexing, mediumtoegang en fysieke adressering (MAC). |
1 | Fysieke laag | Bit | Binaire transmissie, elektrische of optische specificaties van het signaal en fysieke specificaties van het medium. |
Data-eenheid | Laag | Functie | |
---|---|---|---|
Host lagen | Data | 7. Applicatielaag | De gebuikersapplicatie of toepassing. |
6. Presentatielaag | Formatteert en structureert data zodanig dat het lees- interpreteerbaar is voor de applicatie. | ||
5. Sessielaag | Start, onderhoudt en beëindigd sessies tussen applicaties. | ||
Segment | 4. Transportlaag | Segmentatie en volgordelijkheid. | |
Media lagen | Packet | 3. Netwerklaag | Logische adressering, routeinformatie, foutdetectie en correctie. |
Frame | 2. Datalinklaag | Protocol multiplexing, mediumtoegang en fysieke adressering (MAC). | |
Bit | 1. Fysieke laag | Binaire transmissie, elektrische of optische specificaties van het signaal en fysieke specificaties van het medium. |
Fysieke Laag
De fysieke laag is de eerste (onderste) laag uit het OSI-model. Deze bevat de elektrische en mechanische definities van transportmedium en het signaal.
De fysieke laag beschrijft drie zaken:
- Het vertalen van binaire informatie in een signaal en vice versa
- De definitie van de mechanische karakteristieken van kabel, connectoren (stekkers) en maximale lengte.
- De definitie van de signaalkarakteristieken zoals het elektrische signaal bij transport over koper, het optische signaal bij transport over glasvezel of het radiosignaal bij transport door de ether.
Datalinklaag
De datalinklaag is de tweede laag uit het OSI-model. Deze laag zorgt voor transport van de data over een verbinding (link).
Men moet bijvoorbeeld denken aan de verbinding tussen de netwerkkaarten van een computer en een router. Dus niet het fysieke medium, de kabel zelf (deze is ingedeeld in de fysieke laag), maar de signalen die over deze kabel heen gaan.
Adressering gebeurt op basis van het door de fabrikant ingegeven MAC-adres door een switch.
De data die wordt doorgegeven via de fysieke laag kan veel fouten bevatten. Storingen van buitenaf zorgen er vaak voor dat bits muteren of zelfs verdwijnen. Alle data wordt opgedeeld in pakketjes. Deze pakketjes worden frames genoemd. Per frame wordt met een aantal foutcontroles, zoals een Cyclic Redundancy Check, bepaald of het frame correct is ontvangen. Bij het maken van een frame wordt een checksum van de data gegenereerd. Door de checksum kan de machine die het frame ontvangt de data op integriteit verifiëren. In geval van een foutief frame wordt deze genegeerd, bovenliggende lagen zorgen voor eventuele retransmissie (transportlaag). Door deze procedures wordt het uitgesloten dat de ontvangende host (Respectievelijk), verkeerde gegevens gaat gebruiken. Bij een grote hoeveelheid foute of ontbrekende pakketten gaan de prestaties van de verbinding echter aanzienlijk achteruit.
Netwerklaag
De netwerklaag is een conceptuele laag in een computernetwerk; het is een voorgeschreven laag uit het OSI-referentiemodel.
Verantwoordelijkheden van de netwerklaag
De netwerklaag is de derde laag gedefinieerd in het OSI-model, liggend tussen de datalinklaag en de transportlaag. De netwerklaag is in het model verantwoordelijk voor het overbruggen van de afstand tussen deze omliggende lagen: voor het vertalen van een conceptueel “gesprek” (een sessie) tussen begin- en eindpunt in een netwerk in een verzameling pakketten die door de verschillende verbindingen in het netwerk (de datalinks) geleid kunnen worden.
De netwerklaag is verantwoordelijk voor het routeren van de pakketten door het netwerk, de beslissing over de achtereenvolgende rij computers die een pakket zullen ontvangen en doorgeven, wordt in de netwerklaag genomen. Dit moet niet verward worden met de verantwoordelijkheid van de datalinklaag, die gaat over de vraag of een pakket goed (correct, volledig, zonder fouten) is verzonden tussen twee direct verbonden computers.
Routering
Wanneer de netwerklaag een datastroom in pakketten verdeelt, moet de netwerklaag beslissen hoe die pakketten over het netwerk verstuurd moeten worden. Globaal zijn daarvoor twee mechanismen:
- Er is een vaste route voor alle pakketten tussen begin- en eindpunt – In dit geval spreekt men van een verbindingsgeoriënteerde routering (en: connection-oriented) of ook wel van een virtueel circuit. De voordelen van een dergelijke verbinding zitten voornamelijk in de relatieve eenvoud van de implementatie en foutencorrectie. Aangezien alle pakketten dezelfde route volgen tussen begin- en eindpunt, is het alleen nodig om een route te bepalen — vragen zoals drukte op de route doen er niet toe. Fouten zoals verloren pakketten komen meestal niet voor en ook het terugassembleren van pakketten tot een datastroom om naar de sessielaag van het eindpunt te sturen is zeer makkelijk: alle pakketten komen in volgorde aan. Daar staat tegenover dat een circuit er meestal niet tegen kan als een onderdeel van de verbinding (zoals een fysieke kabel) wegvalt. Dat is meestal de dood van de verbinding, de bovenliggende sessie en van alles wat daar weer boven zit. Ook kan een verbindingsgeöriënteerde routering geen rekening houden met plotselinge drukte op de route. Een virtueel circuit is dan ook voornamelijk geschikt voor verbindingen die zeer betrouwbaar zijn of volledig ter beschikking staan van een enkele sessie (zoals een telefoongesprek over een landlijn).
- Ieder pakket krijgt zijn eigen routering mee – In dit geval spreekt men van een verbindingsloze routering (Engels: connectionless) of van een datagram routering. De voordelen van een dergelijke verbinding zijn te vinden in de mogelijkheid om verbroken verbindingen of andere moeilijkheden onderweg op te vangen. Komt een fysieke verbinding te vervallen, dan kunnen de pakketten een andere routering meekrijgen. Hetzelfde geldt als een route niet verbroken wordt, maar dermate onder druk komt te staan dat hij nauwelijks meer begaanbaar is. Daartegenover staan een aantal duidelijke nadelen, voornamelijk in de complexiteit van de uitvoering. Een routeringsalgoritme dat rekening kan houden met drukte of verbroken verbindingen, moet ook informatie binnenkrijgen over dat soort toestanden en er iets mee doen. Bovendien moet het algoritme bij het eindpunt slim omgaan met pakketten die binnenkomen. Individuele routering betekent dat pakketten niet noodzakelijkerwijze in de juiste volgorde aankomen en het algoritme dat de datastroom weer in elkaar zet voor de sessielaag moet daar rekening mee houden.
Verbindingsloze routering is voornamelijk geschikt voor netwerken waarin individuele verbindingen (de fysieke verbindingen) niet erg betrouwbaar zijn (het open Internet), of waarin er geen verbindingen zijn die volledig beschikbaar zijn voor een enkele sessie (het internet, de mobiele telefonie) of waarin het uiteindelijk aankomen van de boodschap belangrijker is dan de snelheid (ook weer het Internet).
Adressering
Als bijproduct van de routering is de netwerklaag ook begaan met de vraag hoe computers in het netwerk aangesproken worden, wat hun adres is binnen het netwerk en of er eventueel adresvertaling nodig is (bijvoorbeeld van een conceptueel adres dat makkelijk is in de menselijke ommegang tot een fysiek adres dat makkelijk is voor computers — zie bijvoorbeeld DNS). De netwerklaag moet bekend zijn met de adresseringsmechanismen in het netwerk, of in het uiterste geval met alle adressen in het netwerk.
Protocollen
Er zijn een groot aantal datacommunicatieprotocollen die zich binnen de beschrijving van de netwerklaag bevinden. Voorbeelden hiervan zijn:
Internet
- IP (Internet Protocol)
- PPP (point to Point Protocol)
- ICMP (internet Control Message protocol)
- OSPF (Open Shortest Path First Routing Protocol)
- ARP (Address Resolution Protocol)
- RARP (Reverse ARP)
OSI
Novell
- IPX (Internetworking Package Exchange)
Apple
- AARP (AppleTalk Address Resolution protocol)
- LAP (Link Access Protocol)
DEC
- DRP (DEC Routing Protocol)
- LAT (Local Area Routing Protocol)
Transportlaag
De transportlaag is de vierde laag uit het OSI-model, en zorgt voor het probleemloze transport van data voor de applicaties. De meest gebruikte protocollen uit deze laag zijn het Transmission Control Protocol (TCP) en het User Datagram Protocol (UDP), data-eenheden uit deze laag worden meestal segmenten (of datagrammen in het geval van UDP) genoemd.
Verbindinggeoriënteerd
Bepaalde transportlaag-protocols, waaronder het TCP, bieden de hogere lagen een ‘verbinding’. Door het leveren van een betrouwbaarheid, congestion control, volgordecontrole en foutcontrole als dienst aan de hogere lagen uit het OSI-model, lijkt het voor de applicaties en de gebruiker alsof er een vaste verbinding is tussen de systemen. Ook al levert de netwerklaag alleen een verbindingsloze dienst, waarbij alle data in losse delen (packets) wordt verstuurd en ontvangen (packetswitching), en is er geen lijn exclusief gereserveerd voor deze verbinding. De verbinding die de transportlaag levert wordt alleen geregistreerd op de twee eindsystemen.
Betrouwbaarheid
Het protocol uit de onderliggende netwerklaag, bijvoorbeeld het Internet Protocol (IP), levert een zogenoemde best-effort delivery dienst. Hierdoor is het nooit zeker of een bepaald pakket zal aankomen op de bestemming, omdat het netwerklaag-protocol alleen zijn uiterste best zal doen. Bepaalde protocollen uit de transportlaag (bijvoorbeeld TCP), kunnen deze zekerheid wel leveren. Met behulp van de SYN– (SYNchronise) en ACK-segmenten (ACKnowledge), houden zij bij of er data verzonden kan worden, en of de data aangekomen is. Aan ACK-segment wordt meestal ook het volgnummer toegevoegd, zodat er sneller besloten kan worden, of er bepaalde segmenten opnieuw moeten worden verstuurd (bij verloren of beschadigde segmenten). Wanneer de verbinding wordt verbroken wordt dit door middel van een FIN-segment duidelijk gemaakt.
Congestion control
Om te voorkomen dat netwerken of systemen te zwaar belast blijven, in het geval van grote hoeveelheden data, bieden sommige datalinklaag-protocols de mogelijkheid tot congestion control. Hierbij wordt in de header van een segment aan de verzender doorgegeven dat de ontvanger op het moment te zwaar belast is, en dat er even gewacht moet worden met het versturen van data. Waardoor wordt voorkomen dat verzenders een overbelast netwerk, overbelast blijven houden door het opnieuw sturen van segmenten, wanneer deze als gevolg van de problemen niet, of niet op tijd aankomen.
Volgordecontrole
Een andere dienst die door een protocol uit de transportlaag kan worden geleverd, is het bijhouden van de volgorde van alle segmenten. Hierbij wordt door het protocol een volgnummer aan de header toegevoegd. Waardoor het in gevallen wanneer de pakketten van het netwerklaag-protocol in de verkeerde volgorde aankomen (bijvoorbeeld wanneer de pakketten via andere knooppunten over een netwerk zijn gestuurd), toch nog mogelijk is om de data te herstellen en opnieuw in goede volgorde te plaatsen. Dit is een dienst die wel door TCP wordt geleverd, maar niet door UDP. Door het controleren van de datavolgorde, en alle data in een buffer te plaatsen, is het mogelijk om applicaties een bytestream te leveren. Een stroom van data, zodat de applicatie niet meer hoeft te wachten op het binnenkomen van de data.
Foutcontrole
Ook de foutcontrole van verbindingen wordt door de transportlaag geleverd. Het protocol berekent voor alle uitgaande data de checksum, en voegt deze toe aan de header van het uitgaande segment. Voor alle binnenkomende data wordt de berekende checksum vergeleken met de ontvangen checksum, zodat er kan worden gecontroleerd of alles intact is aangekomen.
Poorten
Diensten die protocollen uit de transportlaag kunnen bieden zijn de TCP- en UDP-poorten. Wanneer aan iedere applicatie een uniek poortnummer (door middel van een socket) wordt gegeven, wordt het mogelijk om meerdere applicaties tegelijk te laten communiceren met andere systemen. Het transpoortlaag-protocol zal dan voor alle segmenten die binnenkomen, zorgen dat ze naar de bij het poortnummer behorende socket worden gestuurd, dit wordt demultiplexing genoemd. Alle data die verzonden wordt over de sockets van een systeem, worden door ditzelfde protocol ‘verpakt’ en aangevuld met header-informatie, ook wel multiplexing genoemd.
Protocollen
Er zijn een groot aantal datacommunicatieprotocollen die zich binnen de beschrijving van de transportlaag bevinden. Voorbeelden hiervan zijn:
Internet
IBM/Microsoft
- NetBEUI (NetBios Extended user interface)
Apple
- AURP (Apple Talk Update-based Routing Protocol)
- RTMP (Routing Table Maintenance Protocol)
- AEP (AppleTalk Echo Protocol)
- ATP (AppleTalk Transaction Protocol)
- NBP (Name Binding Protocol)
DEC
- NSP (Network Services Protocol)
OSI
- TP0, TP1, TP2, TP2, TP4 (transport Protocol)
Sessielaag
De sessielaag, de vijfde laag in het OSI-model, stabiliseert, onderhoudt en beëindigt een sessie tussen twee communicerende hosts.
Deze laag synchroniseert ook de dialoog die plaatsvindt op de presentatielaag tussen twee hosts, en onderhoudt de data-uitwisseling. Een webserver bijvoorbeeld wordt door meerdere computers tegelijkertijd benaderd, dus kunnen er veel communicatiekanalen tegelijkertijd open staan. Het is dan ook belangrijk om bij te houden welke gebruiker op welk kanaal zit. De sessielaag zorgt voor efficiënte communicatie. Problemen op de toepassingslaag en de presentatielaag worden gemeld. De sessielaag biedt onder andere Class of Service (CoS).
Presentatielaag
De presentatielaag, de zesde laag in het OSI-model, bepaalt het formaat dat moet worden toegepast om data uit te wisselen.
Deze laag is in feite de tolk-vertaler van het netwerk. Bij de zendende computer vertaalt deze laag de data die door de toepassingslaag wordt aangeboden in een gemeenschappelijk erkend tussenformaat. Bij de ontvangende computer vertaalt de presentatielaag het tussenformaat in een formaat dat door de toepassingslaag van die computer wordt ondersteund.
De presentatielaag is ook verantwoordelijk voor protocol-conversie, het vertalen van data, ter beveiliging coderen van data, het wijzigen of converteren van de tekenset en het uitbreiden van grafische commando’s. Hij verzorgt tevens de compressie van data, waardoor het aantal te verzenden bits kan worden teruggebracht.
Applicatielaag
De toepassingslaag of applicatielaag is de zevende laag van het OSI-model.
Deze laag communiceert direct met de applicatie en geeft opdrachten aan de presentatielaag, de zesde laag van het OSI-model. De toepassingslaag staat het dichtst bij de gebruiker. E-mail, FTP e.d. communiceren op deze laag. De toepassingslaag onderscheidt zich van de andere lagen doordat deze geen services biedt naar de andere OSI-lagen, maar alleen naar de applicatie buiten het OSI-model.
Voorbeelden van protocollen op deze toepassingslaag zijn onder meer HTTP, FTP, TFTP, SMTP, SNMP, SSH, SSL, Telnet, NFS, RTP, RTCP, RTSP, IMAP, POP, SIP, UUCP, XMPP, IRC en DNS.