Interneto valdymo pranešimų protokolas (ICMP) yra trečiojo lygmens (tinklo sluoksnio) protokolas OSI septynių sluoksnių modelyje. Protokolas diagnozuoja tinklo ryšio arba duomenų perdavimo tarp įrenginių problemas. Tai padeda siųsti, gauti ir apdoroti ICMP pranešimus pranešti apie ryšio problemas šaltinio tinklo įrenginiui.
Taigi pagrindinis ICMP protokolo tikslas yra pranešti apie klaidas tinklo lygyje. Tačiau kenkėjiški veikėjai gali manipuliuoti jos funkcijomis, kad pradėtų atakas, tokias kaip paskirstytojo paslaugų atsisakymo (DDoS) ir mirties signalo atakos. Čia sužinosite apie ICMP protokolą, jo naudojimo atvejį ir parametrus, kurie yra svarbūs norint suprasti ICMP pranešimus.
Kaip veikia ICMP?
Maršrutizatoriai naudoja ICMP protokolą tinklo valdymui ir problemų diagnostikai atlikti. Jis generuoja ir siunčia klaidų pranešimus siuntėjo įrenginiui, kai tinklas išjungia paketų pristatymą į paskirties įrenginį. Šie klaidų pranešimai apima viršytą laiką, parametro problemą, nepasiekiamą paskirties vietą, tinklo perkrovą ir kt.
Pavyzdžiui, kai siuntėjas siunčia duomenis iš vieno įrenginio į paskirties įrenginį IP datagramos pavidalu, jie keliauja per kelis maršrutizatorius arba tarpinius įrenginius. Kartais persiunčiant tą IPV4 datagramą gali įvykti klaida. Taigi ICMP pranešimai skirstomi į dvi plačias kategorijas: klaidų pranešimus ir užklausos pranešimus.
Pranešimai apie klaidas
Tai yra pranešimai, su kuriais gali susidurti maršrutizatorius arba tarpinis kompiuteris apdorojant datagramą:
- Viršytas laikas: ICMP paketas turi veikimo laiko parametrą, kuris, pasiekęs 0, maršrutizatorius arba pagrindinis kompiuteris atmeta datagramą ir išsiunčia klaidos pranešimą, kad laikas viršytas. Pranešimas taip pat siunčiamas, kai paskirties vieta negauna visų duomenų fragmentų.
- Nepasiekiamas tikslas: Ryšį inicijuojantis įrenginys gauna nepasiekiamos paskirties klaidos pranešimą, kai maršruto parinktuvui arba tarpiniam kompiuteriui nepavyksta jo pristatyti. Todėl įrenginiai išmeta datagramą.
- Šaltinis Quench: Kai įrenginiai nepristato datagramos dėl tinklo perkrovos, jie pranešimo siuntėjui siunčia ICMP „šaltinio gesinimo pranešimą“. Pranešimas apie klaidą prideda srauto valdymą tinklo sluoksnyje, informuodamas šaltinio įrenginį apie perkrovą kelyje ir sulėtindamas duomenų siuntimo procesą.
- Peradresavimas: Maršrutizatorius, esantis neoptimaliame kelyje, nukreipia paketą į maršrutizatorių su optimaliu keliu tarp šaltinio ir paskirties vietos. Todėl jis atnaujina šaltinį apie maršruto pasikeitimą.
- Parametrų problema: Šaltinio įrenginys gauna šį pranešimą, kai datagramos antraštėje trūksta reikšmės. Pavyzdžiui, apskaičiuotos kontrolinės sumos paskirties vietoje nuo šaltinio skirtumas generuoja šį ICMP klaidos pranešimą.
Žinučių užklausa
Užklausos pranešimai pateikiami poromis ir pateikia konkrečią informaciją iš tarpinių įrenginių šaltinio įrenginiui.
- „Echo-Request“ ir „Echo-Reply“ pranešimas: Šie pranešimai padeda išspręsti tinklo diagnostikos problemas.
- Laiko žymos užklausa ir atsakymas: Šios laiko žymos užklausos ir atsakymo pranešimai padeda nustatyti kelionės į abi puses laiką tarp įrenginių.
ICMP parametrų supratimas
ICMP pranešimų duomenys yra įtraukti į IP antraštę, o tai reiškia, kad ICMP datagramos antraštė pateikiama po IPv4 / v6 informacijos. Pirmoje ICMP paketo antraštės dalyje yra parametrai, padedantys tinklo įrenginiams nustatyti klaidos arba užklausos pranešimą.
Tarp pirmųjų 32 bitų pirmieji 8 bitai nustato pranešimo tipą, kiti 8 bitai – pranešimo kodą, o likusiuose bituose yra informacija, susijusi su duomenų vientisumu. Taigi trys informaciniai laukai yra: ICMP tipai, ICMP kodas ir kontrolinė suma.
ICMP tipai
Tipas nustato ICMP paketo paskirtį. Trumpai paaiškinama, kodėl šaltinio įrenginys gauna tą pranešimą. Yra 0–255 ICMP pranešimų tipai, todėl kiekvienas tipas pateikia skirtingą informaciją. Kai kurie svarbūs ICMP tipai yra šie:
0: Echo užklausa
3: Tikslas nepasiekiamas
4: Source Quench
5: peradresuoti
8: Echo atsakymas
11: laikas viršytas
12: Parametrų problema
30: Traceroute
ICMP kodas
ICMP kodas suteikia papildomos informacijos apie pranešimus. Pavyzdžiui, 3 tipo ICMP su kodu 0–15 nurodo, kodėl paskirties vieta nepasiekiama; tai yra, jei kodas yra 0, tai yra todėl, kad tinklas nepasiekiamas. Panašiai, 3 tipo 1 kodo atveju pranešimas nurodo, kad pagrindinis kompiuteris nepasiekiamas.
Be to, 8 tipo kodas 0 ir 0 tipo kodas 0 reiškia aido užklausą ir aido atsakymo pranešimus. Taigi kiekvienas pranešimo tipas su ta pačia kodo reikšme suteikia skirtingą tinklo informaciją.
Kontrolinė suma
Kontrolinė suma yra klaidų aptikimo mechanizmas, kuris nustato duomenų vientisumą. Kontrolinės sumos reikšmė reiškia bitus perdavimo pranešime. Siuntėjas apskaičiuoja ir įtraukia duomenų kontrolinę sumą, o gavėjas perskaičiuoja reikšmę ir palygina jį su pradiniu, kad nustatytų bet kokius pradinio pranešimo pakeitimus užkrato pernešimas.
Antroji antraštės dalis nurodo baito reikšmę, kuri yra pradinio pranešimo problemos priežastis. Galiausiai, galutinė ICMP paketo dalis yra tikroji datagrama.
ICMP naudojimo atvejis
Štai keletas veikiančių ICMP protokolo pavyzdžių įvairiose srityse tinklo valdymo ir administracinės paslaugos.
Ping
Ping yra komandų eilutės programa, kuri remiasi ICMP echo-request ir echo-reply pranešimais, kad patikrintų tinklo pasiekiamumą ir vėlavimą tarp įrenginių. Priemonė tiesiog nustato paskirties serverio prieinamumą, įvertindama bendrą išsiųstų arba gautų paketų skaičių ir paketų praradimo procentą. Tai taip pat padeda nustatyti bendrą maksimalaus perdavimo vieneto (MTU) dydį.
Naudokite ping norėdami nustatyti google.com pasiekiamumą:
Traceroute
„Traceroute“ yra dar viena komandų eilutės programa, kuri naudoja echo-request ir echo-reply pranešimus su TTL kintamuoju, kad susietų kelią tarp šaltinio ir paskirties įrenginių. Tai taip pat naudinga nustatant atsakymo delsą ir užtikrina tikslumą kelis kartus užklausant kiekvieną šuolį.
Kaip ICMP veikia be prievado?
Remiantis aukščiau pateiktu paaiškinimu, ICMP yra be ryšio protokolas, siunčiantis duomenis nepriklausomai kaip datagrama, o jo antraštė rodoma po IPv4 informacijos. Tačiau taip pat galite pastebėti, kad nėra prievado numerio, todėl kyla klausimas, kaip įrenginiai gauna ICMP duomenis arba sužino apie bet kokį ryšį?
Atsakymas gana paprastas. ICMP protokolas buvo sukurtas veikti OSI modelio tinklo lygmenyje ir bendrauti tarp maršrutizatorių bei pagrindinių kompiuterių, kad būtų galima dalytis informacija. Prievadų numeriai yra transporto sluoksnio dalis, o ICMP nėra nei TCP, nei UDP protokolas. Galiausiai, ICMP tipo ir kodo derinys padeda įrenginiams nustatyti pranešimą ir gauti visą informaciją apie tinklą.
Klaidos ir srauto valdymas naudojant ICMP
Aukščiau pateikta informacija apie ICMP protokolą parodo, kaip jis užtikrina duomenų srauto valdymą ir klaidų kontrolę trečiajame OSI modelio lygmenyje. Pirmoje ICMP paketo antraštės dalyje esantys protokolo pranešimai ir parametrai apima visus tinklo valdymo ir diagnostikos aspektus.
Svarbu žinoti, kad netinkami ugniasienės nustatymai gali leisti užpuolikams ping nušluoti organizacijos tinklą ir padaryti jį linkusį į DDOS, mirties ping ir ICMP potvynių atakas. Tu gali naudoti „Wireshark“, kad gautų paketus iš interneto ir atlikti išsamią ICMP paketų analizę, kad geriau suprastumėte.
5 būdai, kaip ištaisyti klaidą „Trūksta vieno ar daugiau tinklo protokolų“ sistemoje „Windows 10“
Skaitykite toliau
Susijusios temos
- Paaiškinta technologija
- Kompiuterių tinklai
Apie autorių
Rumaisa yra laisvai samdoma rašytoja MUO. Ji dėvėjo daugybę skrybėlių – nuo matematikės iki informacijos saugumo entuziastės, o dabar dirba SOC analitike. Jos pomėgiai apima skaitymą ir rašymą apie naujas technologijas, Linux platinimą ir viską, kas susiję su informacijos saugumu.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Norėdami užsiprenumeruoti, spustelėkite čia