Title: CSS432 Routing Textbook Ch3.3
1CSS432 RoutingTextbook Ch3.3
- Professor Munehiro Fukuda
2What Is Routing?
- Forwarding vs Routing
- forwarding
- To map a network to an outgoing interface and
some MAC information in a forwarding table. - To send a packet to an interface as consulting a
local and static forwarding table - OSI Layer 2 data link level
- Implemented in specialized hardware (switch)
- routing
- To build a dynamic routing table
- To update table contents in a dynamic and
distributed fashion - OSI Layer 3 network level (internet)
- Using complex distributed algorithms
3Overview
At Node A
- Network as a Graph
- Goal
- Find lowest cost path between two nodes
- Static approach has shortcomings
- Hardware failures
- Static network topology
- Static band width
- Distributed, dynamic routing algorithms
- Distance vector routing (RIP)
- Link state routing (OSPF)
4Distance Vector
- Each node maintains a set of triples
- (Destination, Cost, NextHop)
An initial distance vector at node A
Destination Cost Next hop
B 1 B
C 1 C
D 8 -
E 1 E
F 1 F
G 8 -
5Distance Vector
- Exchange updates directly connected neighbors
- periodically (on the order of several seconds)
- whenever table changes (called triggered update)
- Each update is a list of pairs
- (Destination, Cost)
- From B (A, 1), (C, 1)
- From C (A, 1), (B, 1), (D, 1)
- From E (A, 1)
- From F (A, 1), (G, 1)
- Update local table if receive a better route
- From B (C,1)
- (C, 1, C) lt (C, 2, B)
- From C (D, 1)
- (D, 8, - ) gt (D, 2, C)
- From F (G, 1)
- (G, 8, - ) gt (G, 2, F)
- Refresh existing routes delete if they are
expired
Destination Cost Next hop
B 1 B
C 1 C
D 2 C
E 1 E
F 1 F
G 2 F
6Routing Loop
- Failure-recovering scenario
- F detects the link to G has failed
- F sets distance to G to 8 and sends an update to
A - A sets distance to G to 8
- A receives periodic update from C with a 2-hop
path to G - A sets distance to G to 3 and sends update to F
- F sets distance to G in 4 hops via A
- Count-to-infinity problem
- The link from A to E fails
- A advertises distance of infinity to E
- C advertise a distance of 2 to E
- B decides it can reach E in 3 hops
- B advertises this to A
- A decides it can read E in 4 hops
- A advertises this to C
- C decides that it can reach E in 5 hops
To G in 2
To G in 3
To G in 1
To G in 4
8
B
(5) To E in 4
(2) To E in 8
(3) To E in 3
(4) To E in 8
(1) To E in 2
A
C
(6) To E in 5
8
E
7Loop-Breaking Heuristics
- Set infinity to 16
- Scheme Stop an infinity loop in 16.
- Problem No more 16 hops
- Split horizon
- Scheme Dont send a neighbor the routing
information learned from this neighbor. - Ex. B includes (E, 2, A) and thus doesnt send
(E, 3). - Split horizon with poison reverse
- Scheme Send the routing information learned from
this neighbor as setting hop count to 8. - Ex. B includes (E, 2, A) and thus sends (E, 8, A)
- Problem Its slow convergence speed
8Routing Information Protocol (RIP)
frame header
datagram heaader
UDP header
RIP Message
- Cmd 1-6
- 1 request
- 2 reply
- Port 520
- Used by routed
- Advertisement 30secs
- Table entry timeout 3 mins.
- Deleted in 60secs
- Unix commands
- Ripquery (BSD)
- Tcpdump (available in Linux, too)
- Snoop (Solaris)
Cmd
Ver
Routing domain
Addr family (net addr)
Route tag
Address of net 1
Subnet mask
Next hop address (1-16)
Distance to net 1
Addr family (net addr)
Route tag
Address of net 2
Subnet mask
Next hop address
Distance to net 2 (1-16)
25 entries
9Link State
- Strategy
- Reliable dissemination of link-state information
to all nodes over a system. - Calculation of routes from the sum of all the
accumulated link-state knowledge. - Link State Packet (LSP)
- ID of the node that created the LSP
- A cost of link to each directly connected
neighbor - A sequence number (SEQNO)
- A time-to-live (TTL) for this packet
10Link State (cont)
- Reliable flooding
- Store most recent LSP from each node
- Forward LSP to all nodes but one that sent it
- Generate new LSP periodically
- Increment SEQNO
- Start SEQNO at 0 when reboot
- Decrement TTL of each stored LSP
- Discard when TTL0
X
A
D
C
B
11Dijkstras Shortest-Path Algorithm
- put (myself, 0, -) in the confirmed list
- Next myself
- while( true )
- for each edge (X, distance, Next) where X is Ns
neighbor - if neither confirmed or tentative list has (X,
distance, Y) where Y ! Next, put (X, distance,
Next) in the confirmed list - if the tentative list has (X, distance, Y) where
Y ! Next, and (X, distance, Y) gt (X, distance,
Next) - Replace (X, distance, Y) with (X, distance, Next)
- If the tentative list is empty,
- exit
- else
- move the shortest edge (A, distance, B) from the
tentative to the confirmed list. - Next A
-
12Dijkstras Shortest-Path Algorithm
(D, 14, C) (G, 15, F)
(A, 0, -) (E, 2, E) (B, 5, B) (F, 4, F) (C, 8, B)
(A, 0, -)
(A, 0, -)
(B, 5, B) (C, 10, C) (E, 2, E) (F, 4, F)
(A, 0, -) (E, 2, E) (B, 5, B) (F, 4, F) (C, 8,
B) (D, 14, C)
(G, 15, F)
(B, 5, B) (C, 10, C) (F, 4, F)
(A, 0, -) (E, 2, E)
(A, 0, -) (E, 2, E) (F, 4, F)
(C, 10, C) (B, 5, B)
(A, 0, -) (E, 2, E) (B, 5, B) (F, 4, F) (C, 8,
B) (D, 14, C)
(G, 15, F)
(A, 0, -) (E, 2, E) (F, 4, F)
(C, 10, C) (B, 5, B) (G, 15, F)
(A, 0, -) (E, 2, E) (B, 5, B) (F, 4, F) (C, 8,
B) (D, 14, C) (G, 15, F)
(A, 0, -) (E, 2, E) (B, 5, B) (F, 4, F)
(C, 8, B) (G, 18, B)
(C, 8, B) (G, 15, F)
(A, 0, -) (E, 2, E) (B, 5, B) (F, 4, F)
(A, 0, -) (E, 2, E) (B, 5, B) (F, 4, F) (C, 8, B)
(G, 15, F)
13Open Shortest Path First Protocol (OSPF)
- Header
- Hello (reachability)
- Database description (topology)
- Link status request
- Link status update
- Link status acknowledgment
- Advertisement (header type4)
- LS Age TTL
- Type1 link cost b/w routers
- Link-State ID Advertising Router
- Seq from the same router
- Link ID the other end route ID of link
- Link data used if there are two or more links
to the same router - Metric link cost
- Link type P2P, ethernet, etc
- TOS delay-sensitive, etc
14OSPF Contd
- Gated daemon directly uses IP datagram.
- Header Type2 Database description (topology)
message - Used when the current topology has changed.
- Sent from an initialized router to another router
which has a topology information - LS Sequence number
- Used to determine which message is the latest
- Send a message with a new sequence number and
metric 8 when a router or a link fails.
15Metrics
- Original ARPANET metric
- measures number of packets enqueued on each link
- took neither latency or bandwidth into
consideration - New ARPANET metric
- stamp each incoming packet with its arrival time
(AT) - record departure time (DT)
- when link-level ACK arrives, compute
- Delay (DT - AT) Transmit Latency
- if timeout, reset DT to departure time for
retransmission - link cost average delay over some time period
- Fine Tuning
- compressed dynamic range
- replaced Delay with link utilization
16Virtual Private Networks and Tunnels
10.0.0.1
20.0.0.1
A
B
Application Level
Router
Dest router
Source router
10.0.0.1
20.0.0.1
Router Level
A
B
To 20.0.0.1
To 215.0.0.1
To 20.0.0.1
To 10.0.0.2
Internet
C
215.0.0.1
Company Branch
Company Branch
Physical Network Level
To 20.0.0.1
A
B
20.0.0.1
10.0.0.1
17Why VPN?
- Security
- The final destination/contents of packet cannot
be easily intercepted. - Routers
- Routers with special features such as
multicasting can form a virtual network. - No-IP packets
- Packets may be non-IP compatible packets.
- Mobile IPs
- The final destination may be a mobile computer.
18Mobile IP
- Invariant Sending hosts want to use the same IP
address mapped to a mobile host regardless of its
location. - Questions
- How does the home agent intercept a packet that
is destined for the mobile agent? --- Use ARP - How does the home agent then deliver the packet
to the mobile host? Use DHCP and VPN
10.0.0.3
Internet
DHCP server
Home agent
12.0.0.6
19Mobile IP (Contd)
1. ARP request Whats the physical addr
corresponding to 10.0.0.9?
3. Packet request sends a packet destined for
10.0.0.9 to the home agents MAC address
2. ARP response sends back MAC of 10.0.0.3
instead of 10.0.0.9
1. DHCP receives a new IP in the foreign network.
10.0.0.3
Internet
DHCP server
Home agent
12.0.0.6
IP tunneling wraps the packet inside an
IP header destined for the mobile host (12.0.0.7).
2. Care-of-address a mobile host informs
its Home agent of its original and new IPs.
20- Reviews
- RIP distance vector, routing loop and breaking
heurictics - OSPF link state, Dijkstras shortest path
algorithm - VPN and mobile IP
- Exercises in Chapter 3
- Ex. 46 (RIP)
- Ex. 52 (RIP)
- Ex. 62 (OSPF)
- Ex. 64 (OSPF)