0% found this document useful (0 votes)
38 views48 pages

Chapter 7 R

The document discusses routing in packet networks. It describes how routing tables are created using a routing protocol to exchange link state information between nodes. It also covers different types of routing such as centralized vs distributed, static vs dynamic, and flat vs hierarchical routing. The document then discusses shortest path routing and how distance vector and link state routing protocols work to determine the shortest paths between nodes.

Uploaded by

Phạm Nam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views48 pages

Chapter 7 R

The document discusses routing in packet networks. It describes how routing tables are created using a routing protocol to exchange link state information between nodes. It also covers different types of routing such as centralized vs distributed, static vs dynamic, and flat vs hierarchical routing. The document then discusses shortest path routing and how distance vector and link state routing protocols work to determine the shortest paths between nodes.

Uploaded by

Phạm Nam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 48

Chapter 7

Packet-Switching
Networks

Routing in Packet Networks


Shortest Path Routing
Network Layer
 Network Layer: the most complex layer
 Requires the coordinated actions of multiple,
geographically distributed network elements
(switches & routers)
 Must be able to deal with very large scales
 Billions of users (people & communicating devices)
 Biggest Challenges
 Addressing: where should information be directed to?
 Routing: what path should be used to get information
there?
Network Layer Functions
Essential
 Routing: mechanisms for determining the
set of best paths for routing packets requires
the collaboration of network elements
 Forwarding: transfer of packets from NE
inputs to outputs
 Priority & Scheduling: determining order of
packet transmission in each NE
Optional: congestion control, segmentation &
reassembly, security
Chapter 7
Packet-Switching
Networks
Routing in Packet Networks
Routing in Packet Networks
1 3
6

2 Node
5
(switch or router)

 Three possible (loopfree) routes from 1 to 6:


 1-3-6, 1-4-5-6, 1-2-5-6
 Which is “best”?
 Min delay? Min hop? Max bandwidth? Min cost?
Max reliability?
Creating the Routing Tables
 Need information on state of links
 Link up/down; congested; delay or other metrics
 Need to distribute link state information using a
routing protocol
 What information is exchanged? How often?
 Exchange with neighbors; Broadcast or flood
 Need to compute routes based on information
 Single metric; multiple metrics
 Single route; alternate routes
Routing Algorithm Requirements
 Responsiveness to changes
 Topology or bandwidth changes, congestion
 Rapid convergence of routers to consistent set of routes
 Freedom from persistent loops
 Optimality
 Resource utilization, path length
 Robustness
 Continues working under high load, congestion, faults, equipment failures, incorrect implementations
 Simplicity
 Efficient software implementation, reasonable processing load
Classifications of Routing
 Centralized vs. Distributed Routing
 Static vs. Dynamic Routing
 Flat vs. Hierarchical Routing
Centralized vs Distributed Routing
 Centralized Routing
 All routes determined by a central node
 All state information sent to central node
 Problems adapting to frequent topology changes
 Does not scale
 Distributed Routing
 Routes determined by routers using distributed algorithm
 State information exchanged by routers
 Adapts to topology and other changes
 Better scalability
Static vs Dynamic Routing
 Static Routing
 Set up manually, do not change; requires administration
 Works when traffic predictable & network is simple
 Used to override some routes set by dynamic algorithm
 Used to provide default router
 Dynamic Routing
 Adapt to changes in network conditions
 Automated
 Calculates routes based on received updated network
state information
Flat vs Hierarchical Routing
 Flat Routing
 All routers are peers
 Does not scale
 Hierarchical Routing
 Partitioning: Domains, autonomous systems, areas...
 Some routers part of routing backbone
 Some routers only communicate within an area
 Efficient because it matches typical traffic flow patterns
 Scales
Non-Hierarchical Addresses and
Routing
0000 0001
0111 0100
1010 1 4 1011
1101 1110
3
R1 R2
2 5
0011 0011
0110 0000 1 0001 4 0101
1001 0111 1 0100 4 1000
1100 1010 1 1011 4 1111
… … … …

 No relationship between addresses & routing


proximity
 Routing tables require 16 entries each
