Show Notes
Episode 8 – Fuchsia's Netstack3 with Bruno Dal Bo Silva.
In this episode our guest is Bruno Dal Bo Silva, Staff Software Engineer at Google. We will dive into his path into networking and Rust, and the story behind netstack3, the Rust-based networking stack built for Google’s Fuchsia operating system. We cover its origins from the Go-based netstack, why Rust was chosen, and the challenges of implementing a full range of protocols — from TCP and UDP with their POSIX socket API to the many less-visible but essential pieces like ARP, ICMP, IPv6, DHCP, and more. We hope you brought a bowl as you're in or a juicy letter soup with this one. Bruno also shares insights on where he sees the future of netstack3 — including its potential beyond Google.
Learn more:
https://fuchsia.dev/ netstack3 source code: https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/src/connectivity/network/netstack3/ netstack3 publishing tracking bug: https://fxbug.dev/448156020 Fast UDP I/O for Firefox in Rust: https://max-inden.de/post/fast-udp-io-in-firefox RFC 2462 - SLAAC: https://www.rfc-editor.org/rfc/rfc2462 smoltcp (Rust TCP/IP stack for embedded): https://github.com/m-labs/smoltcp
Rama
If you like this podcast you might also like our modular network framework in Rust: https://ramaproxy.org
Chapters
00:00 Intro 00:42 Introduction to Bruno and his Journey 04:37 Bruno's Engineering Background and Its Impact 06:56 Exploring Fuchsia: Overview and Architecture 10:08 Transitioning to NetStack 3: The Rust Revolution 17:35 Diving into Networking Protocols: Life of a Packet 24:45 Understanding ARP and Ethernet Protocols 28:00 Dynamic Host Configuration Protocol (DHCP) Explained 34:41 The Future of Networking: IPv6 and Happy Eyeballs 40:52 QUIC Protocol: User Space vs Kernel Space 46:53 More about netstack3 and unsafe code usage 55:22 Async usage in Netstack3 01:00:36 Comparing netstack3 with smolltcp 01:04:50 Running your own TCP stack on the linux platform 01:06:25 Roadmap to get fuchsia on crates.io 01:11:37 Closing Thoughts and Future Directions 01:15:32 Outro
Netstack.FM
More information: https://netstack.fm/#episode-8 Join our Discord: https://discord.gg/29EetaSYCD Reach out to us: [email protected]
Music for this episode was composed by Dj Mailbox. Listen to his music at https://on.soundcloud.com/4MRyPSNj8FZoVGpytj.
More from netstack.fm
Episode 38: Building and testing network stacks with Rama. In this Protocol Shorts episode of Netstack.fm, Glen talks with Brecht Stamper about Rama, the modular Rust framework for building clients, servers, proxies, and other network systems. Brecht shares how he came to understand Rama’s core idea that everything is a service, and why that simple input to output contract makes it easier to compose complex stacks without constantly inventing new traits or glue code.
episode 37: dial9: from black box to insight in Tokio.
Remaster of: Season 1 · Episode 3 — OpenTelemetry, eBPF, and Metoro
Remaster of: Season 1 · Episode 5 — Tokio with Carle Lerche