November 30, 2022

A felsőbb rétegek

A következőkben röviden összefoglaljuk az OSI modell felső négy rétegének feladatait. Ezek a rétegek már a hoszt-hoszt közötti kapcsolatok mikéntjét és milyenségét írják le. Az OSI modell tervezése előtt már sok hálózat működött, amelyek általában a hálózati rétegig jól átgondoltak voltak, és ezért jelentős mennyiségű működési tapasztalat és ismeret halmozódott fel. A felsőbb rétegek kialakításánál már nem lehetett az előző tapasztalatokra hivatkozni, tudták, hogy ezekre a rétegekre szükség van, de megvalósításukhoz csak kevés, és nem egységes egyedi reprezentáció szolgálhatott csupán alapul.

Az OSI modellben a viszony-, a megjelenítési és az alkalmazási rétegek alkotják a felső rétegeket. Ellentétben az alsó négy réteggel, amelyek a megbízható két végpont közötti csupasz hibamentes csatornát valósítják meg, a felső rétegek további, az alkalmazások széles köréhez tartozó hasznos szolgálatokat biztosítanak. A határon van a szállítási réteg amely a két fő rétegcsoport közötti átmenetet alkotja.

Szállítási réteg

A rétegek közül a szállítási réteg még az alsó három réteg logikai folytatásának tekinthető, hiszen gondoljuk meg: ha egy hoszt üzenetet küld a másiknak, akkor az üzenet továbbítása előtt ezt általában csomagokra kell darabolni, ezeket a hálózati rétegnek átadva át kell vinni a hálózaton és a célhosztnak átadni, ahol az üzenet összerakásra kerül. Az üzenetben leírt különféle fajtájú tevékenységet végre kell hajtani. Az üzenetkapcsolást használó rendszerek pontosan ebből a csomag-darabolásból és összerakásból adódó problémákat kerülik ki a teljes üzenet
egy egységben történő átvitelével.

A szállítási réteg feladata nagyon fontos: megbízható adatszállítás biztosítása a forráshoszt és a célhoszt között, függetlenül az alatta lévő rétegek kialakításától. A cél eléréséhez a hálózati réteg által nyújtott szolgálatokra támaszkodik. Itt már a feladat a tényleges hoszt-hoszt kapcsolat hibamentes megvalósítása.

A használt protokollok sok esetben hasonlítanak az adatkapcsolati réteg protokolljaira, de itt az IMP -ket összekötő fizikai csatornát, a két hoszt közötti teljes alhálózat jelenti. Fontos eltérések azért vannak:

  • Adatkapcsolat esetén a pont-pont összeköttetés miatt nem kell címzés, szállítási rétegnél kötelező.
  • Az összeköttetés létesítése adatkapcsolati szinten egyszerű: a másik oldal mindig ott van (ha nincs, akkor tönkrement). Szállítási réteg esetén a kezdeti összeköttetés létesítés bonyolult.
  • A csomagok átvitele is eltéréseket mutat az adatkapcsolati keretátviteltől. Az alhálózat tárolókapacitása miatt elképzelhető, hogy egy csomag eltűnik (valahol tárolódik) majd egyszer hirtelen előkerül. A csomagok duplázódása miatt felmerülő problémákat is kezelni kell. Ez speciális protokoll használatát igényli.
Adatkapcsolati és szállítási réteg hasonlósága
24. ábra: Adatkapcsolati és szállítási réteg hasonlósága

Mivel a szállítási réteg a hálózati rétegre épül, ezért a hálózati szolgálat minősége alapjaiban meghatározza a szállítási protokoll kialakítását.

A hálózati szolgálatokat minőségük alapján három típusba sorolták:

  • A típus: ez lényegében tökéletes, hibamentes szolgálat. Nincs elveszett, sérült, kettőzött csomag (vagy elhanyagolhatóan kevés.) Ilyenkor a szállítási protokoll az adatkapcsolati protokollhoz hasonló feltételekkel, nagyon könnyen és egyszerűen működik. LAN-ok esetén ez már sokszor teljesül.
  • B típus: Egyedi csomagok csak nagyon ritkán vesznek el, de a hálózati
    réteg időnként kiad egy alaphelyzetbe állító, összes függő csomagot törlő ún.N-RESET-et. Ekkor a szállítási protokoll feladata az hogy összeszedje a hálózatban a maradékot, új összeköttetést létesítsen, újraszinkronizálja az átvitelt, és úgy folytassa az abbamaradt összeköttetést, hogy a felhasználó ebből semmit se vegyen észre. WAN-okra ez jellemző, és jóval összetettebb szállítási protokollt igényelnek.
  • C típus: Rossz minőségű, nem megbízható szolgálat, elveszett vagy kettőzött csomagokkal, gyakori N-RESET-el. Ilyenek a csak datagram szolgálatot nyújtó WAN-ok, és pl. a rádiós csomagszóró hálózatok. Ezek bonyolult összetett szállítási protokollt igényelnek.

A különböző szállítási protokollokat az előzőekben leírt hálózati szolgálatok minősége alapján öt osztályba sorolták [1].

Az üzenetek átviteléhez szükséges összeköttetés kezelése, a létesítés, és lebontás szállítási protokollok esetén összetett folyamat.

A szállítási réteg számára a szállítási szolgálat-elérési pontok (TSAP = Transport Service Access Point) címei azonosítják a forrás- és a célhosztot. A szállítási réteg a hoszt-hoszt kapcsolat többféle konkrét megvalósítását biztosítja: például fájlok átvitele a két hoszt között, vagy az egyik hoszt a célhoszt termináljaként kíván működni, stb. Az ilyen különféle szállítási szolgáltatásokhoz különféle TSAP címek tartoznak. Míg a hosztok címei általában ismertek, addig ezeket a szolgáltatásokhoz tartozó hoszton belüli címeket a küldő hoszt nem ismeri.

