Subject: [Tsvwg] SCTP congestion control

From: Janardhan Iyengar <[email-masked]>
Date: Tue, 26 Jun 2001 09:21:47 -0400 (EDT)

Hi all,

At UDel, we have observed the following during our bug-tests of the SCTP
module for ns-2. Consider an instance where cwnd is not a multiple of MTU
(assume fixed MTU), and the application messages are large enough to fill
up the max SCTP packet size (1 MTU). Also suppose that the sender is in
Congestion Avoidance mode.

According to section 7.2.2 (bullet 3):
"   o  When partial_bytes_acked is equal to or greater than cwnd and
       before the arrival of the SACK the sender had cwnd or more bytes
       of data outstanding (i.e., before arrival of the SACK, flightsize
       was greater than or equal to cwnd), increase cwnd by MTU, and
       reset partial_bytes_acked to (partial_bytes_acked - cwnd). "

With our parameters, the flightsize will never become greater than or
equal to cwnd. This causes cwnd to not increase at all, but
partial_bytes_acked is constantly increasing with SACK'd bytes.

regards,
jana

-----------------------------------------------------------------------
"The future belongs to those who believe in the beauty of their dreams"
						    - Eleanor Roosevelt
-----------------------------------------------------------------------
Janardhan R. Iyengar				   [email-masked]
University of Delaware		       http://www.cis.udel.edu/~iyengar
-----------------------------------------------------------------------

_______________________________________________
tsvwg mailing list
[email-masked]
http://www1.ietf.org/mailman/listinfo/tsvwg

---

From: Randall Stewart <[email-masked]>
Date: Tue, 26 Jun 2001 09:22:46 -0500

Janardhan:

There is a subtle point you missed in RFC2960. It has been
clearified in both the bakeoff draft AND in the implementors
guide. It is:

At 6.1 item B)
"
   B) At any given time, the sender MUST NOT transmit new data to a
      given transport address if it has cwnd or more bytes of data
      outstanding to that transport address.
"

Now lets consider an example:

cwnd = 3300
MTU = 1500
Flightsize = 0
Each packet to send is 1500 bytes.

Send 1--->

cwnd = 3300
MTU = 1500
FS = 1500

Send packet 2---->

cwnd = 3300
MTU = 1500
FS = 3000

Now We come to send the third packet.

Do we have cwnd or MORE bytes outstanding? No we have 3000 and cwnd
is 3300... so we ARE allowed to send the 1500 bytes of data. soo

cwnd = 3300
MTU = 1500
FS = 4500

This is a very subtle point that I think if you read the impl-guide
draft AND the bakeoff draft you will get highlighted a bit more.
In fact I would advise you to do a real close read of the impl-guide
draft since these may effect what you have been doing in ns2..

Thanks for your hard work on ns2 we are all anxiously awaiting
its release :)

R

-- 
Randall R. Stewart
[email-masked] 815-342-5222 (cell phone)