2.3 Hálózati modell

A számítógép-hálózatok bonyolult, összetett feladatokat látnak el. Ezek magvalósítása történhet szoftveres, illetve hardveres úton. A hardver lehet az adott feladat ellátására készített céláramkör, vagy egy memóriában tárolt mikroprogram, úgynevezett firmware. A hálózatok megközelítése célszerű egy alkalmasan választott modell alapján, aminek segítségével az egyes feladatokat ellátó részegységek jól körülhatárolhatók.
Egy telefonhálózat például, melynek része a hívó és a hívott fél is, a következő műveletek segítségével valósít meg egy beszélgetést, ahol a hívó fél mindössze a pontos időt szeretné megtudni.
- A hívóoldalon a hívó tárcsázza a megfelelő számot, műszaki szemmel megközelítve a távközlő rendszer felé megfogalmazza az összeköttetés létesítésére irányuló kérését (connect-request).
- A másik oldalon a távbeszélőrendszer jelzi a kérést a hívott fél számára (connect-indication), megcsörren a telefon.
- A hívott fél válaszával az összeköttetés elfogadására utasítja a távbeszélő rendszert (connect-response), azaz felveszi a telefont.
- A rendszer a hívó felet tájékoztatja az összeköttetés elfogadásáról (connect-confirm), azaz a hívó meghallja, hogy véget ér a kicsöngés.
- Azáltal, hogy a hívó megkérdezi a pontos időt a távbeszélő rendszertől, az adatok elküldését kéri (data-request).
- Az adatok elküldését a távbeszélőrendszer a másik oldalon bejelenti a hívott félnek (data-indication), azaz a hívott meghallja a kérdést. (A válasz során hasonló műveletek játszódnak le, a rendszer a hívott kérésre végrehajtja az adatok elküldését, és azok megjelenítését a hívó oldalon.)
- A telefonkagyló letételével a hívó a távbeszélőrendszertől az összeköttetés bontását kéri (disconnect-request)
- A másik oldalon a rendszer az összeköttetés bontását jelezi a hívottnak (disconnect-indication), a hívott meghallja, hogy a kagylót letette a hívó.
A felhasználók – hívó és hívott fél – párbeszédet folytatnak egymással anélkül, hogy ismernék a távbeszélőrendszer működését, mindössze adatküldési és kérésfeldolgozó szolgáltatásokat várnak el attól. Jelen esetben a két oldalon lévő távbeszélő rendszer egymással kommunikálva, nyolc szolgáltatást biztosít a felhasználónak. Egy ilyen rendszer modellezhető két rétegből álló egységek együttműködésével (3. ábra). Az egyik réteget a felhasználók szintje, a másikat a távbeszélőrendszer alkotja.

A számítógép-hálózatokat bonyolultságukból adódóan több rétegekbe (layers) szervezik (4. ábra). Minden réteg az alatta lévőre épül. A rétegek célja, hogy a felettük lévőknek szolgáltatásokat biztosítsanak. Egy gép n. rétege párbeszédet folytat a hálózat másik gépének n. rétegével.

Protokoll (Protocol): Két azonos szintű réteg kommunikációjának szabályait protokollnak nevezzük. A protokoll nem más, mint a felsőbb szintnek nyújtandó szolgáltatásokat megvalósító műveletek összessége.
Egy felsőbb réteg nem lát bele az alatta lévő működésébe. Amennyiben az egyes rétegek feladatai jól megfogalmazottak, és a köztük lévő kapcsolat minimalizált, azaz a legfontosabb szolgáltatásokra korlátozódik, a hálózat tervezése egyszerűsödik. Egy réteg protokolljának leprogramozásához, hardveres megvalósításához mindössze a megfelelő protokollt kell helyesen alkalmazni, hogy a felsőbb rétegeknek átadott szolgáltatások ne sérüljenek.
A rétegek és protokollok együttese alkotja a hálózati architektúrát (network architecture). A hálózati architektúra pontos leírása nagyban elősegíti a számítógép-hálózatok fejlődését. A Nemzetközi Szabványügyi Hivatal (International Standards Organization, ISO) ajánlásain alapul a hetvenes években megalkotott OSI (Open System Interconnect) modell. Más rendszerekkel kommunikálni képes, azaz nyílt rendszerekkel foglalkozó hivatkozási modell. A számítógép-hálózatot hét réteggel, és annak protokolljaival írja le. Az OSI modell megszületése előtt is léteztek a gyakorlatban jól működő protokollok. Az ezek alapján létrehozott TCP/IP hivatkozási modell, amely négy réteget definiál, a két legismertebb protokolljáról kapta a nevét. A két hivatkozási modell előnyei és hátrányai alapján kialakított hibrid modell (lásd [1]) segítségével viszonylag egyszerűen vizsgálhatók az iparban használatos hálózatok. A rétegek elnevezései az egyes szintek által megvalósított feladatokra utalnak.

