JoomlaWatch Stats 1.2.9 by Matej Koval
Főoldal arrow Publikációk arrow Informatika arrow A Prokontra az Internetet boncolgatja. Csak erős idegzetűeknek!
A Prokontra az Internetet boncolgatja. Csak erős idegzetűeknek! PDF Nyomtatás E-mail
Felhasználói értékelés: / 7
LegrosszabbLegjobb 
Írta: Neuwald Tivadar   
2006. November 27.

internetAz Internet kialakulásához nagymértékben hozzájárult az Amerikai Védelmi Minisztérium egyik kutatási projektje, melynek célja egy nehezen megsemmisíthető, katonai célú számítógépes hálózat létrehozása volt. E kutatás során kifejlesztettek egy csomagkapcsolt hálózati protokollt mely felépítésével és redundáns útvonalaival biztosítani tudta a megfogalmazott követelmények maradéktalan teljesítését (ha egy csomópont kiesik egy feltételezett atomtámadás miatt, akkor a csomag más csomópontokon keresztül eljut a címzetthez).

A protokoll - amely TCP/IP néven vált ismertté - civil alkalmazására először a 70-es évek közepén került sor egy elsősorban az amerikai egyetemekhez kötődő számítógépes hálózatban, hogy később ebből a hálózatból fejlődjön ki a mai Internet. Napjainkra a hálózat az egész világot átszövi, megváltoztatja az emberek üzletről, szórakozásról, információáramlásról alkotott képét, jelentőssége napról napra nő és ezért rendkívül fontos az alapját képező technológia megismerése és megértése. A tovább olvasáshoz erős matematikai és informatikai érdeklődés ajánlott!

Kommunikáció a hálózaton

Az Internet lokális hálózatokból épül fel. Sok kisebb-nagyobb hálózatból, amelyeket routerek (útválasztók) kapcsolnak össze. Ez azt is jelenti, hogy a hálózati kommunikáció azonos lokális hálózaton levő számítógépek között másképpen zajlik, mint az egymástól távoli, különböző lokális hálózatba tartozó számítógépek között.

Lokális hálózat (LAN –Local Area Network)

Lokális hálózatnak tekintendő az a hálózat, amelyen belül két számítógép között router közbeiktatása nélkül, közvetlenül lehet kommunikálni. Ez sok esetben egyetlen (koax) kábelt jelent (BNC csatlakozó), de jelenthet hub-okkal, vagy switch-ekkel összekapcsolt koaxra vagy UTP kábelre kapcsolódó számítógépeket is. Szokás ezt szegmensnek vagy alhálózatnak (subnet) is nevezni.

Több fajta hálózat típus is létezik (Token bus, Token ring, Ethernet, stb.) melyek közül most csak az Ethernet-re térnék ki.

Itt egy szegmensen, jellemzően egyszerre csak egy számítógép kezdeményezhet kommunikációt (adó). Ha valamelyik gép adni szeretne, akkor megvizsgálja, hogy szabad-e a kábel, ha igen, akkor használni kezdi. Persze még ekkor is előfordulhat, hogy többen egyszerre kezdik használni a kábelt, ilyenkor természetesen nem lehetséges értelmes kommunikáció - ezt hívják ütközésnek (collision). Ezt az interface-ek (hálózati kártyák) felismerik, ekkor azonnal beszüntetik a forgalmazást, majd véletlen ideig várnak és újra próbálkoznak.

Tehát egyszerre mindig csak egy gép forgalmazhat, viszont az üzenet szólhat mindenkinek (broadcast) illetőleg egy meghatározott címzettnek (unicast). Természetesen a csomagot elvileg minden gép látja (hiszen azonos kábelhez csatlakoznak) de csak az használja fel, akinek szól (illetve broadcast esetén mindenki).

Hogy kinek szól, azt a címzett gép hálózati kártyájának fizikai címe (MAC address, Ethernet address, stb.) határozza meg. Ez a cím minden hálózati kártyára egyedi, és csak ennek ismeretében lehetséges két számítógép között kommunikációt megvalósítani.

Miért van szükség akkor az IP címre, miért nem használja a protokoll a fizikai címeket?

Először is mert kényelmetlen, nehezen megjegyezhető (például 04-40-F6-B4-30-AD).

