[erlang-questions] SCTP support (was EPIPE and TCP sockets)
Sat Oct 13 16:01:43 CEST 2007
Per Hedeland wrote:
> Bruce Fitzsimons <> wrote:
>> Throughput is unlikely to be a benefit; considering we have many years
>> experience in TCP behaviour and tuning and not much at all with SCTP.
>> SCTP is a more complex protocol, but does avoid several TCP corner cases
>> including head of line blocking
> Hm, I can't quite see how that relates to TCP vs SCTP. Presumably you're
> not actually referring to the situation in a network switch (i.e. layer
> 2 device), since the upper-layer protocol won't make a difference there?
> I can see how this phenomenon could occur with "naive" multiplexing of
> multiple "channels" on a single TCP session, like, um, the Erlang
> distribution does (though I can't see it happening with Erlang
> distribution since the "channels", i.e. inter-process messages, won't be
> blocked at the receiving end) - is that the connection?
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.
> 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.
More information about the erlang-questions