OSI modell

Fizikai réteg

A fizikai réteg a bitek kommunikációs csatornára való kibocsájtásáért felelős. Biztosítania kell, hogy az adó oldalon kibocsájtott 1-et a vevő is 1-ként értelmezze. A tipikus kérdések : hány voltnyi feszültségkülönbség ábrázolja a logikai 1-et, a 0-t, mány mikroszekundum hosszú legyen 1 bit, egyidőben lehessen-e mindkét irányban adatátvitel, hogyan épüljön fel, illetve bomoljon le a kapcsolat, valamint ide tartoznak a szó szoros értelemben fizikai megvalósítások: hány tüskéje legyen egy hálózati csatlakozónak, milyen funkciókkal legyenek felruházva, stb.

A tervezési kérdések itt a mechanikai, elektromos, interfészekkel, valamint a fizikai közeggel kapcsolatosak. Ezek a feladatok a hagyományos villamosmérnöki munkák.

Az adatkapcsolati réteg.

Az adatkapcsolati réteg alapvető feladata az, hogy egy tetszőlegesen kezdetleges adatátviteli eszközt olyan adatátviteli vonallá transzformáljon, amely a felette lévő, tehát a hálózati réteg számára átviteli hibától mentesnek tűnik.

Ezt úgy valósítja meg, hogy a küldő fél a bemenő adatokat adatkeretekké tördeli, a kereteket sorrendhelyesen továbbítja, majd a vevő nyugtakereteit feldolgozza. Mivel a fizikai réteg csupan a bitfolyam adásával, valamint vételével foglalkozi, ennek a rétegnek a feladata az adatkerethatárok létrehozása, felismerése. Ezt speciális bitmintáknak a keretek elé, illetve mögé helyezésével éri el.

Az adatkapcsolati réteg feladata továbbá, csak felsorolásszerűen:

  • Elveszett keretek újraadása.
  • Esetlegesen, tévedésből előforduló kettőzött keretek kivonása.
  • A forgalom szabályozása, melyre a gyors adók miatt van szükség, amlyek adatelárasztással fenyegethetik a lassú vevőket.
  • Az A-B irányú adatkeretforgalom, valamint a B-A irányú nyugtakeretforgalom szabályozása, kezelése.

A hálózati réteg.

A hálózati réteg a kommunikációs alhálózatok működését vezérli. Talán a legfontosabb feladata a csomagok forrás-, és célállomás közötti útvonalának meghatározása. Az útvonalak meghatározása lehetséges statikus, hálózatba behuzalozott, ritkán változtatandó táblák segítségével. Az útvonalak azonban meghatározhatók a kommunikáció kezdetén is, pl egy terminál viszony felépülésekor, és végül teljesen dinamikusan, minden egyes csomagra külön, külön is meghatározható az útvonal.

Ha túl sok csomag van egyszerre az alhálózatban, akkor egymás útjába kerülhetnek, torlódás alakulhat ki. Az ilyen jellegü torlódás elkerülése ugyancsak a hálózati réteg hatáskörébe tartozik.

Mivel az alhalózat operátorai méltán várhatnak bizonyos "ellenszolgáltatast" erőfeszítéseik fejében, a hálózati rétegbe gyakran valamilyen számlázasi funkciót építenek. A szoftvernek legalább a felhasználók által forgalmazott csomagok, karakterek vagy bitek számát kell számolnia ahhoz, hogy a legalapvetőbb számlázasi információk rendelkezésre álljanak. Ha egy csomag országhatárokat lép át, és az országokban eltérőek a tarifák, vagy más számlázási módszerek honosak, akkor a számlázási feladatok jelentősen nehezülhetnek.

Több probléma is felmerülhet akkor, ha egy csomagnak a célállomás eléréséhez több hálózaton kell keresztülhaladnia. Eltérő lehet a hálózatok címzesi módszere, különbözhetnek a maximális csomagméreteik és protokolljaik is. E problémák megoldásáért, azaz a heterogén hálózatok összekapcsolásáért a hálózati réteg a felelős.

Üzenetszórásos hálózatokban az útvonalválasztási mechanizmus igen egyszerű, így a halózati réteg általában vékony, sokszor nem is létezik.

A szállítási reteg

A szállítási réteg (transport layer) alapvető feladata az, hogy adatokat fogadjon a viszonyretegtől, kisebb darabokra vágja szét azokat (ha szükséges), majd adja tovább a halózati rétegnek és biztosítsa, hogy minden darab hibátlanul megerkezzék a másik oldalra. Továbbá, mindezeket hatékonyan kell végrehajtania, ráadasul oly módon, hogy a viszonyréteg elől el kell fednie a hardvertechnikában elkerülhetetlenül bekövetkező valtozásokat.

Közönséges körülmények között a szállítasi réteg minden szállítasi összeköttetés számára, amelyek a viszonyréteg kérésére jönnek létre, egy-egy hálózati összeköttetést hoz létre. Ha azonban a szállítási összeköttetésnek nagy áteresztőképességgel kell rendelkeznie, akkor a szállítási réteg több hálózati összeköttetést is létrehozhat. és így az adatokat több hálózati összeköttetés között megosztva növelheti az átvitt adatok mennyiséget. Másrészről azonban, ha egy hálózati összeköttetés létrehozása vagy fenntartása költséges, akkor a szállítási réteg több szállítási összeköttetést nyalábolhat össze egyetlen hálózati összeköttetésre. Ez nyilvánvalóan költségcsökkenést eredményez. Mindkét esetben azonban e műveleteknek átlátszóknak kell maradniuk a viszonyréteg számára.

A szállítási réteg a viszonyrétegnek, így végső soron a hálózat felhasználóinak nyújtott szolgáltatás minőségét is meghatározza. A szállítási összeköttetés legnépszerűbb típusa a hibamentes, két pont közötti csatorna, amelyen az üzenetek az elküldés sorrendjében érkeznek meg. Egy másik fajta szállítási szolgáltatásnál egymástól függetlenül, nem sorrendhelyesen valósul meg az üzenetek továbbítása. Egy harmadik típusnál pedig egy célállomáscsoportnak küldenek üzeneteket. A szolgáltatás típusát az összeköttetés felépítésekor kell meghatározni.

A szállítási réteg egy valódi forrás - cél, vagy másképpen két végpont közötti (end-to-end) réteg. A forrásgépen levő program üzenetfejrészeket és vezérlőüzeneteket használva párbeszédet folytat a célgépen levő hasonló programmal. Az alsóbb rétegekben a protokollok az egyes gépek és azok közvetlen szomszédai között teremtenek kapcsolatot, nem pedig a valódi forrás és cél között, közöttük ugyanis akárhány IMP is lehet.

Sok hoszt multiprogramozható, amely lehetővé teszi, hogy egy gépben akár több összeköttetes is felépülhet. Szükség van tehát egy olyan módszerre, amellyel ki lehet jelölni, hogy az üzenetek melyik kapcsolathoz tartoznak. A szállítási fejrész tartalmazhat pl. erre vonatkozó információt.

Több üzenetfolyam egyetlen csatornára való nyalábolásán kívül a szállítási rétegnek összeköttetések létrehozásáról is gondoskodnia kell a hálózatban. Ez valamilyen névadási mechanizmust követel, amelynek segítségével az egyik gépen müködő folyamat valamilyen módon megnevezheti azt, amellyel társalogni akar. Ezenkívül, kell lennie egy, az információ áramlást szabályozó mechanizmusnak is azért, hogy egy gyors hoszt nehogy túlcsordulást okozzon egy lassúbbon. A hosztok közötti adatáramlás-vezérlés különbözik az IMP-k közöttitől, bár a későbbiekben látni fogjuk, hogy hasonló alapelvek alkalmazhatók mindkét esetben.

A viszonyréteg

A viszonyréteg lehetővé teszi, hogy különböző gépek felhasználói viszonyt (session) létesítsenek egymással. A viszonyréteg, akárcsak a szállítási réteg közönséges adatátvitelt tesz lehetővé, de néhány olyan szolgáltatással kiegészítve, amelyek egyes alkalmazásokhoz hasznosak lehetnek. Egy viszony pl. arra alkalmas, hogy egy felhasználó bejelentkezzen egy távoli időosztásos rendszerbe, vagy hogy állományokat továbbítson két gép között.

A viszonyréteg egyik szolgáltatása a párbeszéd szervezése. .A viszonyok egyidőben egy- és kétirányú adatáramlást is lehetővé tehetnek. Amennyiben a forgalom csak egyirányú lehet (hasonlóan az egyvágányos vonatforgalomhoz), a viszonyréteg segíthet a soron következő nyomon követésében.

Egy ehhez kapcsolódó viszonyszolgálat a kölcsönhatás-menedzseles (token management). Nehány protokoll számára alapvető fontosságú, hogy a két oldal egyidőben ne probálkozzon ugyanazzal a művelettel. E tevékenysegek menedzselésére a viszonyréteg kicserélhető vezérlőjeleket tart fenn. Csak a vezérlőjelet bíró oldalnak van joga a kritikus műveletet végrehajtani.

