6. Fejezet: 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.

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:  

 

95. á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 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:  

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:

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 kapcsolatot 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.

Adatábrázolás

Tény, hogy különféle számítógépek különböző adatábrázolási módokat használnak. Ez karakterek esetén lehet különböző kódrendszerek használata (az IBM nagy gépek EBCDIC-kódja vagy az ASCII kód), de lehetnek a számábrázolásban különbségek is. Ha két gép között ilyen eltérések vannak, akkor a hálózati kapcsolat során átvitt adatokat a megfelelő reprezentálás érdekében átalakítani, konvertálni kell. Struktúrált adatok esetén pl. rekordok esetén a helyzet bonyolultabb, mivel egyes mezőket kell konvertálni, míg másokat nem.

Az adatábrázolásból adódó problémák kezelése nem egyszerű: a küldőnek vagy a vevőnek kell biztosítania az átalakítást? Célszerű-e valami általános hálózati formátumot használni, és erre átalakítva lehetne adatot a hálózaton?

Ezen kérdések tárgyalása meghaladja a könyv korlátjait, többet az [1] irodalomban olvashatunk róluk.

Adattömörítés

Mivel a hálózatok használatáért általában fizetni kell, egyáltalán nem mindegy hogy időegység alatt mennyi információt viszünk át rajta. Az adatok ábrázolása általában redundáns. A csatornán elküldött információt szimbólumsorozatként is felfoghatjuk, amelyek egy adott szimbólumkészletből származnak, pl. decimális számjegyek készlete, karakterek készlete, stb. Az adattömörítés elvét a 96. ábra mutatja.

 

96. ábra: A tömörítési módszer

A következőkben néhány tömörítési eljárást ismertetünk:

Darabszám-kódolás: Ha egy adathalmazban sok egymás után következő azonos szimbólum fordul elő, célszerű egy külön szimbólumot fenntartani az ismétlődés jelzésére, és utána következik az ismétlődő szimbólum, míg az azt követő számérték jelzi az ismétlődő szimbólumok számát:

Például a felkiáltó jel legyen az ismétlődés jelző: !

! (szimbólum) <x=számérték 0-255 között > a szimbólum <x>-szer ismétlődik

!A112 -> 112 A betű egymás után

!! - > maga a ! jel

Szimbólumsor-helyettesítés: gyakori azonos szimbólumsor helyett egy speciális szimbólum

Például ilyen a tabulátor (TAB) jel is! (8 betűközt ér)

Minta helyettesítés: gyakori szimbólumsorozat helyettesítése speciális szimbólummal

Például a BASIC nyelvben szereplő definiált alapszavak (INPUT, FOR, stb.) a program futtatása előtt úgy bájtokban tömörítik, hogy a változókat, adatokat leíró ASCII karakterrel ábrázolt részeket változatlanul hagyják, (legfelső bit =0), míg az alapszavakhoz a maradék 128 kód valamelyikét rendelik hozzá (legfelső bit=1). Például: 80H->FOR, 81H->INPUT, stb. Ezzel az ún. tokenizálással a szöveges BASIC program mérete jelentősen csökkenthető.

Sorozathossz kódolás (Run Lenght Encoding = RLL): Sok nullát tartalmazó bináris sorozatokban a nullák számát bináris számként adjuk meg.

Például:

000100100000100001 -> a nullák száma: 3 2 5 4 -> 3 bittel kódolva : 011 010 101 100

18 bit 12 bit

Statisztikai kódolás: a kódhossz a kód előfordulási gyakoriságától függ. Ennek az a lényege hogy a információt leíró kódhalmazban a kódok hosszát azok gyakorisága alapján állapítjuk meg.

Jó példa erre a Morse ABC. Itt az angol szövegek leggyakoribb betűjének az “e”-nek a kódja a legrövidebb: a pont. A szintén gyakori “t” — nek pedig a vonás. Ilyen vonatkozásban, az ASCII kódrendszer, ahol minden szimbólum hossza egyformán 7 bit nem jó megoldás.

Huffmann kódolás: egyes jelek, vagy bájtsorozatok előfordulási gyakoriságát figyeli, és generált kód hossz ettől függ

