ISOn OSI-mallin
rakenne ja käyttö

1.11.1999

Andreas Colliander
Sähkö- ja tietoliikennetekniikan osasto
Teknilllinen korkeakoulu
Andreas.Colliander@hut.fi

Tiivistelmä

Tietoliikenneongelmien ratkaisuun on useita tapoja. Usein kuitenkin kokonaisen tietoliikennejärjestelmän tekeminen on suuri ja monimutkainen työ, jossa joutuu ottamaan huomioon lähes lukemattomia seikkoja. Sen takia tämä arkkitehtuuri on syytä suunnitella huolellisesti ja se kannattaa jakaa osakokonaisuuksiin.

International Standardization Organisation eli ISO on myös tehnyt oman suunnitelmansa tietoverkkojen toteuttamiseksi. ISOn OSI eli Open Systems Interconnection on kunnianhimoinen kerroksiin jaettu malli, jossa on pyritty ottamaan huomioon kaikki verkon vaatimukset. Toteutus on sitten onnistunut erittäin vaihtelevalla menestyksellä ja siten sitä ei ole ikinä otettu kunnolla käyttöön.


Sisällysluettelo

1 Johdanto
2 Yleistä
3 OSI-mallin rakenne
3.1 Fyysinen kerros
3.2 Siirtokerros
3.3 Verkkokerros
3.4 Kuljetuskerros
3.5 Istuntokerros
3.6 Esitystapakerros
3.7 Sovelluskerros
4 OSI-mallin käyttö
4.1 OSI-mallin viat
4.2 OSI-malli vs. TCP-malli
5 Yhteenveto


1 Johdanto

Tässä tekstissä käsittelemme ISOn (International Standardization Organisation) kehittelemää mallia tietoliikenneratkaisujen toteuttamiseksi nimeltään OSI-malli (Open Systems Interconnection Reference Model). Sen tarkoituksena on määritellä yhtenäinen tapa toteuttaa tietoliikenneratkaisuja, jonka seurauksena kaikki OSI-mallin mukaan tehdyt järjestelmät olisivat keskenään yhteensopivia.

2 Yleistä OSI-mallista

OSI-malli on tietoliikennearkkitehtuurin malli, jonka tärkein ajatus on sen kerroksellisuus ja alempien kerrosten läpinäkyvyys ylemmille kerroksille. Kuvassa 1 on esitetty yksinkertainen kaavio OSI-mallista. Kerrosten läpinäkyvyys tarkoittaa sitä, että toisen päätteen tietty kerros voi keskustella toisen päätteen saman kerroksen kanssa suoraan, ilman että sen tarvitsee välittää alempien kerrosten menetelmistä. Näitä menetelmiä kutsutaan protokolliksi. Jokaisella kerroksella on siis oma protokolla, jonka avulla se hoitaa tehtävänsä. Tarkemmin määriteltynä kerroksen tehtävä on tarjota palveluita kerrokselle sen yläpuolella alemman kerroksen avustuksella.

Tämän kerrosrakenteen tarkoitus on helpottaa tietoliikennejärjestelmien toteuttamista, mikä on kokonaisuudessaan äärimmäisen monimutkaista. Kun jokaisen kerroksen voi suunnitella ja toteuttaa täysin itsenäisesti niin, että se noudattaa sovittuja rajapintoja, on kokonaisen toimivan järjestelmän tekeminen huomattavasti yksinkertaisempaa. Olio-ohjelmoinnin idea on pitkälle saman tyyppinen.

Käytännössä täysin OSI-mallin mukaisia arkkitehtuureita ei ole sellaisenaan juurikaan toteutettu ja se on jäämässä vain käsitteelliseksi apuvälineeksi muiden, lähinnä TCP/IP:n, protokollien ja mallien kehittelyssä. TCP/IP on nykyisessä Internetissä käytettävä yhteyskäytäntö. (TCP=Transmission Control Protcol, IP=Internet Protocol)

3 OSI-mallin rakenne

