Content deleted Content added
Nothi Tags: Visual edit Mobile edit Mobile web edit |
ClumsyOwlet (talk | contribs) spam |
||
(42 intermediate revisions by 24 users not shown) | |||
Line 1:
{{short description|Class of routing protocols}}
{{More footnotes needed|date=September 2010}}▼
'''Link-state routing protocols''' are one of the two main classes of [[routing protocol]]s used in [[packet switching]] networks for [[computer communication]]s, the other being [[distance-vector routing protocol]]s. Examples of link-state routing protocols include [[Open Shortest Path First]] (OSPF) and [[IS-IS|Intermediate System to Intermediate System]] (IS-IS).▼
▲'''Link-state routing protocols''' are one of the two main classes of [[routing protocol]]s used in [[packet switching]] networks for [[computer communication]]s, the
<nowiki>https://www.cs.princeton.edu/courses/archive/spring23/cos461/lectures/lec10-lsrouting.pdf</nowiki></ref>
This contrasts with [[distance-vector routing protocol]]s, which work by having each node share its routing table with its neighbours, in a link-state protocol the only information passed between nodes is ''connectivity related''. Link-state algorithms are sometimes characterized informally as each router, "telling the world about its neighbors."▼
The link-state protocol is performed by every ''switching node'' in the network (i.e., nodes which are prepared to forward packets; in the [[Internet]], these are called [[Router (computing)|router]]s).<ref>lecture6.pptx (umich.edu)
==History==▼
<nowiki>https://www.eecs.umich.edu/courses/eecs489/w10/winter10/lectures/lecture6_2.pdf</nowiki></ref> The basic concept of link-state routing is that every node constructs a ''map'' of the connectivity to the network in the form of a [[graph theory|graph]], showing which nodes are connected to which other nodes.<ref>123sp15-lec14.pdf (ucsd.edu)
The first link-state routing concept was published in 1979 by [[John M. McQuillan]] (then at [[Bolt, Beranek and Newman]]) as a mechanism that would calculate routes more quickly when network conditions changed, and thus lead to more stable routing.<ref>[[John M. McQuillan]], Isaac Richer and Eric C. Rosen, ''ARPANet Routing Algorithm Improvements'', BBN Report No. 3803, Cambridge, April 1978</ref><ref>[[John M. McQuillan]], Isaac Richer and Eric C. Rosen, ''The New Routing Algorithm for the ARPANet'', [[IEEE]] Trans. on Comm., 28(5), pp. 711–719, 1980</ref>▼
<nowiki>https://cseweb.ucsd.edu/classes/sp15/cse123-a/lectures/123sp15-lec14.pdf</nowiki></ref> Each node then independently calculates the next best logical ''path'' from it to every possible destination in the network.<ref>link state protocol.pdf (fauser.edu)
<nowiki>http://nuovolabs.fauser.edu/~valeria/materiale-didattico/sistemi-quinta/link%20state%20protocol.pdf</nowiki></ref> Each collection of best paths will then form each node's [[routing table]].<ref>{{Cite web |date=2019-08-12 |title=9.6: Link-State Routing-Update Algorithm |url=https://eng.libretexts.org/Bookshelves/Computer_Science/Networks/Book%3A_An_Introduction_to_Computer_Networks_(Dordal)/09%3A_Routing-Update_Algorithms/9.06%3A_Link-State_Routing-Update_Algorithm |access-date=2024-05-09 |website=Engineering LibreTexts |language=en}}</ref>
The technique was later adapted for use in the contemporary link-state routing protocols IS-IS and OSPF. Cisco literature refers to [[enhanced interior gateway routing protocol]] (EIGRP) as a "hybrid" protocol,{{cn|date=September 2016}} despite the fact it distributes routing tables instead of topology maps. However, it does synchronize routing tables at start up as OSPF does, and sends specific updates only when topology changes occur.▼
▲This contrasts with
In 2004, [[Radia Perlman]] proposed using link-state routing for [[layer 2]] frame forwarding with devices called [[Routing Bridge|routing bridge]]s or Rbridges. The [[Internet Engineering Task Force]] has standardized the [[TRILL (Computer Networking)|transparent interconnection of lots of links]] (TRILL) protocol to accomplish this.<ref>{{citation |rfc=7176 |title=Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS}}</ref>▼
<nowiki>https://courses.cs.washington.edu/courses/cse461/22sp/slides/5-routing-part2.pdf</nowiki></ref> Link-state algorithms are sometimes characterized informally as each router "telling the world about its neighbors."<ref>{{Cite web |last=Library |first=Broadband |date=2018-08-31 |title=A Closer Look at Routing {{!}} |url=https://broadbandlibrary.com/a-closer-look-at-routing/ |access-date=2024-05-09 |language=en-US}}</ref>
More recently, this hierarchical technique was applied to [[wireless mesh network]]s using the [[optimized link state routing protocol]] (OLSR). Where a connection can have varying quality, the quality of a connection can be used to select better connections. This is used in some [[Ad hoc routing protocol list|routing protocols]] that use radio frequency transmission.▼
==Overview==
In link-state routing protocols, each router possesses information about the complete network topology. Each router then independently calculates the best next hop from it for every possible destination in the network using local information of the topology. The collection of best next hops forms the routing table.
This contrasts with [[Distance-vector routing protocol|distance-vector routing protocols]], which work by having each node share its routing table with its neighbours. In a link-state protocol, the only information passed between the nodes is the information used to construct the connectivity maps.
==Distributing maps==▼
▲==History==
▲What is believed to be the first adaptive routing network of computers, using link-state routing, was designed and implemented during 1976–1977 by a team from [[Plessey Radar]] led by Bernard J Harris; the project was for "Wavell"{{snd}} a system of computer command and control for the [[British Army]].{{citation needed|date=September 2016}} The first link-state routing concept was published in 1979 by [[John M. McQuillan]] (then at [[Bolt, Beranek and Newman]]) as a mechanism that would calculate routes more quickly when network conditions changed
▲The technique was later adapted for use in the contemporary link-state routing protocols IS-IS and OSPF. [[Cisco]] literature refers to [[
First, each node needs to determine what other ports it is connected to, over fully working links; it does this using ''reachability protocol'' it runs periodically and separately with each of its directly connected neighbours.▼
▲In 2004, [[Radia Perlman]] proposed using link-state routing for [[layer 2]] frame forwarding with devices called [[
▲More recently, this hierarchical technique was applied to [[wireless mesh network]]s using the [[
Next, each node periodically (and in case of connectivity changes) sends a short message, the [[link-state advertisement]], which:▼
▲==Distributing maps==
* Identifies the node which is producing it.▼
{{Tone|date=October 2023|section}}
▲The first main stage in the link-state algorithm is to give a map of the network to every node. This is done with several subsidiary steps. First, each node needs to determine what other ports it is connected to
▲
* Identifies all the other nodes (either routers or networks) to which it is directly connected.
* Includes a 'sequence number', which increases every time the source node makes up a new version of the message''.''
This message is sent to all the nodes on a network. As a necessary precursor, each node in the network remembers, for every one of ''its'' neighbors, the sequence number of the last link-state message which it received from that node.
The complete set produces the graph for the map of the network. The link-state message giving information about the neighbors is recomputed
▲The link-state message giving information about the neighbors is recomputed, and then flooded throughout the network, whenever there is a change in the connectivity between the node and its neighbors; e.g., when a link fails. Any such change will be detected by the reachability protocol which each node runs with its neighbors.
==Calculating the routing table==
The second main stage in the link-state algorithm is to produce routing tables by inspecting the maps. Each node independently runs an [[algorithm]] over the map to determine the [[Shortest path problem|shortest path]] from itself to every other node in the network; generally, some variant of [[Dijkstra's algorithm]] is used. A node maintains two data structures: a [[Tree data structure|tree]] containing nodes which are "done", and a list of ''candidates''. The algorithm starts with both structures empty; it then adds to the first one the node itself. The variant of a [[
▲A node maintains two data structures: a [[Tree data structure|tree]] containing nodes which are "done", and a list of ''candidates''. The algorithm starts with both structures empty; it then adds to the first one the node itself. The variant of a [[Greedy Algorithm]] then repetitively does the following:
* All neighbour nodes which are directly connected to the node are just added to the tree (excepting any nodes which are already in either the tree or the candidate list). The rest are added to the second (candidate) list.▼
* Each node in the candidate list is compared to each of the nodes already in the tree. The candidate node which is closest to any of the nodes already in the tree is itself moved into the tree and attached to the appropriate neighbor node. When a node is moved from the candidate list into the tree, it is removed from the candidate list and is not considered in subsequent iterations of the algorithm.▼
The above two steps are repeated as long as there are any nodes left in the candidate list. (When there are none, all the nodes in the network will have been added to the tree.) This procedure ends with the tree containing all the nodes in the network, with the node on which the algorithm is running as the ''root'' of the tree. The shortest path from that node to any other node is indicated by the list of nodes one traverses to get from the root of the tree, to the desired node in the tree..!▼
▲* All neighbour nodes which are directly connected to the node are just added to the tree (excepting any nodes which are already in either the tree or the ''candidate'' list). The rest are added to the second (''candidate'') list.
▲* Each node in the ''candidate'' list is compared to each of the nodes already in the tree.
▲The
Whenever a change in the connectivity map happens, it is necessary to recompute the shortest-path tree, and then recreate the routing table. Work by [[BBN Technologies]]{{Citation needed|date=March 2013}} discovered how to recompute only that part of the tree which could have been affected by a given change in the map.▼
== Algorithm optimizations ==
===Topology Reduction===▼
▲Whenever a change in the connectivity map happens, it is necessary to recompute the shortest-path tree
In some cases, it is reasonable to reduce the number of nodes that generate LSA messages. For this reason, a topology reduction strategy can be applied, in which only a subset of the network nodes generate LSA messages. Two widely studied approaches for topology reduction are [[Optimized Link State Routing Protocol#Multipoint relays|multipoint relays]] that are at the base of the [[Optimized Link State Routing Protocol]] (OLSR) but have also been proposed for OSPF<ref>{{Cite journal|url=https://tools.ietf.org/html/rfc5449|title = OSPF Multipoint Relay (MPR) Extension for Ad Hoc Networks|date = February 2009|last1 = Nguyen|first1 = Dang-Quan|last2 = Clausen|first2 = Thomas H.|last3 = Jacquet|first3 = Philippe|last4 = Baccelli|first4 = Emmanuel| doi=10.17487/RFC5449 |doi-access = free|url-access = subscription}}</ref> and [[connected dominating set]]s that were again proposed for OSPF.<ref>{{Cite journal|url=https://tools.ietf.org/html/rfc5614|title = Mobile Ad Hoc Network (MANET) Extension of OSPF Using Connected Dominating Set (CDS) Flooding|date = August 2009|last1 = Ogier|first1 = Richard|last2 = Spagnolo|first2 = Phil| doi=10.17487/RFC5614 |url-access = subscription}}</ref>
===Fisheye State Routing===
With [[
==Failure modes==
If all the nodes are not working from
This can occur since each node computes its shortest-path tree and its routing table without interacting in any way with any other nodes. If two nodes start with different maps, it is possible to have scenarios in which routing loops are created. In certain circumstances, differential loops may be enabled within a multi
==
The
==See also==
Line 95 ⟶ 75:
==References==
<references />
{{refbegin}}
▲{{More footnotes|date=September 2010}}
* Josh Seeger and Atul Khanna, ''Reducing Routing Overhead in a Growing DDN'', MILCOMM '86, IEEE, 1986
* [[Radia Perlman]] [http://www.ieee-infocom.org/2004/Papers/26_1.PDF “Rbridges: Transparent Routing”], Infocom 2004.
{{refend}}
==Further reading==
|