Aritmetikai kódolás: mint az előbbi, de a megelőző jeleket is figyeli

Transzformációs kódolás: Ilyen például a Fourier transzformáció: egy periodikus időfüggvényt adott amplitudójú és kezdeti fázisszögű szinusz-hullámok összegével írunk le.

Általánosabban fogalmazva nagyon sok folytonos öszetett jelenség írható le vektorizációval: egy raszterpontokból álló kép leírható alapalakzatok (körök, vonalak, és koordinátáik) segítségével (vektorgrafika). Egy zeneszámot MIDI formátumban szintén alap hang és ritmusegységek írnak le, stb.

Subband kódolás: csak bizonyos frekvenciatartományba eső jeleket transzformáljuk (pl. telefon: 0-4 kHz)

Predikció vagy relatív kódolás: ha az egymást követő jelek nem sokban térnek el egymástól, akkor elég a kis különbségeket kódolni.

Például a PCM Pulzus Kód Modulációnál a beszédet 8 kHz-el mintavételezve 8 bites felbontással (kvantálással) -> 64 kbit/s adatfolyam keletkezik. Kisebb sebességű adatfolyam adódik, ha csak a mintavételezett jelek változását kódoljuk. Ez a Delta PCM.

 

Ezek az előbbiekben felsorolt módszerek a gyakorlatban mind használhatók, a be- és kitömörítést programok, vagy jelenleg már egyre inkább hardver (egy chip) segítségével oldják meg.

 

Hálózati biztonság és védelem (titkosítás)

Gyakran előfordul, hogy bizalmas vagy titkos információt, banki átutalásokat kell továbbítani a hálózaton keresztül. Megoldandó, hogy az arra jogosulatlan személyek ne férhessenek hozzá a titkos adatokhoz. Megfelelő titkosítási algoritmus felhasználásával elérhető, hogy a titkosított adatok csak nem, vagy csak igen nehezen legyenek megfejthetők.

97. ábra: A titkosítási modell

A titkosítástan (kriptológia) alapvető szabálya az, hogy a titkosítás készítőjének feltételeznie kell, hogy a megfejtő ismeri a titkosítás általános módszerét (97. ábra). A módszernél a titkosítási kulcs határozza meg a konkrét esetben a titkosítást. A titkosítási-megfejtési módszer régen nem lehetett bonyolult, mert embereknek kellett végigcsinálni. Két általános módszert használnak:

 

Helyettesítéses rejtjelezés:

Egyábécés helyettesítés: Első híres alkalmazójáról Julius Ceasar-ról elnevezve szokták Ceasar-féle rejtjelezésnek is hívni. Az eredeti abc-t egy három (általános esetben: k) karakterrel eltolt abc-vel helyettesíti, és így írja le a szöveget. Bár a lehetőségek száma nagy, de a nyelvi-statisztikai alapon könnyen fejthető. (betűk, szavak relatív gyakorisága alapján)

Többábécés rejtjelezés: 26 Ceasar-abc sort tartalmazó négyzetes mátrix. Nyílt szöveg fölé egy kulcsot (egy szöveget) írunk, és a kulcsban lévő betű dönti el, hogy melyik sort használjuk az adott nyílt szövegbeli betű titkosítására. 

ABC....XYZ KULCSOCSKAKULCSOCSKA

BCD...YZA EZ A NYILT IRAT

... OT.......

ZAB...WXY

E betűt az O betű helyettesíti, mert a K-val kezdődő sor 5.-ik (E betű az 5-ödik!) tagja O.

Z betűt az T betű helyettesíti, mert a U-val kezdődő sor 26.-ik (Z betű az 26-odik!) tagja T.

A mátrix sorainak keverésével hatásosabb lesz a módszer, de ekkor a mátrix a kulcs részévé válik. Megfejtés alapja: a kulcs hosszának jó megsejtése.