OSI-malli on seitsenkerroksinen arkkitehtuurimalli. Sen kerrokset ovat alhaalta ylöspäin: fyysinen kerros (physical layer), siirtokerros (data link layer), verkkokerros (network layer), kuljetuskerros (transport layer), istuntokerros (session layer), esitystapakerros (presentation layer) ja sovelluskerros (application layer). Fyysinen kerros on ainoa konkreettinen, nimensä mukaisesti fyysisiä osia sisältävä kerros. Muut kerrokset ovat vain ohjelmallisesti toteutettavia kokonaisuuksia. Tosin toimintoja voidaan myös sulauttaa vartavasten kehitetyille piireille.

OSI-malli
Kuva 1 OSI-mallin rakennetta kuvaava kaavio

Kuvasta 1 näkyy hyvin yksi OSI-mallille ominainen piirre eli se, että kerroksen kolme jälkeen kerrokset keskustelevat suoraan vastapuolen kanssa ilman välittäviä välikäsiä. Täten malli voidaan jakaa kolmeen pääluokkaan: kerrokset 1-3 käsittelevät tiedon siirtämistä ja reitittämistä, kerros 4 tarjoaa varsinaiset siirtotoiminnot suoraan siirtoteiden yli vastapuolelle ja kerrokset 5-7 tarjoavat enemmänkin palveluita sovelluksille.

Kerrosrakenne toimii yksinkertaistetusti siten, että jokainen kerros lisää oman otsikon tietorakenteeseen, jotka sitten toinen osapuoli osaa tunnistaa. Näin muut kerrokset jäävät aina läpinäkyviksi tietylle kerrokselle. Tässä kappaleessa käymme läpi kaikki nämä kerrokset ja niiden tehtävät yksitellen. Lähteenä on ollut [1].

3.1 Fyysinen kerros

Fyysinen kerros hoitaa varsinaisten bittien siirron siirtotietä pitkin. Fyysisessä kerroksessa määritellään mm. modulointitapa kuten taajuusmodulaation tai amplitudimodulaation eri toteutustavat ja rajapinta siirtotiehen, joka voi olla esimerkiksi koaksiaalikaapeli tai radiolähetin. Fyysinen kerros siis saa bittijonon siirtokerrokselta, jonka se sitten tunkee siirtotielle tietyllä tavalla.

3.2 Siirtokerros

Siirtokerroksen tehtävä on vastaanottaa bittijono fyysiseltä kerrokselta ja selvittää onko siirrossa tapahtunut virheitä. Siirtokerros hoitaa tämän jakamalla verkkokerrokselta saamansa paketit kehyksiin, jotka se erottaa omilla tunnuksillaan. Reaktio virheellisiin kehyksiin voi sitten olla erilainen eri tapauksissa. Joko virheelliset kehykset pyydetään lähetettäviksi uudelleen tai sitten ne yksinkertaisesti tuhotaan. Esimerkiksi liikkuvaa kuvaa siirrettäessä ei jokaisen kehyksen virheetön siirto ole oleellista vaan että bittivirta jatkuu tasaisesti, kun taas tiedon siirrossa virheetömyys on ehdoton edellytys.

Jos siirtokerros on määritelty siirtämään bittivirta virheettömästi täytyy sen jollakin tavalla pystyä kuittamaan saamaansa kehykset, jotta lähettäjä voi tietää tarvitseeko jokin kehys lähettää uudelleen. Kaksisuuntaisessa liikenteessä tämä voidaan hoitaa liittämällä kuittaukset lähetettäviin kehyksiin, mutta jos liikennettä on vain yhteen suuntaan täytyy käyttää erityisiä kuittauskehyksiä. Kehykset ja kuittauskehykset saattavat tuhoutua matkan varrella myös kokonaan, jolloin siirtokerroksen täytyy pystyä tunnistamaan eri kehykset, jottei se toimita jotain kehysta kahta kertaa tai jätä jotain kehystä toimittamatta verkkokerrokselle.

Siirtokerroksen täytyy myös pystyä säätelemään bittivirran nopeutta tarpeen mukaan, jottei lähettäjä ylikuormita vastaanottajan puskuria ja näin aiheuta kehysten hukkumista. Tämä hoidetaan usein kuittausten yhteydessä.

3.3 Verkkokerros