Ezért általában kétféle a módszert alkalmaznak:

  • a küldő hoszt által igényelt szállítási alkalmazást mindig a célnál egy alkalmazásszolgáltató (alkalmazás szerver, process server) fogadja, és az üzenet tartalma alapján rendeli hozzájuk a TSAP címeket.
  • vagy azt a módszert alkalmazzák, hogy egy speciális névszolgáltatót (name server) használnak. Egy adott szolgáltatásra vonatkozó TSAP-cím megtalálásához a felhasználónak összeköttetést kell létesítenie a névszolgáltatóval, amely egy ismert TSAP címen várakozik. Ide elküldi a szolgáltatás nevét megadó üzenetet, amely visszaküldi a szolgáltatás TSAP címét.

Az összeköttetés létesítése nem egyszerű C típusú hálózatszolgálatok esetén, mert az elveszett, vagy kettőzött csomagok sok problémát okozhatnak.

Például egy banki átutalás kérését tartalmazó csomag, ha megkettőződik, és az egyik valahol rövid időre tárolódik, akkor először az első csomag hatására történhet meg egy átutalás, majd utána a másikra, hiszen ezeket lehet két független tranzakció kérésének tekinteni.

Ezekre és hasonló problémákra két megoldás lehetséges:

  • a csomagok élettartamának korlátozása

    Ennek eszköze a csomópontátlépés számláló alkalmazása a csomagban, amelynek értéke minden csomópont átlépésekor eggyel növekszik; a csomag eldobásra kerül ha ez az érték egy adott korlátot elér, a csomag létrehozásának időpontját a csomagban tároljuk; a csomagot vevő IMP-k ezt az időpont alapján a csomag korát meg tudják állapítani. Ha a csomag “túl öreg”, eldobják.

  • háromutas kézfogás alkalmazása

Ennek az a lényege, hogy az összeköttetés létesítése során a felek tetszőleges, véletlen-számként választott kezdősorszámmal kezdik az adásukat, így kiszűrhető egy korábbi összeköttetésből származó késve érkezett csomag.

Az összeköttetés lebontásakor biztosítani kell az adatvesztés mentes lebontást. Nem lehet addig törölni az összeköttetést, amíg az összes elküldött adat meg nem érkezik. Ezt az előbb említett három-utas kézfogás alkalmazása biztosítja.

Viszonyréteg

A viszonyréteg a szállítási réteg felhasználásával szolgálatokat nyújt a felette lévő megjelenítési rétegnek. A fő funkciója az, hogy lehetőséget biztosítson a viszony használóknak adatokat cserélni a viszonyokon keresztül. A viszonyok a szállítási összeköttetések felhasználásával valósulnak meg. Egy viszony használhat egy vagy több szállítási összeköttetést is.

Például egy több városra kiterjedő helyfoglalási rendszerben amikor valaki terminálján keresztül egy helyfoglalást intéz, akkor a helyi terminálokat összefogó számítógép szállítási kapcsolatot létesít a központi géppel, és a viszonykapcsolat segítségével lebonyolítja a helyfoglalást, majd a viszony lezárul. A szállítási összeköttetést nem célszerű megszüntetni, mert egy újabb innen érkező helyfoglalási viszonynak is ezt kell használnia.

Az előbbi példában a viszonyrétegen keresztül egy adatcsere valósult meg. Nagyon lényeges, hogy míg a szállítási rétegben megvalósuló bontás, azonnal megvalósul (a DISCONNECT szállítási primitív felhasználásával). Ez azt jelenti ha egy szállítási kapcsolat megszakítási kérés érkezik a réteghez, azt a réteg mindenféle megerősítés nélkül elfogadja és végrehajtja. A viszonyréteg a rendezett bontást támogatja: azaz a viszonyrétegben a bontási kérelmet meg kell erősíteni. Egy viszony csak a két fél egyetértése alapján fejeződik csak be.

Fontos feladata a viszonyrétegnek a párbeszédes kapcsolatok kezelése. Ez azt jelenti, hogy bár a szállítási réteg teljes duplex átvitelt biztosít, de egy kérdés, és rá a felelet fél-duplex kapcsolat használatát igényli. Ha például a szállítási réteg képes több kérdés fogadására, akkor a viszonyréteg feladata a soron következő kérdések számontartása és rájuk a válaszok kikényszerítése. A gyakorlati megoldása ennek az adat-vezérjel (token) bevezetése: mindig csak a vezérjelet birtokló küldhet adatot, addig a másik félnek hallgatni kell. Az adatküldés befejezésekor az adat-vezérjelet átadja a másik oldalnak, és így a helyzet megfordul.

Megjelenítési réteg

A megjelenítési réteg felelős az információ megjelenítéséért és egységes értelmezéséért, a feladata a szállított információ jelentéséhez kapcsolódik: az adatábrázoláshoz, adattömörítéshez és a hálózati biztonsághoz és védelemhez.

Alkalmazási réteg

Az alkalmazási réteg feladata a felhasználó és a felhasználói programok számára a hálózati szolgáltatásokat biztosító illesztést biztosítása. A fő hálózati szolgáltatások a következők:

    • állományokhoz való hozzáférés, állományok továbbítása,
    • elektronikus levelezés,
    • virtuális terminálok,
    • egyéb, pl. névszolgáltatók .

Az ezekre vonatkozó konkrét példákkal, megoldásokkal a TCP/IP-vel és Internet-tel kapcsolatos fejezetben foglalkozunk.