Subject: question: unordered SEG_ARRIVAL

From: "Lei Zhang" <[email-masked]>
Date: Wed, 12 Nov 2003 12:49:10 +0100

Hi, sctp plays:
 
 Usually, TCP puts an unordered segment into a buffer that is used to contain such kinds of data, and releases some or all of them if the holes in them are filled by the newest incoming segment. The buffer is installed for each TCP connection.
 
In SCTP, one assocation has a set of congestion control. The kind of buffer mentioned above should be installed for the entire association, or for each substream? My opnion is the buffer should be substream-based. And the unordered messages could be released according to the message sequences(stream sequence number). 
 
Am I right?
 
Kind Regards
 
Lei

---

From: "Randall Stewart (cisco)" <[email-masked]>
Date: Wed, 12 Nov 2003 07:45:14 -0600

Lei:

I am confused by your use of the word "unordered" in this email.

If you are refering to an un-ordered chunk (marked with the U bit set to 
1) these would
have NO need for any "buffer" for reordering.. since the micro-second they
arrive they can be released to the app for reading.

Now if you are referring to a ordered message that is sent in a stream 
with the
U bit set to 0. Then yes, normally an implementation would probably want
to do a re-order queue per stream. This of course is an implementation
detail. In the KAME stack we have a linked list of chunks pending 
re-order per
stream... one could envision a implementation that would possibly run 
(with less
performance) where only one queue was used i.e. its a trade off for the
implementation memory vs performance.

Now I don't really understand your use of the word "buffer" either. 
Since SCTP
is NOT like TCP in that message boundaries are preserved and you can't
just keep a buffer to fill in things awaiting re-order. There is more 
information
then just the data that must be held on a chunk...  But I guess you must of
meant buffer equivilant...

R

Lei Zhang wrote:

> Hi, sctp plays:
>  
>  Usually, TCP puts an unordered segment into a buffer that is used to 
> contain such kinds of data, and releases some or all of them if the 
> holes in them are filled by the newest incoming segment. The buffer is 
> installed for each TCP connection.
>  
> In SCTP, one assocation has a set of congestion control. The kind of 
> buffer mentioned above should be installed for the entire association, 
> or for each substream? My opnion is the buffer should be 
> substream-based. And the unordered messages could be released 
> according to the message sequences(stream sequence number).
>  
> Am I right?
>  
> Kind Regards
>  
> Lei

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