The TCP/IP Guide - Version 3.0 (Contents) ` 654 _ © 2001-2005 Charles M. Kozierok. All Rights Reserved.
Note: The Packet Too Big message is new to ICMPv6. However, its use is
somewhat similar to the use of the Fragmentation Needed and DF Set version of
the ICMP4 Destination Unreachable message type, which is used as part of IPv4’s
path MTU discovery feature.
Incidentally, Packet Too Big is an exception to the rule that ICMP messages are sent only in
response to unicast datagrams; it may be sent in reply to an oversized multicast datagram.
If this occurs, it is important to realize that some of the intended targets of the multicast may
still have received it, if the path the multicast took to them did not go through the link with
the small MTU that caused the error.
ICMPv6 Time Exceeded Messages
The engineers who first designed the Internet Protocol recognized that due to the nature of
how routing works on an internetwork, there was always a danger that a datagram might
get “lost in the system” and spend too much time being passed from one router to another.
They included in IPv4 datagrams a field called Time To Live, which was intended to be set
to a time value by the device sending the datagram, and used as a timer to cause the
discard of the datagram if it took too long to get it to its destination.
Eventually, the meaning of this field changed so it was used not as a time in seconds but a
number of hops through which the datagram was allowed to be sent. In IPv6, the new
meaning of this field was formalized when it was renamed Hop Limit. Regardless of name,
the field still has the same basic purpose: it restricts how long a datagram can exist on an
internetwork by limiting the number of times routers can forward it. This is particularly
designed to provide protection against router loops that may occur in large or improperly-
configured internetworks. An example of this situation is where Router A thinks datagrams
intended for network X should next go to Router B; B thinks they should go to Router C; and
C thinks they need to go to A. Without a Hop Limit, such datagrams would circle forever,
clogging networks and never accomplishing anything useful, as shown in Figure 154.
Each time a router passes an IPv6 datagram, it decreases the Hop Limit field. If the value
ever reaches zero, the datagram expires and is discarded. When this happens, the router
that dropped the datagram sends an ICMPv6 Time Exceeded message back to the
datagram's originator to inform it that the datagram was dropped. This is basically the same
as the ICMPv4 Time Exceeded message. As in the ICMPv4 case, the device receiving the
message must decide whether and how to respond to receipt of the message. For example,
since the error can be caused by a device using a Hop Limit that was too low, the device
may try to re-send the datagram with a higher value before concluding that there is a
routing problem and giving up. (See the topic covering the ICMPv4 Time Exceeded
message for an illustration of how TTL expiration works.)
Just as with the ICMPv4 equivalent, there is also another “time expiration” situation that
ICMPv6 Time Exceeded messages are used for. When an IP message is broken into
fragments that are sent independently, the destination device is charged with reassembling