Title: Routing
1Routing IP Routing Protocols
2Routing Problem Definition
- You are a router in a packet switched network and
you receive a packet destined to some remote node - E.g., router A below receives a packet destined
to node F - Question How does A know where to send this
packet? - Does A send it to B? C? or D?
- Answer Recall from our earlier discussion in IP
that router A consults a forwarding table to make
this decision - Routing Problem How does router A build this
forwarding table? - Built by a routing algorithm (protocol) The job
of the routing algorithm is to determine the next
hop router for ALL destinations in the network
3End-to-End Path Determination Routing principles
Goal determine good path (sequence of routers)
thru network from source to dest.
- Graph abstraction for routing algorithms
- graph nodes are routers
- graph edges are physical links
- link cost delay, cost, or congestion level
(amount of traffic carried on the link)
- good path
- typically means minimum cost path
4Forwarding vs Routing
- Distinction between Forwarding and Routing
- Forwarding consists of taking a packet, looking
at its destination address, consulting the
forwarding table, and sending the packet in a
direction determined by the table - Very easy once the forwarding table has been
built - Routing is the process by which the forwarding
table is built - Need a routing protocol to dynamically build and
maintain the table
5Routing Algorithm classification
- Global or decentralized information?
- Global
- all routers have complete topology, link cost
info - link state algorithms
- Decentralized
- router knows physically-connected neighbors, link
costs to neighbors - iterative process of computation, exchange of
info with neighbors - distance vector algorithms
6Link-State Algorithms General Idea
- Have each router build the complete topology of
the network - Once the complete topology is built, have each
router run an algorithm to compute the shortest
path from itself to all other routers (nodes) in
the network
- 2 Issues
- How does a router build the complete topology of
the network? - How does a router compute the shortest path to
all other nodes in the network using this
topology information? - Dijkstras Shortest Path Algorithm
7Building the Network Topology
- At the heart of a link state algorithm is the
discovery of a nodes links states - Each node is assumed to capable of finding out
the state of the link to its neighbors (up or
down) and the cost of each link - Each node creates an update packet, also called a
link-state packet (LSP) and periodically sends
this information to all of its neighbors - Nodes neighbors send the packet to their
neighbors and so on until the LSP is received by
all nodes in the network
- LSP Contents
- ID of the node -- A
- List of neighbors and the cost to each neighbor
(B, 2), (C, 5), (D, 1) - A sequence number
- A time-to-live (TTL)
8Reliable Flooding
- Reliable flooding is the process of making sure
that all nodes get a copy of LSP from all other
nodes in the network - When a node X receives a copy of an LSP that
originated at some other node Y, it checks to see
if it has already stored a copy of an LSP from Y. - If not, it stores the LSP.
- If it already has a copy, it compares the SeqNos
if the new LSP has a larger SeqNo, it is assumed
to be more recent, and the last LSP is stored
replacing the old one. Otherwise the new LSP is
discarded
- The new LSP is then forwarded on all neighbors of
X except the neighbor from which the LSP was just
received
9Computing the Shortest Path Dijkstras Algorithm
- Notation
- Cost(i,j) link cost from node i to j.
- Cost(A, B) 2
- Cost(A, C) 5
- Cost(A, F) infinity
- Distance(v) current value of cost of path from
source to destination V - Distance(D) 1
- Pred(v) predecessor node of v along path from
source to v - Pred(D) A
- N set of nodes whose least cost path
definitively known
10Dijsktras Algorithm where A is the source node
1 Initialization 2 N A 3 for all
nodes v 4 if v adjacent to A 5 then
Distance (v) cost(A,v) 6 else Distance
(v) infinity 7 8 Loop 9 find w not in
N such that Distance(w) is a minimum 10 add w
to N 11 update Distance(v) for all v adjacent
to w and not in N 12 Distance(v) min(
Distance(v), Distance(w) cost(w,v) ) 13 /
new distance to v is either old distance to v or
known 14 shortest path distance to w plus
cost from w to v / 15 until all nodes in N
11Dijkstras algorithm example
D(B),p(B) 2,A 2,A 2,A
D(D),p(D) 1,A
Step 0 1 2 3 4 5
D(C),p(C) 5,A 4,D 3,E 3,E
D(E),p(E) infinity 2,D
N A AD ADE ADEB ADEBC ADEBCF
D(F),p(F) infinity infinity 4,E 4,E 4,E
5
3
5
2
2
1
3
1
2
1
- Algorithm complexity n nodes
- each iteration need to check all nodes, w, not
in N - n(n1)/2 comparisons O(n2) O(nlogn) algorithm
possible
12Distance Vector Algos General Idea
- We do NOT need to know the complete topology of
the network to build the forwarding table! - If a node X simply tells its neighbor Y the cost
of reaching another node Z via itself (X), then - neighbor Y can compute the cost of reaching Z
via X by simply adding the cost of reaching X
from Y and the cost of reaching Z from X, which
was advertised by X
- Example
- If D tells A that it can reach E with a cost of
1, then A knows it can reach E via D with a cost
of 11 2 - If D tells A that it can reach F with a cost of
3, then A knows it can reach F via D with a cost
of 13 4
13Distance Vector Routing Algorithm
- Each node tells its neighbors the cost of
reaching every other node via itself - A node computes its cost of reaching a
destination via each of its neighbors and picks
the best one - distributed
- each node communicates only with
directly-attached neighbors - iterative
- continues until no nodes exchange new information
- self-terminating no signal to stop
C(X,Y)
C(X,T)
14Distance Table Structure
- Distance Table Data Structure
- each node has its own distance table
- row for each possible destination
- column for each directly-attached neighbor to
node - example in node X, for dest. Y via neighbor Z
15Distance Table gives Forwarding Table
Outgoing link to use, cost
A B C D
A,1 D,5 D,4 D,4
destination
Forwarding (Routing) Table
Distance Table
16Distance Vector Routing overview
17Initialization
At all nodes, X
1 Initialization 2 for all adjacent nodes v
3 D (,v) infinity / the
operator means "for all rows" / 4 D (v,v)
c(X,v) 5 for all destinations, y 6
send D (y) to each neighbor / Cost of reaching Y
via X /
X
X
X
18Distance Vector Algorithm Example
We need to adjust values if necessary
19Distance Vector Algorithm (cont.)
8 loop 9 wait (until I receive update from
neighbor V) 10 if (update received from neighbor
V wrt destination Y) 11 / shortest path
from V to some Y has changed / 12 / V has
sent a new value for its DV(Y) / 13 / call
this received new value is "newval" / 14
for the single destination Y D (Y,V) c(X,V)
newval 15 16 if we have a new D (Y) for any
destination Y 17 send new value of D (Y)
to all neighbors 18 19 forever
X
X
X
20Distance Vector Algorithm Example
info sent
Adjusted new value
Initial values
21Distance Vector Algorithm Example
Adjust values if necessary
Init Info sent
This column Shows the Init. results
Adjusted new values
New Info sent
22Hierarchical Routing
- Our routing study thus far assumed
- all routers to be identical and the network to
be flat - 2 Problems exist with such a model
- 1. scale with 200 million destinations
- cant store all destinations in routing tables!
- routing table exchange would swamp links!
- 2. administrative autonomy
- Cant assume that a network with the scale of
Internet will be administered by a single
authority - Solution?
- Internet is NOT flat, but is a network of
networks - each network admin controls routing in its own
network next - http//www.ilkertemir.com/backbone-map/
- Turkeys past and current Internet backbone map
23Hierarchical Routing
b
a
a
C
B
d
A
- gateway routers
- special routers in AS
- run intra-AS routing protocol with all other
routers in AS - also responsible for routing to destinations
outside AS - run inter-AS routing protocol with other gateway
routers
- aggregate routers into regions, autonomous
systems (AS) - routers in same AS run same routing protocol
- intra-AS routing protocol
- routers in different AS can run different
intra-AS routing protocol
24Intra-AS Routing
- Also known as Interior Gateway Protocols (IGP)
- Most common Intra-AS routing protocols
- OSPF Open Shortest Path First
- RIP Routing Information Protocol
- IGRP Interior Gateway Routing Protocol (Cisco
proprietary)
25OSPF (Open Shortest Path First)
- open publicly available
- Uses Link State algorithm
- LS advertisement dissemination to entire AS via
flooding - Topology map at each node
- Route computation using Dijkstras algorithm
- Carried in OSPF messages directly over IP
- OSPF has its own network layer protocol number
like IP!
26RIP (Routing Information Protocol)
- Distance vector algorithm
- Included in BSD-UNIX Distribution in 1982
- Distance metric of hops (max 15 hops)
- 16 is the infinity to eliminate routing loops
- Distance vectors exchanged among neighbors every
30 sec via Response Message (also called
advertisement) - Each advertisement list of up to 25 destination
nets within AS - If more destinations, send multiple advertisements
27RIP Example
z
w
x
y
A
D
B
C
Destination Network Next Router Num. of
hops to dest. w A 2 y B 2
z B 7 x -- 1 . . ....
Routing table in D
28RIP Example
Dest Next hops w - - x -
- z C 4 . ...
Advertisement from A to D
Destination Network Next Router Num. of
hops to dest. w A 2 y B 2 z B
A 7 5 x -- 1 . . ....
Routing table in D
29RIP Table processing
- RIP routing tables managed by application-level
process called route-d (daemon) - advertisements sent in UDP packets, periodically
repeated
Transprt (UDP)
Transprt (UDP)
network forwarding (IP) table
network (IP)
forwarding table
link
link
physical
physical
30Inter-AS routing in the Internet BGP
- Each BGP router communicates only with its
neighbors - R1 with R2, R3 with R4
- Global info about routes to destination networks
propagates in an AS-by-AS manner via the exchange
of BGP messages
31Why different Intra- and Inter-AS routing ?
- Policy
- Intra-AS single admin, so no policy decisions
needed - Inter-AS admin wants control over how its
traffic routed, who routes through its net. - Performance
- Intra-AS can focus on performance
- Inter-AS policy may dominate over performance