-1

-

Internet Control Message Protocol (ICMP) Az Internet hiba és vezérlő üzenet továbbító protokollja
Az adatgramma haladása során router-ek során halad, míg eléri célállomást. Ha egy router nem képes továbbítani az adatgrammát, vagy valamilyen rendellenességet tapasztal (pl. torlódás) értesítenie kell az adatgrammát feladó számítógépet, hogy orvosolja a problémát. A hosztok és router-ek az ICMP protokoll segítségével küldhetnek hiba és vezérlő információt.

Az Internet Control Message Protocol
Néhány lehetséges hiba, ami miatt hibajelzésről gondoskodni kell:  Vonalak, hardver eszközök meghibásodása,  Az IP nem tudja eljuttatni a csomagot a célba, mert a célállomás átmenetileg vagy véglegesen ki van kapcsolva vagy nincs csatlakoztatva a hálózatra.  A Time to Live számláló értéke eléri a 0-át.  A router-eken torlódnak a csomagok. A hibák jelzését a TCP/IP protokoll család ICMP protokollja segítségével oldják meg. Az ICMP üzenetek az IP adatgaramma adat-részében utaznak. Az ICMP üzenet célja nem az alkalmazói program vagy felhasználó, hanem a célállomás ICMP modulja. Majd az ICMP modul dönti el, hogy mit kezd az üzenettel, melyik szoftver modult értesíti. Összefoglalva: Az ICMP lehetővé teszi, hogy hosztok vagy router-ek hiba vagy vezérlő üzenetet küldjenek más hosztoknak vagy router-eknek. Az ICMP mindig két gép IP szoftvere között biztosít kommunikációt.

Hibajelzés vagy hibajavítás
Az ICMP technikailag egy hibajelző mechanizmus. Amikor egy adatgramma hibát okoz, az ICMP jelzi a hibát az adatgramma eredeti feladójának. A feladó állomásnak kell a hibát összekapcsolnia a megfelelő alkalmazással, vagy megtenni a szükséges intézkedést a hiba kiküszöbölésére. A hibák egy része az adatgramma eredeti feladójától származik, más része nem. Az ICMP mindig az adatgramma eredeti feladóját értesíti, a közbenső router-eket nem képes értesíteni. Pl. Tegyük fel, hogy az adatgramma az R1, R2, … Rk router-eken halad keresztül. Ha Rk hibás routing információk alapján RE -nek továbbítja a csomagot, RE nem tudja az ICMP-vel értesíteni az Rk router-t, hanem csak a csomag eredeti feladóját.

-2Ennek oka az IP adatgramma struktúrájában rejlik. Az IP fejrésze csak a feladó és a célállomás IP címét tartalmazza, a router-ekét nem! A router-ek nem rendelkeznek azon eszközök címével, amelyeken a csomag áthaladt.

Az ICMP üzenetkézbesítés
Az ICMP üzenet egy IP csomagban utazik az interneten. Ugyanúgy halad router-eken keresztül, mint a normális adatot szállító IP csomag. Az ICMP üzenet továbbítása is lehet sikertelen, azonban egy ICMP üzenetet szállító IP csomag elakadásáról újabb ICMP üzenet nem generálódik!

ICMP feje

ICMP adat-része

Adatgramma feje

Adatgramma adat-része

Keret feje

Keret adat-része

ICMP beágyazása adatgrammába, majd az adatgramma keretbe foglalása Az ICMP üzenet IP csomagba ágyazódik, az ICMP mégsem tekinthető magasabb szintű protokollnak. Az ICMP az IP szükséges része. Az ICMP üzenet nem továbbítható közvetlenül a fizikai hálózaton, mivel a célállomás eléréséhez általában több fizikai hálózaton kell keresztülhaladnia.

Az ICMP üzenet formátuma
Mindegyik ICMP üzenet saját formátummal rendelkezik, az első 3 mezőjük azonos: TYPE Azonosítja az üzenetet. CODE További információt ad az üzenet típusáról. CHECKSUM Az ICMP üzenet ellenőrző összege. A fentieken kívül azon üzenetek, amelyek valamilyen hibát jeleznek, mindig tartalmazzák a hibát okozó adatgramma első 64 bit-jét.

-3Az ICMP TYPE mező meghatározza az üzenet jelentését és a formáját: Type mező 0 3 4 5 8 11 12 13 14 15 16 17 18 ICMP üzenet típus Echo Reply Destination Unreachable Source Quench Redirect (change a route) Echo Request Time Exceeded for Datagram Parameter Problem on Datagram Timestamp Request Timestamp Reply Information Request (obsolete) Information Reply (obsolete) Address Mask Request Address Mask Reply

A célállomás elérhetőségének tesztelése
A hálózati problémák feltárásához nyújt segítséget az echo request és echo reply üzenet. Minden gép, amely kap egy echo request üzenetet, egy echo reply üzenetben megválaszolja. Ezzel tesztelhető a hálózati alrendszer. A legtöbb operációs rendszer a ping programmal teszi ezt a mechanizmust közvetlenül elérhetővé a felhasználók számára.

Az Echo Request és Echo Reply üzenet formátum
0 8 16 31

TYPE (8 v. 0)

CODE (0)

CHECKSUM SEQUENCE NUMBER

IDENTIFIER

OPTIONAL DATA ...

ICMP echo kérés és válasz OPTIONAL DATA IDENTIFIER SEQUENCE NUMBER TYPE kérés = 8; válasz = 0 A feladó kitöltheti ezt a mezőt tetszőleges adattal, a célállomás a válaszüzenetébe átmásolja ezt. A kérést és a választ rendeli egymáshoz A kérést és a választ rendeli egymáshoz

