Summary

  • RFC 1992 expected routing databases to be incomplete and inconsistent: providers could restrict distribution, recipients could retain selectively, internal maps could differ by requester and caches could become stale.
  • Nimrod moved special route calculation toward the user or its agent and argued that one device’s chosen path could avoid loops caused by conflicting hop-by-hop maps—without proving the map correct, the service delivered or the architecture deployed.

The ordinary picture of link-state routing begins with agreement. Each participant learns enough of the same topology to calculate compatible next hops. RFC 1992 began somewhere less comfortable. In the very large internetwork Nimrod was meant to address, some devices would be unable to store everything, some providers would decline to reveal everything, and some acquired information would age before it was used. A complete, identical database was not merely unavailable. Requiring one would defeat the architecture’s reason for existing.

That premise changed what a “map” had to mean. A Nimrod map was a graph of nodes and directed adjacencies describing available connectivity, services and restrictions. The same physical region could be represented at different levels of detail. One requester might see a cluster as a single node; another might receive an internal map; a representative could return different internal maps to different requesters, including for security reasons. RFC 1992 therefore says directly that routers need not hold consistent maps.

Scale by deciding what not to know

Nimrod offered several levers for shrinking routing state, and none was free. Clustering reduced the number of entities visible to route calculation. Repeated clustering produced a hierarchy whose top contained everything, but the algorithms did not have to match from level to level. A cluster needed internal connectivity when its components were operational; it did not have to coincide with a physical network, router or host boundary.

Abstraction then reduced the description of each visible entity. The RFC’s examples expose the trade-off. An abstraction could omit a service offered by only a small fraction of a cluster or report services as averages. Both choices save information. Both can also remove exactly the distinction that matters to an unusual flow. A compact map is not a false map merely because it is coarse, but it cannot support a route choice that depends on detail it does not contain.

Distribution supplied a separate control. Each cluster could decide which portions of its information to advertise and to whom. Recipients could decide what to keep. A provider might publish details to siblings, answer a request about one region, tailor information to a user, or keep an internal map private. A receiver might retain only information from clusters offering universal access. Provider disclosure and receiver storage were therefore two different decisions, even though both reduced the amount of global state.

The distinction matters economically and operationally. Information hiding could protect a provider’s private structure or service policy. Selective retention could keep a smaller device within its memory and processing budget. The resulting absence of data does not reveal which reason applied. A missing edge may mean policy, abstraction, limited capacity, delayed acquisition or simple error. Nimrod did not make those causes equivalent; it made incomplete knowledge survivable.

The customer for complexity paid for it

The architecture localized route generation at traffic sources and destinations. A user could choose a route directly, but RFC 1992 expected a device acting on the user’s behalf to do the work. Algorithms did not need global coordination and could differ by location. That opened an incremental path for experimentation: a new calculation method could serve the party that wanted it without requiring every router to upgrade first.

This was also a cost-allocation rule. Generating routes under multiple constraints was described as usually NP-complete. Only entities demanding a special path—guaranteed throughput, bounded delay, restricted providers or another service combination—needed to pay the acquisition and computation cost. Others could use less demanding machinery.

But shifting cost to demand does not create equal ability to pay it. A user with a richer map, better algorithm or stronger provider relationship could calculate choices unavailable to another. Information hidden by a provider remained unavailable no matter how much computation the user supplied. The architecture permitted local optimization; it did not prove that the market for information or service was fair.

One calculation, one path, one narrower safety claim

RFC 1992’s loop argument follows from separating route choice from hop-by-hop improvisation. If one router calculates a path from the information it holds, the forwarding decision can carry the result of that calculation. Intermediate routers do not each choose a fresh next hop from mutually inconsistent databases. The inconsistency remains, but it no longer composes itself into a forwarding loop along that established path.

The forwarding modes expressed that result differently. In flow mode, a packet carried a path identifier for state previously set up in intermediate routers; setup also carried resource requirements and could return confirmation or failure. CSC and CSS modes carried ordered connectivity specifications rather than the policy rationale that selected them. In datagram mode, Nimrod used pre-set flow-mode state to obtain a strictly non-looping path without an IPv4-style source route.

It is therefore inaccurate to reduce Nimrod to “source routing,” or to say that every packet carried a complete physical route. The RFC describes several allocations of state between packet and router. What joins them is the prior choice of a path, not one universal wire format.

The safety claim must also remain narrow. A path computed by one device avoids the particular loop that can arise when independent routers combine incompatible next-hop beliefs. It does not prove that the calculating map was fresh, that the path still existed, that setup state remained installed, that a provider honoured an advertised service, or that packets reached the endpoint. Loop freedom is not optimality, reachability or application success.

A map may be authenticated and still be wrong

RFC 1992’s trust section is unusually candid. A node may hide its internal map and operate internally as its administrators decide, so long as it satisfies its external characterization. Yet the paper’s example shows an advertised map implying privacy that the physical network cannot enforce. It then observes that even authenticated information from a trustworthy node may contain an honest mistake.

That distinction prevents authentication from swallowing every other evidence question. A signature or trusted channel may identify the source and protect the message in transit. It does not establish that the abstraction preserved a rare service, that the cache has not expired, that the physical network enforces an advertised separation, or that the provider can deliver a requested quality. Provenance, truth, freshness, interpretation and execution remain separate.

Caching makes the same boundary visible in time. Nimrod encouraged reuse of acquired routes to reduce delay and repeated retrieval, while warning that stale cache entries could produce poor-quality routes. Deciding whether and how long to cache required an estimate of useful life. The document offered the lever; it did not supply a universal freshness oracle.

Architecture was not adoption

RFC 1992 is Informational. It says the described protocols and distributed databases are specified elsewhere, and its security section says security issues are not addressed. Earlier, RFC 1752 recorded that the IESG considered Nimrod too much of a research project to be an IPng candidate. RFC 1753 declined to assume broad adoption because the designs had not yet been deployed, tried and tested in practice. In 1997, RFC 2102 still described unicast route generation as a choice left to the routing agent and left multicast generation and forwarding unspecified.

Those documents do not make the architecture unimportant. They identify its historical status accurately. Nimrod was a research programme with a forceful answer to scale: do not make global knowledge the price of forwarding safety. Lu Heng’s account of localized future decision helps illuminate the distribution of choice, while his running-code test prevents publication from being mistaken for operation. His distinction between symbolic and executable layers supplies the final discipline: a map advertises a claim; a path setup changes state; observed packets and service outcomes occupy later layers.

RFC 1992’s durable contribution is thus a boundary, not a victory lap. The network could tolerate different pictures because one path did not ask every hop to redraw it. What the architecture saved in universal state, it spent in selective information, source-side calculation and explicit path machinery. It removed one reason for loops. It never promised that an incomplete map would become true merely because the path did not circle back.

Sources