|
|
Subscribe / Log in / New account

Why not UDP

Why not UDP

Posted Dec 31, 2024 0:21 UTC (Tue) by willy (subscriber, #9762)
In reply to: Why not UDP by npws
Parent article: The Homa network protocol

QUIC is layered on top of UDP because it has to contend with middleboxes. Homa is designed for the datacenter where you will generally not see middleboxes. What advantage would there be to putting UDP between Homa and IP?


to post comments

Why not UDP

Posted Dec 31, 2024 0:51 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (8 responses)

Not having to do it in the kernel?

Why not UDP

Posted Dec 31, 2024 1:19 UTC (Tue) by josh (subscriber, #17465) [Link] (2 responses)

You can send and receive raw IP from userspace: https://www.man7.org/linux/man-pages/man7/raw.7.html

Why not UDP

Posted Dec 31, 2024 1:21 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (1 responses)

Raw sockets require special permissions, and are in general not great for performance, if you have multiple listeners (i.e. multiple applications using Homa).

Why not UDP

Posted Dec 31, 2024 1:24 UTC (Tue) by josh (subscriber, #17465) [Link]

That's a much better argument for UDP, sure. I was noting that it's *possible* to write raw IP protocols from userspace.

Why not UDP

Posted Dec 31, 2024 7:03 UTC (Tue) by dvdeug (guest, #10998) [Link] (4 responses)

Because there's an open source kernel that lets them implement what they want instead of using workarounds?

Why not UDP

Posted Dec 31, 2024 9:48 UTC (Tue) by npws (subscriber, #168248) [Link] (3 responses)

It is questionable whether this would really be a workaround. "The only state that exists on the server is held between the receipt of the request and the receipt of the response by the client". This sounds like pretty much what UDP is meant for, stateless query-response protocols. The benefits of using UDP are obvious, no need for a kernel implementation, at least initially, easier development, easier deployment.

Why not UDP

Posted Jan 3, 2025 17:30 UTC (Fri) by john_ousterhout (guest, #175303) [Link]

A user-space implementation of Homa is probably not a good idea because Homa's congestion control algorithm depends on having complete information about all traffic on the uplink. With a user-space implementation, no one app would have the complete information needed for congestion control (perhaps you could use shared memory among the apps to keep track of this, but that sounds pretty complex).

Why not UDP

Posted Jan 3, 2025 19:55 UTC (Fri) by Wol (subscriber, #4433) [Link] (1 responses)

> The benefits of using UDP are obvious, no need for a kernel implementation, at least initially, easier development, easier deployment.

Except that the costs (as I understand it) basically destroy all the benefits! It's called UDP/IP for a reason (although we normally drop the IP bit, same as TCP). The IP stands for Internet Protocol, which is designed to go through routers etc etc. Homa is designed for a LAN, where typically you're routing MAC addresses through a switch, not IP addresses through a router.

So yes, the fundamental idea behind Homa and UDP is very similar. But the *implementation* is very different, and that's the whole point. And the whole point of Homa is that - by deleting all that overhead of routing - it gets a massive speedup.

As the original article said, don't try to run Homa over a WAN. It's the (in)ability to be efficient over the WAN, that helps it be the Cheetah in the server room.

Cheers,
Wol

Why not UDP

Posted Jan 3, 2025 20:17 UTC (Fri) by corbet (editor, #1) [Link]

I don't think that routing, in particular, is key to the design of Homa, with the possible exception of the assumption that round-trip times will be short and constant. Remember that Homa, too, is built on top of IP...


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds