Protokollok TCP/IP

A számítástechnika fejlődésével, s különösen az internet elterjedével egyre többet hallani a TCP/IP-ről, de hogy pontosan hogyan működik, és mi az, nem sokan tudják. Pedig manapság a hálózatok alapjának számít ez a protokollcsalád.


TCP/IP - becsületes nevén Transmission Control Protocol / Internet Protocol - alapvető feladata, hogy a hálózatokon köz­lekedő csomagokat hiánytalanul és sértetlenül juttassa el a címzetthez. Ilyen hálózatnak tekinthető például maga az internet is. Bár nem feltétlenül hatékonyabb, mint bármelyik másik hálózati protokoll, azzal, hogy a világ­háló építőkövévé vált, vezető szerepet vívott ki magának versenytársaival szemben.

A 70-es években több hálózat működött egymástól függetlenül az Egyesült Államok­ban. Amikor megpróbálták összekapcsolni ezeket, kiderült, hogy nem lehetséges, mert mindegyik más protokollt, másfajta kommu­nikációt használt. Ezt az összeférhetetlen­séget kiküszöbölendő hozták létre TCP/IP néven a közös protokollcsaládot. Igaz ugyan, hogy ez csak két protokollra hivatkozik, mégis egy családról van szó, amelyből a TCP és az IP a két legfontosabb tag.

Rétegződés

A hálózatok kommunikációrétegenként, hierarchikusan épülnek fel, az egyes rétegek más-más feladatot látnak el. Az adatot szállí­tó csomag a legfelsőtől a legalsóig végig­megy az összes rétegen, majd kilép a háló­zatra, kis szerencsével eljut céljához, ott vi­szont épp fordított utat jár be: a legalsó réteg kapja fel, dobja felfelé a következő rétegek­hez, amíg végül meg nem érkezik céljához. A rétegzett hálózati architektúra felépítését az ISO (International Organization for Standardization; Nemzetközi Szabványügyi Hi­vatal) találta ki, és az úgynevezett OSI-mo­dell írja le. Ez az ajánlás hét réteget definiál, mivel azonban nagyon későn, jóval a TCP/IP elterjedése után vált szabvánnyá, a világon szinte senki nem tartja be. A TCP/IP mind­összesen négy réteget definiál - lássuk, melyek ezek, és milyen feladatot látnak el.

 

Az adatkapcsolási (fizikai) réteg

Adatkapcsolási rétegen a hálózati kapcsolatot megvalósító hardvert, azaz a hálózati kártyát vagy a jó öreg modemet és ezek meghajtó­programjait értjük. Ezek felelnek a helyes cso­magtovábbításért, például az Ethernet eseté­ben a hálókártya gondoskodik arról, hogy az adatok helyesen kerüljenek a kábel megfe­lelő ereibe. Visszafelé pedig a kártya, illetve annak meghajtója továbbítja az adatokat a felette levő réteghez. Ahhoz, hogy ez a rész­folyamat sikeres legyen, a meghajtó minden egyes adatcsomag elé fejlécet, mögé pedig CRC-ellenőrző összeget helyez. Az előbbi a címzésben és a csomag további sorsának eldöntésében, míg az utóbbi a sértetlenség ellenőrzésében játszik fontos szerepet.

A hálózati réteg: az IP birodalma

A hardverrétegről továbbengedett sértetlen csomag az IP (Internet Protokoll) birodalmá­ba, a hálózati rétegre érkezik. Az IP feladata a csomagok célba juttatása az optimális

útvonal megkeresésével. Nem foglalkozik azzal, hogy maga a csomag végül hogyan jut el céljához, nem tud arról, hogy „alatta" Ethernet, modemes vagy drót nélküli hálózat van-e. A lényeg a helyes IP-cím. Minden in­ternetre csatlakozó számítógépet az IP-címe azonosít a hálózaton. Például a Microsoft webkiszolgálójának címe 207.46.245.222 - akár a szokásos www.microsoft.com szöveget, akár e négy számsorozatot írjuk a cím mezőbe, a böngészőben megjelenik a cég nyitóoldala. Az IP fejléce tartalmazza többek között a feladó és a címzett IP-címét is, így adja tovább az adatot az adatkapcsolati rétegnek. A befelé jövő csomagoknál „lehámozza" saját fejlécét az „adatról", a fejléc egyéb mezői alapján megállapítja, hogy a „felette" levő rétegen ki a csomag címzettje, és így dobja azt tovább a TCP-nek.

