2017. június 1., csütörtök

Hálózati protokollok és alapfogalmak

Az ISO OSI (Open System Interconnection) hálózati modell

alkalmazási réteg
megjelenítési réteg
viszonyítási réteg
szállítási réteg
hálózati réteg
adatkapcsolati réteg
fizikai réteg

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:

A rétegek egymásra épülnek
Csak az érintkezési felületek (interface-ek) definiáltak, a belsõ megvalósítás módja nem. (Bármelyik összetevõ lecserélhetõ egy más belsõ megvalósítást követõ összetevõre anélkül, hogy a többi rétegbeli elemet módosítani kellene)
Minden réteg konkrét feladatot lát el (a hálózati kommunikáció valamely részfeladatát)
Bármely réteg az alatta levõ réteg szolgáltatásait igénybe véve nyújt jól definiált szolgáltatást a feleltte levõ réteg számára.
Logikailag a kommunikáció az egyik fél n. rétege és másik fél n. rétege között valósul meg
1. 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?
2. 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.

3. 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:

a rendszer kialakításakor alakítjuk ki az útvonalakat,
a kommunikáció kezdetén döntünk arról, hogy a teljes üzenet csomagjai milyen útvonalon jussanak el a
rendeltetési helyükre,
csomagonként változó, a hálózat vonalainak terhelését figyelembe vevõ alternatív útvonalválasztás 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.
4. 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.

5. Viszony réteg (session layer): 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.

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

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

Az Ethernet hálózat

A TCP/IP protokoll bemutatása
A TCP/IP protokollt 1969-ben hozta létre az amerikai védelmi minisztérium ARPA (Advanced Research Projects Agency) hivatala. Ez egy kísérleti hálózat volt, 1975-ben rendszeresítették.

Az új TCP/IP protokollt 1975-ben szabványosították.

A név magyarázata:

a TCP jelentése Transmission Cotrol Protocol, Az üzenetek széttördelését, összeállítását, az elveszett részek újraadását, a datagrammok helyes sorrendjének visszaállítását mind a TCP (transmission control protocol - átvitelvezérlési protokoll) végzi.
az IP-é pedig Internet Protocol, ami egy teljes protokollcsaládot jelent. A TCP az általa feldolgozott datagrammokat átadja az IP-nek. Persze ezzel együtt közölnie kell a rendeltetési hely Internet címét is. Az IP-t ezeken kívül nem érdekli más: nem számít, hogy mi található a datagrammban vagy, hogy hogyan néz ki a TCP fejléc. Az IP feladata abban áll, hogy a datagramm számára megkeresse a megfelelõ útvonalat és azt a másik oldalhoz eljuttassa.
Egy IP csomag két részbõl áll:
fejléc információk - a küldõ és a cél címét tartalmazza,
adatrész.
Az IP-re épülõ protokollok az adatrészt használhatják felsõbb szintû fejlécek és az adat számára. Az alkalmazások részérõl nehézkes lenne az IP kezelése, mert sok mindennel kellene foglalkoznia az alkalmazásnak. Hogy ne kelljen minden alkalmazásban ezeket a dolgokat megvalósítani, létrehozták a TCP-t, ami gondoskodik a problémákról az alkalmazások helyett (csomagok sorrendbe állítása, az elveszett csomagok újraküldése).
Az IP címzésnél a fizikai eszközön logikai cím jelenik meg, és a logikai-fizikai cím közti összerendelést a protokoll végzi el. Az IP cím és a hálózati eszköz fizikai címe között nincs semmilyen összefüggés.

Az IP által értelmezett hálózatkezelési protokollok 32 bitesek. Minden géphez hozzá kell rendelni (legalább) egy egyedi számot a hálózati környezet számára. Az IP címeket négy 8-bites számmal írjuk le, például: 192.168.1.1 . A cím tartalmazza a hálózatszámot, és a gép számát. Az, hogy hány szám ebbõl a négybõl a hálózatszám, az határozza meg, hogy milyen osztályba tartozik a hálózatunk.

