EE534 Network Layer Routing PDF
EE534 Network Layer Routing PDF
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
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)
VCI
Host 4
3 5 Switch or router
2
C 5
6
D
2
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
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
… … …
• 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
2
5
2
5
VCI
Host 4
3 5 Switch or router
2
C 5
6
D
2
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
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
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
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
2 5 2
4
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
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
2 5 2
4
6 2
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
2 5 2
4
6 4 2
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
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
2 5 2
4
4 2
2 5 2
4
46 2
2 5 2
4
6 2
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”)
Disadvantages:
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!)
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