Routers and routing systems provide for the routing of packets between nodes of a packet switched network. To enhance the reliability of the packet switched network, routing systems operating at nodes of the network may include redundant routing devices. For example, a routing system may include a primary or active routing processor that may ordinarily perform or manage packet forwarding, and a secondary or backup routing processor to take over from the primary routing processor upon failure. However, the switchover (i.e., failover) from a primary to a secondary routing processor is frequently a disruptive event. At the time of failover, the primary routing processor's current state should be reflected by the secondary routing processor. Many conventional routing systems use an active replication technique to provide for failures. In these systems, state information is continually saved (i.e., checkpointed) to the backup processor. With active replication, recovery from failures may be quick, but there is a large overhead in ordinary execution. Active replication uses a redundant structure consisting of two processor resources (e.g., two processors and memory). One problem with active replication is that because replication is continually performed while the system is running, the processing resources are used wastefully.
The BGP-4 (Border Gateway Protocol) routing protocol is one of the primary protocols used for Internet routing and is an incremental protocol based on the TCP transport. One version of BGP is described by the Network Working Group's Request for Comments (RFC) 1771, referred to as RFC 1771, entitled “A Border Gateway Protocol 4 (BGP-4)”, edited by Y. Rekhter and T. Li, and dated March 1995, while other versions are described in subsequent updates and revisions of RFC 1771. The dynamic exchange of routing information for BGP is described in the Network Working Group's RFC 2918, entitled “Route Refresh Capability for BGP-4”, by E. Chen and dated September 2000. The fact that the TCP transport protocol is itself quite complex, in combination with the complexity of the BGP protocol and the sheer data volume typically involved, has made it difficult to support a highly reliable BGP routing system using primary and backup routing processors because it is difficult to maintain TCP state and difficult to synchronize a BGP router with BGP peer routers after failover. Conventional systems either change the protocol or utilize extensive checkpointing. For example, some conventional approaches checkpoint essentially all state data (both TCP state and BGP protocol state). This extensive checkpointing consumes excessive resources of a system reducing system performance.
Thus there is a general need for an improved routing system and method of routing. Thus, there is also a need for a routing system and method that reduces the amount of checkpointing required during normal routing operations. There is also a need for routing system and method that re-synchronizes with peer routing systems after failover of a primary routing processor. There is also a need for routing system and method that supports a Border Gateway Protocol (BGP) and re-synchronizes with peer routing systems after failover of a primary routing processor without excessive checkpointing. There is also a need for routing system and method that re-synchronizes with peer routing systems after failover of a primary routing processor without requiring peer systems to update their software.