I sent an Ethernet packet
Hardware-level Ethernet and Bit-Banging
- Several commenters discuss the dream of “bit-banging real protocols” at very high speeds, pointing to practical limits once signals reach tens or hundreds of MHz.
- FPGAs are repeatedly cited as the realistic answer for flexible high-speed I/O; above ~1 GHz, transceivers become expensive and complex.
- RP2040/RP2350 PIO is highlighted as powerful for high-speed output (100–300 MHz), but commenters note serious limitations for reliable high-speed input due to lack of clock recovery and instruction-cycle constraints.
- Examples include attempts to bit-bang Ethernet, FM radio sampling, and ad‑hoc video output (VGA/DVI/HDMI) on microcontrollers.
Frames vs Packets vs Datagrams
- A long subthread debates terminology: Ethernet frames, IP datagrams, TCP segments, and generic “packets.”
- Some argue for strict correctness; others note that in common practice “packet” is used loosely for “whatever is on the wire,” especially since typical deployments map 1 Ethernet frame ≈ 1 IP datagram.
- The tone ranges from pedantic to playful, with some meta-discussion about whether such nitpicking is useful or off‑putting.
Microcontrollers, Ethernet Chips, and Alternatives
- Many suggest MCUs with built‑in Ethernet MACs (e.g., STM32F4, ESP32 variants) instead of external ASICs like W5100/W5500, generally for performance and simplicity.
- Others defend external chips as great for hobby projects and for learning, even if not “state of the art.”
- Some report reliability issues with W5100-based Arduino setups; others share success with ESP32-based Ethernet modules (e.g., WT32-ETH01).
Learning Networking “From Scratch”
- Multiple commenters share experiences implementing Ethernet/TCP/IP in FPGAs, 8-bit MCUs, or Linux using raw packet sockets, AF_PACKET, AF_XDP, or tun/tap interfaces.
- Recommended learning tools include Wireshark, classic RFCs (e.g., router requirements), and hands-on experiments like custom routers or bare-bones echo servers.
- There’s debate over whether low-speed or hobbyist projects meaningfully prepare one for 10 Gbit/“hard mode” designs; some say fundamentals transfer, others say high-performance work is a different discipline.
Tool-Building, 10x Developers, and Process Tension
- A large subthread centers on the value of building custom tools and exploratory projects (like a hand-rolled stack) versus sticking strictly to tickets and existing libraries.
- Many see tool-building as a core “superpower” that pays off in debugging and productivity; others argue employers rarely want to fund it directly.
- There’s disagreement over “10x developer” narratives, burnout, and whether exploration should be explicitly sanctioned or quietly done in the margins.