Routing algorithm
Routing algorithm
o In order to transfer the packets from source to the destination, the network
layer must determine the best route through which packets can be
transmitted.
o Whether the network layer provides datagram service or virtual circuit service,
the main job of the network layer is to provide the best route. The routing
protocol provides this job.
o The routing protocol is a routing algorithm that provides the best path from
the source to the destination. The best path is the path that has the "least-cost
path" from source to the destination.
o Routing is the process of forwarding the packets from source to the
destination but the best route to send the packets is determined by the
routing algorithm.
Flooding: In case of flooding, every incoming packet is sent to all the outgoing links
except the one from it has been reached. The disadvantage of flooding is that node
may contain several copies of a particular packet.
Random walks: In case of random walks, a packet sent by the node to one of its
neighbors randomly. An advantage of using random walks is that it uses the
alternative routes very efficiently.
Differences b/w Adaptive and Non-Adaptive Routing Algorithm
Routing Routing decisions are made Routing decisions are the static
decision based on topology and tables.
network traffic.
Where the minv is the equation taken for all x neighbors. After traveling from x to v,
if we consider the least-cost path from v to y, the path cost will be c(x,v)+dv(y). The
least cost from x to y is the minimum of c(x,v)+dv(y) taken over all neighbors.
With the Distance Vector Routing algorithm, the node x contains the following
routing information:
o For each neighbor v, the cost c(x,v) is the path cost from x to directly attached
neighbor, v.
o The distance vector x, i.e., Dx = [ Dx(y) : y in N ], containing its cost to all
destinations, y, in N.
o The distance vector of each of its neighbors, i.e., Dv = [ Dv(y) : y in N ] for each
neighbor v of x.
Distance vector routing is an asynchronous algorithm in which node x sends the copy
of its distance vector to all its neighbors. When node x receives the new distance
vector from one of its neighboring vector, v, it saves the distance vector of v and uses
the Bellman-Ford equation to update its own distance vector. The equation is given
below:
The node x has updated its own distance vector table by using the above equation
and sends its updated table to all its neighbors so that they can update their own
distance vectors.
Algorithm
At each node x,
Initialization
Note: In Distance vector algorithm, node x update its table when it either see any cost
change in one directly linked nodes or receives any vector update from some neighbor.
Sharing Information
o In the above figure, each cloud represents the network, and the number inside
the cloud represents the network ID.
o All the LANs are connected by routers, and they are represented in boxes
labeled as A, B, C, D, E, F.
o Distance vector routing algorithm simplifies the routing process by assuming
the cost of every link is one unit. Therefore, the efficiency of transmission can
be measured by the number of links to reach the destination.
o In Distance vector routing, the cost is based on hop count.
In the above figure, we observe that the router sends the knowledge to the
immediate neighbors. The neighbors add this knowledge to their own knowledge
and sends the updated table to their own neighbors. In this way, routers get its own
information plus the new information about the neighbors.
Routing Table
Two process occurs:
o In the above figure, the original routing tables are shown of all the routers. In
a routing table, the first column represents the network ID, the second column
represents the cost of the link, and the third column is empty.
o These routing tables are sent to all the neighbors.
For Example:
o When A receives a routing table from B, then it uses its information to update
the table.
o The routing table of B shows how the packets can move to the networks 1 and
4.
o The B is a neighbor to the A router, the packets from A to B can reach in one
hop. So, 1 is added to all the costs given in the B's table and the sum will be
the cost to reach a particular network.
o After adjustment, A then combines this table with its own table to create a
combined table.
o The combined table may contain some duplicate data. In the above figure, the
combined table of router A contains the duplicate data, so it keeps only those
data which has the lowest cost. For example, A can send the data to network 1
in two ways. The first, which uses no next router, so it costs one hop. The
second requires two hops (A to B, then B to Network 1). The first option has
the lowest cost, therefore it is kept and the second one is dropped.
o The process of creating the routing table continues for all routers. Every router
receives the information from the neighbors, and update the routing table.
Route Calculation
Each node uses Dijkstra's algorithm on the graph to calculate the optimal routes to
all nodes.
o The Link state routing algorithm is also known as Dijkstra's algorithm which is
used to find the shortest path from one node to every other node in the
network.
o The Dijkstra's algorithm is an iterative, and it has the property that after
kth iteration of the algorithm, the least cost paths are well known for k
destination nodes.
o c( i , j): Link cost from node i to node j. If i and j nodes are not directly linked,
then c(i , j) = ∞.
o D(v): It defines the cost of the path from source code to destination v that has
the least cost currently.
o P(v): It defines the previous node (neighbor of v) along with current least cost
path from source to v.
o N: It is the total number of nodes available in the network.
Algorithm
Initialization
N = {A} // A is a root node.
for all nodes v
if v adjacent to A
then D(v) = c(A,v)
else D(v) = infinity
loop
find w not in N such that D(w) is a minimum.
Add w to N
Update D(v) for all v adjacent to w and not in N:
D(v) = min(D(v) , D(w) + c(w,v))
Until all nodes in N
In the above algorithm, an initialization step is followed by the loop. The number of
times the loop is executed is equal to the total number of nodes available in the
network.
The first step is an initialization step. The currently known least cost path from A to
its directly attached neighbors, B, C, D are 2,5,1 respectively. The cost from A to B is
set to 2, from A to D is set to 1 and from A to C is set to 5. The cost from A to E and F
are set to infinity as they are not directly linked to A.
Step 2:
In the above table, we observe that vertex D contains the least cost path in step 1.
Therefore, it is added in N. Now, we need to determine a least-cost path through D
vertex.
1. v = B, w = D
2. D(B) = min( D(B) , D(D) + c(D,B) )
3. = min( 2, 1+2)>
4. = min( 2, 3)
5. The minimum value is 2. Therefore, the currently shortest path from A to B is 2.
1. v = C, w = D
2. D(B) = min( D(C) , D(D) + c(D,C) )
3. = min( 5, 1+3)
4. = min( 5, 4)
5. The minimum value is 4. Therefore, the currently shortest path from A to C is 4.</p>
1. v = E, w = D
2. D(B) = min( D(E) , D(D) + c(D,E) )
3. = min( ∞, 1+1)
4. = min(∞, 2)
5. The minimum value is 2. Therefore, the currently shortest path from A to E is 2.
Note: The vertex D has no direct link to vertex E. Therefore, the value of D(F) is infinity.
Step 3:
In the above table, we observe that both E and B have the least cost path in step 2.
Let's consider the E vertex. Now, we determine the least cost path of remaining
vertices through E.
1. v = B, w = E
2. D(B) = min( D(B) , D(E) + c(E,B) )
3. = min( 2 , 2+ ∞ )
4. = min( 2, ∞)
5. The minimum value is 2. Therefore, the currently shortest path from A to B is 2.
1. v = C, w = E
2. D(B) = min( D(C) , D(E) + c(E,C) )
3. = min( 4 , 2+1 )
4. = min( 4,3)
5. The minimum value is 3. Therefore, the currently shortest path from A to C is 3.
1. v = F, w = E
2. D(B) = min( D(F) , D(E) + c(E,F) )
3. = min( ∞ , 2+2 )
4. = min(∞ ,4)
5. The minimum value is 4. Therefore, the currently shortest path from A to F is 4.
Step N D(B),P(B) D(C),P(C) D(D),P(D) D(E),P(E) D(F),P(F)
Step 4:
In the above table, we observe that B vertex has the least cost path in step 3.
Therefore, it is added in N. Now, we determine the least cost path of remaining
vertices through B.
1. v = C, w = B
2. D(B) = min( D(C) , D(B) + c(B,C) )
3. = min( 3 , 2+3 )
4. = min( 3,5)
5. The minimum value is 3. Therefore, the currently shortest path from A to C is 3.
1. v = F, w = B
2. D(B) = min( D(F) , D(B) + c(B,F) )
3. = min( 4, ∞)
4. = min(4, ∞)
5. The minimum value is 4. Therefore, the currently shortest path from A to F is 4.
In the above table, we observe that C vertex has the least cost path in step 4.
Therefore, it is added in N. Now, we determine the least cost path of remaining
vertices through C.
1. v = F, w = C
2. D(B) = min( D(F) , D(C) + c(C,F) )
3. = min( 4, 3+5)
4. = min(4,8)
5. The minimum value is 4. Therefore, the currently shortest path from A to F is 4.
5 ADEBC 4,E
Final table:
5 ADEBC 4,E
6 ADEBCF
Disadvantage:
Heavy traffic is created in Line state routing due to Flooding. Flooding can cause an
infinite looping, this problem can be solved by using Time-to-leave field