// BLOG · PAGE 5 OF 8

All posts

ALL POSTS · PAGE 5 / 8

NETWORKING

NAT and conntrack: The Stateful Lie Your Router Tells

NAT rewrites addresses; connection tracking is the memory that makes the rewrite reversible. Together they're why the internet survived IPv4 exhaustion — and why your idle SSH session dies, your table overflows, and P2P needs hole-punching.

NETWORKING

ARP: The Protocol That Glues IP to Ethernet

Every packet's last hop is decided not by routing but by a 1982 protocol with no authentication, a cache with quirks, and failure modes — gratuitous ARP, proxy ARP, spoofing — that explain a shocking fraction of 'the network is weird' tickets.

LINUX

Unix Signals: The API Everyone Uses and Nobody Uses Safely

Signals interrupt your program between any two instructions and run your handler in the wreckage. Why almost everything is illegal inside a handler, what async-signal-safe really means, and the self-pipe/signalfd escape hatches.

MEMORY

Arena Allocators: Free Everything at Once

The fastest malloc is a pointer bump; the fastest free is resetting one offset. Arenas trade individual deallocation for speed, locality, and the death of use-after-free within a lifetime — a trade half your workloads should take.

NETWORKING

Wake-on-LAN: How 102 Bytes Turn On a Sleeping PC

A powered-off machine has no OS, no IP stack, no running software — yet a single crafted broadcast frame boots it. How the NIC stays half-awake watching for its own MAC, why WoL is a layer-2 trick, and the homelab plumbing to make it reliable.

DISTRIBUTED-SYSTEMS

Rate Limiting: Token Buckets, Burst Math, and the 429 You Deserve

Fixed windows let 2x through at the boundary, token buckets are three lines of arithmetic, and the distributed version is a consistency problem wearing an ops costume. The algorithms, their failure modes, and what to return when you say no.

KERNEL

How the Kernel Allocates Memory: Buddy and Slab

malloc has a supplier: the kernel's own allocators. The buddy system deals in power-of-two page blocks and fights fragmentation with math; the slab layer turns pages into typed object caches. Between them, every allocation on your machine.

COMPILERS

What the Linker Actually Does

Half of all confusing C build errors — undefined reference, multiple definition, static initialization order — are linker concepts wearing compiler costumes. Symbols, relocations, and the archive rule that surprises everyone.

WEB

HTTP Caching: The Distributed System You Already Deployed

Between your server and each user sit browser caches, CDN tiers, and shared proxies you don't operate — all obeying Cache-Control headers you may have set by accident. The freshness/validation model, and the headers that cause incidents.