Verkkokerroksen pääasiallinen tehtävä on pakettien toimittaminen oikeaan paikkaan eli reitittäminen. Verkkokerros jakaa siis kuljetuskerrokselta saamansa siirrettävän tiedon paketteihin, joille se antaa vastaanottajan osoitteen, jonka perusteella paketit sitten reititetään. Huomiotavaa on, että verkkokerros jakaa tiedon nimenomaan paketteihin (packet) kun taas siirtokerros jakaa ne edelleen kehyksiin (frame). Käsitteiden kanssa on syytä olla tarkkana.

Reitittäminen toteutetaan yleensä reititystauluilla, jotka voivat olla monenlaisia. Ne voivat olla esimerkiksi harvoin muutettavia tauluja tai sitten ne voivat muuttua koko ajan verkon kuormituksen perusteella.

Verkkokerroksen tehtäviin myös kuuluu erilaisten aliverkkojen yhdistäminen. Tämä ei suinkaan ole yksinkertsista, jos vaikka aliverkkojen osoiterakenteet ovat erilaisia tai toisen aliverkon paketit ovat liian isoja toiseen aliverkkoon. Seuraavan kerroksen eli kuljetuskerroksen ei siis tarvitse enää huolehtia tämän tyyppisistä ongelmista vaan se voi keskittyä tiedon vaihtoon suoraan vastapuolen kanssa.

3.4 Kuljetuskerros

Kuljetuskerroksen tehtävä on huolehtia käyttäjän tarvitseman tiedonsiirtotavan toteutumisesta. Se pilkkoo istuntokerrokselta saamansa tiedon tarvittaessa pienempiin yksiköihin ja varmistaa näiden siirtymisen oikeassa järjestyksessä vastaanottajalle, jos näin vaaditaan. Tiedonsiirtolaitteistoon liittyvät yksityiskohdat peittyvät kuljetuskerroksen alle. Myös kuljetuskerroksen tärkeimpiin tehtäviin kuuluu siirtonopeuden säätäminen jottei hidas vastaanottaja hukkaisi tietoa.

Kuljetuskerros voi siis järjestää erilaisia yhteyksiä eri tarpeisiin kuten virheettömän päätteestä päätteeseen yhteyden, jossa tieto tulee perille samassa järjestyksessä kuin se lähetettiin tai yhteyden, joka ei takaa tiedon perille menoa millään tavalla. Se voi myös järjestää useita verkkokerroksen yhteyksiä, jos tarvitaan suurta nopeutta, mutta se voi myös yhdistää monet ylempää tulevat yhteydet yhdeksi verkkokerroksen yhteydeksi, jos yhteydet ovat esimerkiksi kalliita.

3.5 Istuntokerros

Istuntokerros järjestää yhteyden eli istunnon kahden ohjelman välille. Se hoitaa yhteyden muodostamisen, sen ylläpidon ja sen purkamisen. Se mahdollistaa myös yhteyden jatkamisen sen katkeamisen jälkeen. Esimerkiksi jos tiedoston siirto keskeytyy jonkun verkon häiriön takia, voidaan sitä myöhemmin jatkaa istuntokerroksen asettaman merkin kohdalta.

Toinen tehtävä istuntokerroksella on muodostaa keskusteluyhteys kahden istunnon välillä. Tämä voidaan toetuttaa joko niin, että molemmat ja vastaanottavat samanaikaisesti tai niin, että toinen lähettää ja toinen vastaanottaa vuorotellen tai sitten niin, että koko istunnon aikana vain toinen lähettää ja vain toinen vastaanottaa. Keskusteluunkin voidaan asettaa merkkejä, jotta sitä voidaan jatkaa siitä mihin jäätiin, jos se häiriintyy jostain syystä.

3.6 Esitystapakerros

Esitystapakerroksen idea on ratkoa ongelmia, jotka usein tulee vastaan kommunikoitaessa eri tietokoneiden välillä, jotta varsinaisen pääteohjelman tekijän ei tarvitsisi huolehtiä niistä aina erikseen. Esitystapakerros ei enää millään tavoin ole kiinnostunut varsinaisesta tiedonsiirrosta.

Niin kuin nimikin kertoo esitystapakerros huolehtii useimmiten välitetyn tiedon ulkoasusta. Eri koneiden välillä voi olla käytössä eri merkistöjä ja esitystapakerros sovittaa nämä yhteen. Myös tiedon salaus kuuluu esitystapakerroksen tehtäviin. Esimerkiksi PGP (Pretty Good Privacy) salaus toimii tällä kerroksella.

