Internet Control Message Protocol (ICMP) on kolmannen kerroksen (verkkokerroksen) protokolla OSI: n seitsemän kerroksen mallissa. Protokolla diagnosoi verkkoyhteys- tai tiedonsiirtoongelmia laitteiden välillä. Se auttaa lähettämällä, vastaanottamalla ja käsittelemällä ICMP-viestejä raportoimaan yhteysongelmista lähdeverkkolaitteeseen.
Tästä syystä ICMP-protokollan ensisijainen tarkoitus on raportoida virheistä verkkokerroksessa. Haitalliset toimijat voivat kuitenkin manipuloida sen toimintoja käynnistääkseen hyökkäyksiä, kuten Distributed Denial of Service (DDoS)- ja Ping of Death -hyökkäyksiä. Täällä opit ICMP-protokollasta, sen käyttötapauksesta ja parametreista, jotka ovat tärkeitä ICMP-sanomien ymmärtämisen kannalta.
Kuinka ICMP toimii?
Reitittimet käyttävät ICMP-protokollaa verkon hallintaan ja ongelmien diagnosointiin. Se luo ja lähettää virheilmoituksia lähettäjälaitteeseen, kun verkko estää pakettien toimituksen kohdelaitteeseen. Näitä virheilmoituksia ovat esimerkiksi aika ylitetty, parametriongelma, kohde ei saavuteta, verkon ruuhkautuminen jne.
Esimerkiksi kun lähettäjä lähettää dataa yhdeltä laitteelta kohdelaitteeseen IP-datagrammin muodossa, se kulkee useiden reitittimien tai välityslaitteiden kautta. Joskus IPV4-datagrammin edelleenlähetyksessä voi tapahtua virhe. Tästä syystä ICMP-viestit on jaettu kahteen laajaan luokkaan: virheilmoitukset ja kyselyviestit.
Virheilmoitusviestit
Nämä ovat viestit, jotka reititin tai välittäjäisäntä voi kohdata datagrammien käsittelyssä:
- Ylitetty aika: ICMP-paketissa on elinaika-parametri, jonka saavuttaessa 0, reititin tai isäntä hylkää datagrammin ja lähettää aika ylitetty -virheilmoituksen. Viesti lähetetään myös silloin, kun kohde ei saa kaikkia datafragmentteja.
- Kohde ei tavoitettavissa: Yhteyden aloittava laite vastaanottaa tavoittamattoman määränpään virhesanoman, kun reititin tai välittäjäisäntä ei pysty toimittamaan sitä. Tämän seurauksena laitteet hylkäävät datagrammin.
- Lähde Quench: Kun laitteet eivät pysty toimittamaan datagrammia verkon ruuhkautumisen vuoksi, ne lähettävät ICMP "lähdesammutusviestin" viestin lähettäjälle. Virheilmoitussanoma lisää virtauksen hallintaa verkkokerroksessa ilmoittamalla lähdelaitteelle polun ruuhkautumisesta ja hidastamalla tiedon lähetysprosessia.
- Uudelleenohjaus: Ei-optimaalisella polulla oleva reititin uudelleenohjaa paketin reitittimeen, jolla on optimaalinen polku lähteen ja kohteen välillä. Sellaisenaan se päivittää lähteen reitin muutoksesta.
- Parametriongelma: Lähdelaite vastaanottaa tämän viestin, kun datagrammin otsikosta puuttuu arvo. Esimerkiksi lähteen määränpäässä lasketun tarkistussumman ero luo tämän ICMP-virhesanoman.
Kysely Viestit
Kyselyviestit esiintyvät pareittain ja tarjoavat erityistä tietoa välilaitteilta lähdelaitteelle.
- Kaikupyyntö ja kaikuvastausviesti: Nämä viestit auttavat ratkaisemaan verkon diagnostiikkaongelmia.
- Aikaleimapyyntö ja vastaus: Nämä aikaleimapyynnöt ja vastausviestit auttavat määrittämään edestakaisen matka-ajan laitteiden välillä.
ICMP-parametrien ymmärtäminen
ICMP-sanomien tiedot on kapseloitu IP-otsikon alle, mikä tarkoittaa, että ICMP-datagrammin otsikko tulee IPv4/v6-tietojen jälkeen. ICMP-paketin otsikon ensimmäinen osa sisältää parametrit, jotka auttavat verkkolaitteita määrittämään virhe- tai kyselysanoman.
Ensimmäisestä 32 bitistä ensimmäiset 8 bittiä määrittävät sanoman tyypin, seuraavat 8 bittiä määrittävät viestin koodin ja loput bitit sisältävät tiedon eheyteen liittyvää tietoa. Näin ollen kolme tietokenttää ovat: ICMP-tyypit, ICMP-koodi ja tarkistussumma.
ICMP-tyypit
Tyyppi määrittää ICMP-paketin tarkoituksen. Se selittää lyhyesti, miksi lähdelaite vastaanottaa viestin. ICMP-sanomia on 0-255 tyyppiä, joten jokainen tyyppi tarjoaa erilaista tietoa. Jotkut tärkeät ICMP-tyypit ovat:
0: Kaikupyyntö
3: Kohde ei tavoitettavissa
4: Source Quench
5: Uudelleenohjaus
8: Echo Reply
11: Aika ylitetty
12: Parametriongelma
30: Traceroute
ICMP koodi
ICMP-koodi antaa lisätietoja viesteistä. Esimerkiksi ICMP-tyyppi 3 koodilla 0-15 määrittää, miksi kohde ei ole tavoitettavissa; eli jos koodi on 0, se johtuu siitä, että verkko ei ole käytettävissä. Vastaavasti tyypin 3 koodille 1 viesti määrittää, että isäntä ei ole tavoitettavissa.
Lisäksi tyypin 8 koodi 0 ja tyypin 0 koodi 0 edustavat kaikupyyntö- ja kaikuvastausviestejä. Näin ollen jokainen viestityyppi, jolla on sama koodiarvo, antaa eri verkkotiedot.
Tarkistussumma
Tarkistussumma on virheiden havaitsemismekanismi, joka määrittää tietojen eheyden. Tarkistussumman arvo edustaa lähetysviestin bittejä. Lähettäjä laskee ja sisällyttää tiedon tarkistussumman, ja vastaanottaja laskee uudelleen arvon ja vertaa sitä alkuperäiseen määrittääkseen mahdolliset muutokset alkuperäiseen viestiin aikana tarttuminen.
Otsikon toinen osa osoittaa tavun arvoon, joka on alkuperäisen viestin ongelman syy. Lopuksi ICMP-paketin loppuosa on varsinainen datagrammi.
ICMP-käyttötapaus
Tässä on joitain toimivia esimerkkejä ICMP-protokollasta erilaisissa verkonhallinta ja hallinnolliset apuohjelmat.
Ping
Ping on komentorivityökalu, joka käyttää ICMP-kaikupyyntö- ja kaikuvastausviestejä verkon saatavuuden ja laitteiden välisen viiveen testaamiseen. Apuohjelma yksinkertaisesti määrittää kohdepalvelimen saatavuuden arvioimalla lähetettyjen tai vastaanotettujen pakettien kokonaismäärän ja pakettien katoamisen prosenttiosuuden. Se auttaa myös määrittämään lähetysyksikön (MTU) kokonaiskoon.
Käyttää ping määrittääksesi google.comin saatavuuden:
Traceroute
Traceroute on toinen komentorivin apuohjelma, joka käyttää kaikupyyntö- ja kaikuvastausviestejä TTL-muuttujan kanssa kartoittamaan polun lähde- ja kohdelaitteiden välillä. Se on myös hyödyllinen määritettäessä vastausviiveitä ja varmistaa tarkkuuden kysymällä jokaista hyppyä useita kertoja.
Kuinka ICMP toimii ilman porttia?
Yllä olevasta selityksestä ICMP on yhteydetön protokolla, joka lähettää dataa itsenäisesti datagrammina, ja sen otsikko näkyy IPv4-tietojen jälkeen. Voit kuitenkin myös huomata porttinumeron puuttumisen, mikä herättää kysymyksen siitä, kuinka laitteet vastaanottavat ICMP-tiedot tai tiedostavat yhteyden?
Vastaus on melko yksinkertainen. ICMP-protokolla on suunniteltu toimimaan OSI-mallin verkkokerroksessa ja kommunikoimaan reitittimien ja isäntien välillä tiedon jakamiseksi. Porttinumerot ovat osa siirtotasoa, ja ICMP ei ole TCP- eikä UDP-protokolla. Lopuksi ICMP-tyypin ja koodin yhdistelmä auttaa laitteita määrittämään viestin ja saamaan kaikki tiedot verkosta.
Virhe- ja virtaushallinta ICMP: llä
Yllä olevat yksityiskohdat ICMP-protokollasta osoittavat, kuinka se varmistaa tietojen vuohallinnan ja virheenhallinnan OSI-mallin kolmannessa kerroksessa. ICMP-paketin otsikon ensimmäisessä osassa olevat protokollasanomat ja parametrit kattavat kaikki verkon hallintaan ja diagnoosiin liittyvät näkökohdat.
On tärkeää tietää, että väärät palomuuriasetukset voivat sallia hyökkääjien ping-sweep-pyyhkäisyn organisaation verkon läpi ja tehdä siitä alttiita DDOS-, ping of death- ja ICMP-tulvahyökkäyksille. Voit käyttää Wireshark kaappaamaan paketteja Internetistä ja suorita yksityiskohtainen analyysi ICMP-paketteista ymmärtääksesi paremmin.
5 tapaa korjata "Yksi tai useampi verkkoprotokolla puuttuu" -virhe Windows 10: ssä
Lue Seuraava
Liittyvät aiheet
- Tekniikka selitetty
- Tietokoneverkot
Kirjailijasta
Rumaisa on freelance-kirjoittaja MUO: ssa. Hän on käyttänyt monia hattuja matemaatikosta tietoturvaharrastajaan, ja hän työskentelee nyt SOC-analyytikkona. Hänen kiinnostuksensa kuuluu lukeminen ja kirjoittaminen uusista teknologioista, Linux-jakeluista ja kaikesta tietoturvaan liittyvästä.
tilaa uutiskirjeemme
Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja eksklusiivisia tarjouksia!
Klikkaa tästä tilataksesi