De ami sokkal fontosabb megváltoztathatatlan, ezért rugalmatlan, ami azt is eredményezi, hogy önmagában a címzett fizikai címének ismeretében nem vagy csak nagyon nehezen eldönthető, hogy a címzett az adott szegmensbe tartozik-e vagy sem, márpedig két számítógép egymással csak akkor tud közvetlenül kommunikálni, ha egy alhálózatba tartoznak.

Hogyan dönthető akkor el, hogy egy adott IP címmel rendelkező gépnek (címzett) mi a fizikai címe?

Erre szolgál az ARP (Address Resolution Protocol). Ha egy gép egy másikhoz akar kapcsolódni - amelyről a subnet mask alapján tudja, hogy vele azonos alhálózaton van -, akkor elküld egy broadcast üzenetet, amelyben megkérdezi, hogy ki is az XY IP címmel rendelkező számítógép és mi is az ő fizikai címe. Az üzenetet mindenki veszi, de csak az válaszol rá, aki az adott IP cím tulajdonosa, és elküldi a kezdeményezőnek a saját fizikai címét (a kezdeményező a sajátját természetesen feltüntette az üzenetben). Ez után a kezdeményező - hogy ne kelljen folyton ARP üzeneteket küldözgetni - elhelyezi a címzettre vonatkozó információkat egy gyorsítótárba (ARP Cache) és legközelebb, ha ugyanazzal a címzettel akar kommunikálni, akkor már abból veszi az adatokat.

  • Küldő kapcsolatot akar kezdeményezni egy fogadó géppel

  • Küldő broadcast üzenetet küld, amelyet minden az adott alhálózatban levő gép megkap

  • Az üzenetben a küldő ”megkérdi”, hogy ki az XP IP címmel rendelkező gép és mi annak a fizikai címe. Az üzenet tartalmazza a küldő fizikai címét.

  • Az üzenetet veszi minden gép, de csak az válaszol, aki a küldő csomagjában említett IP cím tulajdonosa

  • A válasz eltárolódik a küldő gép ARP gyorsítótárában (cache)

  • Később ezért már nem kell küldeni ARP üzenetet, ha azzal az IP című géppel akar kommunikálni a küldő, aki már bejegyzett a gyorsítótárában.

Hogyan dönti el egy számítógép, hogy a másik egy alhálózaton van-e vele?

Amikor egy TCP/IP (Transmission Control Protocol / Internet Protocol) gépet elindítunk, akkor a gép az úgynevezett ANDing művelet („Éselés”) segítsével összehasonlítja a megadott IP címét a megadott alhálózati maszkkal, az eredményt pedig a memóriában tárolja.

Példaként vegyük a 192.168.2.66-os ”C” osztályos IP címet (lásd később). Ennek az osztálynak az alapértelmezett alhálózati maszkja a 225.255.225.0 cím (lásd később). Írjuk fel mindkét címet bináris számrendszerben és végezzük el az ÉS logikai műveletet.

1

 

 

(A Hatvány értékek és maguk a helyi értékek a tanulás és az áttekinthetőség kedvéért szerepelnek az ábrán)

Az ÉS logikai művelet alatt a megfelelő helyi értékű egyeseket és nullásokat hasonlítjuk össze.

  • Két egyes eredménye mindig egy

  • Nulla és egy eredménye mindig nulla

  • Nulla és nulla eredménye mindig nulla

Ha az ÉS művelet eredményeképpen kapott bináris értéket decimálissá fordítjuk, akkor a következő IP címet kapjuk:

  • 192.168.2.0

Ha a gép azt szeretné meghatározni, hogy egy adott adatblokk helyi (saját alhálózat) vagy távoli (eltérő alhálózat) hálózathoz tartozik, akkor a cél IP címet összehasonlítja saját alhálózati maszkjával (újabb ÉS logikai szorzás), majd az eredményt összeveti az indításkor kapott eredménnyel, azaz saját IP címe és saját alhálózati maszkjának ANDing eredményével.

Abban az esetben, ha a két eredmény megegyezik, a csomag minden bizonnyal egy helyi géphez tartozik.

Ha nem, akkor egy útválasztón keresztül jut el a csomag egy másik alhálózatba.

Feltételezve az alapértelmezett alhálózati maszk használatát (255.255.255.0), ebből az eredményből egyértelműen látszik, hogy amennyiben például a 192.168.2.70-es géppel szeretne kommunikálni a fent említett gép, akkor nem kell útválasztóhoz fordulnia, de például egy 192.168.3.70-es címnél igen.

Jelen esetben kizárólag az utolsó oktet (24-32 bitig) térhet el (network ID), hiszen a ” C” osztályban ez a host ID (gépazonosító) (lásd később).

 

Globális hálózat

Mi történik akkor, ha olyan címzettel akar egy számítógép kommunikálni, aki nincs vele egy szegmensen? Ekkor jut szerephez a router. A router (gateway, útválasztó) egy kitüntetett számítógép a szegmensen, amely egyszerre több lokális hálózathoz is kapcsolódik, és amelyik épp ezért több szegmensbe is tud adatot küldeni, így lehetővé teszi a szegmensek közötti kommunikációt. Ha egy számítógép egy másik szegmensben (ezt az alhálózati maszk segítségével állapítja meg) lévő géppel akar kommunikálni, akkor nem közvetlenül a címzettel kezdeményez kapcsolatot, hanem az alapértelmezett útválaszóval (ez minden gép esetén be van állítva).

Ehhez persze először ARP-vel kideríti a router fizikai címét, majd elküldi az adatcsomagot, azzal az utasítással, hogy végeredményben az XY IP címre kell eljuttatni. Ezután ha a célcím valamely a router-hez kapcsolódó alhálózathoz tartozik (megintcsak alhálózati maszk akkor ARP-vel kideríti annak a fizikai címét és elküldi a csomagot. Ha a címzett egyik a routerhez kapcsolódó szegmenshez sem tartozik, akkor a router is egy másik - vele egy szegmensen levő - routerrel veszi fel a kapcsolatot, és annak küldi tovább a csomagot.

2

 

Fontos észre venni, hogy két számítógép között ebben az esetben is csak egy szegmensen belül, és a fizikai címek alapján zajlik a közvetlen kommunikáció. A szegmenseken kívülre közvetetten (routerek közbeiktatásával) kerülnek a csomagok.

Címzés

A gépek egyedi azonosítására szolgál a címzés mechanizmusa. A jelen keretek között az IPv4-es szabvány kerül ismertetésre, mivel ez a legelterjedtebb IP szabvány. Az IPv6-os szabvány bevezetés alatt áll (IPv5 nem volt). A címek 32 bitesek a cím három részre osztható:

  • Előtag: Ez azonosítja a címosztályt. A címosztály mutatja meg, hogy az előtag után hány bitet kell hálózati címként, és hány bitet kell host címként értelmezni.

  • Network Adress (hálózati cím): Az egyes hálózatok megkülönböztetésére szolgál, valamint a központi adminisztrációt segíti elő, azaz ne lehessen két gépnek azonos IP címe. A hálózati címet központilag kell igényelni és központilag utalják ki az igénylőnek.

  • Host Adress (egyedi gépcím): A 32 címbit maradékat teszi ki. Ezt szabadon állíthatja be a címtartományt igénylő a saját gépein.

Az IPv4 öt címosztályt definiál, de tulajdonképpen csak három címosztályt használnak. (Sajnos az elnevezéseket elég könnyű más elnevezésekkel keverni, mert bizonyos elnevezéseket a terminológiában másra is használnak.)

A osztályú IP cím3

 

 

B osztályú IP cím4

 

 

C osztályú IP cím 5

 

 

Álljon itt még egy részletesebb magyarázó ábra az IP címek feltöltéséről! 7

 

 

 

 

 

 

 

 

A nyilak a feltöltési irányokat jelzik, azaz az IP címeket decimális-bináris váltás után jobbról balra kell feltölteni, az alhálózati maszkokat pedig balról-jobbra kell feltölteni.

Gépek és hálózatok lehetséges számának kiszámolása

Gépek száma: szabad bitek számát meg kell állapítani a host ID részen (amennyiben nem A/B/C osztály, hanem CIDR rendszerben nézzük, ott a subnet mask dönti el, hogy melyik a host és melyik a network ID). Ezt a számot be kell helyettesíteni a következő képletbe: (2n)-2

8

 

 

 

  • A osztály esetében a szabad bitek száma a host ID részen: 24 (3 * 8) / (2n)-2 = 16 777 214

  • B osztály esetében a szabad bitek száma a host ID részen: 16 (2 * 8) / (2n)-2 = 65 534

  • C osztály esetében a szabad bitek száma a host ID részen: 8 (1 * 8) / (2n)-2 = 254

Hálózatok száma:

  • A osztály esetében a szabad bitek száma a network ID részen: 7 / (2n)-2 = 127

  • B osztály esetében a szabad bitek száma a network ID részen: 14 / (2n)-2 = 16 384

  • C osztály esetében a szabad bitek száma a network ID részen: 21 / (2n)-2 = 2 097 152

Alhálózat kialakítás, subnet mask

A hálózat kialakítása során nem célszerű az összes számítógépet egy szegmensbe felfűzni, mivel ez lelassítaná a gépek közötti kommunikációt a nagyszámú ütközés miatt. Továbbá felmerülhet az igény, hogy az InterNIC által kiosztott hálózati azonosítót tovább kell osztanunk alhálózatokra. Ezért felmerült az igény, hogy a hoszt címeket is tovább tudjuk osztani további alhálózatba.

Egy alhálózatban lévő gépek azonosítására a subnet mask (alhálózati maszk) szolgál.

A subnet mask egy 32 bites szám (8*4 oktet), amely a címek maszkolására szolgál. Egy alhálózatban azok a gépek vannak, melyekben azok az IP címbitek azonosak ahol a maskban egyes van.

Az eltérés ott lehet csak ahol nulla van a maszkban, hiszen az már a host ID-t jelöli.

9

 

 

A subnet mask működésének megértéséhez nézzük meg a címzés folyamatát a kommunikáció során. A küldő alkalmazás megnézi a saját IP címét és arra ráilleszti a saját subnet maskját (ÉS logikai szorzás), majd elvégzi ugyanezt a célgép IP címével is.

Ezt követően megnézi, hogy ha csak ott van eltérés a két gép címében ahol a mask nullát tartalmazott akkor a két gép egy alhálózaton van, ekkor közvetlenül meg tudja címezni a cél gépet.

Amennyiben nincsenek egy alhálózaton akkor a csomagot nem tudja közvetlenül eljuttatni a cél géphez, akkor a csomagot az úgy nevezett default gateway felé irányítja. A default gateway gyakorlatilag a router egyik lábát jelenti.

A routerek végzik a forgalom irányítását a TCP/IP hálózaton. A routerek olyan nagy teljesítményű készülékek melyek képesek az IP csomagok nagy sebességű feldolgozására és a célcím detektálására. A célcím detektálását követően a routerek a belső kapcsolótáblájuk alapján (router table) eldöntik, hogy a beérkezett csomagot melyik másik lábukon továbbítsák kifelé, illetve ha nem tudja eldönteni, hogy merre menjen a csomag a router tábla alapján akkor a csomagot a router a saját default gateway-e felé továbbítja.

Az alhálózat fogalmának még jobb megértéséhez nézzünk egy példát. Fontos, hogy az internethez kapcsolt vállalatok általában egy hálózati azonosítóval rendelkeznek, amelyet nem tudunk megváltoztatni. A gépazonosítókat (host ID) viszont tetszés szerint felhasználhatjuk hálózatunk alhálózatokra bontásához. Ezeket a kölcsönvett biteket hálózati azonosítóként alkalmazzuk. Tehát az alhálózati maszk dönti el, hogy az IP cím mely része a host és mely része a network ID. Az alhálózati maszkban 1-re állított bitek IP címbeli párja a network ID, illetve a 0-s bitek megfelelője a host ID. Keverten nem lehetséges az alhálózati maszk 1-es és 0-ás felosztása, tehát 1-esek után csak 0-sok jöhetnek, csak így biztosítható, hogy pontosan különválasszuk a network és a host ID-t az IP címek esetében.

10

 

 

Alapértelmezés szerint alhálózati maszkok

11

 

 

 

Alhálózat kialakítás a gyakorlatban

  • Tegyük fel, hogy az interNIC-től kapott hálózati azonosítónk: 192.168.24.0

  • Ennek a C osztályos címnek az alapértelmezett alhálózati maszkja: 255.255.255.0

  • A hálózatunk viszont három, elkülönült alhálózatból áll, amelyeket útválasztók kapcsolnak össze. Tehát a fenti címtartományon belül legalább három alhálózatot kell létrehoznunk. Ki kell tehát bővíteni az alapértelmezés szerinti alhálózati maszkot. E három bitet a host ID részből kell lecsípni.

12

 

 

128+64+32 = 224 (255.255.255.224)

Ezután hat hálózati azonosító használható, hiszen a három bit hatféleképpen kombinálható (23)-2.

  • 111 (ezek a kombinációk nem alkalmazhatóak)

  • 000 (ezek a kombinációk nem alkalmazhatóak)

Hogy miért nem?

Mert az egyes címtartományokban megkülönböztetünk két speciális címet a hálózati címet, és a broadcast címet. A hálózati cím az alhálózat azonosítására szolgál, ebben az esetben az alhálózatban lévő host címek helyén a nulla szerepel. A broadcast címben viszont csupa egyes szerepel a host cím címbitjei helyén. Ez a cím a hálózaton jelenlévő összes gép egyszerre történő megcímzésére szolgál (broadcast). Lássuk tehát a lehetséges hat darab kombinációt:

13

 

 

 

Az alapértelmezés szerinti alhálózati maszk (255.255.255.0) három bittel történő bővítésével tehát létrehoztunk hat alhálózatot. Azonban ennek vannak hátrányai is, amint azt kifejtem később.

Alhálózatok

IP címtartomány

.32

192.168.24.33 - 192.168.24.63 (30 gép)

.64

192.168.24.65 - 192.168.24.95 (30 gép)

.96

192.168.24.97 - 192.168.24.127 (30 gép)

.128

192.168.24.129 - 192.168.24.159 (30 gép)

.160

192.168.24.161 - 192.168.24.193 (30 gép)

FONTOS! Subnet mask: 255.255.255.224, mind a hat darab szegmensnek!

A host ID „lecsípésnek” ára

Említettük már, hogy a C osztályú IP cím utolsó oktetje a host ID. Azaz egy hálózatban (2n)-2 = 254 számítógép lehetséges. Ekkor alaphelyzetben (nem variáljuk az alhálózati maszkot) a subnet mask: 255.255.255.0

Igen ám, de előzőleg mi lefoglaltuk a subnet mask utolsó oktetjének három legmagasabb helyiértékű bitjét, ami az eredményezte, hogy a 0.0.0.0.0.0 helyett 1.1.1.0.0.0.0.0 lett, amely 0 érték helyett 224-et ad.

Látjuk, hogy az első három bit foglalt már, tehát a szabad bitek száma csupán 5. (2n)-2 = 30, ami azt jelenti, hogy ezen a subneten csupán 30! számítógép lehetséges az alapértelmezett 254 helyett. „Elvesztettünk” 224 számítógépet, de nyertünk hat alhálózatot, amely összesen 6 * 30 darab gépet, azaz 180 PC-t képes lefedni.

Az alhálózat tervezése számokkal: tételezzük fel, hogy 12 alhálózatot szeretnénk létrehozni.

  • Egy kis matematika: (2x)-2 = 12

  • X = lg 14 / lg 2 ~ 4 (3.8)

  • Tehát érdemes legalább 4 bitet ”lecsípni”, amivel: (24)-2 = 14

Az alhálózat kialakításának tervezése

  • Határozzuk meg a szükséges alhálózati azonosítók számát. Érdemes ráhagyással dolgozni, hogy később esetleg bővíthessünk

  • Határozzuk meg, hogy egy-egy alhálózatban mennyi gépazonosító kiosztására van szükség (természetesen az alhálózatok száma meghatározza az elérhető gépazonosítók számát)

  • A fenti két lépés eredményeire támaszkodva, határozzuk meg az új alhálózati maszkot

IP cím kiosztási konvenciók

Az alhálózatok kialakítása során a könnyebb áttekinthetőség miatt bizonyos IP cím kiosztási konvenciókat szokás követni:

  • A Default Gateway az adott subnet utolsó kiosztható IP címére kerüljön.

  • Amennyiben az adott alhálózaton Name Server üzemel az az adott alhálózat első kiosztható IP címére kerüljön.

  • Amennyiben a router és a name server egy gépen van akkor a router lábainak a kiosztása során a 2-es szabály az irányadó

Domain Name Service

Az interneten a számítógépek azonosítása alapvetően nemcsak IP cím alapján történik, hanem név alapján, mivel a felhasználók értelmes elnevezést könnyebben meg tudnak jegyezni, mint IP címeket.

Gondoljatok bele, hogy a www.prokontra.hu címet mennyivel könnyebb így megjegyezni, mint 195.70.37.52 címként. Nem mindegy, ugye?

Az IP cím névhez történő hozzárendelése egy több szintű folyamat. Először minden gép ellenőrzi, hogy az adott cím nem a saját címe-e, majd ellenőrzi a HOSTS fájlt, hogy nem szerepel-e benne egy a címre vonatkozó bejegyzés. A HOSTS fájl karban tartása persze meglehetősen nehézkes, hiszen, ha egy hálózatban a névfeloldásokat mindig a HOSTS fájlok alapján végeznék, akkor minden változáskor a változást az összes HOSTS fájlban be kellene jegyezni, ezért a névfeloldások legnagyobb részét egy központi kiszolgáló, az úgynevezett name server végzi. További név feloldási módok is léteznek, elsősorban a Microsoft rendszerek Netbios neveinek feloldására, úgyis mint Netbios cache, Netbios Name Server (WINS), Netbios broadcasts és az LMHOSTS fájl, ezekről azonban most nem lesz szó.

A DNS név szolgáltatás egy hiearchikus névadást tesz lehetővé, és a névfeloldás is ezen hiearchia szerint történik. Az egyes name szerverek egy egy zónáért felelősek, és a zónák adatait lokálisan az úgynevezett zóna adatbázisban tárolják.

Név feloldás menete

  • Egy alkalmazás kér egy név feloldást a saját name server-étől.

  • A name server megnézi a lokális cache-t, ha benne van a keresett cím akkor onnan kiszolgálja a kérőt.

  • Amennyiben nincs benne a chache-ben és a cím saját zónájára vonatkozik akkor a zónaadatbázis alapján megadja a kért információt, és a cache-t is frissíti.

  • Ha nem tudja feloldani a nevet akkor a name server a root name server-hez fordul amelyik visszaadja, hogy az adott top level domain-nek ki a name server-e.

  • Ezt követően a name server rekurzívan kéri az egyes szintekért felelős name szervereket, hogy adják meg, hogy ki a felelős az adott name feloldásáért.

Példa.: Ausztráliában valaki a www.aut.bme.hu címet írta be.

A feloldás menete

  • Kérés a root name server felé, hogy adja vissza a .hu nevekért felelős szerver címét.

  • .hu neveket feloldó szervertől kérik a .bme.hu nevekért felelős szerver nevét.

  • .bme.hu feloldásáért felelős szerve visszadja az aut.bme.hu címért felelős name server címét.

  • Az utolsó name server elvégzi a név feloldását.

TCP/IP protokoll részletes fizikai ismertetése

Ezt a protokollt csomagkapcsolt hálózatok adatátviteli protokolljára hozták létre. Ez egy négy réteget tartalmazó hálózati protokoll rendszer, szemben az ISO OSI hét rétegű modelljével.

A TCP/IP protokoll felépítése

Host to Network Layer

Ez a szint az OSI modell fizikai és adatkapcsolati rétegéhez áll közel, feladata a kapott bájtok átvitele. A fölötte levő rétegek csak azt várják el tőle, hogy bájt folyamokat tudjon fogadni, illetve átadni.

Internetwork Layer

Ez a réteg felelős az adatok átviteléért a hálózaton, a gépek közötti kapcsolat összeköttetés mentes és nem tudja biztosítani a réteg az adatok korrekt átvitelét sem. Ezen a szinten több protokoll is megtalálható, de ezek közül a legfontosabbak:

  • IP (Internet Protocol)

  • ARP (Adress Resolution Protocol)

  • ICMP (Internet Control Message Protocol)

Internet Potocol

Ez a protokoll gondoskodik a csomagok átviteléről a hálózaton, az összes kommunikáció a host-ok között IP csomagok formájában történik. Ez egy kapcsolat nélküli protokoll, a kommunikációhoz nem szükséges előzetes kapcsolat felvétel. Adatátvitel szempontjából nem megbízható, a csomagokkal bármi megtörténhet: elveszhetnek, megsérülhetnek, sorrendjük összekeveredhet.

Egy IP csomag két részből áll:

  • IP header: Ez tartalmazza a csomagot azonosító információkat

  • Adat: Ebben a részben van az az adat, amit ténylegesen át kell vinni.

Az IPv4-es header felépítése

Az egyes mezők jelentése az IPv4-es headerben:

  • Version: Ez egy négybites információ arról, hogy a header hányas IP verziót használ.

  • Header Length: A header hossza bájtos egységekben.

  • TOS (Type Of Service): Ebben a mezőben lehet megadni kéréseket a routerek felé, hogy a csomagot hogyan továbbítsák. A csomaghoz prioritást lehet rendelni, kérni lehet, hogy a kisebb késleltetésű úton menjen a csomag, nagyobb sávszélesség felé menjen a csomag, nagyobb megbízhatóságú úton menjen a csomag. Ez csak egy kérés a routerek felé, nem kötelesek ezeket figyelembe venni.

  • Identifier: A fragmentáció támogatására szolgál. Amennyiben egy IP csomagot fel kell bontaniuk a routereknek kisebb csomagokra akkor, ebben a mezőben lesz benne egy azonosító az eredeti csomagra. Erre akkor lehet szükség, amikor az egyes alhálózatok eltérő keretmérettel dolgoznak, ezért szükségessé válhat a csomagok hosszának a csökkentése. A fragmentáció során keletkezett csomagokat természetesen a routerek nem építik össze egy egységes csomaggá, amikor már a csomagméret megengedhetné, mivel az egyes IP csomagok két host között nem feltétlenül egy útvonalon közlekednek. Az eredeti csomag előállításáról mindig a host-oknak kell gondoskodniuk.

  • Flags: Ez a mező is a fragmentáció támogatására szolgál, amennyiben egy csomag fragmentált akkor ebben a mezőben jelzik ezt.

  • Fragment offset: Fragmentált csomag esetén azt mutatja, hogy ez a csomag az eredetinek hányadik darabja.

  • TTL (Time To Live): Ez a mező minden egyes routoláskor eggyel csökken, amennyiben ez a mező 0-ra csökken akkor a routerek eldobják a csomagot. Ez arra szolgál, hogy a hibás címmel bekerült csomag ne keringjen végtelenségig.

  • Protocol: Ebben a mezőben adják meg, hogy milyen headert tartalmaz az adat része az IP csomagnak. Azaz milyen protokoll várja fent ezt a csomagot.(pl.: TCP, UDP, ICMP stb)

  • Header checksum: Ellenőrző összeg a headerre.

  • Source Adress: A küldő IP címe.

  • Destination Adress: A címzett IP címe.

Address Resolution Protocol

Működésének mibenlétéről már volt szó, de most még részletesebben kifejtésre kerül: Ez az IP cím alapján történő fizikai cím megtalálására szolgál. Először egy cache-ben keresik a fizikai címet. Amennyiben ott nem található, akkor egy IP csomagot állít elő, amelybe beteszi a keresett IP címét, a fizikai címnek hagy egy üres mezőt, majd beteszi a saját IP címét és fizikai címét. Ezt az IP csomagot broadcast módon elküldi. Aki az IP cím alapján magára ismer, az kitölti a fizikai címre szolgáló helyet, és visszaküldi a csomagot. A csomagból ki tudja venni a feladó IP címét, és fizikai címét, és azt be tudja építeni a saját cache-be. Ez célszerű, hiszen egy ilyen kereső csomag rendszerint éppen valamilyen más kapcsolatfelvételt jelez és előz meg.

Internet Control Message Protocol

A két kommunikáló fél ennek segítségével küld egymásnak beállítandó paramétereket, valamint hibajelzésre is szolgál. Természetesen ez is IP csomag formájában közlekedik a hálózaton, az adat mezőbe van beírva az üzenet. Az adatmezőben van két darab bájt, amely az üzenet azonosítására szolgál. Ezt követi az ellenőrző összeg, majd opcionálisan az egyéb az egyéb paraméterek. Tipikus üzenetek lehetnek:

  • Hibás IP header checksum

  • A címzett nem elérhető

  • Az írási sebességet lassítsa a küldő

  • Echo req/replay

  • TTL mező 0-ra csökkent

Transport Layer

Ezen a szinten két különböző protokoll található, teljesen eltérő tulajdonságúak:

  • TCP (Transmission Control Protocol)

  • UDP (User Datagram Protocol)

Transmission Control Protocol

Felfelé megbízható adatátvitelt biztosít úgy, hogy alatta egy megbízhatatlan protokoll található. Felülről bájt folyammal lehet táplálni (stream orientált), full duplex átvitelt biztosít, kapcsolat orientált. Kliens- szerver kapcsolatok kialakítására képes, bárki lehet egyszerre kliens és szerver is. A kapcsolat felvétele mindkét oldalon nyugtázva történik. A kezdeményező küld egy kérés csomagot, a címzett válaszol a kérésre, majd a kezdeményező küld egy nyugtát arról, hogy vette a címzett válaszát. A kapcsolatok azonosítására szolgálnak a portok, a szerver egy adott porton érkező kérésekre figyel, és az ott érkező kéréseket kiszolgálja. A TCP portok közül az első 1024 foglalt a standard alkalmazások számára. A megbízhatóság érdekében a protokoll a teljes TCP csomagra számol ellenőrző összeget. A megbízható kapcsolat kialakítására pozitív nyugtázást használ. A küldő oldal nyugtát vár minden egyes elküldött TCP csomagról. Amennyiben egy később küldött csomagról előbb kap nyugtát, mint egy korábban küldött csomagról, akkor a korábban küldött csomagtól kezdve megismétli az adást. Egy TCP csomag szintén két részből áll egy headerből, és az átviendő adatokból.

User Datagram Protocol

Ez sokkal gyorsabb protokoll, mint a TCP protokoll, viszont nem megbízható adatátvitel szempontjából. Nem kapcsolat orientált, nincs hibajavítás, nincs nyugtázás. Tulajdonképpen az IP szint által biztosított szolgáltatásokat nyújtja felfelé. Akkor szokták használni, ha az adatátvitel sebessége a legfontosabb, minden többi feladatot a felette elhelyezkedő réteg lát el. Tipikusan a DNS-ek (Domain Name Server), real-time alkalmazások, játékok szokták használni (egy játékban vagy real-time hang átvitel esetén ha egy csomag rossz akkor ott legfeljebb döccen egyet, de ez még mindig kisebb baj, mintha az adott pontnál megállna és onnantól elkezdené újra adni a csomagokat). A szegényesebb szolgáltatásból adódóan sokkal egyszerűbb az UDP header.

Application Layer

Ezen a szinten helyezkednek el az alkalmazások. Az adatok átvitelét TCP, vagy UDP porton keresztül történő hívásokkal valósítják meg. A portok tulajdonképpen a kommunikációs csatorna egy végpontjának az azonosítására szolgálnak a szabvány 65535 TCP és 65535 UDP portot engedélyez, ezek közül az első 1024 foglalt szabványosított protokollok számára (pl.: Telnet, SMTP, POP3, Rlogin, FTP SNMP, STMP, HTTP, stb.)

Az összeköttetés kliens szerver alapon valósul meg. Az egyes szerver alkalmazások az adott host gép operációs rendszerénél bejegyeztetik magukat, hogy egy adott TCP, vagy UDP portra érkező kérések kiszolgálásáért az adott alkalmazás a felelős. Az egyes kliens alkalmazások, amikor megszólítják a szerver gép adott portját akkor az ott futó operációs rendszer értesíti a szerver alkalmazást arról, hogy kérés érkezett az adott portra. Azaz amikor egy szolgálat azonosítására van szükség a hálózaton akkor nem elég a szerver gép IP címét megadni, hanem szükséges az adott szolgáltatáshoz kapcsolódóan megadni a szerver adott TCP, vagy UDP portját.

Végre vége. Smile my friend!



Oszd meg, ha tetszett!
Facebook! MySpace!
Kapcsolódó írások:
Utolsó frissítés ( 2008. June 26. )
 

Hozzászólások  

# deneweer 2006-11-30 00:08
Well done Mr.Director! :-)
# admin 2006-11-30 19:51
Drága Jó Szintén Direktor úr!

Ezt nagyon sokáig írtam. Rohadtul unalmas volt, de legalább érhető. Talán. :-)

A hozzászólás csak regisztrált felhasználóknak engedélyezett!

< Előző   Következő >