Hierarchical Addresses and
Routing
0000 0100
0001 0101
0010 1 4 0110
0011 0111
3
R1 R2
2 5
1000 1100
1001 00 1 00 3 1101
1010 01 3 01 4 1110
1011 10 2 10 3 1111
11 3 11 5

 Prefix indicates network where host is


attached
 Routing tables require 4 entries each
Specialized Routing
 Flooding
 Useful in starting up network
 Useful in propagating information to all nodes
Flooding
Send a packet to all nodes in a network
 No routing tables available

 Need to broadcast packet to all nodes (e.g. to


propagate link state information)

Approach
 Send packet on all ports except one where it arrived

 Exponential growth in packet transmissions


1 3
6

2
5

Flooding is initiated from Node 1: Hop 1 transmissions


1 3
6

2
5

Flooding is initiated from Node 1: Hop 2 transmissions


1 3
6

2
5

Flooding is initiated from Node 1: Hop 3 transmissions


Limited Flooding
 Time-to-Live field in each packet limits
number of hops to certain diameter
 Each switch adds its ID before flooding;
discards repeats
 Source puts sequence number in each
packet; switches records source address and
sequence number and discards repeats
Chapter 7
Packet-Switching
Networks
Shortest Path Routing
Shortest Paths & Routing
 Many possible paths connect any given
source and to any given destination
 Routing involves the selection of the path to
be used to accomplish a given transfer
 Typically it is possible to attach a cost or
distance to a link connecting two nodes
 Routing can then be posed as a shortest path
problem
Routing Metrics
Means for measuring desirability of a path
 Path Length = sum of costs or distances

 Possible metrics
 Hop count: rough measure of resources used
 Reliability: link availability; BER
 Delay: sum of delays along path; complex & dynamic
 Bandwidth: “available capacity” in a path
 Load: Link & router utilization along path
 Cost: $$$
Shortest Path Approaches

Distance Vector Protocols


 Neighbors exchange list of distances to destinations

 Best next-hop determined for each destination

 Ford-Fulkerson (distributed) shortest path algorithm

Link State Protocols


 Link state information flooded to all routers

 Routers have complete topology information

 Shortest path (& hence next hop) calculated

 Dijkstra (centralized) shortest path algorithm


Distance Vector
Do you know the way to San Jose?

Sa
nJ San Jose 392
os
e
29
4

San Jose 596

Sa
n
Jo
se
25
0
Distance Vector
Local Signpost Table Synthesis
 Direction  Neighbors exchange
 Distance table entries
 Determine current best

Routing Table next hop


 Inform neighbors
For each destination list:
 Next Node
 Periodically
 After changes
 Distance dest next dist
Shortest Path to SJ
Focus on how nodes find their shortest
path to a given destination node, i.e. SJ Sa
n
Jos
Dj e
Cij
j
i
Di If Di is the shortest distance to SJ from i
and if j is a neighbor on the shortest path,
then Di = Cij + Dj
But we don’t know the shortest
paths

i only has local info


from neighbors Sa
Dj' n
j' Jos
Cij' e
Dj
Cij j
i
Cij” Pick current
Di j"
Dj" shortest path
Why Distance Vector WorksSJ sends
accurate info

Sa
3 Hops
2 Hops
1 Hop
From SJ n
From SJ
From SJ Jos
e

Hop-1 nodes
calculate current
(next hop, dist), &
Accurate info about SJ send to neighbors
ripples across network,
Shortest Path Converges
Bellman-Ford Algorithm
 Consider computations for one destination d
 Initialization
 Each node table has 1 row for destination d
 Distance of node d to itself is zero: Dd=0
 Distance of other node j to d is infinite: Dj=, for j d
 Next hop node nj = -1 to indicate not yet defined for j  d

 Send Step
 Send new distance vector to immediate neighbors across local link
 Receive Step
 At node j, find the next hop that gives the minimum distance to d,

 Minj { Cij + Dj }
 Replace old (nj, Dj(d)) by new (nj*, Dj*(d)) if new next node or distance
 Go to send step
