Summary

  • Demand RIP let switched X.25 and ISDN circuits close by replacing periodic WAN broadcasts with acknowledged, triggered exchanges. Routes learned through those exchanges normally became permanent rather than expiring in ordinary silence.
  • A failed attempt to establish a circuit could make the circuit manager report the next hop down, after which routing entries aged, entered hold-down and could disappear. An acknowledgement proved receipt of an update or fragment, not the truth of the route or successful user traffic.
  • RFC 1581 reported one completed implementation tested against itself on two WAN types. RFC 1264 made the evidence limit plain: one implementation in one environment was not proof of independent, multi-vendor interoperability.

The expensive heartbeat

The first problem was not that RIP could not describe a route. It was that its usual proof of continued life cost money and capacity every time it repeated itself.

RFC 1582, whose official record dates it to February 1994, began with connection-oriented public data networks. An X.25 or ISDN circuit could be opened when traffic appeared and released when traffic stopped. User exchanges might be short and infrequent. Periodic routing updates resisted that economy: a call had to remain open, or be opened repeatedly, merely so the router could say again what it had already said.

The document put numbers on the pressure. With N routers, a broadcast cycle on such a WAN could become N multiplied by N minus one separate updates over half that number of pairwise connections. The word “broadcast” concealed serial work because the WAN offered no common broadcast facility. An interface could also have fewer channels than destinations. The RFC used an ISDN Basic Rate Interface with two simultaneous calls as a simple example of a system expected to know more peers than it could contact at once.

Sending less often was not a free solution. It lowered charges and queue pressure while making changes slower to propagate. Sending at the usual interval kept responsiveness but consumed the very switched-circuit advantage the network had purchased. The design therefore changed what silence meant.

The route stopped aging when the line went quiet

The companion RFC 1581 is an Informational protocol analysis; its RFC Editor record distinguishes that status from the companion specification. It summarized the central bargain. On demand WAN links, periodic broadcasts disappeared. Routing updates travelled only when a database event required them, and the receiver did not time out the information in the ordinary course.

RFC 1582 expressed the same change through two classes of route. Information learned from periodic LAN responses remained temporary. Without another broadcast, it expired. Information learned from a triggered response on the WAN was normally permanent. Quietness no longer meant that the evidence was getting old. It meant that the system had seen no event that its rules recognized as a contradiction.

That is the historical hinge. A quiet line was not an observation of continuing reachability. It was the absence of a reason to reopen an expensive circuit. The route survived because the protocol assigned persistence to the last accepted state.

This was not careless optimism. It was an explicit presumption with named ways to rebut it. A response could mark a route unreachable. A complete response could omit a route that had existed before. An interface could go down. Repeated routing exchanges could remain unacknowledged. Most importantly, an attempt to carry ordinary traffic could fail to establish the virtual circuit, causing the circuit manager to report the next hop down.

The distinction matters because a timeout and a test are different records. Ordinary RIP repeatedly refreshed the route and let missing refreshes age it. Demand RIP stopped paying for that recurring evidence and waited for event-driven contrary evidence. It did not make the path immortal. It changed who had to speak before the route began dying.

The circuit manager acquired a routing voice

RFC 1582 drew a stack in which IP, IPX and their routing applications sat above a circuit manager, which in turn controlled the connection-oriented WAN. The circuit manager translated a next-hop network-layer address into the physical address needed to place a call. When data arrived and no virtual circuit existed, it tried to open one. After inactivity, it could close the circuit.

This component did more than place calls. If it could not establish a circuit during normal routing, it sent an internal circuit-down indication to the routing application. Routes through that next hop then moved from permanent confidence into a timed sequence: aging, unreachable advertisement during hold-down, and eventual deletion. If the circuit came back before the process finished, the routes could be reinstated. If they had already expired, the routing task requested a fresh exchange and re-primed both databases.

A circuit-up indication was equally bounded. It showed that the circuit manager had managed to contact the peer under its own recovery rules. It did not prove that every route in the previous database remained valid. That was why the routing applications exchanged full information after recovery.

The RFC left the circuit manager's recovery process outside scope. It could require retries, channel selection, address mapping and product-specific decisions. The routing protocol consumed an up or down indication without turning that indication into a universal explanation of the fault. A busy channel pool, wrong peer mapping, failed remote system and broken line could all end at the same internal boundary.

The implementation section exposed another seam. The described product closely bound circuit manager and routing task, almost as one program. Unix systems might put the circuit manager in the kernel and the routing application in a separate process; other products might use a separate card. If the two parts could die and restart independently, RFC 1582 required a keepalive and a way to resynchronize state. A running circuit manager beside a dead routing process was not healthy routing. A running routing process beside a dead manager could not safely keep its permanent claims.

Acknowledgement closed the delivery question—not the route question

