A node having a memory storing a network topology and a routing table. The node also having a processing device programmed to generate a link state message and during the generating of the link state message, set a value of an age field of the link state message to a random value.
|
1. A method to be performed in a first node of a network, the first node having a plurality of interfaces, the method comprising:
generating a first link state message to a first age field for a first interface of the plurality of interfaces, the first age field being a first random link state advertisement age value; and
generating a second link state message to a second age field for a second interface of a plurality of interfaces, the second age field being a second random link state advertisement age value,
wherein the first random link state advertisement age value is different from the second random link state advertisement age value, and
wherein the first age field and the second age field are randomized only for a first generation of the first and second link state messages, and are not randomized for at least one subsequent generation of the first and second link state messages.
19. A node, comprising:
a plurality of network interfaces;
a memory storing a network topology, a routing table, and a set of instructions; and
a processing device executing the set of instructions to perform operations comprising:
generating a first link state message to a first age field for a first interface of the plurality of interfaces, the first age field having a first random link state advertisement age value; and
generating a second link state message to a second age field for a second interface of the plurality of interfaces, the second age field having a second random link state advertisement age value,
wherein the first random link state advertisement age value is different from the second random link state advertisement age value; and
wherein the first age field and the second age field are randomized only for a first generation of the first and second link state messages, and are not randomized for at least one subsequent generation of the first and second link state messages.
10. A system, comprising:
a first network node comprising:
a memory storing a set of instructions; and
a processor executing the set of instructions to perform operations comprising:
generating a first link state message, the first link state message including a first age field, the first age field being a first random link state advertisement age value; and
a second network node comprising:
a memory storing a set of instructions; and
a processor executing the set of instructions to perform operations comprising:
generating a second link state message, the second link state message including a second age field, the second age field being a second random link state advertisement age value;
wherein the first random link state advertisement age value is different from the second random link state advertisement age value, and
wherein the first age field and the second age field are randomized only for a first generation of the first and second link state messages, and are not randomized for at least one subsequent generation of the first and second link state messages.
3. The method of
4. The method of
5. The method of
6. The method of
refreshing the link state messages, wherein a value for the age field of the refreshing link state messages is set to 0.
7. The method of
8. The method of
9. The method of
11. The system of
12. The system of
13. The system of
14. The system of
15. The system of
16. The system of
17. The system of
18. The system of
20. The node of
21. The node of
|
Networks require a protocol for routing data from an originating node to a destination node, since in order to reach its destination the data must traverse an oftentimes vast, intricately interconnected group of intermediate nodes. A link-state protocol is one type of routing protocol for calculating a shortest available route between an originating node and a destination node. Typically used in a packet-switched network, a link-state protocol gives to each node the ability to calculate the best route to a destination for a packet it has received. In order for every node to do such routing, each node must create a routing table showing the shortest (or least costly) path from itself to every other possible destination in the network. In significantly large networks, the scope of the routing table for a node may cover the connectivity of only a sub-area of nodes in the network. In order to determine a routing table, the node must receive information indicating the overall network topology, that is, information indicating how every node is linked in the network.
One type of link-state protocols is Open Shortest Path First (OSPF). The OSPF standard is described in Moy, J., “OSPF Version 2,” IETF RFC 2328, April, 1998, which is hereby incorporated by reference. Other documents describing the OSPF standard include Coltun R., D. Ferguson, J. Moy, “OSPF for IPV6,” IETF RFC 2740, December, 1999; and Katz D., K. Kompella, D. Yeung, “Traffic engineering Extensions to OSPF Version 2,” IETF RFC 3630, September 2003, both of which as well are hereby incorporated by reference. As explained above, every node in an OSPF network determines a routing table, but before it can do so it must receive from every other node in the network a link state advertisement (LSA). In the OSPF protocol, an LSA is a type of link state message that contains all the link information for the node that generated the LSA. The LSA of every node is flooded throughout the entire network to ensure that every node has sufficient information to generate its own routing table.
In the header of every type of LSA message is an LS age field. Currently in all versions of the OSPF protocol the LS age field of every type of LSA is set to 0 by the originating node (typically embodied as a router). The LS age (in seconds) is increased, usually by one per hop, as it is flooded and also aged according to standard clock time while it is stored in the database. LSAs are refreshed by the originating node as soon as it reaches the value LSRefreshTime (default 1800 seconds). It is possible for the refresh instants of a vast number of LSAs to be synchronized, thereby causing an LSA storm. During an LSA storm, some nodes, particularly ones with less powerful processors, cannot keep up with the workload. This may result in many retransmissions, loss of adjacency, and eventually loss of customer traffic.
A node having a memory storing a network topology and a routing table. The node also having a processing device programmed to generate a link state message and during the generating of the link state message, set a value of an age field of the link state message to a random value.
A method operating in a first node of a network, the network comprising a plurality of nodes, the method generating a link state message, wherein the generating includes setting a value of an age field of the link state message to a random value.
A system having a means for determining a random value in a first node of a network including a plurality of nodes and a means for generating, in the first node, a link state message, wherein the means for generating includes means for setting a value of an age field of the link state message to the random value.
Although the present invention is discussed within the context of a network using the OSPF protocol, the present invention is applicable to any link-state protocol, particularly those that flood the network with link-state messages in such a way as to make the network vulnerable to broadcast storms, such as, for instance, the PNNI (Private Network-Network Interface) or IS-IS (Intermediate System-Intermediate System) protocols.
The exemplary embodiments are directed to the setting of a value for the LSA age field, which roughly represents the number of seconds that have elapsed since the creation of the LSA to which the LSA field belongs. In prior OSPF systems, the originating node sets the initial value of the LS age field to 0. During the flooding process each router on the path of flooding adds a value (“sometime referred to as InfTranspelay”) which is (the time to transit over the interface in seconds with minimum value of 1 to the LS age field. In addition, every node holding an LSA in its database increases the LS age parameter to reflect the amount of time (in seconds) the LSA has stayed in the database. LSAs are re-originated (i.e., refreshed) and flooded by the originating router whenever there is a change in its content (e.g., one of the interfaces advertised by a Router LSA goes down). In addition, if an LSRefreshTime timer expires (e.g., a default value of 1800 seconds) without any changes in content, the LSA is refreshed (and flooded) with the old content. If an LSA reaches a value MaxAge (e.g. a default value of 3600 seconds) then it is flooded again with LS age set to MaxAge and all routers receiving such an LSA flush it from their databases.
LSA generation and flooding usually does not consume significant node resources as long as the network stays small in size. However, as the network grows in size (to hundreds or thousands) in terms of the number of nodes, the number of links and the number of routes that need to be advertised, some of the nodes (particularly the less powerful ones in the network) may be overwhelmed by the requirement of LSA processing. Specifically, during an LSA refresh, this happens particularly if many LSAs arrive in a synchronized or near-synchronized fashion, sometimes referred to as an “LSA storm.” If too many LSAs come in too quickly at a “not too powerful” node, it may not be able to process some critical messages. As one example, if the node does not acknowledge an LSA from a neighbor within a predetermined time interval (sometimes referred to as the “RxmtInterval” which has a default of 5 seconds) the neighbor will retransmit the LSA, in effect adding to the already existing LSA storm. As another example, if the node misses sending/receiving Hello packets to/from a neighbor for a predetermined period (sometimes referred to as the “RouterDeadInterval” (having a default value around 30 to 40 seconds), the interface will be declared down.
In order to eliminate LSA storms due to synchronized refresh behavior, the exemplary embodiment of the present invention propose de-synchronizing refresh instances of all LSAs.
The above-described setting of the age field to a random number applies whenever a node generates an LSA for the first time. The random age for the LSA field can range between 0 and a value termed “MaxRandomAge.” The value of MaxRandomAge should be large compared to 1 but small compared to the LSRefreshInterval. As an example, if LSRefreshInterval is 1800 seconds (default value) then MaxRandomAge may be set to 600. For all subsequent refreshes of the same LSA no changes from current practice is needed, i.e., the LS age value may be set to 0 as usual. The random aging at the first origination instant of the LSAs will ensure that they will stay de-synchronized during all subsequent refreshes.
It will be apparent to those skilled in the art that various modifications and variations can be made in the structure and the methodology of the present invention, without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.
Evans, Mark, Choudhury, Gagan, Hou, Shih-Yue
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6349091, | Nov 12 1999 | STINGRAY IP SOLUTIONS LLC | Method and apparatus for controlling communication links between network nodes to reduce communication protocol overhead traffic |
6757258, | May 04 2000 | Cisco Technology, Inc | Method and apparatus for reducing OSPF flooding |
6775709, | Feb 15 2000 | Level 3 Communications, LLC | Message routing coordination in communications systems |
6885634, | Jan 24 2001 | AT&T Corp. | Network protocol having staggered recovery |
6898187, | Nov 30 2000 | Oracle America, Inc | Automatic selection of unique node identifiers in a distributed routing environment |
7006441, | Dec 16 1999 | AT&T Properties, LLC; AT&T INTELLECTUAL PROPERTY II, L P | Link state network having weighted control message processing |
7126921, | Mar 20 2002 | WSOU Investments, LLC | Packet network providing fast distribution of node related information and a method therefor |
7203162, | Oct 30 2001 | WSOU Investments, LLC | Link state retransmission mechanism |
20040047288, | |||
20050078656, | |||
20060045024, | |||
20060133298, | |||
20070214496, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 21 2007 | AT&T Intellectual Property II, LP | (assignment on the face of the patent) | / | |||
Mar 05 2008 | CHOUDHURY, GAGAN | AT&T Corp | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020734 | /0893 | |
Mar 05 2008 | HOU, SHIH-YUE | AT&T Corp | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020734 | /0893 | |
Mar 10 2008 | EVANS, MARK | AT&T Corp | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020734 | /0893 |
Date | Maintenance Fee Events |
Jan 13 2015 | ASPN: Payor Number Assigned. |
Sep 14 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 09 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 15 2017 | 4 years fee payment window open |
Oct 15 2017 | 6 months grace period start (w surcharge) |
Apr 15 2018 | patent expiry (for year 4) |
Apr 15 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 15 2021 | 8 years fee payment window open |
Oct 15 2021 | 6 months grace period start (w surcharge) |
Apr 15 2022 | patent expiry (for year 8) |
Apr 15 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 15 2025 | 12 years fee payment window open |
Oct 15 2025 | 6 months grace period start (w surcharge) |
Apr 15 2026 | patent expiry (for year 12) |
Apr 15 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |