Live data from Hacker News

What went wrong: SCTP (2009)

blog.ipspace.net

41–48 of 48 posts

Re: What went wrong: SCTP (2009)

#41
post #14

Earlier quoted context omitted.

They do and don't. They use a user-space implementation based on UDP.

With datagram TLS in between, which added encryption. Which is preferable to what you'd do without UDP encapsulation.

Is there something wrong with RFC 3436?

Re: What went wrong: SCTP (2009)

#42
I think the multi-homing feature of SCTP is not so useful. It adds a layer of complexity without so much gain.What do you think of it.

1) It makes the SCTP header complex. Without it, IP address in IP header is sufficient. With it, IP addresses have to appear in SCTP header too.

2) Multi-homing makes it difficult to configure firewall rules, for example NAT(Network Address Translation). Linux tools like iptables, LVS(Linux Virtual Server) do not work well with it.

3) I think the benefit of multi-homing can be gained in Network-layer or Data-Link layer instead of transport layer, for example network interface bonding, etc. It relieves the complexity of the application in this way.

I must iterate:" I’m taking a 3000-foot perspective here, it is still a far away perspective although less a 0 than the author, and whatever I’m writing could be completely wrong. If that’s the case, please point out my mistakes in your comments."

Re: What went wrong: SCTP (2009)

#44
post #29

Earlier quoted context omitted.

I think I can credibly defend an argument that what went wrong with SCTP was that it got an IP protocol number rather than a UDP port. That one decision meant that, on most operating systems, using the protocol would require a kernel change, and virtually no middlebox would pass SCTP frames unmolested. They saved eight bytes and some negligible amount of checksum processing, and got no other benefits from being a fir…

There's a spec for SCTP over UDP and libraries that implement it, so what's stopping anybody now?

Because if you're going to start building a protocol on UDP from scratch today, you can do much better than SCTP based on what concerns you're trying to solve. Pretty much every new UDP protocol pays at least lip service to the mobile use-case, and tries to get to zero roundtrip session establishment for majority of sessions ( and here the 4-way handshake of SCTP sticks out like a sore thumb).

But then there are some people who might be more interested in making a secure protocol from scratch (rejecting the layering complexity and third-party dependence of SSL). For instance: http://cr.yp.to/tcpip/minimalt-20130522.pdf

Re: What went wrong: SCTP (2009)

#45
post #13
post #7

Earlier quoted context omitted.

It's a problem that apps have, but they just shift it onto the user.

That's a bit hard for me to fathom, because the overwhelming vast majority of users don't have multiple Internet connections, and serverside applications can make use of multiple Internet connections without protocol-level multihoming.

ummm.... mobile devices, though not truly multihomed (in the sense of using multiple NIC's simultaneously) approximate multihoming in a time-division sense.

Re: What went wrong: SCTP (2009)

#46
post #29
post #17

" 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 i…

I think I can credibly defend an argument that what went wrong with SCTP was that it got an IP protocol number rather than a UDP port. That one decision meant that, on most operating systems, using the protocol would require a kernel change, and virtually no middlebox would pass SCTP frames unmolested. They saved eight bytes and some negligible amount of checksum processing, and got no other benefits from being a fir…

You are possibly right, although I suspect the kernel change issue is less of a problem than the second. Getting middleboxes to pass UDP unmolested....

Re: What went wrong: SCTP (2009)

#47
post #46
post #29

Earlier quoted context omitted.

I think I can credibly defend an argument that what went wrong with SCTP was that it got an IP protocol number rather than a UDP port. That one decision meant that, on most operating systems, using the protocol would require a kernel change, and virtually no middlebox would pass SCTP frames unmolested. They saved eight bytes and some negligible amount of checksum processing, and got no other benefits from being a fir…

You are possibly right, although I suspect the kernel change issue is less of a problem than the second. Getting middleboxes to pass UDP unmolested....

You can at least configure virtually every middlebox to pass UDP. You cannot reliably do that for random ipprotos.

Re: What went wrong: SCTP (2009)

#48
post #35

Earlier quoted context omitted.

You might be able to credibly defend it, but it's still depressingly silly that we're cut off from a large swath of our extensible-by-design protocol stack. These days, people justify HTTP for everything with the argument that opening up a TCP socket is not guaranteed to work as reliably as HTTP-over-TCP. They might be right, but god that sucks.

I see arguments like this as a form of the naturalist fallacy. Not every aspect of the original TCP/IP design is worth preserving and exploiting. We don't need an URG pointer. We don't need IP source routing (really, we don't need the IP options we have now). We don't need a "length" field in UDP. &c. TCP should have been built on top of UDP, as should ICMP. The IP "protocol" field doesn't do us much good. I don't th…

For the record, IP source routing has its use cases. It's done via firewall or high-end router policy, and it's not a federated protocol. but it's handy.
Post reply on HN