Subject: [tsvwg] How to stop an sctp sender with zero A_rwnd

From: Mohammad Arif <[email-masked]>
Date: Wed, 29 Jul 2009 17:38:49 +0800

Hi All
I m running my SCTP client with linux kernel sctp server.
I m sending SACK with A_rwnd size as zero for all DATA chunks,but the sender
still keeps on sending me DATA chunks.
As i have send A_Rwnd as zero, the peer  should stop sending me DATA chunks
?
Is my understanding wrong?

Please clarify
Thanks

-- 
Regards
Mohammad Arif

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Wed, 29 Jul 2009 04:00:00 -0600

Mohammad,

The SCTP sender is always permitted to have packet in flight.  The
data sent to you when you send arwnd=0 is probing the zero window
to detect when you have processed the enough messages to reopen the
window.

--brian

Mohammad Arif wrote:                       (Wed, 29 Jul 2009 17:38:49)
>    I m sending SACK with A_rwnd size as zero for all DATA chunks,but the
>    sender still keeps on sending me DATA chunks.
> 
>    As i have send A_Rwnd as zero, the peer  should stop sending me DATA
>    chunks ?
> 

-- 
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/

---

From: Randy Stewart <[email-masked]>
Date: Wed, 29 Jul 2009 08:01:44 -0400

Mohammad:

Yes and no..

It is true that a sender should stop sending you data... but not
all data.

Basically it should go in to a very slow sending/resending of data.
Since it must probe for when the rwnd is increased again.

The spec says formally:

"
A) At any given time, the data sender MUST NOT transmit new data to  
any destination transport address if its peer's rwnd indicates that  
the peer has no buffer space (i.e., rwnd is 0; see Section 6.2.1).  
However, regardless of the value of rwnd (including if it is 0), the  
data sender can always have one DATA chunk in flight to the receiver  
if allowed by cwnd (see rule B, below). This rule allows the sender to  
probe for a change in rwnd that the sender missed due to the SACK's  
having been lost in transit from the data receiver to the data sender.
"

Note the rule that says it can have 1 data chunk in flight (including  
if the rwnd is 0).

So its true bulk transfer should stop.. but you should still get
data.. and if you send back a sack acking that chunk you will
get the next TSN.. if you send back a sack acking the previous
chunk holding your rwnd at 0, then the TSN should be resent to
you

Hope that helps

R

On Jul 29, 2009, at 5:38 AM, Mohammad Arif wrote:

> I m sending SACK with A_rwnd size as zero for all DATA chunks,but  
> the sender still keeps on sending me DATA chunks.

-----
Randall Stewart
[email-masked]