Más: betűkódolás helyett két- három vagy négy betű kódolása, vagy szavak használata. (kulcs egy könyv (pl. szótár) , és elküldjük hogy adott oldal hányadik sora (számok).

Porta-féle rejtjelezésnél 26*26-os mátrixot használunk, amelynek minden eleme betű-pár. A nyílt szöveg sorban egymás után álló két karaktere a mátrix egy sorát és oszlopát határozza meg, a metszéspontban lévő betűpárt írjuk az eredeti betű-pár helyére.

 

Felcseréléses rejtjelezés:

A helyettesítéses rejtjelezések és kódolások a nyílt szöveg szimbólumainak sorrendjét változatlanul hagyják, csak álcázzák. A felcseréléses rejtjelezések a betűk sorrendjét változtatják, de nem álcázzák.

 

Módszer: A kulcsban egy betű csak egyszer fordulhat elő. A szöveget kulcsnyi szélességű sorokra tördelve egymás alá írjuk, a titkosított szöveget az oszlopok egymás után fűzésével kapjuk. Az oszlopok leírási sorrendjét a kulcs betűinek abc-beli sorrendje határozza meg.

Nyílt szöveg: eztmostkodoljuk

Titkosítva: odkmoutkjesoztl

PROBA <- kulcsszó

45321

eztmo

stkod

oljuk

Ez a rejtjelezés is megfejthető. Betűgyakoriságok vizsgálata alapján eldönthető, hogy felcseréléses rejtjelezésről van szó. Majd az oszlopszámokat kell megsejteni, majd az oszlopok sorrendjét.

 

DES (Data Encyption Standard) — Adattitkosítási szabvány

A számítógépek megjelenésével az a hagyományos módszerek (helyettesítés és felcserélés) továbbélnek, de a hangsúly máshová került. Mivel régen emberek voltak a titkosítók, ezért a készítők egyszerű, emberek által jól megtanulható algoritmusokat és hosszú kulcsokat használtak.

98. ábra: Bitcsoport felcserélése és helyettesítése

A számítógépek megjelenésével felmerült az igény olyan titkosítási algoritmusok iránt, amelyek olyan komplikáltak, hogy még egy számítógép se tudja megfejteni. Manapság a titkosítási algoritmus a nagyon bonyolult (hiszen a számítógép végzi), és a megfejtő még sok titkosított szöveg birtokában sem tudja megfejteni.

A DES módszer lényegében egy 64 bites nyílt szöveget 64 bites titkosított szöveggé alakít egy 56 bites titkosítási kulcs segítségével.

Bináris elemek esetén a felcserélések és helyettesítések egyszerű áramkörök segítségével valósítható meg. (98. ábra)

A felcseréléseket a P doboz, a helyettesítéseket az S doboz végzi. A P doboz nem más mint egy 8 bemenetű és 8 kimenetű áramkör, egy bemenő paraméter által meghatározott össze-vissza kötött ki- és bemenetekkel, azaz a bemeneti 8 bit felcserélésével állítja elő a 8 bites kimenetet.

A helyettesítést az S doboz végzi, ez a doboz a bemenetére adott 3 bit nyílt szöveget alakítja át 3 bit titkos szöveggé.

A titkosítás első lépésben egy kulcstól független felcserélés történik, az utolsóban, pedig ennek az inverze. Az utolsó lépésben egyszerűen az első 32 bitet felcserélik az utolsó 32 bittel. A közbülső 16 fokozat ugyanúgy működik, de a kulcs más-más része határozza meg az alkalmazott P és S dobozok konkrét felépítését. Ez természetesen logikai függvényekkel is leírható, és ez alapján titkosító program is készíthető.

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: 

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


Ábrajegyzék

Bevezetés

1.fejezet: A hálózatok célja, alkalmazása, alapfogalmak

2.fejezet: Fizikai átviteli jellemzők és módszerek

3.fejezet: Közeg-hozzáférési módszerek

4.fejezet: Adatkapcsolati protokollok

5.fejezet: Hálózati réteg

6.fejezet: A felsőbb rétegek Ellenőrző kérdések

7.fejezet: Lokális hálózatok

8.fejezet: A TCP/IP protokoll és az Internet

9. fejezet: Szótár

Irodalomjegyzék

Tárgymutató