Subject: question about data-bundling

From: "Lei Zhang" <[email-masked]>
Date: Fri, 7 Nov 2003 15:15:13 +0100

Hi, sctp-players:
 
I think SCTP segment permits data chunks to be bundled with absence of SACK chunk. (is it right?)

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

But when I deal with such a segment during an unbundling process, I found a problem. It is hard to judge if these data chunks should be put into receive buffer without the acknowledge information. Because the information is used for updating congestion-control algorithm...

TCP always put data into its receive buffer after the acknowledge checking. 

So, I want to know how SCTP deals with the situation. 

...

happy weekends

Lei

---

From: "Randall Stewart (cisco)" <[email-masked]>
Date: Fri, 07 Nov 2003 12:20:50 -0600

> SACK chunk. (is it right?)
Yep that is correct.. you are allowed to send a all DATA packet with 
nothing in it
but DATA chunks.

> But when I deal with such a segment during an unbundling process, I 
> found a problem. It is hard to judge if these data chunks should be 
> put into receive buffer without the acknowledge information. Because 
> the information is used for updating congestion-control algorithm…
>
Well I don't see a problem here. If the receiver has stuff to send, then 
it attempts to send based on
the current cwnd situation. If the flight size is larger than the cwnd 
then this means the
receiver of the "all data" packet will NOT send any new data.. it may 
send a sack (based on
if it is the second such packet it has received).. but it is not an issue.

Even in TCP this happens...

Consider two opposing TCP senders:

----Seq=100 Ack=4000 (data=1400)------------------> 
<---------------Seq=4000 Ack=100 (data=100)
----Seq=1500 Ack=4000(data=1400)------------------> 
<---------------Seq=4100 Ack=100 (data=100)

At the time both sides launch there packets they report the current ack 
state. This is no
updated to the pervious state the peer knows.. but it is included 
anyway... When either side
"updates the acked" information it will gain nothing in the cwnd since 
nothing as changed
and the ack is no different than before...

When you have bi-directional data this will happen all the time .. On 
the other hand if
one side sends at a different time then it can send an update.. just 
like in SCTP's case you
could then bundle a SACK..

Hope that helps..

R

> ….

-- 
Randall R. Stewart
ITD
Cisco Systems Inc.
[email-masked] 815-342-5222(cell) or 815-477-2127(office)