From: "Doug Graham" <dgraham@nortel.com>
To: linux-sctp@vger.kernel.org
Subject: Re: [PATCHv2] sctp: Do not create SACK chunk if the final packet size exceed current MTU
Date: Tue, 04 Aug 2009 16:54:00 +0000 [thread overview]
Message-ID: <20090804165400.GA4941@nortel.com> (raw)
In-Reply-To: <4A72C518.20200@cn.fujitsu.com>
On Tue, Aug 04, 2009 at 10:16:32AM -0400, Vlad Yasevich wrote:
> >> The main point being that if a SACK won't fit in the last chunk of a
> >> message, then your scheme
> >> would just push all the data down so that a new DATA chunk has to be
> >> sent to send the last
> >> few bytes of data,
>
> One thing to mention is that a generally accepted practice is send control
> chunks first, be it bundled or separate. This why BSD ends up sending SACK
> first when it can't bundle it with outgoing data. Additionally, the way
> the code is now, we might end up sending a SACK even when sending DATA is
> prohibited via congestion or receive window. Should we still be doing it
> even if we do not send DATA?
I don't think BSD is doing this deliberately. BSD is behaving exactly how
lksctp would have behaved after my very first patch and before Wei noticed
the bit in the RFC about only appending the SACK if it doesn't cause the MTU
to be exceeded. So I think that when the SACK is too big to be bundled in
the first fragment of a message, BSD is sending the SACK in separate packet
before the DATA more or less by accident.
I don't think the SACK needs to be sent immediately if sending DATA
is prohibited; the normal delay of 200ms should be fine in that case.
The case we're trying to opimize (I think) is when a client is sending
requests and receiving responses as fast as possible from a server.
So we just want to ensure that when a message is sent in either direction,
that it includes a SACK to the message that triggered the request/reply
it's just about to send. That way, nobody ever has to stop and wait for
a SACK before sending their next request or response. If the congestion
window prevents the sending of a request from C to S, there's no rush
to send a SACK to S because it hasn't received the request yet, and so
probably isn't going to need a send a reply anytime soon.
--Doug.
next prev parent reply other threads:[~2009-08-04 16:54 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-31 10:19 [PATCHv2] sctp: Do not create SACK chunk if the final packet size Wei Yongjun
2009-07-31 14:01 ` [PATCHv2] sctp: Do not create SACK chunk if the final packet Vlad Yasevich
2009-07-31 16:02 ` [PATCHv2] sctp: Do not create SACK chunk if the final packet size exceed current MTU Doug Graham
2009-07-31 16:49 ` [PATCHv2] sctp: Do not create SACK chunk if the final packet Wei Yongjun
2009-07-31 17:04 ` Vlad Yasevich
2009-07-31 17:09 ` Doug Graham
2009-08-02 3:03 ` [PATCHv2] sctp: Do not create SACK chunk if the final packet size exceed current MTU Doug Graham
2009-08-03 17:19 ` [PATCHv2] sctp: Do not create SACK chunk if the final packet Vlad Yasevich
2009-08-04 2:45 ` Doug Graham
2009-08-04 3:08 ` Wei Yongjun
2009-08-04 14:16 ` Vlad Yasevich
2009-08-04 16:54 ` Doug Graham [this message]
2009-08-04 17:08 ` Vlad Yasevich
2009-08-04 17:33 ` [PATCHv2] sctp: Do not create SACK chunk if the final packet size exceed current MTU Doug Graham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090804165400.GA4941@nortel.com \
--to=dgraham@nortel.com \
--cc=linux-sctp@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.