> Am 14.09.2016 um 18:33 schrieb Jeroen Massar <jer...@massar.ch>:
> 
> On 2016-09-14 18:13, Andreas Fink wrote:
>> I could do a presentation on the SCTP networking protocol which combines
>> some features of TCP and UDP and offers some unique features neither TCP
>> nor UDP have.
> 
> Is there any tool that actually uses SCTP ? :)

I'm using it day in day out since 15 years. And theres no alternative to it for 
me. The Sigtran family (SS7 signalling over IP) requires it mandatory. Theres 
no other option there. SCTP was mainly developed because signalling over IP 
needed reliable multipath support. So protocols which 100% depend on SCTP are 
at least M2UA, M2PA, M3UA, SUA, IUA.

> IPFIX is supposed to use it, but everybody still sends over UDP, rare
> support for SCTP (except for purists like me who did implement it and
> then also never really used it).

Great. why did you not use it? UDP is not a reliable datagram service. SCTP is.

> WebRTC is supposed to go partially over SCTP, never seen it actually used.

WebRTC requires it (but can work around by encapsulating it into UDP which just 
means more useless overhead).

> Apple chose to use Multipath TCP instead...

OS X has a implementation of SCTP since OS X  10.3.8. Its open source. Apple 
has not added it to the kernel (besides promising it many many many times) 
because it would mean changing their NAT & Firewall as well and as there is no 
user demand, they where too lazy and rather wanted to spend time on nice shiny 
guy stuff. The kext is kernel dependent due to a missing API to link in a 
layer4 protocol so every new version needs awaiting new kernel sources to be 
published and recompiling (10.12 however worked out of the box with 10.11 
sources). I have like 20 radars open with Apple about it (*big sight*).

Linux has SCTP built in since a long time. Solaris, has it. HP/UX has it. 
Windows I actually don't know.

Part of the problem is:  If desktops don't have it, then developers don't tend 
to use it. If developers don't want to use it, then the OS vendors dont tend to 
implement it.  This however also applies to other layer 4 transport protocol. 
Thats why everyone uses plain old TCP and UDP.

Also 10$ crap ADSL routers who don't understand how to properly implement NAT 
don't help either. Hopefully NAT will be a relict of the past soon due to IPv6 
(*cough cough*).

> The article on Wikipedia does not list much more:
> https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol
> 
> Apparently some variant of SSH should support it, but no actual
> implementations mentioned there either.

Any application which uses TCP or UDP could be changed into using SCTP by a 
single line of code. (hint: IPPROTO_SCTP on socket()) However there are 
additional features which neither TCP or UDP have such as seamless adding 
removing IP's on a established session, Multipath support. stream multiplexing, 
concurrent establishment of a connection from both sides (think of tunnels for 
example) and others. From a developers point of view there's a lot in it, 
especially if you care about reliability. SCTP is proven, reliable, established 
and well supported in the Unix arena. Developers just have to know about that 
its there and it is useful for many things.

That's why I think the key is to let developers know that there's a cherry to 
be picked up. 
And I would be happy to present its benefits and features.

But if we only have java developers here who usually encode a boolean into a 
UTF16 string into XML over SOAP over HTTP over a 10G fiber link, then it would 
be a waste of time of course.


Andreas Fink

_______________________________________________
swinog mailing list
swinog@lists.swinog.ch
http://lists.swinog.ch/cgi-bin/mailman/listinfo/swinog

Antwort per Email an