ICMP

Internet Control Message Protocol (ICMP))) een protocolnetwerk dat verantwoordelijk is voor het melden van fouten door middel van het genereren en verzenden van berichten naar het bron-IP-adres wanneer er netwerkproblemen zijn die het systeem ondervindt.[1] De berichten die de ICMP genereert geven aan dat een bepaalde gateway, router, service of zelfs host die een verbinding met het internet zou moeten maken, niet bereikbaar is. In principe kan de ontvanger geen pakketten ontvangen tijdens de verzending. Elk IP-netwerkapparaat kan ICMP-foutmeldingen verzenden, genereren, ontvangen en verwerken.

Met andere woorden, je kunt je ICMP voorstellen als een team dat mechanische onderdelen voor voertuigen produceert. De beste manier om een voertuig in elkaar te zetten is om eerst elk afzonderlijk onderdeel te fabriceren en vervolgens elk onderdeel naar de assemblagelijn te sturen, die het vervolgens tot een complexer product zou assembleren. Echter, zoals we allemaal weten, zullen er momenten zijn waarop het productieteam niet in staat zal zijn om een deel van de onderdelen binnen een gepland tijdsbestek te verzenden. Als er ooit onderdelen ontbreken, dan zal de assemblagelijn het productieteam op de hoogte moeten stellen van het feit dat de ICMP op dezelfde manier functioneert. In wezen speelt de ICMP de rol van boodschapper die gegevens en informatie van de ontvanger naar de afzender doorstuurt.

Functionaliteit

Dit protocol is eigenlijk vrij complex. Het heeft tal van andere functies dan alleen het melden van fouten in pakkettransmissies en hosts die niet bereikbaar zijn. Het geeft ook echo- en echo-reactieberichten door. Dit wordt gebruikt via een bekend PING-commando dat de meeste gebruikers in staat stelt om een echo door te geven aan een ontvangende host. Dit stuurt een echo antwoord wanneer een echo wordt ontvangen.

Als zodanig bieden ICMP-berichten een manier voor het netwerk en het systeem om het bron-IP-adres, dat het doorzendende uiteinde is, te melden als de externe host, dat het ontvangende uiteinde is, geen pakketten ontvangt die zijn verzonden.[2]

Een router wordt gebruikt om het populaire "Destination Unreachable" bericht terug te sturen naar de bronhost.[3] Dit zou het dan naar het apparaat of programma sturen dat de datapakketten als eerste heeft verzonden. Deze foutmeldingen zouden het programma dan laten weten dat er een probleem was met de connectiviteit van het netwerk. Zodra het bronprogramma de informatie heeft ontvangen dat sommige van die gegevenspakketten de ontvanger niet hebben gehaald, zou het deze informatie opnieuw naar de ontvanger sturen.

Als belangrijke functie wordt ICMP niet noodzakelijkerwijs regelmatig gebruikt door individuen in eindgebruikersapplicaties, maar wordt het door talrijke netwerkbeheerders gebruikt om eventuele fouten in internetverbindingen op te lossen door middel van een nutsdiagnose zoals:[4]

  1. Ping
  2. Traceroute

Het hoofdprotocol dat de ICMP gebruikt, wordt gebruikt door intermediaire apparaten, routers en zelfs hosts om te communiceren als er een fout optreedt en om updates uit te voeren aan de benodigde routers, intermediaire apparaten en hosts. In dit geval gebruiken de meest algemeen gebruikte IPv4 (Internet Protocol versie 4) en de veel nieuwere IPv6 versies van het ICMP protocol, die respectievelijk ICMPv4 en ICMP6 worden genoemd.[5]

In termen van hoe de ICMP zich verhoudt tot verschillende pakketkoppen, verschijnt de ICMP-header na de IPv4- of IPv6-pakketheader terwijl deze wordt herkend door een protocolnummer. Dit complexe protocol bevat drie verschillende belangrijke componenten:[6]

  • Het belangrijkste onderdeel dat de ICMP-berichten herkent.
  • De kleine code die gegevens en informatie over dit type veld bevat.
  • De checksum die daadwerkelijk helpt bij het opsporen van het specifieke probleem dat tijdens de verzending van het bericht is geïntroduceerd.

ICMP-berichten

De meest populaire en bekende boodschap uit een ICMP-datagram is de "Destination Unreachable" boodschap.[1:1] Er zijn verschillende redenen waarom dit bericht wordt gegenereerd, waaronder problemen zoals het niet kunnen bereiken van een netwerk, een host, poort of zelfs een defect protocol.

De meeste gebruikers moeten zich ervan bewust zijn en er ook rekening mee houden dat hoewel het "Destination Unreachable" bericht het meest ontvangen bericht is, het niet het enige bericht is dat de ICMP kan uitzenden. Er zijn nog andere foutmeldingen die onder meer omvatten:[2:1]

  • Redirect Message - Dit is wat een gateway gebruikt om de bronhost te laten weten dat het verkeer naar een andere router gaat sturen.
  • Time Exceed - Dit is wat een router de bronhost zal vertellen dat een bepaald pakket een bepaalde tijd heeft overschreden die Time to Live (TTL) wordt genoemd. Wanneer een bepaalde host de "Time Exceed" informatiepakketten begint te ontvangen, is dit een teken dat er een probleem is binnen het systeem waar een feedbacklus bestaat op de informatiestroom.
  • Source Quench - Dit zijn berichten die van een router naar de host worden gestuurd. Dit laat weten dat de buffercapaciteit nu vol is en zal het transmissieproces kortstondig stoppen, zodat het de rest van de gegevens kan inhalen.

Andere berichten zijn onder andere Parameter Problem, Address Mask Request and Reply, Timestamp.

Beperkingen

Ondanks al deze rollen die de ICMP moet uitvoeren, heeft het een aantal functionele beperkingen. De ICMP helpt niet om de bronhost of IP betrouwbaarder te maken en het ontvangt of verstuurt geen gegevens die gebruikt kunnen worden voor de transmissie.[5:1] De ICMP bestaat eenvoudigweg als een manier om problemen op verloren pakketten en gebroken routing te identificeren.

Een ICMP zal ook geen berichten versturen die over ICMP-berichten gaan.[2:2] Als dit ooit zou gebeuren, zou dit een feedbacklus veroorzaken die het systeem zou schaden omdat het een ICMP-bericht naar de andere kant zou creëren. Dit zou zich dan snel repliceren tot het punt dat het netwerk onder water zou komen te staan, waardoor het ineffectief zou worden.


  1. https://searchnetworking.techtarget.com/definition/ICMP ↩︎ ↩︎

  2. https://www.pcwdld.com/what-is-icmp-and-port ↩︎ ↩︎ ↩︎

  3. https://www.comparitech.com/net-admin/what-is-icmp/ ↩︎

  4. https://www.techopedia.com/definition/5362/internet-control-message-protocol-icmp ↩︎

  5. http://www.enterprisenetworkingplanet.com/netsp/article.php/3584166/Networking-101-Understanding-and-Using-ICMP.htm ↩︎ ↩︎

  6. https://www.webopedia.com/TERM/I/ICMP.html ↩︎