A szállítási réteg: a TCP birodalma

IP-szinten nincs hibaellenőrzés: ha elveszett egy csomag, az már csak a szállítási rétegen derül ki - a TCP felel a biztonságos adatátvi­telért: ez az úgynevezett kapcsolatorientált protokoll. A TCP saját fejlécében sorszámoz­za a kimenő csomagokat, és ellenőrző összeggel látja el őket (checksum), a megérkezett csomagról pedig visszajelzést küld a feladónak. A feladó oldalán figyeli, hogy minden küldéshez megérkezik-e a visszajelzés, és ha ez nem történne meg a megadott időn belül, elveszettnek nyilvánítja, és újraküldi a csomagot. A TCP arról is visszajelzést küld, ha az ellenőrző összeg nem stimmel, a feladó tehát megtudja, hogy a csomag megsérült, és ez esetben is elküldi újra. Ha minden csomag beérkezett, elvégzi a sorba rendezést, majd a fejlécében levő portszám alapján továbbítja azt az alkalmazásrétegnek. Az egyes alkalmazások eltérő sorszámú portokat használnak a kommunikációhoz, így minden csomag a megfelelő alkalmazáshoz talál vissza. A portszám alapján a legtöbb esetben a szóban forgó alkalmazás is azonosítható.

Az alkalmazásréteg

Az idáig többször említett alkalmazás igazából alkalmazásprotokollt jelöl -ezek találhatók a kommunikáció legfelső szintjén. Az egyik legismertebb a HTTP (HyperText Transfer Protocol), amelyet internetes oldalak megtekintéséhez használunk. A TCP-nek édes mindegy, hogy az Internet Explorert vagy az Operát használjuk-e böngészésre, az ő számára kizárólag az számít, hogy a HTTP melyik portot veszi igénybe a kom­munikációhoz. Egy másik közismert proto­koll az állományok le- és feltöltésére használt FTP (File Transfer Protocol), vagy a levelek küldésének terhét magára vállaló SMTP (Simple Mail Transfer Protocol).

Egy másik fontos protokoll: UDP

A fentiekből már látható, miért hívtuk a bevezetőben protkollcsaládnak a TCP/IP-t, de még az előbb említett alkalmazásprotokollokkal kiegészítve sem teljes a felsorolás. Ismerkedjünk még egy fontos családtaggal!

Az UDP (User Datagram Protocol) tulajdonképpen a TCP „butított" változata. Ugyanúgy az IP és az alkalmazásprotokollok között helyezkedik el, de az adatfolyamot csak minimális mértékben irányítja. Sokkal gyorsabban használható, nincs visszajelzés és sorba rendezés. Végbemegy ugyan a csomagok épségének ellenőrzése, de nem foglalkozik azzal, hogy az adatok valóban megérkeznek-e a címzetthez.

Felmerülhet a kérdés, hogy mire is jó akkor az UDP. Vannak olyan helyzetek, amikor a TCP rendkívül korrekt, precíz csomagkezelése túl „körülményesnek" bizonyul. Gondoljunk például az interneten keresztül sugárzott rádióadásokra vagy vi­deókra, esetleg a telefonálásra: az adatcsomagok kis mérete miatt nem jelent túl nagy problémát, ha egy-egy útközben véletlenül elveszik - egyszerűen nem tűnik fel, vagy legalábbis sokkal kevésbé, mintha az adás vagy a beszélgetés meg-megszakadna, amíg várunk a hiányzó csomag megérkezésére és sorba rendezésére.

A DNS megkönnyíti internetes életünket

