Subject: [Tsvwg] SCTP, but not TCP: immediate SACKing of duplicate data

From: Michael Welzl <[email-masked]>
Date: Thu, 31 Jan 2008 12:10:55 +1100

Hi all,

I dug through email archives but just couldn't find
the answer to this one:

Both RFC 2960 and 4960 specify:

   When a packet arrives with duplicate DATA chunk(s) and with no new
   DATA chunk(s), the endpoint MUST immediately send a SACK with no
   delay.

and explain this as follows a bit further below:

   Normally, receipt of duplicate DATA chunks will occur when the
   original SACK chunk was lost and the peer's RTO has expired.

This seems to me to be a reasonable choice (e.g. for DSACK
based spurious timeout detection, and please forgive my TCP
language here).

What leaves me confused is: how can this be a good idea for
SCTP, but not for TCP? (the 2581bis document doesn't seem
to have this rule).

Cheers,
Michael

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Wed, 30 Jan 2008 22:07:17 -0700

Michael,

SCTP can be multihomed making it possible that SACKs are delivered
into a black hole.  When duplicate data chunks are received the
destination to which SACKs are being sent are also suspect.  Some
other policies are immediately hearbeating the destination to which
SACKs are being sent if no data have been acknowledged when sent to
that destination within an RTO.

TCP, of course, is not multihomed and the procedures are therefore
less applicable.

--brian

Michael Welzl wrote:                     (Thu, 31 Jan 2008 12:10:55)

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

---

From: Michael Welzl <[email-masked]>
Date: Thu, 31 Jan 2008 16:23:31 +1100

> SCTP can be multihomed making it possible that SACKs are delivered

Okay, I suspected that the multihoming is the reason for this, but...

> that destination within an RTO.

... it's still unclear to me how exactly immediately ACKing
duplicate data chunks helps here. I thought this was about
spurious timeouts. Sorry if it's just a confusion about
details which I overlooked about the operation of multihoming

Cheers,
Michael

---

From: Mark Allman <[email-masked]>
Date: Thu, 31 Jan 2008 22:13:09 -0500

> SCTP, but not for TCP? (the 2581bis document doesn't seem

2581bis does not take into account SACK at all.  So, that is probably
the real answer to your question.  

However, the document does say:

    A TCP receiver SHOULD send an immediate duplicate ACK when an out-
    of-order segment arrives.

I think duplicate data could be reasonably deemed as "out-of-order".
That said, I am not terribly clear about what the benefit would be
unless the ACK contained a DSACK.

allman