OSI
Open Systems Interconnection. OSI, som på dansk hedder åbne systemers sammenkobling, er en referencemodel for datakommunikation og de internationale standarder, som benyttes hertil, samt en større samling protokoller, som kan indgå i åbne net. OSI benytter principper, kendt fra konstruktionen af større programmelpakker, til at organisere de mange forskellige funktioner, der er nødvendige for at få computere, og hermed deres brugere, til at kommunikere. OSI søger at give en fleksibel ramme for udarbejdelsen af modulære specifikationer, som kan gøre det muligt at sammenkoble udstyr af vidt forskellig art, idet der kun lægges få begrænsninger for de variationsmuligheder, de forskellige anvendelser kræver.
Udviklingen af OSI blev påbegyndt i 1978 af ISO, og en færdig standard for referencemodellen, ISO 7498, forelå i 1983. Teksten blev revideret i 1993. Standardiseringsarbejdet vedrørende datakommunikation, som foregik i CCITT (nu ITU-T), havde mange fælles elementer med ISO-arbejdet, og der indledtes derfor i starten af 1980'erne et samarbejde. Det fortsatte arbejde med OSI varetages derfor nu på koordineret vis af de to organisationer. Derfor findes mange specifikationer i næsten enslydende form som såvel ISO-standarder som CCITT-anbefalinger. ISO 7498 findes således hos CCITT som X.200.
Referencemodellen baserer sig på en ramme, som logisk inddeler kommunikerende slutsystemers funktioner i et antal lag, svarende til, at større programmer opdeles i et antal mindre moduler. Der er dog en noget strengere binding på lagenes indbyrdes interaktion, end man normalt ser i forbindelse med programmer. Hvert lag har ansvaret for givne delmængder af de funktioner, som indgår i den samlede kommunikationsproces. I hvert lag udføres opgaverne ved at benytte den service, som stilles til rådighed af det umiddelbart underliggende lag.
I et givent endesystem kaldes det aktive element i et lag for en entitet (i lag (N) kaldes den (N)-entity); lagets opgaver løses ved, at to eller flere (N)-entiteter kommunikerer indbyrdes ved brug af protokoller ((N)-protocol). Laget kan nu yde en service til det ovenover liggende lag (lag (N+1)). Lagets funktionalitet beskrives hermed dels ved en servicespecifikation, som ifølge sagens natur må være temmelig abstrakt, dels ved den protokol, der benyttes mellem entiteterne, og denne er så konkret, at det er muligt at stille krav om overensstemmelsesprøve (conformance test).
I referencemodellen er antallet af lag fastlagt til at være syv, og arbejdsdelingen for disse er fastlagt i modellen. I de lavere lag (1-3) vil protokollen normalt gælde samarbejde med det transmissionssystem, som forbinder parterne (kaldet subnettet), mens de øvrige lag (4-7) normalt gælder kommunikation mellem endesystemerne.
De syv lag er:
- Applikationslaget (lag 7, anvendelseslaget)
- Præsentationslaget (lag 6)
- Sessionslaget (lag 5)
- Transportlaget (lag 4)
- Netværkslaget (lag 3)
- Dataoverførselslaget (lag 2)
- Det fysiske lag (lag 1)
[[Image:osi.gif|Variationsmulighedernes omfang i de enkelte lag ligner lidt et timeglas, dvs. stor variation foroven og forneden, og lille antal omkring lag 4]] I den basale referencemodel beskrives de forskellige funktioner, som indgår i kommunikationssystemer: fejlkontrol, flowkontrol, multipleksering, dialogstyring, segmentering, rutning. Hertil er efterhånden kommet nye dele, som udvider modellen til at dække centrale ting som navngivning og adressering; sikkerhedsaspekter; netmanagement-funktioner.
Modellen har i sig selv kun få anvendelser. Den beskriver et begrebsapparat, som er velegnet for fagfolk, der arbejder med datakommunikation generelt eller med specifikke opgaver og ikke ønsker at bruge produktspecifikke termer. Den giver en ramme for udviklingen af standarder i de enkelte lag, men der er ikke tale om en implementeringsvejledning, selv om modellen kan give fingerpeg om opdeling af programmel.
De standarder, der udvikles i OSI-sammenhæng for hvert lag, kan stykkes sammen til en samlet beskrivelse af kommunikationen. En fri kombination af lagenes funktioner er betinget af, at servicegrænsefladerne ikke har for store variationsmuligheder. Fleksibiliteten kommer derfor snarere til udtryk ved en mangfoldighed i protokollerne, som specielt for lagene 1-3 og 7 er meget tydelig. En given kombination af standarder kaldes derfor ofte en protokolstak.
I de tre nedre lag vil der være en stor variation, idet mange forskellige fysiske medier benyttes til transmissionen af data (f.eks. direkte sammenkobling, forskellige former for lokale net, offentlige tjenester som X.25). For de lavere lag er det derudover nødvendigt med standarder, som beskriver relationerne mellem endesystemets interne servicegrænseflader og de forskellige grænseflader til transmissionsudstyr. Da mange af disse er af ældre dato end OSI, kan konvergensprotokoller være nødvendige.
De øvre lag, og her specielt lag 7, giver flest variationsmuligheder på grund af opgavernes forskelligartethed. Her kan nævnes eksempler som filtransport, virtuelle terminaler, elektronisk post og transaktioner i distribuerede databaser. Modellen slår derfor ikke til i anvendelseslaget og har måttet udvides med en beskrivelse af lagets interne struktur.
Et endesystem er åbent, hvis dets kommunikation overholder OSI-standarder på alle niveauer. Dette betyder ikke nødvendigvis, at standardernes protokoller og servicegrænseflader kan genfindes som selvstændige elementer i udstyret eller som programmoduler, da det alene er udstyrets opførsel over for omverdenen, der er afgørende. Et åbent system behøver derfor ikke internt at benytte lagdeling. Imidlertid er en opdeling, der følger visse af lagene, praktisk, idet det letter udskiftningen af dele af protokolstakkene og opbygningen af alternative stakke.
Åbne systemer kan paradoksalt nok ikke altid umiddelbart kommunikere indbyrdes, da de kan være baseret på forskellige valg af protokoller. Overholdelse af OSI letter imidlertid protokolkonvertering, da der i servicegrænsefladerne er et fælles grundlag, som gør alment brugbare konverteringer mulige. Hvis der derimod er tale om anvendelsen af de-facto standarder, kan protokolkonvertering (som finder sted i gateways) være vanskelig, ja endog umulig, og må laves specielt for hvert enkelt tilfælde.
OSI-standarder findes for alle modellens lag; transportlaget (lag 4) er dér, hvor der er behov for mindst variation, og det blev derfor standardiseret meget tidligt. Det er imidlertid efterhånden blevet tydeligt, at forskellige anvendelser vanskeligt lader sig indpasse i samme model. Hertil kommer, at den variation, som findes i de udviklede standarder, er beregnet til at imødekomme meget forskelligartede behov. En komplet implementering kan derfor i mange sammenhænge synes urealistisk. Specifikke protokolstakke til bestemte anvendelsesområder udvikles derfor, uden at disse indeholder alle de faciliteter eller funktioner, som servicegrænsefladerne i OSI kræver. Sådanne protokolstakke søges bl.a. udviklet via funktionsstandarder. Denne udvikling er ikke en svækkelse af ideerne bag OSI, men er et udtryk for, at standardisering af udstyr tillægges større værdi end fri samtrafik med andre anvendelsesområder.
Da implementationer af OSI-protokoller ikke er blevet tilgængelige i et omfang og på et tidspunkt, der imødekommer det voksende behov for åben kommunikation (se f.eks. Internettet), er det en anden serie protokoller der især dominerer i lagene 3-6, kaldet TCP/IP-familien. Disse følger dog stort set refencemodellen. I lag 7 dominerer især de klassiske Internet-protokoller som FTP og TELNET, og de nye som HTTP og OSI-protokoller som X.500. Udbredelsen af Internet-protokollerne skyldes i høj grad, at gode implementationer fulgte med f.eks. Berkeley UNIX. Også andre netarkitekturer følger referencemodellen, se f.eks. ODLI.