Bellman-Ford Algorithm
 Now consider parallel computations for all destinations d
 Initialization
 Each node has 1 row for each destination d
 Distance of node d to itself is zero: Dd(d)=0
 Distance of other node j to d is infinite: Dj(d)=  , for j  d
 Next node nj = -1 since not yet defined
 Send Step
 Send new distance vector to immediate neighbors across local link
 Receive Step
 For each destination d, find the next hop that gives the minimum
distance to d,
 Minj { Cij+ Dj(d) }
 Replace old (nj, Di(d)) by new (nj*, Dj*(d)) if new next node or distance
found
 Go to send step
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (-1, ) (-1, ) (-1, ) (-1, ) (-1, )


1
2
3

Table entry Table entry


@ node 1 @ node 3
for dest SJ for dest SJ
2 3
1
5 2
1 San
4
Jose
3 1 3 6

2
2 5
4
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (-1, ) (-1, ) (-1, ) (-1, ) (-1, )


1 (-1, ) (-1, ) (6,1) (-1, ) (6,2)
2
3

D3=D6+1
n3=6
D6=0
2 3 1
1 1
5 2
0
4 San
3 1 3 6
Jose
2 5 2
4
2
D5=D6+2 D6=0
n5=6
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (-1, ) (-1, ) (-1, ) (-1, ) (-1, )


1 (-1, ) (-1, ) (6, 1) (-1, ) (6,2)
2 (3,3) (5,6) (6, 1) (3,3) (6,2)
3

3 1
2 3
1 1
5 2
3 0
4 San
3 1 3 6
Jose
2 2
5
4
6 2
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (-1, ) (-1, ) (-1, ) (-1, ) (-1, )


1 (-1, ) (-1, ) (6, 1) (-1, ) (6,2)
2 (3,3) (5,6) (6, 1) (3,3) (6,2)
3 (3,3) (4,4) (6, 1) (3,3) (6,2)

1
3 2 3
1 1
5 2
3 0
4 San
3 1 3 6
Jose
2
2 5
4
6 4 2
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (3,3) (4,4) (6, 1) (3,3) (6,2)


1 (3,3) (4,4) (4, 5) (3,3) (6,2)
2
3

1 5
3 2
3
1 1
5 2
3 0
4 San
3 1 3 6
Jose
2
2 5
4 4
2
Network disconnected; Loop created between nodes 3 and 4
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (3,3) (4,4) (6, 1) (3,3) (6,2)


1 (3,3) (4,4) (4, 5) (3,3) (6,2)
2 (3,7) (4,4) (4, 5) (5,5) (6,2)
3

5
37 2
3
1 1
5 5 23
0
4 San
3 1 3 6
Jose
2
2 5
4
4 2

Node 4 could have chosen 2 as next node because of tie


Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (3,3) (4,4) (6, 1) (3,3) (6,2)


1 (3,3) (4,4) (4, 5) (3,3) (6,2)
2 (3,7) (4,4) (4, 5) (5,5) (6,2)
3 (3,7) (4,6) (4, 7) (5,5) (6,2)

5 7
7 2 3
1 1
5 2
5 0
4 San
3 1 3 6
Jose
2 5 2
4
46 2

Node 2 could have chosen 5 as next node because of tie


Iteration Node 1 Node 2 Node 3 Node 4 Node 5

1 (3,3) (4,4) (4, 5) (3,3) (6,2)


2 (3,7) (4,4) (4, 5) (2,5) (6,2)
3 (3,7) (4,6) (4, 7) (5,5) (6,2)
4 (2,9) (4,6) (4, 7) (5,5) (6,2)

79 2 7
3
1 1
5 2
5 0
4 San
3 1 3 6
Jose
2
2 5
4
6 2

Node 1 could have chose 3 as next node because of tie


Counting to Infinity Problem
(a) 1 2 3 4
1 1 1 Nodes believe best
path is through each
(b) 1 2 3 X 4 other
1 1
(Destination is node 4)
Update Node 1 Node 2 Node 3

Before break (2,3) (3,2) (4, 1)


