[e2e] TCP sequence number reset

Kacheong Poon ka-cheong.poon at oracle.com
Mon Mar 28 03:05:14 PDT 2011


On 03/27/11 10:46 PM, Detlef Bosau wrote:

> At least one reason is that a sequence number in TCP is never defined by
> the user but negotiated in the startup phase of the flow.
> Particularly, refer e.g. to RFC 793, recently used sequence numbers must
> not be used for a certain period of time.


As I mentioned in my original email, I made the assumption
that TCP sequence number can be accessed by applications.
In my reply to Joe Touch's email, it is just a very simple
mapping.  We can discuss whether this is a good idea to
export this number.  But this is orthogonal to my question.
My question is why does one want to reset TCP sequence number?


> In my opinion, your problem is twofold.
>
> First, you propose mechanisms, such as resetting a TCP sequence number
> by the user, without giving a clear reason for doing so. And please keep
> in mind, that in science, we must give valid reasons for taking a
> certain decision. Particularly this holds true for adding mechanisms to
> protocols.


Note that it is not "my" proposal.  It is a proposal by
the authors of the draft I mentioned and I am not one of
the authors.  I just map it to TCP which is a better known
transport protocol so that more people can comment, even
without knowing about SCTP.  The mapping is simple and
straight forward.


> Second, and admittedly I'm not quite familiar with SCTP, so I don't know
> the API/user view for it, any kind of protocol design is strongly
> governed by the abstraction we wand to achieve and the behaviour, which
> is presented to the user. And particularly, TCP provides a user with an
> ordered and reliable stream of octets. Particularly, there is no random
> access to this stream. In that respect, a TCP flow between two endpoints
> resembles an inter process pipe. From that point of view, there is
> absolutely no need for an application to deal with certain sequence
> numbers.


What you wrote above also holds for SCTP with 1 single stream.
The reason to have a stream sequence number is that there can
be multiple streams (a stream is like a TCP connection) in one
SCTP association.  Having an SSN makes the stack easier to
deal with message ordering in each stream.


-- 

					K. Poon.
					ka-cheong.poon at oracle.com


More information about the end2end-interest mailing list