Amikor a böngészőben meg akarunk nyitni egy weboldalt, a címét több részből összeállítva adjuk meg. Például a www.knok.hu egy tartománynevet (knok.hu) és egy altartománynevet (www) tartalmaz. Ez azonban önmagában kevés ahhoz, hogy a kért oldal megnyíljon, hiszen a számítógépeket IP-címük azonosítja az interneten. A betű-kombinációt- konkrétan a tartomány nevét -tehát IP-címmé kell alakítani. Pontosan ez a feladata a DNS-nek (Domain Name System; tartománynévrendszer). A szolgáltatótól kapott hozzáféréssel írunk be egy tartománynevet a böngésző címsorába, a szolgáltatóhoz tartozó DNS-kiszolgáló átfordítja azt IP-címmé, persze csak ha található hozzá IP-címbejegyzés. Gépünk akkor fordul a DNS-hez, ha a helyi adatbázisban nem találja meg a megfelelő bejegyzést; ez a Windows XP esetén a \Windows\ System32\Drivers\Etc mappában található hosts állomány. Ha a helyi adatbázis nem segít, akkor a szolgáltató által megadott DNS-hez fordul. Előfordulhat, hogy itt sem talál választ. Ilyenkor továbblép az említett láncolatban, és egy másik kiszolgáló segítségét kéri.

Kilátások

Bár különösebb aggodalomra még nincs ok, azért a hálózati szakemberek már jó pár éve szembesültek azzal a problémával, hogy a TCP/IP aktuális formájában nem képes elegendő mennyiségű IP-címet kiosztani. A mostani rendszer a négy egybájtos értékből állítja össze az IP-címet, s így legfeljebb 4 milliárd darabot képes megkülönböztetni. Ez a jelenlegi internetes fejlődés mellett előbb-utóbb kevés lesz, de hogy mikor telik be, arról mindenkinek más a véleménye.

A következű generáció

A jelenleg használt IP teljes neve IPv4. A kilencvenes évek elejétől kezdve dolgoznak a címtartományt jócskán kibővítő IPv6-on, amely 16 bájtot biztosít a címek létrehozásá­hoz, és így elképesztő számú, 3 x 10^38 cím kerülhet kiosztásra. Szakemberek szerint akár évtizedekig is képes lesz egymás mellett működni a két IP-verzió, tehát nem kell aggódni amiatt, hogy holnapután már nem tudunk csatlakozni az internetre.

Hasznos segédletek:

A ping parancs IP-szinten működik: ellenőrzi, hogy egy elküldött adatcsomag eljut-e a címzettig és onnan vissza, majd megjeleníti, hogy ez mennyi időt vett igénybe, ami főképp hálózati, illetve internetes játékosok számára fontos.

Tracert: az összetett hibakereső

A teljes nevén traceroute paranccsal végigkövethetjük, milyen útvonalon közlekednek az adatcsomagok gépünktől az adott célállomásig. Ehhez az IP-fejlécben található TTL (Time to Live) értéket használja, amely meghatározza, hogy maximum hány aktív hálózati eszközt (általában valamilyen útválasztót) ejthet útba a csomag. A működési elv egyszerű: minden útválasztó eggyel csökkenti a rajta áthaladó csomag TTL-értéket, majd amikor az eléri a nullát, az útválasztó a csomag megsemmisüléséről üzenetet küld a feladónak. A tracert tehát az első csomagokat l-es TTL-értékkel küldi ki, így az a legközelebbi útválasztónál „meghal". A következő lépésekben mindig eggyel növel a TTL-t, a visszakapott üzenetekből pedig megtudja az útvonalon levő útválasztók címét.

Pathping: az adatfolyam-irányító

Ez a parancs tulajdonképpen az előző kettő kombinációja. Először megvizsgálja a csomag útvonalát, majd minden állomásnak küld egy-egy pinget. Ebből egy statisztikát hoz létre, amelyből kiderül, hogy volt-e csomagveszteség, és ha volt, melyik állomásnál.

IpConfig: a helyi beállítások lekérése

Segítségével lekérdezhetjük az aktuális IP-beállításokat. A parancs használható önmagában is, de több paramétere is van. Az Ipconfig /all részletesebb eredmé­nyeket küld vissza. Ha DHCP-kiszolgálótól kapjuk IP-címünket, akkor azt a /release paraméterrel „visszaadhatjuk", míg a /renew paraméterrel megújíthatjuk.

 !    Lorem Ipsum
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.