After break (2,3) (3,2) (2,3)
1 (2,3) (3,4) (2,3)
2 (2,5) (3,4) (2,5)
3 (2,5) (3,6) (2,5)
4 (2,7) (3,6) (2,7)
5 (2,7) (3,8) (2,7)
… … … …
Problem: Bad News Travels
Slowly
Remedies
 Split Horizon
 Do not report route to a destination to the
neighbor from which route was learned
 Poisoned Reverse
 Report route to a destination to the neighbor
from which route was learned, but with infinite
distance
 Breaks erroneous direct loops immediately
 Does not work on some indirect loops
Split Horizon with Poison Reverse
(a) 1 2 3 4
1 1 1 Nodes believe best
path is through
(b) 1 2 3 X 4 each other
1 1

Update Node 1 Node 2 Node 3


Before break (2, 3) (3, 2) (4, 1)
After break (2, 3) (3, 2) (-1, ) Node 2 advertizes its route to 4 to
node 3 as having distance infinity;
node 3 finds there is no route to 4

1 (2, 3) (-1, ) (-1, ) Node 1 advertizes its route to 4 to


node 2 as having distance infinity;
node 2 finds there is no route to 4

2 (-1, ) (-1, ) (-1, ) Node 1 finds there is no route to 4


Link-State Algorithm
 Basic idea: two step procedure
 Each source node gets a map of all nodes and link metrics
(link state) of the entire network
 Find the shortest path on the map from the source node to
all destination nodes
 Broadcast of link-state information
 Every node i in the network broadcasts to every other node
in the network:
 ID’s of its neighbors: Ni=set of neighbors of i
 Distances to its neighbors: {Cij | j Ni}
 Flooding is a popular method of broadcasting packets
Dijkstra Algorithm: Finding
shortest paths in order
Find shortest paths from Closest node to s is 1 hop away
source s to all other
destinations 2nd closest node to s is 1 hop
away from s or w”
3rd closest node to s is 1 hop
w' away from s, w”, or x

z
w
x
s z'
w
" x'
Dijkstra’s algorithm
 N: set of nodes for which shortest path already found
 Initialization: (Start with source node s)
 N = {s}, Ds = 0, “s is distance zero from itself”
 Dj=Csj for all j  s, distances of directly-connected neighbors
 Step A: (Find next closest node i)
 Find i  N such that
 Di = min Dj for j  N
 Add i to N
 If N contains all the nodes, stop
 Step B: (update minimum costs)
 For each node j  N
 Dj = min (Dj, Di+Cij) Minimum distance from s to
 Go to Step A j through node i in N
Execution of Dijkstra’s algorithm
2 2 
1 3 1 1 3 1
6 6 
5 2 5 2
3 3
1 4 1 4 2
2
3 3
2 2
 4 5 4 5

Iteration N D2 D3 D4 D5 D6
Initial {1} 3 2 5  
1 {1,3} 3 2 4  3
2 {1,2,3} 3 2 4 7 3 
3 {1,2,3,6} 3 2 4  5 3
4 {1,2,3,4,6} 3 2 4 5  3
5 {1,2,3,4,5,6} 3 2 4 5 3
Shortest Paths in Dijkstra’s
Algorithm
2 3 1 2 3 1
1 1
6 6
5 2 5 2
3 3
1 4 2 1 4 2
3 3
2 2
4 5 4 5
2 3 1 2 3 1
1 1
6 6
5 2 5 2
3 3
1 4 2 1 4 2
3 3
2 2
4 5 4 5

2 3 1 2 3 1
1 1
6 6
5 2 5 2
3 3
1 4 2 1 4 2
3 3
2 2
4 5 4 5
Routing table at node 1

Destination Next node Cost


2 2 3
3 3 2
4 3 4
5 3 5
6 3 3
Reaction to Failure
 If a link fails,
 Router sets link distance to infinity & floods the
network with an update packet
 All routers immediately update their link database &
recalculate their shortest paths
 Recovery very quick
 But watch out for old update messages
 Add time stamp or sequence # to each update
message
 Check whether each received update message is new
 If new, add it to database and broadcast
 If older, send update message on arriving link

You might also like