Best afterPacket switching
Fault tolerance
The internet keeps working when pieces of it fail because there is usually more than one path between any two points. Fail a node on a redundant network and the traffic reroutes; fail the one node a single-path network depends on and everything past it goes dark. Switch the abstraction on to watch a node die (the ✕) and the packet find — or fail to find — a way around.
Send a packet from A to D after node B fails. A redundant network should find another way.
9 at = nxt10 path.append(at)11 moved = True12 break—Click a line, drag the slider, or use the ← → keys.
What you are looking at
In both versions node B has failed, and the router walks the graph picking the first live neighbour toward D. The only difference is the shape of the network.
- Buggy — a straight line
A–B–D.A's only link is toB, so whenBdies the packet is stranded atAand never reachesD.Bis a single point of failure. - Procedural — a redundant network where
Aalso connects toC. The router skips the deadBand reroutesA → C → D. Same failure, but the extra path saves the delivery — that redundancy is exactly what "fault tolerant" means.
The packet's path is real execution output; the little network is a hand-built model (marked model: author-asserted) — see how GlassBox stays honest.