TTL During Fragmentation – How It Works

fragmentationipipv4routing

Hypothetical case

Let's say router (R1) receives a IP datagram of length:820 (header + payload) with TTL:255, and ID:11. The outgoing link has an IP-MTU of size 420.

Now R1 has to fragment the datagram into two fragments. The question is what will be the TTL of these created fragments:

  1. Will it be (TTL of the received IP datagram -1)
  2. Or will it be considered that the fragment starts from this router and starting TTL will be assigned by this router (R1).

Best Answer

The TTL of a packet is decremented as the packet is processed by the IP process upon reception in the router. The packet gets fragmented, if necessary to traverse the exit network (assuming the packet is not marked DF), by the IP process at the exit interface of the router. The TTL of the resulting packet fragments will be the same as if the packet were not fragmented.

RFC 791, Internet Protocol has a full description of fragmentation, and it explains that the header fields are copied from the original packet to the packet fragments:

To fragment a long internet datagram, an internet protocol module (for example, in a gateway), creates two new internet datagrams and copies the contents of the internet header fields from the long datagram into both new internet headers. The data of the long datagram is divided into two portions on a 8 octet (64 bit) boundary (the second portion might not be an integral multiple of 8 octets, but the first must be). Call the number of 8 octet blocks in the first portion NFB (for Number of Fragment Blocks). The first portion of the data is placed in the first new internet datagram, and the total length field is set to the length of the first datagram. The more-fragments flag is set to one. The second portion of the data is placed in the second new internet datagram, and the total length field is set to the length of the second datagram. The more-fragments flag carries the same value as the long datagram. The fragment offset field of the second new internet datagram is set to the value of that field in the long datagram plus NFB.

This procedure can be generalized for an n-way split, rather than the two-way split described.

Related Topic