-4-

Elérhetetlen célállomás
Ha egy router nem tudja kézbesíteni vagy továbbítani a csomagot, ezt az üzenetet küldi az eredeti feladónak.
0 8 16 31

TYPE (3)

CODE (0-12)

CHECKSUM

UNUSED (CSUPA 0) INTERNET HEADER + FIRST 64 BITS OF DATAGRAM ...

ICMP cél nem elérhető Az ICMP CODE mező részletezi a problémát: Code mező 0 1 2 3 4 5 6 7 8 9 10 11 12 Jelentés Network Unreachable Host Unreachable Protocol Unreachable Port Unreachable Fragmentation needed and DF set Source route failed Destination network unknown Destination host unknown Source host isolated Communication with destination network administratively prohibited Communication with destination host administratively prohibited Network unreachable for type of service Host unreachable for type of service

A router destination unreachable üzenetet küld, valahányszor egy adatgrammát nem képes kézbesíteni vagy továbbítani. A router-ek azonban nem mindig észlelik a hibát. Pl. Ethernet hálózaton MAC szinten nincs visszaigazolás.

Torlódás és adatfolyam vezérlés (Congestion and Datagram Flow Control)
Torlódás akkor fordul elő, ha a router nem képes olyan gyorsan továbbítani a csomagokat, mint amilyen gyorsan érkeznek. Ennek alapvetően két oka lehet: Gyors forrás A csomagok több forrásból származnak A router-ekben és a hosztokban lévő puffrek átmenetileg kiküszöbölhetik a forgalmi csúcsokat, de tartósan megnövekedett forgalmat nem tudnak feloldani.

-5A gépek az ICMP forrás elfojtás üzenettel jelezhetik a forrásnak a torlódást. A router-ek minden eldobott csomag-ról generálnak egy forrás elfojtás üzenetet. Egyes router-ek csak a legnagyobb forgalmat generáló forrást értesítik, vagy már a torlódás bekövetkezte előtt (hosszú várakozó sorok) elküldik a hibaüzenetet. A forrás elfojtás üzenetnek nincs fordított párja. Ezért a hoszt IP protokollja úgy működik, hogy ha adott célállomásra küldött üzenetről forrás elfojtás üzenetet kap, addig csökkenti a sebességet, amíg a hibaüzenetek megszűnnek, majd fokozatosan növeli az üzenetek gyakoriságát addig, amíg újra forrás elfojtás üzenet nem érkezik.

Forrás elfojtás (Source Quench)
0 8 16 31

TYPE (4)

CODE (0)

CHECKSUM

UNUSED (CSUPA 0) INTERNET HEADER + FIRST 64 BITS OF DATAGRAM ...

ICMP forrás elfojtás

Útvonal megváltoztatás kérés (Route Change Request)
A hosztok általában csak egyetlen router címét ismerik, és neki küldik az összes továbbítandó csomagot. A router, ha az adott célállomásra jobb kiinduló router-t ismer, ICMP üzenetben jelzi a hosztnak, hogy a többi csomagot melyik router-nek továbbítsa ezután.

Routing ciklus vagy túl hosszú útvonal (Time exceeded for a datagram)
A hibás routing táblákból eredő ciklusokat, és a túl hosszú útvonalakat a Time to Live számlálóval küszöbölik ki. Ha a TTL miatt kell egy csomagot eldobni, ezt az ICMP üzenetet generálja a router.

Egyéb problémák jelzése (Parameter problem on datagram)
Általában a hibás adatgramma fejléceket jelzik ezzel az ICMP üzenettel.

-6-

Órák szinkronizálása és csomag haladási idejének becslése (Timestamp request and reply)
A gépek lekérdezhetik a másik gép óráját, amely korrigálható a csomagok haladási idejével. Ezzel a mechanizmussal egyúttal a csomag haladási ideje is becsülhető az adott útvonalon.

Subnet maszk kérés és válasz (Address mask request and reply)
Subnet használata esetén a Subnet Mask határozza meg, hogy az adott osztályú cím hosztokat azonosító részéből mely bitek határozzák meg az adott fizikai hálózatot. Ez a maszk beállítható a hoszt hálózati konfigurálásakor, de ezzel az ICMP kéréssel be is szerezhető a router-től. A kérés a router-nek közvetlenül is elküldhető, vagy broadcast-tal is kérhető.
0 8 16 31

TYPE (17 v. 18)

CODE (0)

CHECKSUM SEQUENCE NUMBER

IDENTIFIER

ADDRESS MASK

ICMP cím maszk kérés és válasz

Ping segédprogram
Cél elérhetőségének tesztelése: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] destination-list -t -a -n count -l size -f -i TTL -v TOS -r count -s count -j host-list -k host-list -w timeout Ping the specifed host until interrupted. Resolve addresses to hostnames. Number of echo requests to send. Send buffer size. Set Don't Fragment flag in packet. Time To Live. Type Of Service. Record route for count hops. Timestamp for count hops. Loose source route along host-list. Strict source route along host-list. Timeout in milliseconds to wait for each reply.

-7-

Feladatok
Analizáljuk az előre felvett hálózati forgalom ICMP üzeneteit! A netmon programmal vegyük fel a hálózati forgalmat, szűrjük ki az ICMP üzeneteket, elemezzük ezeket! Generáljunk olyan hálózati forgalmat, amely kiváltja a forrás elfojtás üzenetet! Használjuk a ping programot hosztok és router-ek elérhetőségének vizsgálatára! Próbáljunk meg elérni egy nem létező szervert a helyi hálózati szegmensen és egy távoli szegmense. Melyik esetben kapunk hibaüzenetet, és miért?