[HN Gopher] Snap: A microkernel approach to host networking (2019)
___________________________________________________________________
Snap: A microkernel approach to host networking (2019)
Author : teleforce
Score : 68 points
Date : 2021-08-21 14:03 UTC (8 hours ago)
(HTM) web link (research.google)
(TXT) w3m dump (research.google)
| techthumb wrote:
| How does this compare to OpenOnload?
| jeffbee wrote:
| Hard comparison to make. Snap can be used with traditional
| socket APIs, but that is not really its purpose. OpenOnload can
| _only_ be used that way.
| kwindla wrote:
| So much interesting stuff happening in userspace networking these
| days. It really feels like the pieces are almost there to treat
| the network as just another part of the stack that you're
| programming. (Albeit a pretty low-level part!)
|
| If you're interested in Google Snap, you might also want to take
| a look at Snabb [0], and Rush (Snabb in Rust) [1].
|
| For an example of how this stuff is useful at sub-Google scale,
| we just open-sourced the Rush-based tools we use to test our
| WebRTC code [2]
|
| [0] https://blogs.igalia.com/dpino/2017/11/13/snabb-network-
| tool...
|
| [1] https://github.com/eugeneia/rush
|
| [2] https://github.com/daily-co/synthetic-network
| dochtman wrote:
| Rush sounds interesting, but the README is pretty sparse. Do
| you know more context/background?
| kwindla wrote:
| Sure. We [0] make APIs for live video and audio, so we do a
| lot of different kinds of network testing. Over time, we had
| cobbled together a variety of tools to support load/scaling
| testing, CI/CD, testing during development, and helping our
| customers debug and test their applications. For all of
| these, some ability to simulate packet loss, latency, jitter,
| and other network realities is somewhere between helpful and
| critical.
|
| I'm a big fan of Snabb, and had a few conversations with Max
| Rottenkolber, one of the Snabb authors, about how we might
| tackle building a common network-simulation framework that we
| could use across all the different kinds of testing we do.
| Max suggested more or less the approach that you can see in
| the synthetic-network repo. (He wrote a series of documents
| during implementation that are really fun reading. They are
| in the /doc directory.)
|
| Since we increasingly use Rust in various places, and our use
| case was a bit different than the core use cases for Snabb,
| Max took a swing at porting parts of Snabb to Rust for the
| synthetic-network project. That worked out really well, and
| that Snabb-implemented-in-Rust is now Rush!
|
| [0] https://www.daily.co/
| masklinn wrote:
| > So much interesting stuff happening in userspace networking
| these days. It really feels like the pieces are almost there to
| treat the network as just another part of the stack that you're
| programming. (Albeit a pretty low-level part!)
|
| There's also fly doing userland tcp over userland wireguard
| because peeps might not have a local wireguard client.
| dochtman wrote:
| It's not just Fly IIRC, the official macOS Wireguard also
| relies on userland Wireguard (wireguard-go), as does
| Tailscale.
| kwindla wrote:
| > There's also fly doing userland tcp over userland wireguard
| because peeps might not have a local wireguard client.
|
| Oh, yeah! That whole thing [0], up through the integration
| with flyctl, is fire.
|
| [0] https://news.ycombinator.com/item?id=26315695
___________________________________________________________________
(page generated 2021-08-21 23:01 UTC)