A osztály - az 1.0.0.0 és a 127.0.0.0 közötti hálózatokat foglalja magában. Itt az elsõ szám a hálózat száma. Ez kb. 1,6 millió gép megcímzését teszi lehetõvé.
B osztály - a 128.0.0.0 és a 191.255.0.0 közötti hálózatokat foglalja magában. Itt az elsõ két szám a hálózat száma. Ez 16320 db, 65024 gépes hálózat megcímzését teszi lehetõvé.
C osztály - a 192.0.0.0 és a 223.255.255.0 közötti hálózatokat foglalja magában. Itt az elsõ három szám a hálózat száma. Ez közel 2 millió, legfeljebb 254 gépes hálózat megcímzését teszi lehetõvé.
D, E és F osztályok - a 224.0.0.0 - 254.0.0.0 tartományba esõ címek tartoznak hozzájuk, de nem határoznak meg semmilyen hálózatot, mert vagy kísérletiek, vagy késõbbi felhasználásra vannak fenntartva.
A PPP protokoll bemutatása
Teljes nevén Point-to-Point protokoll, azaz pont-pont kapcsolat. Soros vonalon alkalmazott protokoll (soros vonal alatt értjük a modemes kapcsolatot, de soros kábelen is lehet PPP protokollt használni).

A TCP/IP mellett számos protokollt támogat, lehetõvé teszi például Novell IPX és Appletalk protokollok átvitelét is.

Sok protokollból épül fel a PPP. A legalsó szint a HDLC (High-Level Data Link) protokoll, amely definiálja a PPP keretek körüli határokat, és ellenõrzõ összeget biztosít. A HDLC fölött helyezkedik el az LCP (Link Control Protocol), adatkapcsolathoz tartozó protokollok egyeztetésére. Minden hálózati protokollt, ami a kapcsolaton keresztülmegy, dinamikusan konfigurálunk egy hozzátartozó NCP (Network Control Protocol) használatával. Az IP adatgrammoknak a kapcsolaton keresztül történö küldéséhez elõször a két PPP-nek egyeztetnie kell az általuk használt IP címeket. Erre a célra használják a IPCP-t (Internet Protocol Control Protocol). A PPP képes az IP adatgrammok   fejcének a tömörítésére.

A POP3 protokoll bemutatása

Ez a protokoll azokon a gépeken alkalmazható, amelyek vagy hardverszûke miatt, vagy pedig a nem folyamatos internet kapcsolat miatt nem üzemeltethetnek valamilyen Message Transport System-et (MTS), például STMP servert. Ezek a gépek ezzel az egyszerû és kevés szolgáltatást nyújtó protokollal érhetik el levelesládáikat. Mivel a POP3 egy egyszerü protokoll - az elöbb említett okok miatt -, így nem nyújt túl sok szolgáltatást leveleink eléréséhez.
A szerver a 110-es port folyamatos figyelésével várja a kapcsolat felvételét. Amikor egy kliens a szolgáltatás szeretné használni, kiépít egy TCP kapcsolatot a szerverrel.
Amikor a kapcsolat felépült, a POP3 szerver egy üdvözletet küld. Ezek után kezdõdhet az üzenetváltás a kliens és a szerver között, amíg a kapcsolatot valamelyik fél le nem zárja.

SMTP

SMTP (Simple Mail Transfer Protocol - egyszerû levéltovábbítási protokoll), azaz a levelezést megvalósító protokoll
az angolszász nyelvterület eredeti (7-bites) levelezési protokollja; egykori alkotói nem gondoltak a 8 (mint a magyar) vagy több bitet igénylõ betükészletek átvitelére; idõközben az SMTP-nek egy újabb, 8 bites változatát is szabványosították: ESMTP, de alkalmazása még csak most terjed;
a 7 bites rendszer egyenes következményei a mai magyar levelezésben is sokszor még ékezet nélkülire nyomorított magyar szövegek;
fenti problémát újabban megoldja a levelek MIME kódolása, mely a mai levelezõprogramoknál szinte kivétel nélkül beállítható;
UDP protokol

