0% found this document useful (0 votes)
69 views78 pages

EE534 Network Layer Routing PDF

The network layer is responsible for routing packets between end systems across multiple interconnected networks. It faces big challenges in addressing where packets should be directed and routing them along the best path. Routing requires coordination between distributed network elements like routers. The network layer offers services like connection-oriented or connectionless transport and implements functions like routing, forwarding, and priority scheduling. Routing is a key role of the network layer in determining optimal paths between sources and destinations in a decentralized manner.

Uploaded by

srikanth
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)
69 views78 pages

EE534 Network Layer Routing PDF

The network layer is responsible for routing packets between end systems across multiple interconnected networks. It faces big challenges in addressing where packets should be directed and routing them along the best path. Routing requires coordination between distributed network elements like routers. The network layer offers services like connection-oriented or connectionless transport and implements functions like routing, forwarding, and priority scheduling. Routing is a key role of the network layer in determining optimal paths between sources and destinations in a decentralized manner.

Uploaded by

srikanth
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/ 78

Network Layer

EE534
Sonali Chouhan
Dept of EEE
IITG
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 Service
Messages
Messages

Transport Segments Transport


layer layer
Network Network
service service

Network Network Network Network


layer layer layer layer
Data link Data link Data link Data link End
End layer layer layer layer
system
system
Physical Physical Physical Physical β
α layer
layer layer layer

 Network layer can offer a variety of services to transport layer


 Connection-oriented service or connectionless service
 Best-effort or delay/loss guarantees
Network Service vs. Operation
Network Service Internal Network Operation
•Connectionless •Connectionless
• Datagram Transfer • IP
•Connection-Oriented •Connection-Oriented
• Reliable and possibly • Telephone connection
constant bit rate transfer
• ATM

Various combinations are possible


 Connection-oriented service over Connectionless operation
 Connectionless service over Connection-Oriented operation
 Context & requirements determine what makes sense
Complexity at the Edge or in the Core?
C

12 3 21
2
1

2
1
End system End system
α 1
2

1
β
1

2
2

4 3 21 12 3 21
Medium
12 3 21 123 4
2
A B 1

Network
1 Physical layer entity 3 Network layer entity
3 Network layer entity
2 Data link layer entity 4 Transport layer entity
The End-to-End Argument for System Design
• An end-to-end function is best implemented at a
higher level than at a lower level
• End-to-end service requires all intermediate components to
work properly
• Higher-level better positioned to ensure correct operation
• Example: stream transfer service
• Establishing an explicit connection for each stream across
network requires all network elements (NEs) to be aware of
connection; All NEs have to be involved in re-establishment
of connections in case of network fault
• In connectionless network operation, NEs do not deal with
each explicit connection and hence are much simpler in
design
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
End-to-End Packet Network
• Packet networks very different than telephone networks
• Individual packet streams are highly bursty
• Statistical multiplexing is used to concentrate streams
• User demand can undergo dramatic change
• Peer-to-peer applications stimulated huge growth in traffic
volumes
• Internet structure highly decentralized
• Paths traversed by packets can go through many networks
controlled by different organizations
• No single entity responsible for end-to-end service
Key Role of Routing
How to get packet from here to there?
• Decentralized nature of Internet makes routing a major
challenge
• Interior gateway protocols (IGPs) are used to
determine routes within a domain
• Exterior gateway protocols (EGPs) are used to
determine routes across domains
• Routes must be consistent & produce stable flows
• Scalability required to accommodate growth
• Hierarchical structure of IP addresses essential to
keeping size of routing tables manageable
Routing in Packet Networks
Routing in Packet Networks
1 3
6

2 Node
5 (switch or router)

• Possible (loopfree) routes from 1 to 6:


• 1-3-6, 1-4-5-6, 1-2-5-6, 1-2-5-4-3-6, ...
• Which is the “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
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 route
• Dynamic Routing
• Adapt to changes in network conditions
• Automated
• Calculates routes based on received updated network
state information
Routing in Virtual-Circuit Packet Networks
2
1 7 8
1 3 B
A 3
5 1 6 5
4
2

VCI
Host 4

3 5 Switch or router
2
C 5
6
D
2

• Route determined during connection setup


• Tables in switches implement forwarding that realizes
selected route
Routing Tables in VC Packet Networks
Node 3
Incoming Outgoing
Node 1 Node VCI Node VCI Node 6
Incoming Outgoing 1 2 6 7 Incoming Outgoing
Node VCI Node VCI 1 3 4 4 Node VCI Node VCI
A 1 3 2 4 2 6 1 3 7 B 8
A 5 3 3 6 7 1 2 3 1 B 5
3 2 A 1 6 1 4 2 B 5 3 1
3 3 A 5 4 4 1 3 B 8 3 7

Node 4
Incoming Outgoing
Node VCI Node VCI
Node 2 2 3 3 2
3 4 5 5 Node 5
Incoming Outgoing 3 2 2 3 Incoming Outgoing
Node VCI Node VCI 5 5 3 4 Node VCI Node VCI
C 6 4 3 4 5 D 2
4 3 C 6 D 2 4 5

Ex: Virtual Channel Identifier (VCI) from A to D


 From A & VCI 5 → 3 & VCI 3 → 4 & VCI 4
 → 5 & VCI 5 → D & VCI 2
Routing Tables in Datagram Packet Networks
Node 3

Node 1 Destination Next node Node 6


Destination Next node 1 1 Destination Next node
2 4 1 3
2 2
4 4 2 5
3 3
4 4 5 6 3 3
6 6 4 3
5 2
6 3 5 5

Node 4
Destination Next node
1 1
2 2
Node 2 Node 5
3 3
Destination Next node Destination Next node
5 5
1 1 6 3 1 4
3 1 2 2
4 4 3 4
5 5 4 4
6 5 6 6
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
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
Specialized Routing
• Flooding
• Useful in starting up network
• Useful in propagating information to all nodes

• Deflection Routing
• Fixed, preset routing procedure
• No route synthesis
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, from
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; add age field to know the latest
sequence
Deflection Routing
• Network nodes forward packets to preferred port
• If preferred port busy, deflect packet to another port
• Works well with regular topologies
• City street network
• Rectangular array of nodes
• Nodes designated (i,j)
• Rows alternate as one-way streets
• Columns alternate as one-way avenues
• Bufferless operation is possible
• Proposed for optical packet networks
• All-optical buffering currently not viable
0,0 0,1 0,2 0,3

1,0 1,1 1,2 1,3


Tunnel from
last column
to first
2,0 2,1 2,2 2,3
column or
vice versa

3,0 3,1 3,2 3,3


Example: Node (0,2)→(1,0)
busy

0,0 0,1 0,2 0,3

1,0 1,1 1,2 1,3

2,0 2,1 2,2 2,3

3,0 3,1 3,2 3,3


Routing in Virtual-Circuit Packet Networks
2
1 7 8
1 3 B
A 3
5 1 6 5
4
2

VCI
Host 4

3 5 Switch or router
2
C 5
6
D
2

• Route determined during connection setup


• Tables in switches implement forwarding that realizes
selected route
Routing Tables in VC Packet Networks
Node 3
Incoming Outgoing
Node 1 Node VCI Node VCI Node 6
Incoming Outgoing 1 2 6 7 Incoming Outgoing
Node VCI Node VCI 1 3 4 4 Node VCI Node VCI
A 1 3 2 4 2 6 1 3 7 B 8
A 5 3 3 6 7 1 2 3 1 B 5
3 2 A 1 6 1 4 2 B 5 3 1
3 3 A 5 4 4 1 3 B 8 3 7

Node 4
Incoming Outgoing
Node VCI Node VCI
Node 2 2 3 3 2
3 4 5 5 Node 5
Incoming Outgoing 3 2 2 3 Incoming Outgoing
Node VCI Node VCI 5 5 3 4 Node VCI Node VCI
C 6 4 3 4 5 D 2
4 3 C 6 D 2 4 5

Ex: Virtual Channel Identifier (VCI) from A to D


 From A & VCI 5 → 3 & VCI 3 → 4 & VCI 4
 → 5 & VCI 5 → D & VCI 2
Routing Tables in Datagram Packet Networks
Node 3

Node 1 Destination Next node Node 6


Destination Next node 1 1 Destination Next node
2 4 1 3
2 2
4 4 2 5
3 3
4 4 5 6 3 3
6 6 4 3
5 2
6 3 5 5

Node 4
Destination Next node
1 1
2 2
Node 2 Node 5
3 3
Destination Next node Destination Next node
5 5
1 1 6 3 1 4
3 1 2 2
4 4 3 4
5 5 4 4
6 5 6 6
Router Tasks

Forwarding

Move packet from input link to the appropriate output link

Purely local computation

Must go very fast (executed for every packet)

Routing

Make sure that the next hop actually leads to the
destination

Global decisions; distributed computation and
communication

Can go slower (only important when topology changes)
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
• Bellman-Ford or 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

Both computes shortest part from a Single Source vertex


Distance Vector (DV)
Local Signpost Table Synthesis
Direction Neighbors exchange table
Distance entries
Determine current best next
Routing Table hop
For each destination list: Inform neighbors
Periodically
Next Node
dest next dist After changes
Distance
Shortest Path to D
Focus on how nodes find their shortest
path to a given destination node, i.e. D
D

Dj
Cij
j
i
Di If Di is the shortest distance to D 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
D
Dj'
j'
Cij'
Dj
Cij j
i
Cij” Pick current
Di j"
Dj" shortest path
Why Distance Vector Works
D sends
accurate info

2 Hops
1 Hop D
3 Hops From D
From D
From D

Hop-1 nodes
calculate current
(next hop, dist), &
send to neighbors
Accurate info about D
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 found
• 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, )

Table entry Table entry


2 @ node 3
@ node 1
for dest D for dest D
3 2 3
1 1
5 2
4 D
3 1 3 6

2 5 2
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)

D3=D6+1
2 n3=6
D6=0
2 3 1
3 1
1
5 2
0
4 D
3 1 3 6

2 5 2
4 2
D6=0
D5=D6+2
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 1
2 3
3 1
1
5 2
3 0
4 D
3 1 3 6

2 5 2
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)


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

2 5 2
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
1 5
3 2 3
3 1
2 1
5 3 0
4 D
3 1 3 6

2 5 2
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)


5
37 2 3
3 1 1
5 53 2
0
4 D
3 1 3 6

2 5 2
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)


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

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)


79 7
2 3
4 1
(2,9) (4,6) (4, 7) (5,5) (6,2)
1
5 5 2
0
4 D
3 1 3 6

2 5 2
4
6 2

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


Main Features of DV
• Distributed: each node receives some
information from one or more of its directly
attached neighbors.
• Iterative: The process of exchanging
information will continue until no more
information is exchanged between the
neighborhood.
• Asynchronous: This algorithm does not
require all of the nodes to operate in lock
step with each other
Disadvantages
• It does not scale well.
• Changes in network topology are not
reflected quickly since updates are spread
node-by-node.
• Count to infinity (if link or node failures
render a node unreachable from some set of
other nodes, those nodes may spend forever
gradually increasing their estimates of the
distance to it, and in the meantime there may
be routing loops).
Counting to Infinity Problem
(a) 1 2 3 4 Nodes believe best
1 1 1 path is through each
other
(b) 1 2 3 X 4 (Destination is node 4)
1 1
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 advertise routes to a node that have that node
as their next stop (2 doesn’t advertise 4 to 3)
• This eliminates routing loops with only two nodes. But if
the loops involves more that two it is not as effective.
• 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 3 advertizes its route to


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

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


4 to node 1 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
Summary

Routing is a distributed algorithm

React to changes in the topology

Compute the paths through the network


Distance Vector shortest-path routing

Each node sends list of its shortest distance to each
destination to its neighbors

Neighbors update their lists; iterate


Weak at adapting to changes out of the box

Problems include loops and count to infinity
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 2 1 4 2
3 3
2 2
 4 5 4 5
Iteration N D2 D3 D4 D5 D6
Initial      
0 {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
Dijkstra’s Algorithm Example

Iteration [N] D2 D3 D4 D5 D6

0 [1] 3 2 5 ∞ ∞
(1-2) (1-3) (1-4)

1 [1,3] 3 2 4 ∞ 3
(1-2) (1-3) (1-3-4) (1-3-6)

2 [1,2,3] 3 2 4 7 3
(1-2) (1-3) (1-3-4) (1-2-5) (1-3-6)

3 [1,2,3,6] 3 2 4 5 3
(1-2) (1-3) (1-3-4) (1-3-6-5) (1-3-6)

4 [1,2,3,4,6] 3 2 4 5 3
(1-2) (1-3) (1-3-4) (1-3-6-5) (1-3-6)

5 [1,2,3,4,5, 3 2 4 5 3
6] (1-2) (1-3) (1-3-4) (1-3-6-5) (1-3-6)
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
Why is Link State Better?
• Fast, loopless convergence
• Support for precise metrics, and multiple
metrics if necessary (throughput, delay, cost,
reliability)
• Support for multiple paths to a destination
• algorithm can be modified to find best two paths
Link-State Routing.

Advantages:
► size of the update messages sent by a router is proportional to
the number of links it has
(i.e. update messages are much smaller than those in
vector-distance, so link-state “scales better”)

► each router computes routes independently from original data


(not relying on intermediate routers)

Disadvantages:

► computational load on routers.


Routing in the Internet
Autonomous System Concept
We cannot run an automatic routing protocol for the entire Global Internet.
How should the Internet be partitioned into sets of routers so that each set
can run a routing update protocol?

Networks and routers are owned by organizations and individuals.


Within each, an administrative authority can guarantee that internal routes
remain consistent and viable.

For purposes of routing, a group of networks controlled by a single


administrative authority is called an autonomous system (AS) identified
by an autonomous system number.

Think about an autonomous system as corresponding to a large ISP (The ERNET


network uses AS number 2697)

Even though there may be multiple Autonomous Systems supported by the ISP,
the Internet only sees the routing policy of the ISP. That ISP must have an
officially registered Autonomous System Number(ASN)
One router can be chosen to inform the outside world of
networks within the organization (assume desire for universal
connectivity - temporarily ignore security!)

This router also learns about outside networks and distributes


this information internally.
Routing in the Internet
• The Global Internet consists of AS
interconnected with each other
• Two-level routing:
• Interior routing (Intra-AS): routing inside an AS
• RIP, OSPF
• Exterior routing (Inter-AS): routing between two
ASs
• BGP
Intra-AS Routing
• Also known as Interior Gateway Protocols (IGP)
• Most common Intra-AS routing protocols:

• RIP: Routing Information Protocol


• OSPF: Open Shortest Path First

• IGRP: Interior Gateway Routing Protocol (Cisco


proprietary)
Routing Information Protocol (RIP)
• RFC 1058
• RIP based on routed, “route d”, distributed in BSD UNIX
• Uses the distance-vector algorithm
• Runs on top of UDP, port number 520
• Metric: number of hops
• Max limited to 15
• suitable for small networks (local area environments)
• value of 16 is reserved to represent infinity
• small number limits the count-to-infinity problem
RIP Operation
• Router sends update message to neighbors every 30 sec
• A router expects to receive an update message from
each of its neighbors within 180 seconds in the worst
case
• If router does not receive update message from
neighbor X within this limit, it assumes the link to X has
failed and sets the corresponding minimum cost to 16
(infinity)
• Uses split horizon with poisoned reverse
• Convergence speeded up by triggered updates
• neighbors notified immediately of changes in distance vector
table
RIP Protocol
• Routers run RIP in active mode (advertise distance
vector tables)
• Hosts can run RIP in passive mode (update distance
vector tables, but do not advertise)
• RIP datagrams broadcast over LANs & specifically
addressed on pt-pt or multi-access non-broadcast nets
• Two RIP packet types:
• request to ask neighbor for distance vector table
• response to advertise distance vector table
• periodically; in response to request; triggered
RIP Message Format
Request/Response 1/2
0 8 16 31
Command Version Zero

2 for IP Address family identifier Zero

IP address

Zero RIP
entry
Zero

Metric

...
Up to 25 RIP entries per message
RIP Message Format
• Command: request or response
• Version: v1 or v2
• One or more of:
• Address Family: 2 for IP
• IP Address: network or host destination
• Metric: number of hops to destination
• Does not have access to subnet mask information
• Cannot work with variable-length subnet masks
RIP v2 (RFC 2453):
• Subnet mask, next hop, routing domain
• can work with CIDR
• still uses max cost of 16

You might also like