A method of administering a plurality of routers in a computer network, comprising initializing a router in the plurality; receiving initial database description packets from at least first and second neighboring routers; processing the data description packet received from the first neighboring router; generating a request for link state advertisements from the first neighboring router; processing the database description packet received from the second neighboring router; if requesting link state advertisements from the second neighboring router that were not requested from the first neighboring router.
|
21. A method comprising:
receiving at a router a first database description packet from a first neighboring router, the first database description packet describing link state advertisements available from the first neighboring router;
examining the first database description packet to determine one or more link state advertisements to request from the first neighboring router;
requesting the one or more link state advertisements from the first neighboring router;
receiving at the router a second database description packet from a second neighboring router, the second database description packet describing link state advertisements available from the second neighboring router; and
in response to receiving the second database description packet from the second neighboring router, requesting, by the router, any link state advertisements from the second neighboring router that have not been requested from the first neighboring router, and not requesting link state advertisements from the second neighboring router that have already been requested from the first neighboring router but that have not yet been received from the first neighboring router.
9. A router for use in a computer network having a plurality of routers that communicate link state information to each other, the router comprising:
means for receiving a first database description packet from a first neighboring router, the first database description packet describing link state advertisements available from the first neighboring router;
means for examining the packet to determine what, if any, link state advertisements to request from the first neighboring router;
means for requesting link state advertisements from the first neighboring router;
means for receiving a second database description packet from a second neighboring router, the second database description packet describing link state advertisements available from the second neighboring router; and
means for determining if the second neighboring router has additional link state advertisements available that are not available from the first neighboring router and, if the second neighboring router does have additional link state advertisements available that are not available from the first neighboring router, then requesting by means at the router only the additional link state advertisements from the second neighboring router, and suppressing generating requests for link state advertisements from the second neighboring router that have already been requested from the first neighboring router but that have not yet been received from the first neighboring router.
1. In a computer network having a plurality of routers that communicate link state information to each other, a method of reducing link state request traffic across the network, the method comprising:
receiving at a router a first database description packet from a first neighboring router communicating with the router, the first database description packet describing link state advertisements available from the first neighboring router;
examining the packet to determine what, if any, link state advertisements to request from the first neighboring router;
requesting link state advertisements from the first neighboring router;
receiving at the router a second database description packet from a second neighboring router communicating with the router, the second database description packet describing link state advertisements available from the second neighboring router; and
determining if the second neighboring router has additional link state advertisements available that are not available from the first neighboring router and, if the second is neighboring router does have additional link state advertisements available that are not available from the first neighboring router, then requesting by the router only the additional link state advertisements from the second neighboring router, and suppressing generating requests at the router for link state advertisements from the second neighboring router that have already been requested by the router from the first neighboring router but that have not yet been received from the first neighboring router.
5. A non-transitory computer-readable medium containing instructions which, when executed by a router, reduce link state request traffic across a computer network having a plurality of routers that communicate link state information to each other, by:
receiving at the router a first database description packet from a first neighboring router communicating with the router, the first database description packet describing link state advertisements available from the first neighboring router;
examining the packet to determine what, if any, link state advertisements to request from the first neighboring router;
requesting link state advertisements from the first neighboring router;
receiving at the router a second database description packet from a second neighboring router communicating with the router, the second database description packet describing link state advertisements available from the second neighboring router; and
is determining if the second neighboring router has additional link state advertisements available that are not available from the first neighboring router and, if the second neighboring router does have additional link state advertisements available that are not available from the first neighboring router, then requesting by the router only the additional link state advertisements from the second neighboring router, and suppressing generating requests at the router for link state advertisements from the second neighboring router that have already been requested by the router from the first neighboring router but that have not yet been received from the first neighboring router.
2. The method of
3. The method of
4. The method of
6. The non-transitory computer-readable medium of
7. The non-transitory computer-readable medium of
8. The non-transitory computer-readable medium of
10. The router of
11. The router of
12. The router of
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
18. The non-transitory computer-readable medium of
19. The non-transitory computer-readable medium of
20. The non-transitory computer-readable medium of
22. The method of
23. The method of
24. The method of
|
The present invention relates broadly to computer networks employing routers that communicate link-state requests to each other. Specifically, the present invention relates to elimination of unnecessary traffic in the form of link-state requests between routers.
Open shortest path first (OSPF) is an Internal gateway protocol that was designed to be used internally in a single, autonomous system. OSPF uses link state or shortest path first-based technology (as compared to the distance-vector or Bellman-Ford technology found in routing protocols such as routing information protocol (RIP). Individual link state advertisements (LSAs) describe pieces of the OSPF routing domain (autonomous system). These LSAs are flooded throughout the routing domain, forming the link state database. Each router has an identical link state database; synchronization of link state databases is maintained via a reliable flooding algorithm. From this link state database, each router builds a routing table by calculating a shortest-path tree, with the root of the tree being the calculating router itself. This calculation is commonly referred to as the Dijkstra procedure.
LSAs are small. Each advertisement describes a small piece of the OSPF routing domain, such as the neighborhood of a single router, the neighborhood of a single transit network, a single inter-area route or a single external route.
This type of routing protocol requires each router to maintain at least a partial map of the network. When a network link changes state (up to down, or vice versa), an LSA is flooded throughout the network. All the routers note the change, and recompute their routes accordingly. This method is more reliable, easier to debug and less bandwidth-intensive than distance-vector methods. It is also more complex and more computationally- and memory-intensive. OSPF and OSI's IS-IS are link state routing protocols.
Adjacency, as referred to herein, is a relationship formed between selected neighboring OSPF routers for the purpose of exchanging routing information. When the link state databases of two neighboring routers are synchronized, the routers are said to be adjacent. Not every pair of neighboring routers becomes adjacent. The fact that routers are neighbors is not sufficient to guarantee an exchange of link state updates; they must form adjacencies to exchange link state updates. Adjacency is an advanced form of neighborship formed by routers that are willing to exchange routing information after negotiating parameters of such an exchange. Routers reach a FULL state of adjacency when they have synchronized views on a link state database.
Interface type plays a major role in how the adjacencies are formed. For example, neighbors on point-to-point links always try to become adjacent, while routers attached to broadcast media such as Ethernet may choose to become adjacent only with a subset of neighboring routers on the interface.
Once a router decides to form an adjacency with a neighbor, it starts by exchanging a full copy of its link state database. The neighbor, in turn, exchanges a full copy of its link state database with the router. After passing through several neighbor states, the routers become fully adjacent.
As stated above, OSPF is a link state protocol. When an OSPF-compliant router starts to speak with another router, it brings up an adjacency via a database exchange process. The database exchange is an attempt to synchronize the link state database of the two routers. Any missing information is requested from the neighbor. This does not scale, if a routers starts to speak with many other routers. It could potentially request the same information from all the adjacent routers. Each such request results in an LSA update, which must be reliably acknowledged. This results in unnecessary control packet transmissions.
When a router receives from a neighbor a database description (DBD) packet containing LSA descriptions that are not present in its local link state database, the router sends out a link state request (LSREQ) directed towards the neighbor. In the case of multiple adjacencies coming up at the same time, the link state database synchronization process could request the same LSA from multiple peers.
The neighbor replies to these requests in one or more link state update (LSUPD) packets. Each such duplicate request results in a duplicate update from the peer. Each such LSUPD further results in the sending of an acknowledgement (ACK).
The protocol described above becomes expensive in wireless environments, such as mobile, ad hoc networks where not only are unnecessary OSPF packets sent, but these packets can be retransmitted many times due to packet loss. This results in higher control traffic overhead and poor routing convergence. Thus, there is a heartfelt need for reduction and load balancing of link state requests in an OSPF-compliant system of network routers.
The present invention reduces the link state requests, thus reducing duplicate updates and ACKs sent in such circumstances. The present invention suppresses LSREQs for LSAs that have already been requested from at least one neighboring router. This moves the LSREQ scope from a neighbor to the LSAs' flooding scope. In an embodiment, the present invention also provides failsafe mechanisms that try to send a LSREQ to other possible neighbors in case the current neighbor does not respond.
In one aspect, the present invention provides a method of administering a plurality of routers in a computer network, comprising initializing a router in the plurality; receiving initial database description packets from at least first and second neighboring routers; processing the data description packet received from the first neighboring router; generating a request for link state advertisements from the first neighboring router; processing the database description packet received from the second neighboring router; if requesting link state advertisements from the second neighboring router that were not requested from the first neighboring router.
Directing attention to
Operation of the present invention is described with reference to the sequence of acts illustrated in
When router 10 processes the initial DBD packet received from router 30 (act 308), router 10 determines whether the initial DBD packet received from router 30 contains headers for LSAs that were not included in the initial DBD packet from router 20 (decision act 310). Router 10 only generates a request for LSAs that it has not already requested from router 20 (act 312). In cases where the DBD packet is formed in a predictable fashion, both initial DBD packets from router 20 and router 30 are almost identical. In this case, router 10 doesn't generate a request after processing this initial DBD packet from router 30. Even though router 10 doesn't request anything from router 30, it still behaves as if it requested the LSAs from router 30 by putting this LSA on its LSREQ retransmit list (act 314).
If router 20 does not respond within a retransmit interval (decision act 316), a request is now sent to both router 20 and router 30 (act 318). While act 318 is illustrated as looping back to decision act 316, in an alternative embodiment, sending the request to multiple routers is performed only once. An update received from either router 20 or router 30 satisfies the LSREQ retransmit entry for both router 20 and router 30. When the LSUPD arrives (either from router 20 or another router) (act 320), router 10 services any pending request (act 322) for the same LSA from all the neighbors (router 20 and router 30 in this example). The LSA is then removed from the LSA retransmit list (act 324).
The present invention is particularly useful in cases where a router has to bring up adjacency with tens or hundreds of peers at the same time such as due to mobility. But in case of lossy environments, it's possible that the first request doesn't generate a LSUPD response, thus triggering retransmits from all of the pending neighbors.
An embodiment of the present invention implements a round robin scheme that tries sending LSREQ to all eligible neighbors before retransmitting an LSREQ to the same neighbor. This is simply done by using a shorter (perhaps one half of the interval period) retransmit interval timer for the neighbors to which router 10 has pretended to have sent LSREQ. Every LSREQ sent results in an addition of one half of the retransmit interval to currently waiting timers.
To further explain this feature, assume there is a need to request a certain LSA from neighboring routers 20, 30 and 40. Also assume the worst case, where neighbors are not able to reply with an LSUPD packet. In accordance with the present invention, the request is first sent to router 20. After one half of the retransmit interval passes, the timer for router 30 expires, and a request is sent to router 30. The retransmit timers for router 40 and router 20 are pushed by another retransmit interval. After time equal to one half of the retransmit interval passes, the timer for router 40 expires.
While a method and apparatus for reducing and load balancing link state requests in a network of routers have been illustrated and described in detail, it is to be understood that numerous modifications can be made to embodiments of the present invention without departing from the spirit thereof.
Patent | Priority | Assignee | Title |
8423668, | Dec 31 2007 | Cisco Technology, Inc | Link state protocol routing message containment |
8964758, | Sep 29 2011 | Telefonaktiebolaget L M Ericsson (publ) | OSPF nonstop routing (NSR) synchronization reduction |
9819548, | Jan 25 2013 | Cisco Technology, Inc. | Shared information distribution in a computer network |
Patent | Priority | Assignee | Title |
6885634, | Jan 24 2001 | AT&T Corp. | Network protocol having staggered recovery |
6973023, | Dec 30 2000 | Cisco Technology, Inc | Method for routing information over a network employing centralized control |
7363387, | Dec 09 2003 | Cisco Technology, Inc. | System and method for reducing information being transmitted in a network environment |
20010034793, | |||
20030056138, | |||
20040073683, | |||
20040246948, | |||
20050135357, | |||
20050185632, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 30 2004 | Cisco Technology, Inc. | (assignment on the face of the patent) | / | |||
Jul 30 2004 | ROY, ABHAY | Cisco Technology, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015663 | /0436 |
Date | Maintenance Fee Events |
Dec 08 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Dec 07 2018 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 05 2022 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jun 07 2014 | 4 years fee payment window open |
Dec 07 2014 | 6 months grace period start (w surcharge) |
Jun 07 2015 | patent expiry (for year 4) |
Jun 07 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 07 2018 | 8 years fee payment window open |
Dec 07 2018 | 6 months grace period start (w surcharge) |
Jun 07 2019 | patent expiry (for year 8) |
Jun 07 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 07 2022 | 12 years fee payment window open |
Dec 07 2022 | 6 months grace period start (w surcharge) |
Jun 07 2023 | patent expiry (for year 12) |
Jun 07 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |