[erlang-questions] SCTP support (was EPIPE and TCP sockets)

Per Hedeland <>
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 mailing list