ietf
[Top] [All Lists]

Re: Question about the normative nature of IETF RFCs

2005-09-28 15:09:53
Hi, Eric,

For what it's worth, none of the slow-start/congestion avoidance stuff in TCP was documented in an RFC until RFC 2001 in 1997, which said

  Modern implementations of TCP contain four intertwined algorithms
  that have never been fully documented as Internet standards:  slow
  start, congestion avoidance, fast retransmit, and fast recovery.  [2]
  and [3] provide some details on these algorithms, [4] provides
  examples of the algorithms in action, and [5] provides the source
  code for the 4.4BSD implementation.  RFC 1122 requires that a TCP
  must implement slow start and congestion avoidance (Section 4.2.2.15
  of [1]), citing [2] as the reference, but fast retransmit and fast
  recovery were implemented after RFC 1122.  The purpose of this
  document is to document these four algorithms for the Internet.

and the references were to ACM articles and end-to-end mailing list postings from 1988-1990.

It's a darned good thing RFC 793 wasn't "normative" in the 1990s, because even the Arpanet was collapsing without these mechanisms in the late 1980s. RFC 1122 (1989) had this to say:

        4.2.2.15  Retransmission Timeout: RFC-793 Section 3.7, page 41

           The algorithm suggested in RFC-793 for calculating the
           retransmission timeout is now known to be inadequate; see
           Section 4.2.3.1 below.

           Recent work by Jacobson [TCP:7] on Internet congestion and
           TCP retransmission stability has produced a transmission
           algorithm combining "slow start" with "congestion
           avoidance".  A TCP MUST implement this algorithm.

with [TCP:7] being "Congestion Avoidance and Control," V. Jacobson, ACM SIGCOMM-88, August 1988.

So you are definitely remembering what I am remembering on at least one protocol.

Spencer

p.s. <obligatory newtrk rant> Oh, wait. STANDARD TCP is defined in STD 7/RFC 793, and all of this newfangled stuff is Proposed Standard, so we're not supposed to deploy it anyway. "How many standards levels do you want today?" </obligatory newtrk rant>

From: "Fleischman, Eric" <eric(_dot_)fleischman(_at_)boeing(_dot_)com>

I resonate with your points except that the earliest IETF standards
(i.e., IP itself, TCP itself, others) were incompletely specified by
RFCs. Therefore, interoperable implementations could only occur with
reference to the reference implementations.

_______________________________________________
Ietf mailing list
Ietf(_at_)ietf(_dot_)org
https://www1.ietf.org/mailman/listinfo/ietf