5. Internet Control Message Protocol


5.1 Inleiding 5.2 ICMP header 5.3 Soorten ICMP Berichten 5.3.1 ICMP error messages 5.3.2 ICMP query messages


Begin van File
5.1 Inleiding

Het Internet Control Message Protocol (ICMP) is het protocol voor het automatisch genereren en versturen van error en query messages tussen IP systemen. Het ICMP is een onderdeel van IP en maakt ook gebruik van de bestaande IP header (en opties). Het ICMP is niet ontworpen om absoluut error vrij te zijn, omdat de berichten alleen als feedback bedoeld zijn en het is dus geen moet dat deze berichten ten alle tijden goed aan komen. Bij het niet goed aankomen, of het helemaal niet arriveren van een error bericht wordt dus ook geen nieuwe error gegenereerd. Dit om te voorkomen dat er een ketting reactie ontstaat van error message op error message.

Begin van File
5.2 ICMP header

Een ICMP message bestaat voor een groot deel uit de IP header en data van het bericht dat de error veroorzaakte. Hierin worden een aantal velden van de IP header aangepast en wordt er nog een stuk ICMP header bij gevoegd. De velden die aangepast worden in de IP header zijn:

  • De type of service, die 0 wordt omdat dit geen invloed meer heeft.
  • Het Protocol, wordt 1 dit is het ICMP protocol.
  • Het Source adres, wordt het adres van de router of host die de message veroorzaakt heeft.
  • En het Destination adres, wordt het adres van de router of host waarnaar het bericht verzonden moet worden.

    In figuur 5.1 is de opbouw van de ICMP datagram te zien. De ICMP header bestaat uit een type veld voor het soort bericht, een code veld voor een specifieke omschrijving van het bericht en een checksum, die op de zelfde manier uitgerekend wordt als bij de IP header, alleen dient hij hier als controle van het hele ICMP bericht en niet zoals bij IP alleen voor de header. (zie ook de bijlage voor een lijst van de verschillende soorten berichten)

    Begin van File
    5.3 Soorten ICMP Berichten

    Het ICMP protocol bevat 2 soorten van berichten (messages) namelijk:

  • De ICMP error messages.

  • Destination unreacheble
  • Time exceeded.
  • Parameter problem.
  • Source quench.
  • Redirect.

    Bij het versturen van een error message wordt weer gebruik gemaakt van de IP header en verder wordt hierbij ook nog de eerste 8 bytes van de data, die bij de originele datagram hoorde, toegevoegd, omdat zich hierin de header bevindt van het bovenliggende protocol (TCP/UDP). Dit is ervoor, dat als het bericht verstuurt wordt, het bij de ontvanger ook weer naar het juiste bovenliggende protocol gestuurd kan worden.

  • ICMP query messages.

  • Echo of echo reply
  • Timestamp of timestamp reply
  • Information request of information reply.

    Deze berichten worden gebruikt om een soort van vraag te sturen waarop een antwoord moet worden terug gestuurd. Een voorbeeld hiervan is een ping programma, er wordt dan een ping naar een host verstuurd en er moet dan een pong terug komen. Bij de query messages wordt in de IP header de adressen van de source omgezet naar de destination van de reply message.

    Begin van File
    5.3.1 ICMP error messages.

    In figuur 5.2 is de header te zien zoals hij is opgebouwd voor de Destination Unreacheble Message, typeveld 3, voor de Time Exceeded Message, typeveld 11, en voor de Source Quench Message typeveld 4.

    Zie bijlage voor de verschillende codevelden en de berichten die daarbij horen.

    Figuur 5.3 laat de header zien van de Parameter Problem Message en verschilt alleen in het pointer veld en deze geeft aan (als het code veld 0 is) op welke byte een error is ontstaan.

    Het typeveld die bij deze message hoort is 12.

    De header van de Redirect Message ziet eruit als in figuur 5.4. Het Gateway Internet Address veld is het adres van de gateway(router) waarnaar verkeer wordt gezonden dat gespecificeerd is in het internet destination netwerk veld van de originele datagram’s data. .

    Het typeveld die bij deze message hoort is 5.

    Begin van File
    5.3.2 ICMP query messages

    Figuur 5.5 geeft de header van de Echo of Echo Reply Message weer.

    Voor het vormen van een echo message worden de source en de destination gewoon omgedraaid en wordt het type veld 0 gemaakt en de checksum opnieuw uitgerekend. Het type veld bij dit bericht is 8 voor echo message en 0 voor echo reply message. Het identifier veld en sequence number veld kunnen naar eigen wens ingevuld worden en deze ingevulde waardes worden in de reply message weer mee terug gestuurd zodat men het uitgaande en inkomende bericht kan vergelijken.

    Timestamp of Timestamp Reply Message

    Het type veld bij dit bericht is 13 voor timestamp message en 14 voor timestamp reply message. Het identifier veld en sequence number veld worden weer als voorgaand ingevuld. In het orginate timestamp veld wordt door de zender de tijd ingevuld. Bij het ontvangen van het bericht bij ontvanger wordt de receive timestamp ingevuld en bij het terug sturen van een reply wordt in de transmit timestamp weer de tijd van verzenden ingevuld.

    In figuur 5.7 staat de header afgedrukt van de Information Request of Information Reply Message.

    Het type veld bij dit bericht is 15 voor information request message en 16 voor information reply message.Het identifier veld en sequence number veld worden weer als voorgaand ingevuld.

    Voor een overzicht van alle verschillende message types zie bijlage



    Vorige hoofdstuk Volgende hoofdstuk
    Terug naar Index