[erlang-questions] gen_sctp throughput mystery
Tue Mar 6 11:46:34 CET 2012
On Sun, Mar 04, 2012 at 01:19:00PM +1100, Anthony Shipman wrote:
> On Sun, 4 Mar 2012 12:43:49 pm Anthony Shipman wrote:
> > > The now() value shows the packets being written to the socket at 11ms
> > > intervals on the client but they are received at strict 200ms intervals
> > > on the server. The server is just doing a simple receive loop.
> > >
> > > Is there something in SCTP that limits the rate on an SCTP stream?
> > I forgot to mention that the behaviour is the same for sctp_nodelay=true.
> Replying to my own question. It's the net.sctp.sack_timeout = 200 kernel
> parameter. But I don't understand why it should limit the server to 5 packets
> per second over a localhost link.
Great finding if true... Can you elaborate? What happens when you tweak this
parameter? Note that 1 / 200ms is exactly 5 per second.
I found this link:
And a quote from it it says:
That 200ms is a configuration based on the SCTP RFC. According to that
an acknowledgment(SACK) should be generated for at least every second
packet received, and SHOULD be generated within 200 ms of the arrival
of any unacknowledged DATA chunk.
So, might it be so that if you send just one data chunk there will be
a 200 ms delay before an ack?
I have focused on the SCTP socket API, not dug into the RFC:s...
> Anthony Shipman Mamas don't let your babies
> als@REDACTED grow up to be outsourced.
> erlang-questions mailing list
/ Raimo Niskanen, Erlang/OTP, Ericsson AB
More information about the erlang-questions