Subject: Doubts about RFC 2001 (Slow Start and Congestion Avoidance in TCP)

From: Emanuele Zanotti <[email-masked]>
Date: Tue, 30 Mar 1999 14:31:51 +0200

-- 
Emanuele Zanotti
Politecnico di Milano
Dipartimento di Elettronica e Informazione
piazza Leonardo da Vinci 32
20133 Milano, Italy
mailto:[email-masked]
phone: +39.02.2399.3604
fax: +39.02.2399.3413

To the kind attention of the TCP implementation Working Group.

While reading RFC 2001 concerning congestion control algotithms (Slow
Start and Congestion Avoidance) a doubt has arisen among me some of my
colleagues in University. I kindly ask you whether you are so kind to
let us know your opinion about the following points:

1) RFC states that when a congestion occurs, ssthresh is set to: max (2,
0.5*min(cwnd,rcvwnd));
   Somebody states that the correct value is: max(2, min(cwnd/2,
rcvwnd))
So, which the right version?

2) Can the value of cwnd be greater than the value of rcvwnd ? Somebody
states it is not possible. This fact cuold modify the perfomance of
these algorithms.

Please send your answers to the following e-mail address too:

[email-masked].

Thank you very much for your kind collaboration.

Best Regards.				
					Emanuele Zanotti

---

From: Mark Allman <[email-masked]>
Date: Wed, 31 Mar 1999 09:54:59 -0500

[If this is a repeat, I appologize...  My mailer is acting funny
 today. --allman]

Hopefully these are cleared up in 2001.bis, which is currently in
the RFC editor's queue.  (draft-ietf-tcpimpl-cong-control-05.txt).

> So, which the right version?

When congestion occurs you should set ssthresh to:

    max (2*MSS,FlightSize/2)

where FlightSize is the actual amount of outstanding data that has
been sent into the network.  (Depending on the implementation,
FlightSize may equal cwnd, or it may not).

> 2) Can the value of cwnd be greater than the value of rcvwnd ?

Yes.  The value of cwnd in some implementations grows beyond the
size of the advertised window.  However, the amount of outstanding
data that can be sent into the network at any point in time is min
(cwnd,rwnd).  So, even if cwnd grows incedentally large, TCP is not
allowed to send more data than the window dictated by the receiver.

allman