A viszonyréteg egy másik szolgálata a szinkronizáció (synchronization). Képzeljünk el egy olyan helyzetet, amikor egy hálózaton két gép között 2 órás állománytovábbítási művelettel próbálkozunk, de az 1 óra múlva valamilyen okból megszakad. Ilyenkor az egész műveletet elölről kell indítani, de egy újabb halózati hiba megint csak megszakíthatja azt. A probléma kiküszöbölése érdekében a viszonyréteg lehetővé teszi, az adatfolyamba ellenőrzési (szinkronizációs) pontok beépítesét, és így egy hálózati hibát követően csak az utolsó ellenőrzési pont utan következő adatokat kell megismételni.

A megjelenítési réteg

A megjelenítési réteg (presentation layer) olyan feladatok végrehajtásáért felelős, amelyek elég gyakoriak ahhoz, hogy altalanos megoldasúak legyenek, ahelyett, hogy a felhasználók esetenként külön-külön oldják meg azokat. Az alsó rétegektől eltérően, amelyek csak a bitek megbízható ide-oda mozgatasával foglalkoznak, a megjelenítési réteg az átviendő információ szintaktikajaval és szemantikájával foglalkozik.

Az adatok szabványos kódolása tipikus példája a megjelenítési réteg által nyújtott szolgálatoknak. A legtöbb felhasználói program nem véletlenül előállított, bináris bitfüzéreket küld egymásnak, hanem neveket, dátumokat, pénzösszegeket, számlákon szereplő adatokat stb. Ezeket a tételeket karakterfüzérként, egész és lebegőpontos számokként, és kisebb egységekből álló bonyolult adatstruktúrakként ábrázolják. A különböző számítógépek különböző kódokat használnak a karakterfüzérek (pl. ASCII és EBCDIC), az egész számok (egyes komplemens és kettes komplemens) stb. ábrázolására. Azért, hogy a különböző ábrázolásmódú számítógépek is kommunikálni tudjanak, a kicserélendő adatstruktúrakat egy, a "vonalon" használandó szabványos kódolással absztrakt módon kell definiálni. Ezeknek az absztrakt adatstruktúraknak a kezelését, valamint a számítógépek egyedi adatábrázolásának egymásba konvertálását is a megjelenítési rétegnek kell elvégeznie.

A megjelenítési réteg az információábrázolás más vonatkozásait is magába foglalja. Ilyen pl. az adatátvitel hatékonyabbá tételét elősegítő adattömörítés, továbbá a hitelesítést és titkosítást lehetővé tevő kriptografia.

Az alkalmazási réteg

Az alkalmazási réteg széles körben igényelt protokollokat tartalmaz. például több száz inkompatíbilis termináltípus létezik ma a világon. Elképzelhetjük, hogy milyen is lehet egy olyan teljesképernyős, hálózaton müködő szővegszerkesztő megírása, amelynek akar több tucat különböző képernyőelrendezéssel, szövegbeírásra, törlésre, kurzormozgatásra való escape- szekvenciával stb. rendelkező termináltípus kezelésére kell felkészülnie.

E probléma egyik megoldása az lehetne, hogy egy absztrakt hálózati virtuális terminált (network virtual terminal) kell definiálni, és a többi programot ezt felhasználva kellene megírni. A különbőző típusú terminálok kezelését a szoftver egy darabkájának kell megoldania. amely a valódi és e hálózati absztrakt terminál közötti megfeleltetést végzi. például, ha a szövegszerkesztő a virtuális terminál kurzorát a képernyő bat felső sarkába mozgatja, akkor ennek a szoftvernek olyan parancssorozatot kell előállítania, amely a kurzort a valódi képernyőn is ugyanabba a helyzetbe viszi. Az összes virtuális terminál szoftver az alkalmazási réteghez tartozik.

Egy másik tipikus alkalmazási rétegfeladat az állománytovábbítás (file- transzfer). A különböző állományrendszerek különböző névkonvenciókkal rendelkeznek, különböző módon ábrázolják a szövegsorokat, és így tovább. Két különböző rendszer közötti állomány mozgatáskor ilyen és más hasonló inkompatibilitási problémákkal kell megküzdeni. Az állománytovábbításon kívül ehhez a réteghez tartozik még az elektronikus levelezés, a távoli munkabevitel, a katalóguskikeresés, és még egy sor egyéb, általános-, ill. speciális célú alkalmazási feladat is.