And I have a family to support, just like you
I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don’t want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. 🙂
If you like The TCP/IP Guide, please consider the download version. It’s priced very economically and you can read all of it in a convenient format without ads.
If you want to use this site for free, I’d be grateful if you could add the site to the whitelist for Adblock
To do so, just open the Adblock menu and select « Disable on tcpipguide ». Or go to the Tools menu and select « Adblock Plus Preferences. « . Then click « Add Filter. » at the bottom, and add this string: « ||tcpipguide^$document ». Then just click OK.
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 .
This diagram shows a simple internetwork consisting of four networks, each of which is served by a router. It is an adaptation of Figure 93 , but in this case the routing tables have been set up incorrectly. R1 thinks that it needs to route any traffic intended for network N4 to R3; R3 thinks it goes to R2; and R2 thinks it goes back to R1. This means that when any device tries to send to N4, the datagram will circle this ?triangle? until its Hop Limit is reached, at which point an ICMPv6 Time Exceeded message will be generated.
To prevent the device from waiting forever, it sets a timer when the first fragment arrives
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 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. 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.