3. A hálózati referencia modell

„Nekem megvannak a múlt nagy régészeinek munkái. Én aztán mérlegre teszem ôket, [...] kiemelem az igazat és eljutok egy következtetésre. Ez a tudományos módszer."
/Lord Dorwin áltudós. I. Asimov: Alapítvány/

Az OSI szabványosított egy hálózati referencia modellt. Ez a modell adja az összes OSI hálózati szabvány keretét. A nyílt rendszerek elterjedésével, egyre inkább alapvetôvé válik, általános trend, hogy még az olyan hálózatok is, melyek eredetileg nem az OSI referencia modell alapján készültek, fejlôdésükben, terminológiájukban és látásmódjukban mára már sokban hasonlítanak az OSI által elképzelthez.

Az OSI referencia modell kommunikáló entitások viszonyaiban írja le a hálózat mûködését. Egy a kommunikációban résztvevô berendezés belsejében több, egymástól jól elkülöníthetô egységet ­entitást­ tételez fel, melyek mindegyike más-más feladatot valósít meg. Például az egyik felelôs a jeleknek a kábelre való juttatásáért, egy másik a titkosításért vagy az információ célbajuttatásához a megfelelô útvonal kiválasztásáért.

Az entitások kommunikációs szolgáltatásokat nyújtanak, mint például bitfolyam átvitele, információcsomagok hibamentes átvitele vagy dialógusokba szervezett kommunikáció. Ezeket a szolgáltatásokat vagy az alkalmazások (és azon keresztül a felhasználó) veszi igénybe vagy egy másik hálózati entitás, mely a felhasznált szolgáltatások segítségével többletszolgáltatásokat nyújt.

Az entitások egymásra épülnek tehát, más (alacsonyabbrendû) entitások szolgáltatásait felhasználva nyújtják a maguk (bôvebb vagy jobb minôségû) szolgáltatását a felsôbb szintû entitásoknak. A legfelsô szint fölött található a felhasználó.

Az OSI 7 szintet (vagy réteget) határozott meg.

1. ábra. Az OSI referencia modell

Bár az egyes rétegek funkcióit az OSI pontosan rögzítette, a gyakorlatban meglehetôsen tág például a hálózati réteg elnevezés használata. Ennek az az oka, hogy a gyakorlatban mûködô hálózatok nem pontos OSI megvalósítások. Szinte minden hálózatban létezik azonban valamiféle rétegezés, esetleg referencia modell (például TCP/IP, SNA) mely a legtöbbször hasonlít az OSI modellre, csak a rétegek határai helyezkednek el máshol.

Az elkövetkezendôkben röviden sorra vesszük a számunkra érdekes rétegeket.

A fizikai réteg felelôs a hálózat hardware elemeinek közvetlen kezeléséért, a „biteknek a kábelre juttatásáért". Itt rögzítik a közvetítô médium fizikai és elektromos tulajdonságait. (Például csatlakozóméret és lábkiosztás valamint a jelszintek vagy a kódolás.) A tipikus szolgáltatás bitfolyam átvitele olyan bithiba aránnyal, amilyet az adott fizikai közvetítô közeg lehetôvé tesz.

Az adatkapcsolati réteg szolgáltatása a két szomszédos (közvetlen fizikai összeköttetéssel rendelkezô) berendezés közötti, biztonságos bitfolyam átvitel. A bitfolyamot többnyire egységekre tördelik, melyeket kereteknek (frame) hívunk. A réteg úgy teszi biztonságossá az átvitelt, hogy ha hibás keret érkezik, akkor annak újraküldését kéri mindaddig, amíg az hibamentesen meg nem érkezik. A szolgáltatás kiterjed 2. szintû kapcsolatok létrehozására, adatátvitelre és a kapcsolat lebontására.

Szokásos az adatkapcsolati réteget 2 független alrétegként kezelni.

2. ábra. Az adatkapcsolati réteg

Az alsót közeghozzáférési (Medium Access Control) alrétegnek nevezzük, a fölsôt pedig kapcsolatvezérlési (Logical Link Control) alrétegnek. A MAC alréteg feladata a közeghez való hozzáférés, a kereteknek a kábelre való juttatása (az adási jog megszerzése és az adás), míg az LLC ellenôrzi a vett keretek épségét, kéri és végzi az újraküldést és szervezi a kapcsolatot. Mindezt természetesen a MAC réteg szolgáltatásainak (keret adása és vétele) felhasználásával.

