Subject: [Tsvwg] draft-ietf-tsvwg-rfc2960-bis-00.txt: SACK & rcv consumption

From: Jon Grimm <[email-masked]>
Date: Fri, 20 Jul 2001 11:11:41 -0500

From Section 6.2

....

	A SCTP receiver MUST NOT generate more than one SACK for every incoming
packet, other than to update the offered window as the receiving
application consumes new data.

....

The first part of this statement makes sense to me: worst case 1 SACK is
sent for every 1 DATA chunk.

The second part makes me wonder, as I do not see other references to
SACK generation purely due to the receive application consuming data and
the consequent change to rwnd (as opposed to DATA chunk ack.)  Does this
happen (and what are the rules) or is there another situation that this
second clause refers to?

Thanks in advance for setting me straight,
Jon Grimm

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

---

From: Randall Stewart <[email-masked]>
Date: Fri, 20 Jul 2001 11:57:50 -0500

> happen (and what are the rules) or is there another situation that this

Yes, I think in TCP it does happen. It is a more rare event (I think)
and not something that happens often...

Consider the situation where the receiver side is clamped at
rwnd=0 since its application stopped reading..

The sender side goes into a loop probing occasionally

Cum-Ack=100
----DATA(TSN=107)------>
<----SACK(100 a_rwnd=0)-----
<time-out>

etc..

Now if the peer does a

<---------SACK(100 a_rwnd=32k)----

The receiver hurry's along the sender and does not
have to await a T-O for the sender to resend its queued
data.

I think this is the main situation that the "gratuitous sack" is
designed for..

R

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