CURRENT MEETING REPORT

Minutes of tcpfix BOF

Reported by: Bob Braden/USC Information Sciences Institute

Summary

   This BOF was convened to discuss various issues that have arisen
   in the specification of the current generation TCP protocol.

Agenda -- Monday 4 December:

   o RSTs Considered Harmful: Ian Heavens
   o ACK Processing Rules: Phil Karn
   o Congestion Control Algorithms: Sally Floyd
   o Selective Acknowledgments
       SACK: Sally Floyd
       FACK: Jamshid Madhavi

RSTs Considered Harmful

Ian Heavens reported on his work on the possibility of unreliable TCP
data delivery when a RST segment is used instead of a FIN handshake to
terminate a connection.  The basic problem is that terminating a
connection using RST avoids TIME-WAIT state, which is needed to protect
against old duplicates.  His Internet Draft
draft-heavens-problems-rsts-01.txt contains many explicit examples of
the faulty sequences that can occur as a result.

To solve this problem, Heavens is proposing a change to the TCP state
diagram to provide an acknowledgment for RSTs that terminate
connections; he notes that the resulting state diagram is exactly
analogous to the non-conservative close of TP4.

This threat to reliable delivery due to RST's is in addition to the
"TIME-WAIT assassination" problem noted by Bob Braden in RFC-1337.

Issues of backwards compatibility have not been resolved, since Netscape
and other applications terminate via RSTs.

ACK Processing Rules

Phil Karn discussed how an ambiguity in the RFC-793 specification of
ACK processing could (and did) lead to a TCP implementation that fails
during certain cases of continuous full-duplex data transmission.  When
one side closes its window and the other probes with an ACK, if ACKs
sent by the probing end are rejected as unacceptable by the end with
the closed window then data transmission in the other direction
ceases.

Karn's proposed solution is to change the acceptability test for
segment sequence numbers so that the ACK field of an incoming
segment is processed even when SEG.SEQ is not RCV.NXT, provided
that RCV.NXT <= SEG.SEQ < RCV.NXT + Max window size.  The result
is that out-of-window ACKs will still be dropped, but ACKs that are
out of sequence but within the window will be processed normally.

Congestion Control Algorithms

Sally Floyd reported on a bug fix for Tahoe and Reno fast retransmit
code, documented in the short paper: ftp://ftp.ee.lbl.gov/papers/
fastretrans.ps.

Floyd also called attention to the LBL network simulator, a new
version of which is now available.  See http://www-nrg.ee.lbl.gov/ns/.

Van Jacobson has previosly-unpublished version of the TCP congestion
algorithms that closes the congestion window when the sender has not
sent data for more than a round-trip time.  A note about this will be
reachable from the http://www-nrg.ee.lbl.gov/ directory.

Selective Acknowledgments

Sally Floyd briefly discussed comparisons of the performance of
Tahoe and Reno TCP with TCP augmented with Selective Acknowledgments
(SACK).  The work is discussed in ftp://ftp.ee.lbl.gov/papers/sacks.ps.Z.

Simulations of SACK have shown that it effectively repairs a serious
defect of Reno TCP: transmission must often wait for a retransmit
timeout when multiple packets are dropped from one window of data.
During the earlier discussions of SACK in the tcplw Working Group,
there was concern that the TCP header has room for only three SACK
blocks in its option field.  Floyd and Fall have found that under the
conditions they have tested, three is sufficient.

Jamshid Mahdavi described work on a SACK-variant algorithm called FACK
("Forward Acknowledgment") that he and Matt Mathis have developed.
FACK essentially uses a single SACK block, but it sends the block
containing the most-recently-received segment.  Simulations have shown
this works very well, and that FACK is easier than SACK to implement
with the TCP Large Windows extensions (RFC1323).  Conceptually, it
decouples congestion management from data recovery.

Conclusions and Actions

The group agreed on the following actions from this meeting.

1.  Ian Heavens will revise his Internet Draft to clarify and
   brevity, with the intention that the RST handshake will move
   towards the standards track.

2.  The ambiguity and fix suggested by Phil Karn should be
   documented.

3.  The tcplw (TCP Large Windows) should proceed with SACK.