Már az eddigiek alapján is nyilvánvaló, hogy a hálózatok kialakításában (de ez igaz minden műszaki tudományra) alapvető szerepet játszik a szabványosítás. A szabványok központi szerepet játszanak a fejlődésben, ez teszi a rendszereket nyíltakká, egységeit cserélhetővé. Minden új dolog kialakulását megelőzi a kutatás, az ehhez kapcsolódó írásos és szóbeli információcserék (cikkek, konferenciák), majd az új dolgot gyártó rendszerek kialakítása.
Felmerül a kérdés, hogy mikor célszerű az új dolgokkal kapcsolatos információhalmazt a szabványok által meghatározott útra terelni.
Ha ez a kutatási szakaszban következik be, ez azt jelenti, hogy az esetleg a még nem alapos ismeretek miatt a szabvány nem lesz megfelelő, mivel az új, későbbi kutatási eredményeket már nem lehet beilleszteni, kedvező megoldásokat kell elhagyni.
Ha viszont túl későn következik be a szabványosítás, akkor a gyakorlatban már számos egymástól eltérő megoldás kerül megvalósításra, ami az ellenérdekek miatt nehézzé teszi az egységességet igénylő szabványosítást.
Sajnos a műszaki fejlődés számos esete bizonyítja az állításunkat. Ezért a gyakorlatban a szabványok két családja létezik: a de-jure szabványok, amelyeket bizottságok deklarálnak, és hivatalos dokumentumokban rögzítenek és de-facto szabványok, amelyek elterjedését már egy-egy konkrét megoldás széleskörű használata biztosítja. Példa ez utóbbira a nyomtatók Centronics interfésze, vagy az IBM-PC-ben alkalmazott számos megoldás.
Természetesen számos esetben a de facto szabványokat célszerű utólagosan de jure szabványokká alakítani.
A számítógép-hálózatok esetében sem volt másképp. Megjelenésükkor néhány vezető cég termékeivel de-facto szabványokat teremtett, és a későbbi ezeket figyelembe vevő de-jure szabványosítási törekvések kompromisszumos megoldásokat eredményeztek, azaz adott műszaki problémára több szabványos megoldás tettek szabványossá.
A hálózatokban történő adatátvitel szabványosítását a régebben a CCITT (Comité Consultatif International Télégraphique et Téléphonique), ma már az ITU (International Telecommunications Union) nemzetközi szervezet végzi. A szabvány rendelkezik a jelvonalakról azok kialakításáról és funkcióiról.
Ezen szabványok közül a legfontosabbakat a következőkben illusztrációként felsoroljuk. A telefonvonalakon történő átvitelt a V sorozatú szabványok írják le. Az X sorozatú szabványok rögzítik a digitális hálózatokon történő adatátvitel módját. A szabványoknál esetleg megjelenő “bis” tag arra utal hogy a szabványt úgy fejlesztették tovább, hogy régebbi berendezések használata is lehetővé váljék.
E sorozat: Telefon szabványok
F sorozat: Távíró szabványok
G sorozat: Digitális hálózatok (PCM)
I sorozat: ISDN
Q sorozat: Digitális elérésű jelzési rendszer
S sorozat: Távíró terminálok
T sorozat: Teletex, fax
U sorozat: Távíró kapcsolás-telex
V sorozat: Telefon vonalakon történő adat kommunikáció
X sorozat: Adatátvitel
V sorozat: Funkcionális specifikációs és leíró nyelv (SDL)
V sorozat szabványai:
1. Alapok, általános előírások
2. Interfészek, modemek
3. Hibavédelem
1. Szolgálatok és felhasználói kérdések
2. Interfészek
3. Vezérlő jelek, kapcsolások
4. Hálózatok
5. OSI modell (X.200-X.299)
6. Internetworking (Hálózatok közötti kommunikáció) (X.300-X.330)
7. Üzenetkezelő rendszerek (X.400-X.430)
8. Katalógus szolgálatok (X.500)
A didaktikus elvektől (nevezetesen, hogy csak már definiált fogalmakra építve vezetjük be az újakat) a szabványok ismertetésénél eltértünk, ezért ajánlott a könyv végigolvasása után ismételten visszatérni ide.
Az előzőkben leírtak alapján már látható, hogy a számítógép-hálózatok rétegezett struktúrájú modell segítségével írhatók le. A Nemzetközi Szabványügyi Szervezet, az ISO (International Standard Organization) kidolgozott egy olyan modell-ajánlást (nem szabványt!!!) amelyet ma már minden hálózati rendszer tervezésekor követnek.
A modellt OSI-modell-nek hívják. Az OSI az Open System Interconnect - nyílt rendszerek összekapcsolása kifejezés angol eredetijéből alkotott betűszó. Nyílt rendszereknek olyan rendszereket hívjuk amelyek nyitottak a más rendszerekkel való kommunikációra. Az OSI modell hét rétegből áll, és a kialakításuknál a következő elveket vették figyelembe:
minden réteg feladata jól definiált legyen, és ez a nemzetközileg elfogadott szabványok figyelembe vételével történjen,
a rétegek közötti információcsere minimalizálásával kell a rétegek határait megállapítani,
elegendő számú réteget kell definiálni, hogy a különböző feladatok ne kerüljenek feleslegesen egy rétegbe.
A következőkben röviden összefoglaljuk az egy-egy réteg által ellátott feladatokat, a legalsó szinttől felfelé haladva. Az modell alsó három rétege a hálózattól függ, míg a felső négy réteg mindig alkalmazásfüggő, és mindig az alkalmazást futtató hosztokban történik a megvalósításuk (implementálásuk).
Fizikai réteg (physical layer): Valójában ezen a rétegen zajlik a tényleges fizikai kommunikáció. Biteket juttat a kommunikációs csatornára, olyan módon, hogy az adó oldali bitet a vevő is helyesen értelmezze ( a 0-át 0-nak, az 1-et, 1-nek). A fizikai közeg, és az információ tényleges megjelenési formája igen változó lehet: pl. elektromos vezeték esetén, a rajta lévő feszültség értéke, vagy a feszültség változásának iránya. Információhordozó és közeg más és más lehet még: fénykábel, rádióhullám, stb. Itt kell azt is meghatározni, hogy mennyi legyen egy bit átvitelének időtartama, egy vagy kétirányú kapcsolat. A kétirányú kapcsolat egyszerre történhet-e? Hogyan épüljön fel egy kapcsolat és hogyan szűnjön meg. Milyen legyen az alkalmazott csatlakozó fizikai, mechanikai kialakítása?
Adatkapcsolati réteg (data link layer): feladata adatok megbízható továbbítása az adó és fogadó között. Ez általában úgy történik, hogy az átviendő adatokat (amelyek általában bitcsoportba kódolt formában - pl. bájtokban jelennek meg ) adatkeretekké (data frame) tördeli, ellátja kiegészítő cím, egyéb és ellenőrző információval, ezeket sorrendhelyesen továbbítja, majd a vevő által visszaküldött nyugtakereteket (acknowledgement frame) véve ezeket feldolgozza.
Az első pillanatban egyszerűnek és teljesnek tekinthető megoldást a gyakorlatban számos kialakuló esemény kezelésével is ki kell egészíteni. Hogyan jelezzük a keretek kezdetét és a végét? Mi történjék akkor ha egy keret elveszik? Mi történjék akkor ha a nyugtakeret vész el? Ilyenkor, ha az adó újra adja, kettőzött keretek jelennek meg a rendszerben. Mi legyen akkor, ha az adó adási sebessége jelentősen nagyobb, mint a vevőké?
Ha a csatorna kétirányú adatátvitelre használt, felmerülhet problémaként, hogy mennyire legyen szimmetrikus a két különböző irányban történő adatátvitel, és ezt milyen megoldással lehet biztosítani azt, hogy az egyik irányú átvitel ne kerüljön túlsúlyba.
Hálózati réteg (network layer): lényegében a kommunikációs alhálózatok működését vezérli. Nagyobb hálózatok esetén a keretek vevőtől a célba juttatása elvileg több útvonalon is lehetséges, feladat a bizonyos szempontból optimális útvonalnak a kiválasztása. Ez a tevékenység az útvonalválasztás (routing), és több megoldása lehetséges:
Itt kell megoldani a túl sok csomag hálózatban való tartózkodása okozta torlódást, valamint különböző (heterogén) hálózatok összekapcsolását.
Szállítási réteg (transport layer): Feladata a hosztok közötti átvitel megvalósítása. A kapott adatokat szükség esetén kisebb darabokra vágja, átadja a hálózati rétegnek. Fontos része a címzések kezelése. Egy viszonyréteg által igényelt összeköttetési kérés általában egy hálózati összeköttetést hoz létre, ha azonban nagyobb hálózati sebesség szükséges akkor több hálózati kapcsolatot is igénybe vehet. Fordítva, ha kisebb átviteli sebesség is elegendő, akkor egy hálózati összeköttetést lehet felhasználni több viszonyréteg kapcsolat lebonyolítására. Ezt a szállítási rétegnek a felsőbb rétegek felé nem érzékelhető módon kell megvalósítania. További feladatai: Több üzenetfolyam egyetlen csatornára nyalábolása, illetve forrás-cél összeköttetések létrehozása a névadási mechanizmus felhasználásával.
Együttműködési réteg (session layer): Más néven: viszony réteg. A különböző gépek felhasználói viszonyt létesítenek egymással, például bejelentkezés egy távoli operációs rendszerbe, állománytovábbítás két gép között. Átvitt adatfolyamokba szinkronizációs ellenőrzési pontok beiktatása. Ez azt biztosítja, hogy hosszú átvitt adatfolyam átvitele alatt bekövetkező hiba esetén elegendő az utolsó ellenőrzési ponttól ismételni az elvesztett adatokat.
Megjelenítési réteg (presentation layer): a feladata az adatok egységes kezelése. A legtöbb alkalmazói program nem egy csupán egy bitfolyamot, hanem neveket, dátumokat, szövegeket küld. Ezeket általában adatstruktúrákban ábrázolják. A kódolás sem minden esetben egységes, pl. a karakterek kódolására az ASCII mellett az EBCDIC kód is használt. Más lehet egy több bájtos kód esetén az egyes bájtok sorrendje. Ezért egységes, absztrakt adatstruktúrákat kell kialakítani, amelyek kezelését a megjelenítési réteg végzi. További, e réteg által kezelt vonatkozások: az adattömörítés, illetve az átvitt adatok titkosítása.
Alkalmazási réteg (application layer): Mivel ez kapcsolódik legszorosabban a felhasználóhoz, itt kell a hálózati felhasználói kapcsolatok megoldásait megvalósítani. Mivel számos termináltípust használnak a hálózati kapcsolatokban, amelyek természetesen kisebb-nagyobb mértékben egymástól eltérnek, ezért egy hálózati virtuális terminált definiálnak, és a programokat úgy írják meg, hogy ezt tudja kezelni. A különböző típusú terminálok kezelését ezek után egy olyan kis — a valódi és e hálózati absztrakt terminál közötti megfeleltetését végző — programrészlet végzi. Másik tipikus, e réteg által megvalósítandó feladat a fájlok átvitelekor az eltérő névkonvenciók kezelése, az elektronikus levelezés, és mindazon feladat, amit internet szolgáltatásként ismerünk.
Mivel az OSI modell szemlélete számos hálózat kialakítása után, a belőlük leszűrt tapasztalatok alapján történt, ezért a 6. ábrán összefoglaltuk néhány ismert hálózat és az OSI modell kapcsolatát.
Minden rétegben vannak aktív, működő elemek ún. funkcionális elem-ek (más, elterjedt néven: entitás-ok), amelyek a rétegtől várt funkciókat megvalósítják. Ez lehet egy program, vagy egy hardver elem (pl. egy be-kimeneti áramkör).
6. ábra: Hálózati elemek az OSI modell szerint
A rétegek közötti kommunikáció ún. szolgálatok segítségével valósul meg. A szolgálatok a rétegek ki/bemeneti pontján ún. SAP-ján (Sevice Access Point) keresztül érhetők el. Ezek mindig két szomszédos réteg között találhatók. Lényegében a két réteg közötti kommunikáció ténylegesen ezeken a pontokon keresztül valósul meg. Például egy telefonrendszerben a SAP telefon fali csatlakozója, és a SAP címe az a telefonszám, amelyen keresztül a csatlakozóba dugott telefon hívható.
Általánosan fogalmazva az N+1 rétegbeli entitás (funkcionális elem) kapcsolati adatelemet (IDU-t) küld a SAP-on keresztül az N rétegben lévő entitásnak. (7. ábra)
7. ábra: Kapcsolat a rétegek között
Az IDU két részből, a vezérlőinformációból (ICI) és az adatelemből (SDU) áll. Az ICI csak az interfész megfelelő működéséhez szükséges, a tényleges információt az SDU hordozza. Elképzelhető, hogy az adatelemet a N.-edik rétegbeli entitás még szétdarabolja és független protokoll-adatelemként küldi tovább. A szállítási, viszony és alkalmazási protokoll adategységekre (PDU-kra) rendre TPDU, (T=Transport), SPDU (S=Session), és APDU (A=Application) néven hivatkoznak.
A kommunikációt biztosító szolgálatoknak alapvetően két különböző típusa lehetséges: az összeköttetés alapú és az összeköttetés mentes szolgálat.
8. ábra: A rétegszolgálatok osztályozása
Összeköttetés alapú szolgálat.
A lényegét a telefonrendszer segítségével érthetjük meg. Ha valakivel beszélni akarunk akkor felemeljük a kagylót, a tárcsázás segítségével a telefonközponton keresztül kapcsolatot létesítünk (azaz felépítjük az összeköttetést) információt cserélünk (azaz használjuk) majd a beszélgetés végeztével letesszük a kagylót (vagyis bontjuk a kapcsolatot). Tehát a folyamat a kapcsolat felépítése, használata, majd bontása, és az információ átvitel sorrendjét szigorúan az adó határozza meg. Ez azt jelenti, hogy amilyen sorrendben küldjük az információt, a vevő pontosan ebben a sorrendben kapja meg. Az összeköttetés kialakítása időt vesz igénybe, így sok esetben csak akkor célszerű alkalmazni ha nagyobb mennyiségű információt akarunk átvinni.
Összeköttetés mentes szolgálat.
Az információ ilyenkor az adó és a vevő között a vevő címét is tartalmazó információrészek (csomagok) segítségével kerül átvitelre, a levélkézbesítő rendszer működéséhez hasonlító módon. Ilyenkor elképzelhető, hogy a részekre bontott információt a vevő nem az adó által küldött sorrendben kapja meg, felmerül a csomagok helyes sorrendben történő összerakásának a szükségessége is.
Melyik a jobb megoldás? — kérdezhetnénk. Mindkét megoldást annak megbízhatóságával minősíthetünk, ami azt jelenti, hogy az átvitel során nem vesztünk adatot. A megbízhatóság megvalósításának az a módja, hogy a vevő az információvétel tényét visszajelzi a küldőnek, azaz nyugtázza (nyugtát küld).
Ez természetesen nem minden esetben engedhető meg (például digitális hang- vagy képátvitel esetén), hiszen a nyugtázási megoldás késleltetést és külön adminisztrációt igényel.
A gyakorlatban a megbízhatatlan (azaz nem nyugtázott) összeköttetés mentes szolgálatot datagram szolgálatnak (datagram service) nevezik. A megbízható összeköttetés mentes szolgálat neve: nyugtázott datagram szolgálat (acknowledged datagram service).
Természetesen összeköttetés alapú szolgálatok esetén is megkülönböztethetünk megbízható és a nyugtázást nélkülöző megbízhatatlan szolgálatokat.
Az előbbiek illusztrálására a 8. ábrán összefoglaltuk a rétegszolgálatokat bemutató összefüggéseket:
Egy szolgálatot bizonyos alapműveletek (primitívek) segítségével írhatunk le. Ezekkel definiáljuk, hogy egy szolgálat milyen tevékenységet végez el, és milyen jelzést ad tovább egy másik primitívnek. Az OSI modellben a primitívek négy osztálya lehetséges:
Primitív |
Mit csinál |
Kérés |
Valamilyen tevékenység végrehajtásának kérése |
Bejelentés |
Információ adás eseményről |
Válasz |
Egy eseményre való válaszadás |
Megerősítés |
A kérést kérő informálása |
A köztük lévő összefüggést a 9. ábra mutatja.
9. ábra: Összefüggés a primitívek között
Ha a kapcsolat létrehozását a CONNECT, az adatátvitelt a DATA és a lebontást a DISCONNECT szavakkal jelöljük, akkor egy összeköttetés-alapú szolgálat nyolc szolgálat-primitívből áll [1]:
1. CONNECT.kérés - Hívó összeköttetés létesítését kéri
2. CONNECT.bejelentés - Hívó jelez a hívott félnek
3. CONNECT.válasz - A hívott fél válasza a hívásra (elfogadja-elutasítja)
4. CONNECT.megerősítés - Közli a hívóval, hogy a kérését elfogadta-e
5. DATA.kérés - Hívott az adat küldését kéri
6. DATA.bejelentés - Hívott az adat érkezését jelzi a hívónak
7. DISCONNECT.kérés - Hívó összeköttetés bontását kéri
8. DISCONNECT.bejelentés - Hívott jelez a hívónak hogy elfogadta
A példában a CONNECT egy megerősített szolgálat (nyugtázott), míg a DISCONNECT megerősítetlen szolgálat (nincs nyugtázva külön a kérés).
1.fejezet: A hálózatok célja, alkalmazása, alapfogalmak, Hálózati struktúrák, Hálózati architektúrák, Ellenőrző kérdések
2.fejezet: Fizikai átviteli jellemzők és módszerek
3.fejezet: Közeg-hozzáférési módszerek
4.fejezet: Adatkapcsolati protokollok
8.fejezet: A TCP/IP protokoll és az Internet