3.7 Sovelluskerros

Sovelluskerroksen tehtävänä on tarjota erilaisia protokollia sovellusten käyttöön. Esimerkiksi erilaisten tekstipäätteiden käyttö erilaisten päätelaitteiden kanssa olisi mahdotonta ilman jotain sovittua protokollaa. Yleisessä käytössä on niin sanottu NVT (Network Virtual Terminal), joka on eräänlainen virtuaalinen pääte johon kaikki osapuolet on sovitettu, jolloin ne pystyvät tavallaan sen kautta kommunikoimaan. Toisin sanoen kysymys on eräänlaisesta rajapinnasta.

Sovelluskerros tarjoaa apua lähes kaikkeen muuhunkin verkossa tapahtuvaan toiminataan kuten tiedoston siirtoon, sähköpostin välittämiseen ja etäkäyttöön.

4 OSI-mallin käyttö

Kuten aiemmin tuli jo todettua OSI-mallin mukaisia arkkitehtuureita ei juurikaan ole toteutettu. Kuitenkin OSI-mallin käsitteet ovat siirtyneet tietoliikennearkkitehtuurien suunnittelijoiden käyttöön ja OSI-mallin kerroksia käyttäen on helppo verrata eri arkkitehtuureita sekä muodostaa niistä ja niiden toiminnoista kokonaiskuva. Tässä kappaleessa pohditaan miksi OSI-malli ei ole saavuttanut suosiota ja vertaamme OSI-mallia tämän päivän käytetympään verkkoratkaisuun TCP-malliin.

4.1 OSI-mallin viat

Kymmenen vuotta sitten OSI-malli näytti valtaavan tietoliikennemaailman, mutta toisin kävi. Ensinnäkin OSI-mallin kohtaloksi koitui TCP/IP protokollien laajalle levinnyt käyttö niihin aikoihin kun OSI-malli julkaistiin. Mikään firma ei ottanut asiakseen toteuttaa OSI-mallin mukaisia ratkaisuja joten TCP/IP ajoi OSI-mallista peruuttamattomasti ohi kun Internetin räjähdysmäinen kasvu alkoi.

OSI-mallin rakenne ei suinkaan ole täydellinen. Esimerkiksi istunto- ja esitystapakerros ovat lähestulkoon turhia kun taas alemmissa kerroksissa riittäisi helposti tehtäviä muillekin kerroksille. OSI-mallin rakenne johtuu siitä, että samaan aikaan kun OSI-mallia kehiteltiin, suunniteli IBM, sen hetken ehdottomasti tietotekniikkamaailmaa hallitseva yhtiö, omaa tietoliikennearkkitehtuuria nimeltään SNA (Systems Network Architecture). SNA on seitsemän kerroksinen ja ISOn tarkoitus oli kehittää IBM:n kanssa yhteensopiva standardi. OSI-malli on myös erittäin monimutkainen, vaikea toteuttaa, toimii tehottomasti ja kaiken lisäksi siinä on selkeitä puutteita.

Samaan aikaan kun OSI-mallista saatiin aikaan huonoja viritelmiä, joita ihmiset rupesivat välttelemään, ilmaisia TCP/IP ohjelmia levisi käyttäjien keskuudessa. Käytäjät kehittivät niitä edelleen ja niin TCP/IP tukahdutti OSI-mallin leviämisen. Merkityksetön ei myöskään ollut tietokoneiden käyttäjien haluttomuus alistua käyttämään sellaisen byrokraattisen instituution kuin ISOn tuottamaa mallia.

4.2 OSI-malli vs. TCP-malli

Vaikka OSI-mallissa on lukuisia heikkouksia ei sen kukistajalla TCP-mallilla ole niitä juuri vähempää vaan ne ovat vain tyystin erilaisia. Selvin ero näiden kahden välillä on se, että OSI-malli on tarkkaan määritelty, mutta ei juuri lainkaan käytetty kun taas TCP-mallia käytetään nykyään valtavasti, mutta sille ei ole määritelty selvää arkkitehtuurista rakennetta vaan vain tietyt protokollat.