A hálózati réteg végzi a történelmileg kialakult nagykiterjedésû hálózatokon belüli adattovábbítást, valamint két különbözô fizikai hálózat közötti átjárást. Például az IP (egy hálózati protokoll) képes kapcsolatot teremteni a világ bármely két, az Internetbe kapcsolt számítógépe között, bár közben a legkülönfélébb fajta átviteli közegeken (2. rétegbeli berendezések) halad át az információ.

Az adategységet ezen a szinten csomagnak hívjuk.

A hálózati protokollok két részre oszthatók:

  1. Kapcsolat-orientált
  2. Datagram

Az elôbbiek esetén az adatok átvitele elôtt szükség van valamiféle kapcsolatfelvételre a két végpont között. Minden csomagot ellátunk a kapcsolat azonosítójával, így a hálózat a már kiépült útvonalon keresztül továbbíthatja csomagjainkat. Ez azzal az elônnyel jár, hogy nem kell minden csomagba elhelyeznünk a címzett és a feladó címét, csupán a kapcsolat azonosítóját. Ezenfelül a hálózatnak nem kell minden egyes alkalommal kitalálnia, hogy milyen útvonalon továbbítsa a csomagot, hiszen a kapcsolat felépítésekor az útvonal rögzül. A kapcsolatorientáltság legjobb analógiája a telefonhálózat, ahol a beszélgetés a híváskor kiépült vonalon zajlik. Tipikus kapcsolatorientált hálózati protokoll az X.25, a Frame Relay és az ATM.

A második, kapcsolatmentes esetben az adattovábbításhoz nincsen szükség kapcsolatfelvételre, egyszerûen veszünk egy csomagot, megcímezzük és a hálózatra bízzuk annak továbbítását. Ilyen például az IPX, az SMDS és az IP is. A datagram hálózatokban elmarad a kapcsolatfelépítés által okozott késleltetés. Ez a megoldás ezen felül sokkal robosztusabb is. Ha ugyanis egy kapcsolatorientált hálózatban kiépült kapcsolatunk közepén valamilyen hiba keletkezik, a kapcsolat megszakad. A datagram jellegû hálózatok esetében viszont minden csomag egyedi elbírálás alá esik és ha egy útvonal megszûnik, akkor egy másikon még célbajuthat a csomag. Arról, hogy hiba történt, a kommunikáló felek nem is értesülnek. A datagram jellegû hálózatok legjobb analógiája a postai levéltovábbítás, ahol a megcímzett borítékot egyszerûen beejtjük a postaládába, s az célbajut még vasutassztrájk esetén is, legfeljebb kis késleltetéssel.

Minthogy a kapcsolat-orientált esetben minden csomag ugyanazon az útvonalon halad, könnyû elérni, hogy a csomagok a feladási sorrendben érkezzenek meg. A datagram jellegû hálózatoknál ez nem garantálható, hisz két csomag nem feltétlenül ugyanazon az útvonalon halad és a késôbb elküldött megelôzheti a korábbit.

Trend, hogy a két paradigma lassan összemosódik. Mind a kapcsolatorientált ATM hálózatokban léteznek datagram jellegû megoldások, amik rövid és ritka üzenetek elküldését teszik lehetôvé a költséges kapcsolatfelépítés nélkül, mind a datagram jellegû Internetben terjed el egyre inkább a folyam (flow) fogalma az olyan csomagsorozatokra, melyek megadott útvonalon haladnak. Ezen utak mentén ugyanis erôforrások lefoglalásával garantálni lehet, hogy az adott folyamhoz tartozó csomagok nem szenvednek túl nagy késleltetést. Ezek a módszerek egyesítik a két paradigma elônyeit.

A transzport réteg az elsô vég-vég réteg. Az OSI definíció szerint a világ bármely két számítógépe között lehet vele kapcsolatot teremteni, függetlenül a közbeesô hálózati rétegektôl. A gyakorlatban azonban a 4. szintû protokollok erôsen kötôdnek egy hálózati protokollhoz (TCP és UDP az IP-hez, SPX az IPX-hez, stb.), nem pedig az azoktól való függetlenséget valósítják meg, hanem inkább valamiféle többletszolgáltatást nyújtanak.

