Summary

  • IPv4 defines TTL as an eight-bit lifetime field measured in seconds, but every router must reduce it by at least one even when forwarding takes less than a second.
  • That minimum decrement made TTL effectively a hop-count limit: zero stops the packet and normally produces an ICMP Time Exceeded message.

A timer that could not measure time exactly

RFC 791 gave an IPv4 sender control over the maximum lifetime of a datagram. The sender sets the eight-bit Time to Live field, whose nominal unit is one second. A value of 255 therefore represented at most 255 seconds, or 4.25 minutes, under the specification's time vocabulary.

The same specification immediately weakens any literal reading of that clock. Every point that processes the Internet header must decrease TTL to reflect processing time, but it must subtract at least one even when no whole second has elapsed. RFC 791 consequently calls the value only an upper bound on lifetime. It was never a stopwatch carried by the packet.

That minimum protects the network when accurate transit timing is unavailable. A packet cannot circulate forever merely because routers forward it faster than the field's nominal unit. Each processing step consumes some of the finite budget.

The hop budget becomes explicit

RFC 1812 later stated the operational result plainly. Each router must decrement TTL by at least one, even when elapsed time is much less than a second, so TTL is effectively a hop-count limit on how far a datagram can propagate.

The timer idea did not disappear completely. A router that holds a packet for more than one second may subtract one for each second. But the interoperable floor is a decrement per forwarding router. The common guarantee therefore follows progress through the network more reliably than wall-clock time.

This dual meaning was recognized rather than concealed. RFC 1812 describes TTL as both a hop-count limit and a time limit, while noting that many implementations treat it as a pure hop count. Its requirements preserve the mechanism that breaks forwarding loops and supports operational diagnostics without pretending that every router measures residence time identically.

Zero is an action, not a reading

When forwarding reduces TTL to zero or below, the router must discard the packet. For a non-multicast destination, RFC 1812 also requires an ICMP Time Exceeded Code 0 message to the source. Traceroute depends on those messages, but the underlying control is broader: a routing fault cannot give one datagram unlimited circulation.

Changing TTL also changes the IPv4 header. RFC 791's checksum covers the header only and must be recomputed and verified as mutable fields such as TTL change. The propagation budget is therefore part of a repeated per-hop header transition, not metadata that remains untouched end to end.

Sources