"However, by far the biggest showstopper to SCTP adoption is the lack of session layer in TCP/IP and the broken Socket API. If you want to use SCTP with the Socket API, you have to indicate the protocol to use in the socket call, which means that every application that would benefit from SCTP support must be changed, recompiled and tested. There is no way that you could take existing applications, add SCTP support in the operating system and have a better-performing Internet as the result."SCTP was never intended to be a TCP replacement or a basis for TCP or whatever Ivan Pepelnjak thinks it to be. It is a separate protocol which is designed to provide a different set of features to a different set of applications.
He and the large number of people, would like to have exactly their use-case covered by exactly the simplest possible interface, preferably baked into the kernel or even better, the hardware, for the best performance. I don't think it's going to happen.
I'm sorry I have to live in a world where networking === TCP, over port 80 or 443. It wasn't supposed to be this way.
What went wrong with SCTP? By the time TCP-friendly congestion control research had reached a critical mass and started producing results, everyone had given up, adopted TCP as the sole transport protocol, and the deck was strongly stacked against anything that wasn't running on TCP.
(This is an edited version of mcguire's comment that was needlessly inflammatory, hopefully we can have a more sensible discussion about it this way)