RFC 4443 (2006)

The Internet Control Message Protocol for the Internet Protocol Version 6 ( ICMPv6 ) is used together with the IPv6 version of the Internet Control Message Protocol. It serves, as with IPv4 networks to exchange error and information messages. In addition, but it is still in the Neighbor Discovery Protocol, the replacement of the Address Resolution Protocol, use.

Unlike ICMP for IPv4 ICMPv6 is absolutely necessary for the operation of IPv6. A general blocking ICMPv6 to the firewall means that IPv6 does not work (see RFC 4890 ).

Although ICMPv6 on the same network layer as IPv6, which ICMPv6 messages are before sending packed into IPv6 packets and sent as. The protocol number is inserted into the IPv6 header Next header field 58.

  • 3.1 Destination Unreachable - Type 1
  • 3.2 Packet Too Big - Type 2
  • 3.3 Time Exceeded - Type 3
  • 3.4 Parameter Problem - Type 4
  • 3.5 Echo Request - Type 128
  • 3.6 Echo Reply - Type 129

ICMPv6 header

The Type field specifies the class of the ICMP message, which can be specified in more detail with the Code field. The checksum is used to check the validity of the ICMPv6 packet. The remaining contents of the ICMP message is determined by the particular type. For error messages as much as possible will be appended by the error-causing packet according to the potential additional fields still.

ICMPv6 types

The message types can be subdivided into two groups. The first 128 types ( 0-127) with the most significant bit (german most significant bit) to 0, are error messages. The second 128 types ( 128-255 ), with the most significant bit to 1, are information messages.


The checksum (English checksum ) of an ICMPv6 packet is a 16 -bit one's complement of the one's complement sum of the entire ICMPv6 message. In addition to the message, an IPv6 pseudo-header is still attached to the front. To calculate the checksum, the checksum is set to 0. The pseudo header used to calculate the checksum will look like the scheme from next door.

This is one of the innovations of ICMPv6 over ICMP, where the checksum is calculated only on the ICMP header.

ICMPv6 processing

For the processing of ICMPv6 messages, the following rules apply:

  • Unknown ICMPv6 error messages must be forwarded to the overlying network layer.
  • Unknown ICMPv6 informational messages must be silently discarded.
  • Each error message is attached as much as possible of the error-causing packet at the end.
  • The protocol number for handover of unknown error messages is taken from the attached original package.
  • On the following packages no error messages will be sent to you: error messages
  • Packets to multicast, link-level multicast or link-level broadcast addresses with the following exceptions: Packet -Too - Big- News
  • Parameter Problem messages with code 2 - unknown IPv6 option

ICMP Standard types

Destination Unreachable - Type 1

Destination unreachable messages should be generated by the router when a packet could not be delivered. If the package was dropped due to congestion fall, no Destination Unreachable must be sent.

If the package was not delivered due to missing routes, the code 0 is set. If the delivering administrative prohibited (firewall ), the code is set to 1. If the router is the IPv6 address can not resolve, or has a problem with the link, the code 3 is set. If a target host for a UDP packet has no listener, it should send a Destination Unreachable with code 4.

If a Destination Unreachable is received, it must be passed the overlying layer.

Packet Too Big - Type 2

A Packet Too Big message MUST be generated by the router when a packet can not be forwarded because it is larger than the maximum MTU of the link over which it is to be sent. Packet Too Big messages are used by the Path MTU Discovery to to determine the path-dependent MTU.

The code should be set to 0 by the sender and ignored by the receiver.

If a Packet Too Big is received, it must be passed the overlying layer.

Time Exceeded - Type 3

When a router receives a packet with a hop limit of 0, or reduced to 0, it must discard the packet and send a Time Exceeded with code 0. This indicates either an infinite loop in the routing or too small an initial Hop Limit.

If not all fragments arrive from a fragmented message within a certain time, the packet is discarded and must be sent with a Time Exceeded Code 1.

Parameter Problem - Type 4

If a host when processing an IPv6 packet finds a problem in a field and can not continue with the processing, it must discard the packet and send a problem message parameters.

The code specifying the nature of the problem is described in detail.

The pointer pointing to the location in the packet where the problem occurred.

Echo Request - Type 128

With an echo request is asking for a response. An echo request is nothing more than a simple ping. The data field may be increased with data in order to produce larger packages. So you can for example determine the MTU.

Each system must respond to echo requests and reply with Echo Replies. Also, each system should have an application for sending and receiving echo request / replies.

Received echo request can be forwarded to applications that listen for ICMP messages.

Echo Reply - Type 129

In an echo-request message must be answered with an echo reply. The package is down to the type field the same. Echo Reply messages will only be sent to unicast addresses.

Based on the identification and the sequence number of the recipient will be able to assign the answers to his questions.

Received Echo Reply messages must be passed to the application that sent the corresponding echo request. On the remaining end listening to ICMP applications, it may be passed on.