Triggered updates saved recurring traffic, but made each change more important. A single datagram could disappear because no virtual circuit was available, the transmit queue overflowed, a circuit was pre-empted or a damaged frame was dropped. Without the next periodic broadcast, the lost change might not repair itself.

RFC 1582 therefore added requests, responses and acknowledgements. A response was retransmitted until acknowledged. Large updates were split into numbered fragments, each acknowledged separately. The receiver applied the database change only after every fragment arrived. If the set remained incomplete past the reassembly interval, it discarded the fragments and requested the full update again. A fragment carrying a new sequence number displaced an incomplete older set.

These rules created useful receipts. Acknowledgement answered whether the peer received a particular response fragment. Reassembly answered whether the receiver had the complete set needed for one database update. The sequence separated one version of the update from another.

None answered whether the advertised network really carried user packets. A peer could reliably deliver a false or stale route. A complete update could be installed while an application later failed. The physical call used for the routing exchange could work while a different call attempt or channel did not. Authentication and configured peer lists could constrain who was allowed to send, but authorization to speak was still not the truth of every sentence spoken.

The protocol itself recognized a negative boundary. After repeated requests or responses went unacknowledged, the router could mark routes through the peer unreachable, enter hold-down and poll less frequently. Even this did not identify the cause. It converted bounded communication failure into a safe routing action.

Saving line cost created state cost

Permanent routes cannot rely on forgetting. RFC 1582 said that the routing database must retain all alternatives, or retain a defined subset and remember when alternatives had been discarded so it could ask for them before the remaining choices vanished. Information that periodic refresh once rebuilt now had to survive in memory or be reacquired deliberately.

This was the hidden exchange behind the cheaper circuit. Fewer calls meant more durable state. More durable state required exact invalidation. Exact invalidation required reliable update delivery, peer-specific sequence handling, fragment reassembly, circuit-manager coordination and recovery procedures. The network spent less on repetition because the router accepted a larger obligation to remember.

The peer list carried similar weight. It named destinations that would receive the triggered form or ordinary periodic form, and doubled as the set from which updates were accepted. A missing entry did not merely reduce traffic. It changed the compatibility relationship. An update arriving from a peer outside the appropriate list had to be discarded.

This was a minimum interoperability rule around a locally configured relationship. The protocol fixed the message types and state transitions. The operator still selected peers, timer values within compatible bounds, channel subscriptions and the implementation of circuit recovery. Publication did not create a working relationship. Two participants had to configure and run matching behavior.

One implementation was a receipt with a narrow scope

RFC 1581 did not inflate its implementation evidence. It said there was believed to be one completed implementation. The Spider Systems product supported IP RIP-1, IPX RIP and IPX SAP, but not RIP-2 at that stage. It had been tested against itself on X.25 and ISDN. It had also operated beside conventional router and host implementations on Ethernet LANs. Two Novell-only implementations were known to be in development.

That record proved more than paper and less than a mature ecosystem. There was running code. The demand-circuit mechanism had exercised two named WAN technologies in self-compatibility tests. Ordinary LAN interoperability had a wider surrounding set. But no second independent completed implementation was reported for the new WAN behavior.

RFC 1264, with its official record, supplied the standardization discipline RFC 1581 was answering. Routing protocols are distributed real-time algorithms; success in one environment with one implementation does not guarantee success elsewhere with several vendors. Independent implementations and testing of all features, including security mechanisms, were distinct evidence requirements.

The historical value lies in preserving that granularity. “Implemented” should not be rewritten as “interoperable.” “Tested against itself” should not be dismissed as nothing. “Standards Track” should not be reported as deployed. Each is a different receipt.

The later design changed the update machinery, not the evidence boundary

January 1997 brought RFC 2091, recorded here. It described efficiency advantages over RFC 1582's Demand RIP. After a full exchange, it sent only changed information, used less memory and removed the earlier design's 255-fragment ceiling by avoiding that fragmentation scheme.

Yet the central bargain remained visible. Routes learned from triggered WAN responses were still normally permanent. The circuit manager still reported failed connection attempts and later recovery. Requests and responses still required acknowledgements and retransmission. Too many unacknowledged exchanges could still turn presumed reachability into unreachable state. Recovery still required a full flush and database exchange.

That continuity shows what the mechanism could not cheaply remove. Once periodic refresh stopped, the system still needed a durable last-known state, a component authorized to report contrary reachability evidence, reliable change delivery and a restart boundary that prevented old acknowledgements or old routes from crossing into a new incarnation.

The line went silent because silence had been engineered. The route stayed reachable because persistence had been engineered too. Neither fact proved that a packet crossed the WAN at that moment. The honest record kept circuit state, routing state, update receipt, forwarding and user outcome in separate columns.

Sources