[ih] TTL [was Exterior Gateway Protocol]

Brian E Carpenter brian.e.carpenter at gmail.com
Sat Sep 5 20:28:47 PDT 2020


On 06-Sep-20 14:38, Łukasz Bromirski via Internet-history wrote:
> Jack,
> 
> I was reading a lot of old BBN PDFs thanks to all good souls on
> this list that post nice URLs from time to time.
> 
> I remember reading in at least one of them, that apparently first
> TCP/IP implementations were indeed using TTL as literally “time”,
> not hop count. I believe there somewhere there between PDP docs
> and ARPANET docs I’ve read something to the effect “and from this
> time we changed from measuring time to simply count routing hops”.
> Of course, right now google-fu is failing me.
> 
> Quoting RFC 1009 that was already brought up, there’s quite
> direct “definition” of the field:

"1009 Requirements for Internet gateways. R.T. Braden, J. Postel. June
     1987. (Format: TXT, HTML) (Obsoletes RFC0985) (Obsoleted by RFC1812)
     (Status: HISTORIC) (DOI: 10.17487/RFC1009)"

It might be interesting to ask Fred Baker, editor of RFC1812, whether
there was any evidence of deployed code for this in the early 90's
when he was struggling mightily to get an agreed draft. The text is
subtly different than RFC1009:

"5.3.1 Time to Live (TTL)

   The Time-to-Live (TTL) field of the IP header is defined to be a
   timer limiting the lifetime of a datagram.  It is an 8-bit field and
   the units are seconds.  Each router (or other module) that handles a
   packet MUST decrement the TTL by at least one, even if the elapsed
   time was much less than a second.  Since this is very often the case,
   the TTL is effectively a hop count limit on how far a datagram can
   propagate through the Internet.

   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."

That "MAY" effectively means "nah, don't bother".

Process wonk comment: By modern standards that means that RFC1812 should be
marked as Updates: 791, since it changes the definition of TTL on page 14 
of RFC791.

   Brian


> 
> "4.8.  Time-To-Live
> 
>  The Time-to-Live (TTL) field of the IP header is defined to be a
>  timer limiting the lifetime of a datagram in the Internet.  It is
>  an 8-bit field and the units are seconds.  This would imply that
>  for a maximum TTL of 255 a datagram would time-out after about 4
>  and a quarter minutes.  Another aspect of the definition requires
>  each gateway (or other module) that handles a datagram to
>  decrement the TTL by at least one, even if the elapsed time was
>  much less than a second.  Since this is very often the case, the
>  TTL effectively becomes a hop count limit on how far a datagram
>  can propagate through the Internet."
> 
> Were there any implementations that survived somewhere and actually
> did exactly that - counted actual time/processing delay, not hops?
> And if it took 2s to process packet, did they really decrement TTL
> by two?
> 
> Thanks for any pointers,
> 




More information about the Internet-history mailing list