mikor egy felhasználó egy másik rendszerrel kapcsolatba akar lépni, akkor általában az adott rendszer nevét fogja megadni, és nem az IP címét. Mielõtt bármit is kezdhetne vele, a felhasználó rendszerének ezt a nevet le kell fordítania IP címre. Az erre a célra szolgáló adatbázissal viszont nem minden rendszer rendelkezik, ezért a felhasználó rendszere az adatbázissal bírót kéri meg a fordításra. A kérés annyira rövid, hogy biztosan elfér egyetlen datagrammban. Ugyanez mondható el a válaszról is. Úgy látszik, hogy nem érdemes a TCP-t használni. Persze a TCP az üzenetek darabolásán kívül még mást is csinál. Biztosítja, hogy az üzenetek megérkezzenek: ahol szükséges, ott a datagrammokat újraadja. Viszont az olyan kérdéshez, amely egyetlen datagrammban elfér, nincs szükség a TCP teljes bonyolultságára. Ha egy pár másodpercen belül nem kapunk választ, akkor egyszerûen megismételjük a kérdést. Az ilyen alkalmazásokra a TCP mellett létezik más alternatíva.
A legszélesebb körben használt ilyen protokoll az UDP (user datagram protocol - felhasználói datagrammprotokoll), amelyet olyan alkalmazásokhoz találtak ki, ahol nincs szükség datagramok sorozatba állítására. Az UDP nem végez annyi feladatot, mint a TCP: nem tördeli szét az üzenetet datagrammokra, nem figyeli a már elküldött adatokat, hogy majd esetleg újraadja õket. Az UDP csak portszámokat biztosít, hogy egyszerre több program is használhassa a protokollt. Az UDP portszámok ugyanúgy használatosak, mint a TCP portszámok. Az UDP-t használó kiszolgálókhoz is léteznek jól ismert portszámok. Megjegyezzük még, hogy az UDP fejléc sokkal rövidebb, mint a TCP fejléce. Ebben is szerepel a forrás- és a célport száma, valamint egy ellenõrzõ összeg, de ennyi az egész. Nincs benne sorszám, mert nincs szükség rá.

ICMP

Egy másik alternatív protokoll az ICMP (Internet control message protocol - internet vezérlõ üzenet protokoll) nevet viseli. Az ICMP-t a hibaüzenetek és a TCP/IP-t megvalósító szoftvernek szánt üzenetek kezelésére használják. Kapcsolat kérésekor a kezdeményezõ rendszer kaphat például olyan ICMP üzenetet, hogy "host unreachable" (elérhetetlen gép). Az ICMP-t használják még arra is, hogy magáról a hálózatról információkat gyûjtsenek. Az ICMP abban hasonlít az UDP-hez, hogy mindketten olyan üzenetekkel foglalkoznak, amelyek egyetlen datagrammban elférnek. Az ICMP azonban annál is egyszerûbb. Még csak portszámok sincsenek a fejlécében. Mivel minden egyes ICMP üzenetet maga a hálózati szoftver értelmez, ezért nincs szükség olyan portszámokra, amelyek megmondják, hogy egy adott ICMP üzenet hova menjen.
HTTP

A HTTP ügyfél-kiszolgáló protokollt hypertext dokumentumok gyors és hatékony megjelenítésére tervezték. A protokoll állapotmentes, vagyis az ügyfélprogram több kérést is küldhet a kiszolgálónak, amely ezeket a kéréseket egymástól teljesen függetlenül kezeli, és minden dokumentum elküldése után le is zárja a kapcsolatot. Ez az állapotmentesség biztosítja, hogy a kiszolgáló mindenki számára egyformán elérhetõ és gyors.
A HTTP-kapcsolat négy lépése:

A kapcsolat megnyitása.
A kérés elküldése.
A válasz.
A kapcsolat lezárása.
Ez az eljárás azt jelenti, hogy a kapcsolat során csak egy dokumentumot lehet átadni, illetve egyetlen feldolgozás megy végbe. Az állapotmentesség miatt a kapcsolatok semmit nem tudnak az elõzõ kérésekrõl, mivel a kiszolgáló minden dokumentum elküldése után lezárja a kapcsolódást, és minden kérést egyenként, külön-külön kezel.
Ha egy dokumentum több képet vagy grafikát tartalmaz, akkor ezek megjelenítéséhez az ügyfél annyiszor építi fel a kapcsolatot, ahány hivatkozást talál: egyet magának a dokumentumnak, és a többit egyenként a grafikáknak, illetve képeknek.

