ICMP type 11, Time exceeded |
Description | Glossary | RFCs | Publications | Obsolete RFCs |
Protocol suite: | TCP/IP. |
Protocol type: | Transport layer control protocol. |
Base protocol: | ICMP, Internet Control Message Protocol. |
Related ICMP message: | |
Host implementation: | Optional. |
Router implementation: | Mandatory. |
Links: | IANA: ICMP parameters. |
The internet header plus the first 8 bytes of the original datagram's data is returned to the sender. This data is used by the host to match the message to the appropriate process. If a higher level protocol uses port numbers, they are assumed to be in the first 64 data bits of the original datagram's data.
This message is not generated in response to a datagram destined for a multicast address.
An incoming Time Exceeded message MUST be passed to the transport layer.
RFC 1122, pages 56 and 57:
The IP layer MUST implement reassembly of IP datagrams.
There MUST be a reassembly timeout. The reassembly timeout value SHOULD be a fixed value, not set from the remaining TTL. It is recommended that the value lie between 60 seconds and 120 seconds. If this timeout expires, the partially-reassembled datagram MUST be discarded and an ICMP Time Exceeded message sent to the source host (if fragment zero has been received).
Host Implementation:
RFC 792, page 7:
If a host reassembling a fragmented datagram cannot complete the reassembly due to missing fragments within its time limit, it discards the datagram, and it may send a time exceeded message.
If fragment zero is not available then no time exceeded need be sent at all.
Code 1 may be received from a host.
RFC 1122, page 42:
A host may receive a Time Exceeded Code 1 (Reassembly Timeout) message from a destination host that has timed out and discarded an incomplete datagram.
RFC 2003, page 8:
ICMP Time Exceeded messages report (presumed) routing loops within the tunnel itself. Reception of Time Exceeded messages by the encapsulator MUST be reported to the sender of the original unencapsulated datagram as Host Unreachable (Type 3, Code 1). Host Unreachable is preferable to Network Unreachable; since the datagram was handled by the encapsulator, and the encapsulator is often considered to be on the same network as the destination address in the original unencapsulated datagram, then the datagram is considered to have reached the correct network, but not the correct destination node within that network.
Router Implementation:
RFC 792, page 6 and 7:
If the gateway processing a datagram finds the time to live field is zero it must discard the datagram. The gateway may also notify the source host via the time exceeded message.
Code 0 may be received from a gateway.
RFC 1122, page 42:
A gateway will send a Time Exceeded Code 0 (In Transit) message when it discards a datagram due to an expired TTL field. This indicates either a gateway routing loop or too small an initial TTL value.
RFC 1812, page 58:
When a router is forwarding a packet and the TTL field of the packet is reduced to 0, the requirements of section [5.2.3.8] apply.
When the router is reassembling a packet that is destined for the router, it is acting as an Internet host. RFC 1122's reassembly requirements therefore apply.
When the router receives (i.e., is destined for the router) a Time Exceeded message, it MUST comply with RFC 1122.
RFC 1812, page 84:
A router MUST generate a Time Exceeded message Code 0 (In Transit) when it discards a packet due to an expired TTL field. A router MAY have a per-interface option to disable origination of these messages on that interface, but that option MUST default to allowing the messages to be originated.
RFC 1812, page 85:
The Time-to-Live (TTL) field of the IP header is defined to be a timer limiting the lifetime of a datagram. When a router forwards a packet, it MUST reduce the TTL by at least one. If it holds a packet for more than one second, it MAY decrement the TTL by one for each second.
If the TTL is reduced to zero (or less), the packet MUST be discarded, and if the destination is not a multicast address the router MUST send an ICMP Time Exceeded message, Code 0 (TTL Exceeded in Transit) message to the source. Note that a router MUST NOT discard an IP unicast or broadcast packet with a non-zero TTL merely because it can predict that another router on the path to the packet's final destination will decrement the TTL to zero. However, a router MAY do so for IP multicasts, in order to more efficiently implement IP multicast's expanding ring search algorithm.
RFC 1940, page 24:
If a router receives an SDRP (Source Demand Routing: Packet) control packet that carries "Hop Count Exceeded" Notification Code, the router should use the information in the payload of the Control packet to construct an ICMP Time Exceeded Message with code "time to live exceeded in transit" and send the message to the host indicated by the source address in the Payload Header.
RFC 2003, page 6:
After an encapsulated datagram has been sent, the encapsulator may receive an ICMP Time Exceeded message from any intermediate router within the tunnel other than the tunnel exit point. The action taken by the encapsulator depends on the type of ICMP message received. When the received message contains enough information, the encapsulator MAY use the incoming message to create a similar ICMP message, to be sent to the originator of the original unencapsulated IP datagram (the original sender). This process will be referred to as "relaying" the ICMP message from the tunnel.
MAC header | IP header | ICMP message | Data ::: |
ICMP type 11, Time exceeded message:
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Type | Code | ICMP header checksum | |||||||||||||||||||||||||||||
unused | |||||||||||||||||||||||||||||||
IP header + the first 64 bits of the original datagram's data. |
Type. 8 bits. Set to 11.
Code.
8 bits.
Specifies the reason for the error.
Code | Description |
---|---|
0 | Time to live (TTL) equals 0 during transit. |
1 | Fragment reassembly timeout. |
ICMP Header Checksum.
16 bits.
The 16-bit one's complement of the one's complement sum of all 16-bit words in the message.
When the checksum is computed, the checksum field should first be cleared to 0.
When the data packet is transmitted, the checksum is computed and inserted into this field.
When the data packet is received, the checksum is again computed and verified against the checksum field.
If the two checksums do not match then an error has occurred.
unused. 32 bits. Cleared to 0.
Internet Header + 64 bits of Original Data Datagram.
The internet header plus the first 64 bits of the original datagram's data.
This data is used by the host to match the message to the appropriate process.
If a higher level protocol uses port numbers, they are assumed to be in the first 64 data bits of the original datagram's data.
RFCs:
[RFC 792] INTERNET CONTROL MESSAGE PROTOCOL.
[RFC 1122] Requirements for Internet Hosts -- Communication Layers.
[RFC 1812] Requirements for IP Version 4 Routers.
[RFC 1940] Source Demand Routing: Packet Format and Forwarding Specification (Version 1).
[RFC 2003] IP Encapsulation within IP.
[RFC 1009] Requirements for Internet Gateways.
[RFC 1716] Towards Requirements for IP Routers.
Description | Glossary | RFCs | Publications | Obsolete RFCs |