A router, comprising: a primary control plane running one or more routing processes; a secondary control plane (120, 130) interconnected with the primary control plane; wherein the primary control plane periodically transmits synchronization messages indicating a forwarding state of the primary control plane to the secondary control plane, and the secondary control plane updates its forwarding state based on the synchronization messages; wherein the synchronization messages are transmitted with a corresponding sequence number and the secondary control plane is capable of detecting that it did not receive a first synchronization message based on the sequence number of a received second synchronization message; and wherein in the event that the primary control plane fails, the secondary control plane: takes over the routing processes of the primary control plane; establishes communication with at least one peer router; synchronizes with the at least one peer router, the synchronizing comprising: comparing a checksum value corresponding to the most recent information received at or transmitted by the at least one peer router with a checksum value at the secondary control plane; and retransmitting data between the peer router and the secondary control plane if the checksum values do not match. a primary control plane running one or more routing processes; a secondary control plane (120, 130) interconnected with the primary control plane; wherein the primary control plane periodically transmits synchronization messages indicating a forwarding state of the primary control plane to the secondary control plane, and the secondary control plane updates its forwarding state based on the synchronization messages; wherein the synchronization messages are transmitted with a corresponding sequence number and the secondary control plane is capable of detecting that it did not receive a first synchronization message based on the sequence number of a received second synchronization message; and wherein in the event that the primary control plane fails, the secondary control plane: takes over the routing processes of the primary control plane; establishes communication with at least one peer router; synchronizes with the at least one peer router, the synchronizing comprising: comparing a checksum value corresponding to the most recent information received at or transmitted by the at least one peer router with a checksum value at the secondary control plane; and retransmitting data between the peer router and the secondary control plane if the checksum values do not match. takes over the routing processes of the primary control plane; establishes communication with at least one peer router; synchronizes with the at least one peer router, the synchronizing comprising: comparing a checksum value corresponding to the most recent information received at or transmitted by the at least one peer router with a checksum value at the secondary control plane; and retransmitting data between the peer router and the secondary control plane if the checksum values do not match. comparing a checksum value corresponding to the most recent information received at or transmitted by the at least one peer router with a checksum value at the secondary control plane; and retransmitting data between the peer router and the secondary control plane if the checksum values do not match. peer router and the secondary control plane if the checksum values do not match.