TCP-mallissa on sovelluskerros, mikä pitää sisällään OSI-mallin kolme ensimmäistä kerrosta, kuljetuskerros eli TCP, mikä vastaa OSI-mallin samaa kerrosta ja verkkokerros eli IP, mikä on myös vastaava kuin OSI-mallissa. Tästä eteenpäin ei TCP-mallia ole oikeastaan määritelty vaan on vain mainittu, että loput asiat hoidetaan host-to-network kerroksessa, mikä ei ole varsinainen kerros siinä mielessä kuin me sen tässä tekstissä ymmärrämme. Ratkaisevaa on kuitenkin juuri se, että TCP/IP protokollia käytetään nykyään ja OSI-mallia ei.

5 Yhteenveto

Tulevaisuudessa epäilemättä kehittyy jokin yhtenäinen ja kattava malli, minkä mukaan verkkoratkaisut rakennetaan. Nykyään kuitenkin OSI-malli antaa hyvää pohjaa suunitelmille valmiilla käsitteillään ja perusrungollaan kun TCP-malli laajenee ja uudet yhteyskäytännöt otetaan vähitellen käyttöön, kuten esimerkiksi ATM (Asynchronous Transfer Mode), jolla on myös oma arkkitehtuurinen rakenne. Muuta sijaa OSI-mallilla tulevaisuudessa tuskin on.

Lähdeluettelo

[1] Tanenbaum A. S., Computer Networks, 3rd Edition, Prentice-Hall International, Inc., 1996, 813 s.

Lisätietoa

- Alpeda - The Multimedia Course - ISO/OSI model [viitattu 12.9.1999]
< http://www.alpeda.shef.ac.uk/fr_2135.htm >

- Byren D., Colorado School of Mines
Physical layer [viitattu 16.9.199]
< http://magma.mines.edu/students/d/dbyrnes/macs462/sld001.htm >

- City Beach Senior High School, Australia [viitattu 16.9.199]
< http://citybeach.wa.edu.au/lessons/computing12/lan/iso.html >

- Halme S. J., Televiestintäjärjestelmät, 5. painos, Otatieto Oy, 1998, 573 s.

- IEEE - ISO OSI Reference Model [viitattu 12.9.1999]
< http://www.ieee-occs.org/sld006.htm >

- Karila A., Teknillinen korkeakoulu [viitattu 16.9.199]
< http://www.tcm.hut.fi/Opinnot/Tik-110.350/1999/Kalvot/TKV170299/index.htm >

- Linkkisivu, kurssi Tietoliikennejärjestelmät(Tik-110.300), Teknillinen korkeakoulu [viitattu 16.9.199]
< http://www.tcm.hut.fi/Opinnot/Tik-110.300/Links/osi.html >

- Maguire Jr, G. Q. & Reichert F., Kungl Tekniska Högskolan, Department of Teleinformatics, Ruotsi
Yleistä standardeista ja ISO/OSI-mallista [viitattu 16.9.1999]
< http://www.it.kth.se/edu/gru/Telesys/95P2_Telesystem/HTML/Module4/ISO-1.html >

- Maguire Jr, G. Q. & Reichert F., Kungl Tekniska Högskolan, Department of Teleinformatics, Ruotsi
Erityisesti ISO/OSI:n rakenteesta [viitattu 16.9.1999]
< http://www.it.kth.se/edu/gru/Telesys/95P2_Telesystem/HTML/Module4/ISO-21.html >

- Steinman U.
Saksan kielinen ISO/OSI-mallin esittely Javalla [viitattu 16.9.199]
< http://gehtnix.fernuni-hagen.de:8000/IsoOsi/component/IsoOsi.html >

- The Trustees of Indiana University - Unix EdCert - ISO/OSI Network Model [viitattu 12.9.1999]
< http://www.uwsg.indiana.edu/usail/network/nfs/network_layers.html >

- Twilde K., University of London, Department of Computing, Englanti [viitattu 16.9.199]
< http://www-dse.doc.ic.ac.uk/~kevin/Slides/Intro/sld011.htm >

- Voipio K. & Uusitupa S., Tietoliikenneaapinen, Otatieto Oy, 1999, 186 s.

- Yemini Y., Columbia University, Department of Computer Science, Yhdysvallat [viitattu 16.9.199]
< http://www.cs.columbia.edu/netbook/ >