ICMPv6 Time Exceeded Messages
(Page 1 of 2)
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 the fragments into the original message. One or more fragments may not make it to the destination, however. To prevent the device from waiting forever, it sets a timer when the first fragment arrives. If this timer expires before all of the other fragments are also received, the device gives up on this message. The fragments are tossed out, and a Time Exceeded message is also generated.
Home - Table Of Contents - Contact Us
The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005
© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.