Networking Kid / The Journey Of A Request

Why Your Device Only Knows One Step Ahead

The machinery carrying your message never holds a picture of the whole route.

It is natural to imagine that something, somewhere, plots a course from you to the destination before the journey starts. Nothing does. Your device holds a very small amount of knowledge: it can recognise addresses that belong to its own immediate neighbourhood, and for everything else it has a default direction, a nearby piece of equipment that will take the message off its hands. That equipment knows a little more. It can distinguish between several onward directions and picks the one it believes is best for that destination. Then it passes the message on and forgets about it entirely. It keeps no record and accepts no responsibility for what happens next.

Repeat that a dozen or so times and the message crosses the world. At each step the decision is local, made from information that piece of equipment holds about the directions available to it, and made afresh for each message rather than once for the conversation. No single participant is responsible for the outcome and no single participant could describe the whole journey if you asked it. The route is an emergent property of many small independent choices rather than a plan issued from above, which is precisely why the system copes so gracefully when one of those choices suddenly has to change.

The practical payoff of understanding this is a shift in how you think about faults. A message that does not arrive did not fail somewhere abstract and unknowable. It failed at a particular handover, and the handovers happen in a definite order. That ordering is what makes patient troubleshooting possible: you work outward from yourself, confirming that each stage in turn is doing its job, rather than staring at the destination and wondering why it will not respond. Most people skip straight to the far end, which is the one part of the chain they can do least about.