SHTTP

Secure Hypertext Transfer Protocol (Secure-HTTP) S-HTTP néven is ismert. Az S-HTTP nem önálló protokoll, hanem a szabványos HTTP kiterjesztése. Az S-HTTP képes az adatforgalom mindkét irányú titkosítását, digitális aláírás alkalmazását és hitelesítést biztosítani a kliens és szerver között. A választható titkosítási eljárásokra nem ad megkötést (támogatja a nyilvános kulcsok használatát is), megengedi nem-S-HTTP tudatú kliensek alkalmazását is (sõt kényesebb igényeknek is eleget tesz).
FTP

FTP: (File Transfer Protocol) Az ftp protokoll a hálózatban lévõ gépeken megtalálható fájlok átvitelére használható. Használata az Email-el szemben már folyamatos hálózati kapcsolatot igényel. Adatátviteli sebesség igénye is jelentõsebb, hiszen elfogadható idõn belül kell átvinnünk esetleg több száz kilobájtnyi adatot. Néhány kbit/s-os átviteli sebesség már elfogadható.
Az ftp protokoll két átviteli módban mûködhet: ascii és binary. Az elõbbi, mivel 7 bites kódokat használ, szövegállományok átvitelére alkalmas, az utóbbi bármilyen általános fájlra. Fontos továbbá, hogy egyes rendszerek (pl. Unix) különbséget tesznek kis és nagybetûk közt, azaz a fájl nevében tetszõlegesen lehetnek kis és nagybetûk.

Telnet

Egy távoli gépre úgy lehet belépni, mintha egy terminálja elõtt ülnénk. Azaz a Telnet a gépek közti távoli bejelentkezést lehetõvé tevõ protokoll neve. Ez is folyamatos (on-line) hálózati kapcsolatot igényel, és sebességigénye hasonló az ftp-hez, (persze csak ha azt szeretnénk, hogy egy leütött billentyû ne 10 másodperc múlva jelenjen meg...).
Telnettel csak akkor tudunk egy másik gépre belépni, ha azon a gépen is van accountunk. Bejelentkezés után a rendszer úgy viselkedik, mintha ott ülnénk a távoli gép elõtt, azaz a távoli gép operációs rendszerének konvenciói érvényesek, parancsainkat a telnet protokoll adja át a távoli gép operációs rendszerének, és az távoli operációs rendszer hajtja végre. Így a távoli gépen programokat futtathatunk, megnézhetjük az odaérkezett leveleinket, stb.

Ezen lehetõség a hálózati gépek biztonságának egy sebezhetõ pontja. Ha ugyanis egy távoli gépre rendszeradminisztrátori jogokkal tudunk belépni (felhasználói név: root, a jelszót automatikus próbálkozási módszerrel ?kitaláljuk?), akkor a géppel mindent megtehetünk. Az ilyen behatolás módot nyújt arra is, hogy a távoli gépet felhasználva (a Telnetet ott elindítva) lépjünk be egy ?kényesebb? gépre. Ez utóbbi behatolás felderítésekor a behatoló címe az erre használt gép címe, és ha az oda történõ behatolás nyomait eltüntetjük , akkor nem lehet kideríteni a kényesebb gépre behatolót.

ARP

Minden számítógépnek a hálózaton van egy táblázata, amelyben felsorolja, hogy milyen Ethernet cím milyen Internet címnek felel meg. Ennek a táblázatnak a karbantartását a rendszer egy protokoll, az ARP (Address Resolution Protocol - címleképezési protokoll) segítségével végzi.
Üzenetszórásos hálózatokon broadcast (minden gépnek szóló) üzenetet használ
A megszerzett információt (IP cím - fizikai cím összerendelés) elraktározza (cache)
A címmeghatározás lépései
A küldõ eszköz broadcast üzenetként elküldi a célállomás IP címét
Az üzenetet minden kapcsolódó eszköz veszi, s azt összehasonlítja a saját IP címével
Amelyik eszköz egyezést tapasztal, az válaszul elküldi a saját fizikai azonosítóját
A fizikai azonosító alapján a küldõ megkezdi a csomagok továbbítását

Nincsenek megjegyzések:

Megjegyzés küldése