Routing is the main process used by Internet hosts to deliver packets.
Internet uses a hop-by-hop routing model, which means that each host
or router that handles a packet examines the Destination Address
in the IP header, computes the next hop that will bring
the packet one step closer to its destination, and delivers the packet
to the next hop, where the process is repeated. To make this
work, two things are needed. First, routing tables
match destination addresses with next hops. Second,
routing protocols determine the contents of these tables.
"Real network engineers construct routing tables by hand,"
but the rest of us use routing protocols. Routing
protocols form the core of the hacker's Internet, because
it is here that all the decisions get made.
Network engineers assign costs to network paths, and
routing protocols select the least-cost path to the destination.
I find that routing protocols bear an uncanny resemblance
to capitalist market economics. In both systems, there is
a large group of "nodes", the decisions of each being driven
by a cost-minimization algorithm. The end result is a
reasonably efficient distribution of "resources".
Furthermore, cost determination is done in similar ways.
A router, like an import/export firm, will compute its
cost, add on profit for its part in the transaction,
and pass this cost along to customers.
Both systems use this method
to achieve reasonable efficiency.