Így például datagram jellegû hálózatok fölött is létezik kapcsolat-orientált transzport protokoll (például a TCP az IP és az SPX az IPX felett). Maga a hálózati protokoll azonban ettôl még szigorúan datagram jellegû és csak a végpontok „tudnak" a kapcsolat kiépülésérôl. A kapcsolat léte alatt elküldött információ közönséges csomagok formájában utazik, akár mindegyik csomag teljesen más útvonalon. A végpontok feladata a sorbarendezés és ezzel sorrendhelyes átviteli szolgáltatás nyújtása. Az ilyen szolgáltatást igénybe vevô fölsôbb rétegnek azonban nem is kell tudnia arról, hogy maga a hálózat nem kapcsolat-orientált.

Az OSI réteg felsô 3 szintjének tárgyalása meghaladja ezen dolgozat kereteit. Egyrészt azért, mert a megjelenítési és viszonyréteg funkcióit igen gyakran az alkalmazásokba integrálják, másrészt pedig azért, mert értekezésünk fókuszában inkább a hálózat technikai aspektusai állnak, nem pedig az azon mûködô alkalmazások. A technikai rész pedig inkább az alsó rétegekben található.


3.1. Az OSI modell értékelése

Az OSI modell kidolgozása óta egyre inkább teret nyer. Ez ugyan elsôsorban a nyílt rendszerek iránt való igény miatt van így, azonban a réteges felépítés alapvetô elônyökkel jár:

  1. Lehetôvé válik az, hogy egy hálózati protokoll eltérô adatkapcsolati rétegek fölött fusson és így például különbözô lokális hálózatokon levô berendezések kommunikáljanak egymással. A felsôbb rétegek alkalmasak az alsóbb rétegek sajátosságainak elfedésére. És valóban, például az IPX számos LAN felett képes üzemelni.
  2. A meglehetôsen összetett hálózati feladatokat szétválasztva és részenként megvalósítva sokkal áttekinthetôbb és így üzembiztosabb implementációk születhetnek.

Az OSI referencia modell azonban számos korláttal bír. Ezek egy részben referencia modell OSI-féle megfogalmazásából erednek, másrészben pedig magából a referencia modell tényébôl adódnak.

  1. Az elterjedt implementációk csak távolról emlékeztetnek az OSI rétegekre és a magasabb szinteket egész egyszerûen nem valósítják meg. Egészen a közelmúltig abból indultak ki, hogy ha egy alkalmazásnak szüksége van például adattömörítésre, akkor azt az adott alkalmazás majd megvalósítja. Sok hálózati technika esetében csak nehezíti a megvalósítást, ha szigorúan OSI modellhez próbálnak igazodni.
  2. A létezô hálózatok alkalmasak egymás emulációira. Azaz például felhasználhatjuk az Internetet arra, hogy AppleTalk csomagjainkat hordozza. Egyszerûen csak becsomagolunk minden AppleTalk csomagot egy IP csomagba és feladjuk. Ez azt jelenti hogy egy harmadik szintû protokollt mûködtetünk egy másik harmadik szintû protokoll felett. Természetesen ez a tény nem minôsíti át 4. szintûvé a becsomagolt protokollt, bár a szintek száma nô. Hasonló eset áll elô ATM fölötti LAN emuláció esetén, amikor egy teljes értékû hálózati protokoll fölött mûködtetünk egy második szintût. Ezek a megoldások nem férnek be a szigorúan vett OSI modellbe.

Az tehát, hogy egy hálózati technikát hányadik rétegbe sorolunk, nem a fölötte és alatta levô rétegek számától függ, hanem a funkció jellegétôl. Ez azonban nem mindig állapítható meg egyértelmûen. Példaként az ATM-et említeném. Maga az ATM réteg, ami már kiépült kapcsolaton keresztül képes cellákat továbbítani az OSI modell szerint leginkább hálózati rétegnek nevezhetô, bár funkciói közül hiányzik például a kapcsolat kiépítése, ami pedig az OSI modell hálózati szintjén már követelmény lenne. Az e fölött mûködô ATM adaptációs réteg végezheti el a csomagoknak cellákká történô szétdarabolását és összerakását, lehetôvé téve ezzel csomagoknak az ATM hálózaton való továbbítását. Ilyen réteg az OSI-ban egyáltalán nincs. Nem is beszélve arról, hogy e fölött a réteg fölött többnyire valamilyen „klasszikus" harmadik rétegbeli, hálózati protokollt futtatunk.

E kis kitérô talán jól érzékelteti, hogy az OSI referencia modell valóban csak hivatkozási alap és nem pedig a hálózatok mûködésének precíz kerete.