6 ms·
Eh, I'm not too optimistic about this. Too many millions of routers and middleboxes only support TCP and UDP for this to ever be workable on the public internet
by nrjdhsbsid 10y ago
Eh, I'm not too optimistic about this. Too many millions of routers and middleboxes only support TCP and UDP for this to ever be workable on the public internet. Since layer 4 is traditionally done in the kernel were talking about updating the firmware of countless devices. A better solution is to piggyback on UDP support and add your own protocol in user space.
building a protocol on top of UDP has historically been a good compromise. The base protocol is simple enough that it doesn't add much overhead to just build whatever you want on top of it. The ubiquitous support for UDP leaves little reason to roll your own.
The only bad downside to both UDP and TCP is that support for unsolicited connections is usually completely broken for end users since the 90s because of the vast adoption of NAT.
- wfunction 10y ago> A better solution is to piggyback on UDP support and add your own protocol in user space. I haven't looked at the code, but I imagine this would be relatively trivial to change if it is written at all sanely, right? Hardly sounds like a big thing to focus on.
- nrjdhsbsid 10y agoIt's just semi pointless to try to use anything but UDP and TCP on the www. If you need to encapsulate the MTU path discovery n stuff doesn't work and you're better off just using existing protocols that build on UDP. Look at all the foot dragging with IPV6, and that's just an updated version of an existing protocol with massive support behind it
- swiley 10y agoI know it's nitpicky but www != the internet.
- pzh 10y agoThe code in the article doesn't implement DCCP. It simply requests that the OS create DCCP sockets to use for their client-server example: int listen_sock = socket(AF_INET, SOCK_DCCP, IPPROTO_DCCP); If the OS doesn't support DCCP, then, tough luck...
- dom0 10y ago... can always use raw sockets, with the correct set of root-ish privileges or capabilities.
- unmole 10y agoSure, crafting packets with compliant DCCP headers is simple enough. But, implementing congestion control, which is the raison d'être of DCCP is decidedly a non-trivial undertaking.
- nrjdhsbsid 10y agoThis is already being talked at higher levels than layer 4 though, notably by LEDBAT but I'm sure there's others
- qwertyuiop924 10y agoThe problem isn't necessarily that the change would be hard, it's that getting everyone to update would be nigh-impossible.
- pantalaimon 10y agoWell technically the only thing those routers and middleboxes need to support is IP, why some of them decide they need to meddle with the payload is something I don't understand.
- unmole 10y ago> Well technically the only thing those routers and middleboxes need to support is IP If they are doing NAT, they need to understand the transport layer protocol too.
- zrm 10y ago>If they are doing NAT, they need to understand the transport layer protocol too. And this is why we need IPv6.
- takeda 10y agoIsn't DCCP just an congestion control add-on that is generic, and you can for example use it over UDP? In that case it wouldn't matter, as long as routers support UDP, which they do.