CN Unit IV
CN Unit IV
CN Unit IV
ROUTING
Routing and protocols: Unicast routing - Distance Vector Routing - RIP - Link State Routing –
OSPF – Path-vector routing - BGP - Multicast Routing: DVMRP – PIM.
UNICAST ROUTING
NETWORK AS A GRAPH
The Figure below shows a graph representing a network.
The nodes of the graph, labeled A through G, may be hosts, switches, routers,
or networks.
The edges of the graph correspond to the network links.
Each edge has an associated cost.
The basic problem of routing is to find the lowest-cost path between any two nodes,
where the cost of a path equals the sum of the costs of all the edges that make up the
path.
This static approach has several problems:
It does not deal with node or link failures.
It does not consider the addition of new nodes or links.
It implies that edge costs cannot change.
For these reasons, routing is achieved by running routing protocols among the
nodes.
These protocols provide a distributed, dynamic way to solve the problem of finding
the lowest-cost path in the presence of link and node failures and
changing edge costs.
Initial State
Each node sends its initial table (distance vector) to neighbors and receives their
estimate.
Node A sends its table to nodes B, C, E & F and receives tables from nodes B,
C, E & F.
Each node updates its routing table by comparing with each of its neighbor's
table
For each destination, Total Cost is computed as:
Total Cost = Cost (Node to Neighbor) + Cost (Neighbor to Destination)
If Total Cost < Cost then
Cost = Total Cost and NextHop = Neighbor
Node A learns from C's table to reach node D and from F's table to reach node
G.
Total Cost to reach node D via C = Cost (A to C) + Cost(C to D)
Cost = 1 + 1 = 2.
Since 2 < ∞, entry for destination D in A's table is changed to (D, 2, C)
Total Cost to reach node G via F = Cost(A to F) + Cost(F to G) = 1 + 1 = 2
Since 2 < ∞, entry for destination G in A's table is changed to (G, 2, F)
Each node builds complete routing table after few exchanges amongst its
neighbors.
System stabilizes when all nodes have complete routing information, i.e.,
convergence.
Routing tables are exchanged periodically or in case of triggered update.
The final distances stored at each node is given below:
Periodic Update
In this case, each node automatically sends an update message every so often, even if
nothing has changed.
The frequency of these periodic updates varies from protocol to protocol, but it is
typically on the order of several seconds to several minutes.
Triggered Update
In this case, whenever a node notices a link failure or receives an update from one of
its neighbors that causes it to change one of the routes in its routing table.
Whenever a node’s routing table changes, it sends an update to its neighbors, which
may lead to a change in their tables, causing them to send an update to their
neighbors.
Count-To-Infinity (or) Loop Instability Problem
Suppose link from node A to E goes down.
Node A advertises a distance of ∞ to E to its neighbors
Node B receives periodic update from C before A’s update
reaches B
Node B updated by C, concludes that E can be reached in 3 hops via C
Node B advertises to A as 3 hops to reach E
Node A in turn updates C with a distance of 4 hops to E and so on
Thus nodes update each other until cost to E reaches infinity, i.e., no
convergence.
Routing table does not stabilize.
This problem is called loop instability or count to infinity
Step-01:
Each router prepares its routing table using its local knowledge.
Routing table prepared by each router is shown below-
At Router A-
Next
Destination Distance
Hop
A 0 A
B 2 B
C ∞ –
D 1 D
At Router B-
A 2 A
B 0 B
C 3 C
D 7 D
At Router C-
A ∞ –
B 3 B
C 0 C
D 11 D
At Router D-
A ∞ –
B 3 B
C 0 C
D 11 D
Step-02:
Each router exchanges its distance vector obtained in Step-01 with its
neighbors.
• After exchanging the distance vectors, each router prepares a new routing table.
This is shown below-
At Router A-
Router A receives distance vectors from its neighbors B and D.
Router A prepares a new routing table as-
Cost of reaching destination B from router A = min { 2+0 , 1+7 } = 2 via B. Cost of
reaching destination C from router A = min { 2+3 , 1+11 } = 5 via B. Cost of
reaching destination D from router A = min { 2+7 , 1+0 } = 1 via D.
Explanation For Destination B
Router A can reach the destination router B via its neighbor B or neighbor D.
It chooses the path which gives the minimum cost.
Cost of reaching router B from router A via neighbor B = Cost (A→B) + Cost (B→B)= 2
+0=2
Cost of reaching router B from router A via neighbor D = Cost (A→D) + Cost (D→B) =
1+7=8
Since the cost is minimum via neighbor B, so router A chooses the path via B. It
creates an entry (2, B) for destination B in its new routing table.
Similarly, we calculate the shortest path distance to each destination router at every router.
Thus, the new routing table at router A is-
A 0 A
B 2 B
C 5 B
D 1 D
A 2 A
B 0 B
C 3 C
D 3 A
Thus, the new routing table at router C is-
Destination Distance Next Hop
A 5 B
B 3 B
C 0 C
D 10 B
Thus, the new routing table at router D is-
Destination Distance Next Hop
A 1 A
B 3 A
C 10 B
D 0 D
Step-03:
Each router exchanges its distance vector obtained in Step-02 with its neighboring routers.
After exchanging the distance vectors, each router prepares a new routing table.
This is shown below-
ROUTING INFORMATION PROTOCOL (RIP)
Routing Information Protocol (RIP) is a dynamic routing protocol that uses hop count as a
routing metric to find the best path between the source and the destination network. It is a distance- vector
routing protocol that has an AD value of 120 and works on the Network layer of the OSI model. RIP uses
port number 520.
Hop Count
Hop count is the number of routers occurring in between the source and destination network.
The path with the lowest hop count is considered as the best route to reach a network and therefore placed in
the routing table. RIP prevents routing loops by limiting the number of hops allowed in a path from source
and destination. The maximum hop count allowed for RIP is 15 and a hop count of
16 is considered as network unreachable.
Features of RIP
1. Updates of the network are exchanged periodically.
2. Updates (routing information) are always broadcast.
3. Full routing tables are sent in updates.
4. Routers always trust routing information received from neighbor routers. This is also known as
Routing on rumors.
RIP is an intra-domain routing protocol based on distance-vector algorithm.
Here, intra-domain means routing the packets in a defined domain, for example, web browsing
within an institutional area. To understand the RIP protocol, our main focus is to know the
structure of the packet, how many fields it contains, and how these fields determine the routing
table.
Example
Routers advertise the cost of reaching networks. Cost of reaching each link is 1 hop. For
example, router C advertises to A that it can reach network 2, 3 at cost
0 (directly connected), networks 5, 6 at cost 1 and network 4 at cost 2.
Each router updates cost and next hop for each network number.
Infinity is defined as 16, i.e., any route cannot have more than 15 hops.
Therefore RIP can be implemented on small-sized networks only.
Advertisements are sent every 30 seconds or in case of triggered update.
The following timers are used to update the routing table: RIP
update timer : 30 sec
The routers configured with RIP send their updates to all the neighboring routers every
30 seconds.
RIP Invalid timer : 180 sec
The RIP invalid timer is 180 seconds, which means that if the router is disconnected
from the network or some link goes down, then the neighbor router will wait for 180 seconds to take the
update. If it does not receive the update within 180 seconds, then it will mark the particular route
as not reachable.
RIP Flush timer : 240 sec
The RIP flush timer is 240 second which is almost equal to 4 min means that if the router does
not receive the update within 240 seconds then the neighbor route will remove that particular route from the
routing table which is a very slow process as 4 minutes is a long time to wait. Advantages of RIP
The following are the advantages of a RIP protocol:
It is easy to configure
It has less complexity
The CPU utilization is less.
Disadvantages of RIP
The following are the disadvantages of RIP:
In RIP, the route is chosen based on the hop count metric. If another route of better
bandwidth is available, then that route would not be chosen. Let's understand this scenario
through an example.
The RIP is a classful routing protocol, so it does not support the VLSM (Variable Length Subnet
Mask). The classful routing protocol is a protocol that does not include the subnet mask information in
the routing updates.
It broadcasts the routing updates to the entire network that creates a lot of traffic. In RIP,
the routing table updates every 30 seconds. Whenever the updates occur, it sends the copy of the
update to all the neighbors except the one that has caused the update. The sending of updates to all
the neighbors creates a lot of traffic. This rule is known as a split-horizon rule.
It faces a problem of Slow convergence. Whenever the router or link fails, then it often
takes minutes to stabilize or take an alternative route; This problem is known as Slow
convergence.
RIP supports maximum 15 hops which means that the maximum 16 hops can be
configured in a RIP
The Administrative distance value is 120 (Ad value). If the Ad value is less, then the
protocol is more reliable than the protocol with more Ad value.
The RIP protocol has the highest Ad value, so it is not as reliable as the other
routing protocols.
Reliable Flooding
Each node sends its LSP out on each of its directly connected links.
When a node receives LSP of another node, checks if it has an LSP already for that
node.
If not, it stores and forwards the LSP on all other links except the incoming one.
Else if the received LSP has a bigger sequence number, then it is stored and
forwarded. Older LSP for that node is discarded.
Otherwise discard the received LSP, since it is not latest for that node.
Thus recent LSP of a node eventually reaches all nodes, i.e., reliable flooding.
Route Calculation
Each node knows the entire topology, once it has LSP from every other node.
Forward search algorithm is used to compute routing table from the received
LSPs.
Each node maintains two lists, namely Tentative and Confirmed with entries of the
form (Destination, Cost, NextHop).
DIJKSTRA’S SHORTEST PATH ALGORITHM
(FORWARD SEARCH ALGORITHM)
1. Each host maintains two lists, known as Tentative and Confirmed
2. Initialize the Confirmed list with an entry for the Node (Cost = 0).
3. Node just added to Confirmed list is called Next. Its LSP is examined.
4. For each neighbor of Next, calculate cost to reach each neighbor as Cost (Node to
Next) + Cost (Next to Neighbor).
a. If Neighbor is neither in Confirmed nor in Tentative list, then add
(Neighbor, Cost, NextHop) to Tentative list.
b. If Neighbor is in Tentative list, and Cost is less than existing cost, then replace
the entry with (Neighbor, Cost, NextHop).
5. If Tentative list is empty then Stop, otherwise move least cost entry from
Tentative list to Confirmed list. Go to Step 2.
Example :
Routers that exist inside the area flood the area with routing information
In Area, the special router also exists. The special routers are those that are present at the border
of an area, and these special routers are known as Area Border Routers. This router summarizes the
information about an area and shares the information with other areas.
All the areas inside an autonomous system are connected to the backbone routers, and these
backbone routers are part of a primary area. The role of a primary area is to provide communication
between different areas.
Spanning Trees
In path-vector routing, the path from a source to all destinations is determined
by the best spanning tree.
The best spanning tree is not the least-cost tree.
It is the tree determined by the source when it imposes its own policy.
If there is more than one route to a destination, the source can choose the route that
meets its policy best.
A source may apply several policies at the same time.
One of the common policies uses the minimum number of nodes to be visited.
Another common policy is to avoid some nodes as the middle node in a route.
The spanning trees are made, gradually and asynchronously, by each node.
When a node is booted, it creates a path vector based on the information it can obtain
about its immediate neighbor.
A node sends greeting messages to its immediate neighbors to collect these
pieces of information.
Each node, after the creation of the initial path vector, sends it to all its
immediate neighbors.
Each node, when it receives a path vector from a neighbor, updates its path vector
using the formula
Example:
The Figure below shows a small internet with only five nodes.
Each source has created its own spanning tree that meets its policy.
The policy imposed by all sources is to use the minimum number of nodes to reach
a destination.
The spanning tree selected by A and E is such that the communication does not pass
through D as a middle node.
Similarly, the spanning tree selected by B is such that the communication does not
pass through C as a middle node.
eBGP operation
eBGP allows two physically connected border routers in two different ASs
to form pairs of eBGP by creating a TCP connection using the well-known port
179.
A simplified update messages sent by routers involved in the eBGP
sessions.
For example, message number 1 is sent by router R1 and tells router R5 that
N1, N2, N3, and N4 can be reached through router R1.
Router R5 add this information at the end of its forwarding table.
When R5 receives any packet destined for these four networks, it can find in its
forwarding table that the next router is R1.
Each AS have a border router (gateway), by which packets enter and leave that
AS. In above figure, R3 and R4 are border routers.
One of the router in each autonomous system is designated as BGP speaker.
BGP Speaker exchange reachability information with other BGP speakers,
known as external BGP session.
BGP advertises complete path as enumerated list of AS (path vector) to reach a
particular network.
Paths must be without any loop, i.e., AS list is unique.
For example, backbone network advertises that networks 128.96 and 192.4.153 can be
reached along the path <AS1, AS2, AS4>.
If there are multiple routes to a destination, BGP speaker chooses one based on policy.
Speakers need not advertise any route to a destination, even if one exists.
Advertised paths can be cancelled, if a link/node on the path goes down. This
negative advertisement is known as withdrawn route.
Routes are not repeatedly sent. If there is no change, keep alive messages are
sent.
11. MULTICASTING
In multicasting, there is one source and a group of destinations.
Multicast supports efficient delivery to multiple destinations.
The relationship is one to many or many-to-many.
One-to-Many (Source Specific Multicast)
oRadio station broadcast oTransmitting
news, stock-price oSoftware updates to
multiple hosts
Many-to-Many (Any Source Multicast)
oMultimedia teleconferencing
oOnline multi-player games
oDistributed simulations
In this type of communication, the source address is a unicast address, but the
destination address is a group address.
The group address defines the members of the group.
In multicasting, a multicast router may have to send out copies of the same
datagram through more than one interface.
Hosts that are members of a group receive copies of any packets sent to that
group’s multicast address
A host can be in multiple groups
A host can join and leave groups
A host signals its desire to join or leave a multicast group by
communicating with its local router using a special protocol.
In IPv4, the protocol is Internet Group Management Protocol (IGMP)
In IPv6, the protocol is Multicast Listener Discovery (MLD)
Using IP multicast
Sending host does not send multiple copies of the packet
A host sends a single copy of the packet addressed to the group’s multicast
address
The sending host does not need to know the individual unicast IP address of each
member
TYPES OF MULTICASTING
Source-Specific Multicast - In source-specific multicast (one-to-many model),
receiver specifies multicast group and sender from which it is interested to
receive packets. Example: Internet radio broadcasts.
MULTICAST ROUTING
To support multicast, a router must additionally have multicast forwarding
tables that indicate, based on multicast address, which links to use to
forward the multicast packet.
Unicast forwarding tables collectively specify a set of paths.
Multicast forwarding tables collectively specify a set of trees -Multicast
distribution trees.
Multicast routing is the process by which multicast distribution trees are
determined.
To support multicasting, routers additionally build multicast forwarding
tables.
Multicast forwarding table is a tree structure, known as multicast
distribution trees.
Internet multicast is implemented on physical networks that support
broadcasting by extending forwarding functions.
Pruning:
Sent from routers receiving multicast traffic for which they have no active
group members
“Prunes” the tree created by DVMRP
Stops needless data from being sent
Grafting:
Used after a branch has been pruned back
Sent by a router that has a host that joins a multicast group
Goes from router to router until a router active on the multicast group is
reached
Sent for the following cases
A new host member joins a group
A new dependent router joins a pruned branch
A dependent router restarts on a pruned branch
2. Multicast Link State (MOSPF)
Multicast Open Shortest Path First (MOSPF) is the extension of the Open Shortest Path
First (OSPF) protocol, which is used in unicast routing. It also uses the source- based tree
approach to multicasting. If the internet is running a unicast link-state routing algorithm, the
idea can be extended to provide a multicast link-state routing algorithm.
To extend unicasting to multicasting, each router needs to have another database, as with
the case of unicast distance-vector routing, to show which interface has an active member in a
particular group.
Example of tree formation in MOSPF
Shared Tree
When a router sends Join message for group G to RP, it goes through a
setof routers.
Join message is wildcarded (*), i.e., it is applicable to all senders. Routers
create an entry (*, G) in its forwarding table for the shared tree.
Interface on which the Join arrived is marked to forward packets for
thatgroup.
Forwards Join towards rendezvous router RP.
Eventually, the message arrives at RP. Thus a shared tree with RP as root
isformed.
Example
Router R4 sends Join message for group G to rendezvous router RP.
Join message is received by router R2. It makes an entry (*, G) in its table
andforwards the message to RP.
When R5 sends Join message for group G, R2 does not forwards the Join. It
adds an outgoing interface to the forwarding table created for that group.
As routers send Join message for a group, branches are added to the tree,
i.e.,shared.
Multicast packets sent from hosts are forwarded to designated router RP. Suppose
router R1, receives a message to group G.oR1 has no state for group G.
o Encapsulates the multicast packet in a Register message.
o Multicast packet is tunneled along the way to RP.
RP decapsulates the packet and sends multicast packet onto the shared
tree,towards R2.
R2 forwards the multicast packet to routers R4 and R5 that have members
forgroup G.
Source-Specific Tree
RP can force routers to know about group G, by sending Join message to the
sending host, so that tunneling can be avoided.
Intermediary routers create sender-specific entry (S, G) in their tables.
Thusa source-specific route from R1 to RP is formed.
If there is high rate of packets sent from a sender to a group G, then shared- tree is
replaced by source-specific tree with sender as root.
Example
Analysis of PIM
Protocol independent because, tree is based on Join messages via shortest path.
Shared trees are more scalable than source-specific trees. Source-
specific trees enable efficient routing than shared trees.