0% found this document useful (0 votes)
3 views3 pages

L21 Slides

The document discusses link-state routing, focusing on the advertisement and integration steps involved in the process, including the use of Dijkstra's algorithm for building routing tables. It addresses potential issues like routing loops and dead-ends, proposing solutions such as the HELLO protocol and periodic advertisements. Additionally, it compares distance-vector protocols and path-vector routing, emphasizing the importance of avoiding loops and ensuring accurate route computation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views3 pages

L21 Slides

The document discusses link-state routing, focusing on the advertisement and integration steps involved in the process, including the use of Dijkstra's algorithm for building routing tables. It addresses potential issues like routing loops and dead-ends, proposing solutions such as the HELLO protocol and periodic advertisements. Additionally, it compares distance-vector protocols and path-vector routing, emphasizing the importance of avoiding loops and ensuring accurate route computation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

4/30/12

Link-State Routing
• Advertisement step
– Send information about its links to its neighbors (aka link
state advertisement or LSA):

[node, seq#, [(nbhr1, linkcost1), (nbhr2, linkcost2), …]

– Do it periodically (liveness, recover from lost LSAs)


• Integration
– If seq# in incoming LSA > seq# in saved LSA for source node:
update LSA for node with new seq#, neighbor list
6.02 Spring 2012 rebroadcast LSA to neighbors ( flooding)
Lecture #21 – Remove saved LSAs if seq# is too far out-of-date
– Result: Each node discovers current map of the network
• Build routing table
• Link-state routing – Periodically each node runs the same shortest path algorithm
over its map (e.g., Dijkstra’s alg)
– If each node implements computation correctly and each
• Routing around failures node has the same map, then routing tables will be correct

6.02 Spring 2012 Lecture 21, Slide #1 6.02 Spring 2012 Lecture 21, Slide #2

LSA Flooding Integration Step: Dijkstra s Algorithm


LSA: [F, seq, (G, 8), (C, 2)]
(Example)
6 2
A C F
4 Suppose we want to find paths from A to other nodes

6 7 8
(0) (6) (8)
E
A
6 C
2 F
0 2
4 (10)
B 5 D G
6 7 E 8
• Periodically originate LSA 0 2
• LSA travels each link in each direction B D G
– Don’t bother with figuring out which link LSA came from 5
(6) (13) (16)
• Termination: each node rebroadcasts LSA exactly once (11) (12)
– Use sequence number to determine if new, save latest seq (10)
• Multiple opportunities for each node to hear any given LSA
– Time required: number of links to cross network
6.02 Spring 2012 Lecture 21, Slide #3 6.02 Spring 2012 Lecture 21, Slide #4

1
4/30/12

Dijkstra’s Shortest Path Algorithm Another Example


• Initially Finding shortest paths from A: B
4
D
19
– nodeset = [all nodes] = set of nodes we haven’t processed LSAs:
– spcost = {me:0, all other nodes: ∞} # shortest path cost A: [(B,19), (C, 7)]
A 11 15 13
B: [(A,19), (C,11), (D, 4)]
– routes = {me:--, all other nodes: ?} # routing table C: [(A, 7), (B,11), (D,15), (E, 5)]
D: [(B, 4), (C,15), (E,13)] 7
• while nodeset isn’t empty: E: [(C, 5), (D,13)] C
5
E

– find u, the node in nodeset with smallest spcost


– remove u from nodeset spcost route
Step u Nodeset
– for v in [u’s neighbors]: A B C D E A B C D E
• d= spcost(u) + cost(u,v) # distance to v via u 0 [A,B,C,D,E] 0 ∞ ∞ ∞ ∞ -- ? ? ? ?
• if d < spcost(v): # we found a shorter path! 1 A [B,C,D,E] 0 19 7 ∞ ∞ -- L0 L1 ? ?
– spcost[v] = d 2 C [B,D,E] 0 18 7 22 12 -- L1 L1 L1 L1
– routes[v] = routes[u] (or if u == me, enter link from me to 3 E [B,D] 0 18 7 22 12 -- L1 L1 L1 L1
v)
4 B [D] 0 18 7 22 12 -- L1 L1 L1 L1
5 D [] 0 18 7 22 12 -- L1 L1 L1 L1

6.02 Spring 2012 Lecture 21, Slide #5 6.02 Spring 2012 Lecture 21, Slide #6

Failures Routing Loop in Link-State Protocol


• Problems:Links and switches could fail
– Advertisements could get lost A B
– Routing loop
• A sequence of nodes on forwarding path that has a
cycle (so packets will never reach destination) path
– Dead-end: route does not actually reach destination B to D is via A.
– Loops and dead-ends lead to routes not being valid Link AD fails. D
• Solution A’s LSA to B is lost.
– HELLO protocol to detect neighbor liveness A now uses B to get to D.
– Periodic advertisements from nodes But B continues to use A.
– Periodic integration at nodes Routing loop!
– Leads to eventual convergence to correct state Must wait for eventual arrival
(see Chapter 18) of correct LSAs to fix loop
6.02 Spring 2012 Lecture 21, Slide #7 6.02 Spring 2012 Lecture 21, Slide #8

2
4/30/12

Fixing “Count to Infinity” with Path Vector


Distance-Vector: Pros, Cons, and Loops
Routing
• + Simple protocol
• In addition to (or instead of) reporting costs, advertise the
• + Works well for small networks path discovered incrementally by the Bellman-Ford update
• - Works only on small networks rule

Suppose link AC fails.


A L1 L3
C L1 • Called “path-vector”
When A discovers failure, it
L2 L2
E:cost=3
E:cost=X5 sends E: cost = INFINITY to B. • Modify Bellman-Ford update with new rule: a node should
L2
Counting to infinity! E B advertises E: cost=2 to A ignore any advertised route that contains itself in the
L1
A sets E: cost=3 in its table advertisement
L2E:cost=X6
E:cost=4
L1
B L1 L3
D L2 Now suppose link BD fails.
B discovers it, then sets
E: cost = INFINITY.
But what if A had advertised Sends info to A, A sets
to B before B advertised to A?
E: cost = INFINITY.
6.02 Spring 2012 Lecture 21, Slide #9 6.02 Spring 2012 Lecture 21, Slide #10

Path Vector Routing Summary

E: l1; cost=2; path=[CE] E: l1; cost=1; path=[E] • The network layer implements the “glue” that
[CE] achieves connectivity
A l1 l3
C l1 To reach E, come this way
– Does addressing, forwarding, and routing
[ACE] path = [E]
l2 l2 [CE]
[ACE] l2 • Forwarding entails a routing table lookup; the
[CE] E E: Self
[BDE] [DE] l1 table is built using routing protocol
l2 [DE]
[BDE] l1 To reach E, come this way • DV protocol: distributes route computation;
l1 l3
B D l2 path = [E] each node advertises its best routes to
[DE]
E: l2; cost=2; path=[DE] E: l2; cost=1; path=[E] neighbors
– Path-vector: include path, not just cost, in
• For each advertisement, run integration step advertisement to avoid “count-to-infinity”
– E.g., pick shortest, cheapest, quickest, etc.
• LS protocol: distributes (floods) neighbor
• Ignore advertisements with own address in path vector information; centralizes route computation
– Avoids routing loops that count to infinity using shortest-path algorithm
6.02 Spring 2012 Lecture 21, Slide #11 6.02 Spring 2012 Lecture 21, Slide #12

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy