1 cse524: lecture 12 network layer functions. 2 where we’re at… internet architecture and...
TRANSCRIPT
![Page 1: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/1.jpg)
1
CSE524: Lecture 12
Network layerFunctions
![Page 2: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/2.jpg)
2
Where we’re at…• Internet architecture and history• Internet protocols in practice• Application layer• Transport layer• Network layer
– Network-layer functions• Addressing, Demux to upper layer, Error detection, Delivery semantics• Security, Fragmentation, Quality of service• Routing
– Algorithms» Link-state (Dijkstra’s SPT)» Distance-vector (Distributed Bellman-Ford)
– Hierarchies
– Specific network layer protocols (IP) and devices• Data-link layer• Physical layer
![Page 3: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/3.jpg)
3
Recall
• Link-state algorithms– Broadcast all link states to each router– Each router performs Dijkstra’s shortest-path tree
calculation to generate forwarding tables per-destination
• Now…– Analyzing link-state algorithms
![Page 4: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/4.jpg)
4
NL: Link State Characteristics• Computation overhead
– n nodes– each iteration: need to check all nodes,
w, not in N• n*(n+1)/2 comparisons: O(n**2)• more efficient implementations possible:
O(n log(n))
• Space requirements• Bandwidth requirements• Stability
– Inconsistencies can cause transient loops
– Consistent LSDBs required for loop-free paths
A
B
C
D
1
3
5 2
1
Packet from CAmay loop around BDCif B knows about failureand C & D do not
X
![Page 5: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/5.jpg)
5
NL: Link-state issues
Oscillations possible:• e.g., link cost = amount of carried traffic• Example: path to A flaps as traffic routed clockwise
and counter-clockwise• Common problem in load-based link metrics
– A. Khanna and J. Zinky, "The Revised ARPANET Routing Metric," in ACM SIGCOMM, 1989, pp. 45--46.
A
D
C
B1 1+e
e0
e
1 1
0 0
A
D
C
B2+e 0
001+e1
A
D
C
B0 2+e
1+e10 0
A
D
C
B2+e 0
e01+e1
initially… recompute
routing… recompute … recompute
![Page 6: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/6.jpg)
6
NL: Distance vector routing algorithms
• Variants used in– Early ARPAnet
– RIP (intra-domain routing protocol)
– BGP (inter-domain routing protocol)
• Distributed next hop computation– “Gossip with immediate neighbors until you find the best
route”
– Best route is achieved when there are no more changes
• Unit of information exchange– Vector of distances to destinations
![Page 7: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/7.jpg)
7
NL: Distance vector routing algorithms
• Exchange known distance information iteratively• Example (Bellman 1957)
– Start with link table (as with Dijkstra), calculate distance table iteratively
– Distance table data structure• table of known distances and next hops kept per node• row for each possible destination• column for each directly-attached neighbor to node• example: in node X, for dest. Y via neighbor Z:
D (Y,Z)X
distance from X toY, via Z as next hop
c(X,Z) + min {D (Y,w)}Z
w
=
=
D (Y,*)X Minimum known
distance from X to Y=
H (Y)X
=Next hop node from X to Y
![Page 8: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/8.jpg)
8
NL: Distance table example
A
E D
CB7
8
1
2
1
2
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
Ecost to destination via
dest
inat
ion
D (C,D)E
c(E,D) + min {D (C,w)}D
w== 2+2 = 4
D (A,D)E
c(E,D) + min {D (A,w)}D
w== 2+3 = 5
D (A,B)E
c(E,B) + min {D (A,w)}B
w== 8+6 = 14
loop!
loop! H (Y) = X
![Page 9: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/9.jpg)
9
NL: Distance table gives routing table
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
Ecost to destination via
dest
inat
ion
A
B
C
D
A,1
D,5
D,4
D,4
Outgoing link to use, cost
dest
inat
ion
Distance table Routing table
H (Y)X
![Page 10: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/10.jpg)
10
Dj(k,*)
NL: Bellman algorithm
• How to calculate best routes?
i j
k
j’ k’
c(i,j)
c(i,j’)
Dj’(k,*)
Di(k,*)
For node i
while there is a change in D {
for all k not neighbor of i {
for each j neighbor of i {
Di(k,j) = c(i,j) + Dj(k,*)
if Di(k,j) < Di(k,*) {
Di(k,*) = Di(k,j)
Hi(k) = j
}
}
}
}
![Page 11: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/11.jpg)
11
NL: Distributed Bellman-Ford
• Make Bellman algorithm distributed (Ford-Fulkerson 1962)– Each node i knows part of link table– Iterative
• Each node sends around and recalculates D[i,*]• continues until no nodes exchange info.• self-terminating: no “signal” to stop
– Asynchronous• nodes need not exchange info/iterate in lock step!• “triggered updates”
– Distributed• each node communicates only with directly-attached neighbors
![Page 12: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/12.jpg)
12
NL: Distributed Bellman-Ford overview
Iterative, asynchronous: each local iteration caused by:
• local link cost change • message from neighbor:
its least cost path change from neighbor
Distributed:• each node notifies
neighbors only when its least cost path to any destination changes– neighbors then notify their
neighbors if necessary
wait for (change in local link cost of msg from neighbor)
recompute distance table
if least cost path to any dest
has changed, notify neighbors
Each node:
![Page 13: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/13.jpg)
13
NL: Distributed Bellman-Ford algorithm
1 Initialization: 2 for all adjacent nodes v: 3 DX(*,v) = infinity /* the * operator means "for all rows" */ 4 DX(v,v) = c(X,v) 5 for all destinations, y 6 send minwDX(y,w) to each neighbor /* w over all X's neighbors */
At all nodes, X:
![Page 14: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/14.jpg)
14
NL: Distributed Bellman-Ford algorithm (cont.):8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */ 14 /* note: d could be positive or negative */ 15 for all destinations y: DX(y,V) = DX(y,V) + d 16 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */
19 /* V has sent a new value for its minwDV(Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: DX(Y,V) = c(X,V) + newval 22 23 if we have a new minwDX(Y,w)for any destination Y 24 send new value of minwDX(Y,w) to all neighbors 25 26 forever
![Page 15: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/15.jpg)
15
NL: DBF example
A
B
E
C
D
Info atNode
A
B
C
D
A B C
0 7 ~
7 0 1
~ 1 0
~ ~ 2
7
1
1
2
28
Distance to Node
D
~
~
2
0
E 1 8 ~ 2
1
8
~
2
0
E
Initial Distance Vectors
![Page 16: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/16.jpg)
16
NL: DBF example
Info atNode
A
B
C
D
A B C
0 7 ~
7 0 1
~ 1 0
~ ~ 2
Distance to Node
D
~
~
2
0
E 1 8 4 2
1
8
~
2
0
E
A
B
E
C
D
7
1
1
2
28
E Receives D’s RoutesUpdates cost to C
![Page 17: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/17.jpg)
17
NL: DBF example
Info atNode
A
B
C
D
A B C
0 7 8
7 0 1
~ 1 0
~ ~ 2
Distance to Node
D
~
~
2
0
E 1 8 4 2
1
8
~
2
0
E
A
B
E
C
D
7
1
1
2
28
A receives B’s updateUpdates cost to C, but cost to E unchanged
![Page 18: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/18.jpg)
18
NL: DBF example
Info atNode
A
B
C
D
A B C
0 7 5
7 0 1
~ 1 0
~ ~ 2
Distance to Node
D
3
~
2
0
E 1 8 4 2
1
8
~
2
0
E
A
B
E
C
D
7
1
1
2
28
A receives E’s routesUpdates cost to C (new min) and D
![Page 19: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/19.jpg)
19
NL: DBF example
Info atNode
A
B
C
D
A B C
0 6 5
6 0 1
5 1 0
3 3 2
Distance to Node
D
3
3
2
0
E 1 5 4 2
1
5
4
2
0
E
A
B
E
C
D
7
1
1
2
28
And so on, until final distances....
![Page 20: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/20.jpg)
20
NL: DBF example
dest
A
B
C
D
A B D
1 14 5
7 8 5
6 9 4
4 11 2
Next hop
E’s routing table
A
B
E
C
D
7
1
1
2
28
E’s routing table
![Page 21: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/21.jpg)
21
NL: DBF (another example)
X Z12
7
Y
• See book for explanation of this example
![Page 22: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/22.jpg)
22
NL: DBF (another example)
X Z12
7
Y
D (Y,Z)X
c(X,Z) + min {D (Y,w)}w
=
= 7+1 = 8
Z
D (Z,Y)X
c(X,Y) + min {D (Z,w)}w=
= 2+1 = 3
Y
![Page 23: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/23.jpg)
23
Analyzing Distributed Bellman-Ford
• Continuously send local distance tables of best known routes to all neighbors until your table converges– Computation diffuses until all nodes converge
– Will computation converge quickly and deterministically?
• Not all the time
• Pathologic cases possible
• Several algorithms for minimizing such cases
![Page 24: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/24.jpg)
24
NL: DBF (good news example)
Link cost changes:• node detects local link cost change
• updates distance table (line 15)
• if cost change in least cost path, notify neighbors (lines 23,24)
• fast convergence (see book for details)
X Z14
50
Y1
algorithmterminates“good
news travelsfast”
![Page 25: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/25.jpg)
25
NL: DBF (count-to-infinity example)
Link cost changes:• good news travels fast
• bad news travels slow - “count to infinity” problem!
• alternate route implicitly used link that changed
X Z14
50
Y60
algorithmcontinues
on!
![Page 26: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/26.jpg)
26
NL: DBF: (count-to-infinity example)
A
25
1
1
B
C
B
C 21
dest cost
A
C 11
dest cost
A
B 12
dest cost
X
![Page 27: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/27.jpg)
27
NL: DBF: (count-to-infinity example)
A
25 1
B
C
B
C 21
dest cost
A
C 1~
dest cost
A
B 12
dest cost
C Sends Routes to B
![Page 28: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/28.jpg)
28
NL: DBF: (count-to-infinity example)
A
25 1
B
C
B
C 21
dest cost
A
C 13
dest cost
A
B 12
dest cost
B Updates Distance to A
![Page 29: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/29.jpg)
29
NL: DBF: (count-to-infinity example)
A
25 1
B
C
B
C 21
dest cost
A
C 13
dest cost
A
B 14
dest cost
B Sends Routes to C
![Page 30: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/30.jpg)
30
NL: DBF: (count-to-infinity example)
A
25 1
B
C
B
C 21
dest cost
A
C 15
dest cost
A
B 14
dest cost
C Sends Routes to B
![Page 31: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/31.jpg)
31
NL: How are loops caused?
• Observation 1:– B’s metric increases
• Observation 2:– C picks B as next hop to A– But, the implicit path from C to A includes itself!
![Page 32: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/32.jpg)
32
NL: Solutions to looping
• Split horizon– Do not advertise route to X to an adjacent neighbor if your
route to X goes through that neighbor– If C routes through B to get to A, C does not advertise (C=>A)
route to B.
• Poisoned reverse– Advertise an infinite distance route to X to an adjacent
neighbor if your route to X goes through that neighbor– If C routes through B to get to A, C advertises to B that its
distance to A is infinity
• Works for two node loops– Does not work for loops with more nodes
![Page 33: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/33.jpg)
33
NL: Split-horizon with poisoned reverse
If Z routes through Y to get to X :• Z tells Y its (Z’s) distance to X is
infinite (so Y won’t route to X via Z)
• will this completely solve count to infinity problem?
X Z14
50
Y60
algorithmterminates
new route to X not involving Y
can now select and advertise route to X via Z
route to X through Y goes thru Zpoison it!
![Page 34: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/34.jpg)
34
NL: Solutions to looping
1
11
1
A
X
B
C
D
![Page 35: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/35.jpg)
35
NL: Solutions to looping
• Route poisoning– Advertise infinite cost on a route to everyone (not just next
hop) when lowest cost route increases– Gets rid of stale information throughout network– Used in conjunction with Path Holdown
• Path Holddown– Freeze route for a fixed time
• Do not switch to an alternate while route poisoning is happening• In our example, A and B delay changing and advertising new routes• A and B both set route to D to infinity after single step
– Configuring holddown delay• Delay too large: Slow convergence• Delay too small: Count-to-infinity more probable
![Page 36: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/36.jpg)
36
NL: Solutions to looping
• Path vector – Select loop-free paths– Each route advertisement carries entire path– If a router sees itself in path, it rejects the route– BGP does it this way– Space proportional to diameter of network
![Page 37: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/37.jpg)
37
NL: Solutions to looping
• Do solutions completely eliminate loops?– No! Transient loops are still possible– Why? Because implicit path information may be stale– See this in BGP convergence
• Only way to fix this– Ensure that you have up-to-date information by
explicitly querying
![Page 38: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/38.jpg)
38
NL: Comparing Link State vs. Distance Vector
• Network bandwidth– DV
• send everything you know to your neighbors
• large messages, transfers only to neighbors
– LS• send info about your neighbors to everyone
• small messages, but broadcast globally
![Page 39: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/39.jpg)
39
NL: Link State vs. Distance Vector
• Convergence speed:– LS
• faster – don’t need to process LSPs before forwarding• single SPT calculation
– DV• fast with triggered updates• count-to-infinity problem
• Space requirements:– LS
• maintains entire topology
– DV • maintains only neighbor state• path vector maintains routes proportional to network diameter
![Page 40: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/40.jpg)
40
NL: Link State vs. Distance Vector
• Robustness:– LS can broadcast incorrect/corrupted LSP
• Can be made robust since sources are aware of alternate paths within topology
– DV can advertise incorrect paths to all destinations• Incorrect calculation can spread to entire network
![Page 41: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/41.jpg)
41
NL: DUAL
• Distributed Update Algorithm – Garcia-Luna-Aceves 1989
– Goal: Avoid transient loops in DV and LS algorithms• Similar in flavor to route poisoning and path holddown
– 2 ideas• A path shorter than current path cannot contain a loop
• Based on diffusing computation (Dijkstra-Scholten 1980)– Wait until computation completes before changing routes in response to a
new update
– Similar to path-holddown
– 3 kinds of messages• Update, query, reply
– 2 states for routers• Active (queries outstanding), passive
![Page 42: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/42.jpg)
42
NL: DUALOn update if (lower cost) adoptelse if (higher cost) { if (from next hop) { if (any path exists < old length from next hop) switch path else freeze route send query to all neighbors except next hop go into active wait for reply from all neighbors update route return to passive } send reply to all querying neighbors}
![Page 43: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/43.jpg)
43
NL: Routing Hierarchies
• Flat routing doesn’t scale– Each node/router cannot be expected to store routes to every
destination (or destination network)
– 50 million destinations
– Route table exchange would swamp network
• Key observation– Need less information with increasing distance to destination
• Two radically different approaches for routing– The area hierarchy
– The landmark hierarchy
• Covered in advanced topics at end of course...
![Page 44: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/44.jpg)
44
NL: Areas
• Divide network into areas– Areas can have nested sub-areas– No path between two sub-areas of an area can exit that area– Within area, each node has routes to every other node – Outside area
• Each node has routes for other top-level areas only• Inter-area packets are routed to nearest appropriate border router• Can result in sub-optimal paths
• Hierarchically address nodes in a network– Sequentially number top-level areas– Sub-areas of area are labeled relative to that area– Nodes are numbered relative to the smallest containing area
![Page 45: 1 CSE524: Lecture 12 Network layer Functions. 2 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport](https://reader036.vdocuments.net/reader036/viewer/2022062807/5697bfea1a28abf838cb739f/html5/thumbnails/45.jpg)
45
NL: Network layer functions summary
• Each networking layer provides varying degrees of functionality including….– security, delivery semantics, quality of service, demux to upper
layer, error detection, fragmentation, addressing, routing
• Next: IP network layer– IP demux to upper layer– IP error detection– IP delivery semantics– IP security– IP fragmentation– IP quality-of-service– IP addressing– IP routing