A fizikai réteg (physical layer) feladata az egyes bitek továbbítása a csatornán, valamint az ehhez tartozó villamos és mechanikai paraméterek meghatározása, mint például a feszültségszint, érintkezők száma, átviteli sebesség, az átviteli közeg fizikai jellemzői.
Az adatkapcsolati réteg (data link layer) feladata, hogy a fizikai szint szolgáltatásainak igénybevételével egy sorrendet tartó hibamentes bitátvitelt biztosítson a hálózati réteg számára. Ezt úgy éri el, hogy a kapott adatokat úgynevezett adatkeretekbe (data frames) foglalja, fej- és farokrészt hozzácsatolásával. A szomszéd gép adatkapcsolati rétegével kommunikál, elküldi a kereteket, valamint fogadja a nyugtázó kereteket (acknowledge frames).
A hálózati réteg (network layer) meghatározza a csomagok (packages) útját a hálózaton, lekezeli a csomagtorlódási helyzetekből adódó problémákat, és lehetővé teszi az eltérő hálózatok összekapcsolását. Adatszóró hálózatokon kisebb a szerepe, előfordul, hogy nem létezik.
A szállítási réteg (transport layer) adatokat fogad az alkalmazási rétegtől, azokat feldarabolja a hálózati réteg számára. A kapcsolat végpontjának szállítási rétegével kommunikál, amit képes a sorrendtartó, hibamentes átvitellel megvalósítani. A hálózati réteg által csomagtorlódás esetén eldobott csomagokat korrigálja, újrakéri.
Az alkalmazási réteg (application layer) a kapott adatokat használható módon adja át az operációs rendszer felett futó programoknak. Az itt futó protokollok segítségével lehetővé válik egy távoli gépre történő bejelentkezés és azon a munkavégzés, vagy a hatékony adatátvitel - a fájlátviteli protokollok segítségével - egyik gépről a másikra. (Itt működik a HTTP (HyperText Transfer Protocoll), amely a Weboldalak letöltését segíti.)
A felsoroltakon kívül az egyes rétegeknek még további feladatokat is meg kell oldaniuk. Ezek közül néhány: mivel a rétegek üzeneteket küldenek és fogadnak, az üzenet küldőjét fel kell tudniuk ismerni; a fizikai átvitel bizonytalansága miatt foglalkozniuk kell hibajavítással, hibajelzéssel; az adatok továbbításának szabályait - valamint abban az esetben, ha a kapcsolat több szálon folyik a csatornák számát is - meg kell tudniuk határozni.
Adatátvitel a hibrid modellben
A hálózat egyik gépén futó felhasználói program adatot küld, a hálózat egy másik gépén futó felhasználói programnak. A kommunikációt az ötrétegű hálózat valósítja meg (6. ábra). Az alkalmazási réteg a kapott adatot kiegészíti a saját fejrészével. Az így létrejött üzenetet (M) átadja a szállítási rétegnek. Ez a negyedik réteg a későbbi azonosítás céljából hozzáteszi egy fejrészt (H4) az üzenet elejére, majd átadja azt a hálózati rétegnek. A fejrész tartalmazhat például egy sorszámot, így ez a réteg az üzeneteket a helyes sorrendben fogja megkapni még akkor is, ha az alsóbb rétegek nem figyelnek a sorrendiségre. A harmadik réteg ezekből az üzenetekből adott méretű csomagokat hoz létre (M1 és M2), amik elejéhez hozzáteszi a saját fejrészét (H3), meghatározz a csomagoknak egy útvonalat, és átadja őket az adatkapcsolati rétegnek. A második réteg ezekhez a csomagokhoz hozzátesz egy fejrészt (H2) és egy farokrészt (T2), az így kapott egységeket, úgynevezett kereteket átadja a fizikai rétegnek továbbítás céljából. A vevő oldalon a fizikai réteg átadja a kereteket az adatkapcsolati rétegnek, az leszedi róla a fej- és farokrészt, és átadja a hálózati rétegnek. A hálózati réteg leválasztja a saját fejrészét, és továbbadja a felette lévő szállítási rétegnek. A szállítási réteg leszedi a fejrészt, ami alapján sorba rendezi az üzeneteket, és átadja az alkalmazói rétegnek. Az alkalmazói réteg pedig a felhasználói program igényeinek megfelelően továbbítja a küldött adatokat.

A rendszer lényege, hogy az egyes rétegek protokolljai egymással kommunikálnak, egymásnak küldik saját üzeneteiket, és közben nem vesznek tudomást az alattuk lévő rétegekről, ”horizontálisan” kommunikálnak. Ezek az üzenetek a valójában azonban az alsóbb rétegekhez kerülnek, ”vertikális” üzenetváltás történik. A közönségének előadást tartó, de annak nyelvét nem ismerő előadó valójában a tolmácsnak beszél.
Ez a szervezés teszi lehetővé, hogy a bonyolult feladatokat ellátó hálózatokat jól kezelhető, és ezáltal egyszerűbben is tervezhető egységenként lehessen megközelíteni.