[erlang-questions] SCTP support (was EPIPE and TCP sockets)
Sat Oct 13 23:53:51 CEST 2007
Serge Aleynikov <> wrote:
>I also think that Head-of-line blocking (HOLB) wiki description is not
>very representative in regards to TCP/SCTP. The HOL means that if you
>have consecutive packets 1,2,3 sent from A to B, and packet 3 is lost,
>then B holds 1 and 2 until it gets 3 retransmitted, so that it would
>preserve the byte ordering. In SCTP this may not be a problem because
>packet 3 could belong to a different stream.
OK - but if you have significant packet loss, you should try to fix that
>> Of course this can be handled by per-channel flow control (like e.g. SSH
>> does) when using TCP, but I guess this user-level complexity can be
>> avoided by using SCTP instead.
>Hmm, will the session-level per-channel flow control resolve the issue
>above? At the transport (TCP) layer it would still have to guarantee
>the proper byte ordering, therefore forcing HOLB.
Right, it doesn't solve that - it deals with the (probably common) case
that some channel receivers are slower than others. If you're not
prepared to do unlimited buffering in the receiving de-multiplexer (like
Erlang distribution does:-), the slowest receiver sets the limit for the
throughput (possibly at zero) if you can't do per-channel flow control.
More information about the erlang-questions