netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* SCTP data chunk bundling when SCTP_NODELAY is set
@ 2014-06-17 14:17 David Laight
  2014-06-17 15:45 ` Vlad Yasevich
  0 siblings, 1 reply; 10+ messages in thread
From: David Laight @ 2014-06-17 14:17 UTC (permalink / raw)
  To: netdev@vger.kernel.org

If SCTP_NODELAY is set it is difficult to get SCTP to bundle
data chunks into ethernet packets.
This leads to very high packet rates which bundling could easily
reduce by a factor or 8 or 10.

Nagle can't really be enabled because it generates unwanted delays
when traffic is light (Nagle only really works for unidirectional bulk
data and command-response when the messages are smaller than the mtu).

Even if the sending application knows it has more data to send,
there isn't much it can do to get the chunks bundled.

AFAICT 'corking' the socket even stops full sized packets being
sent - so the application will deadlock if the socket write
buffer size is reached before the socket is 'uncorked'.
This also means that the application can't send back to back
full sized packets unless it uncorks the socket at exactly
the right places.

MSG_MORE isn't supported by SCTP, but I'm not sure it would help.
You really need a MSG_NO_MORE flag and to leave Nagle enabled.

About the only thing I can think of is to normally have Nagle
enabled, and then perform the following sequence to force the
buffered data chunks be sent:
1) disable Nagle
2) cork the socket
3) uncork the socket
4) enable Nagle
Four socket calls is a little excessive!

Any other ideas ?

	David

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-06-19 15:36 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-17 14:17 SCTP data chunk bundling when SCTP_NODELAY is set David Laight
2014-06-17 15:45 ` Vlad Yasevich
2014-06-17 16:07   ` David Laight
2014-06-17 16:49     ` Vlad Yasevich
2014-06-18 13:47       ` David Laight
2014-06-18 16:38         ` David Laight
2014-06-19 13:27           ` Vlad Yasevich
2014-06-19 13:45             ` David Laight
2014-06-19 14:05               ` Eric Dumazet
2014-06-19 15:36               ` Vlad Yasevich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).