0% found this document useful (0 votes)
14 views

Routing

Uploaded by

Rachana Kamarthi
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Routing

Uploaded by

Rachana Kamarthi
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Routing Algorithms

The main function of NL (Network Layer) is routing packets from the source
machine to the destination machine.
There are two processes inside router:
a) One of them handles each packet as it arrives, looking up the outgoing line to
use for it in the routing table. This process is forwarding.
b) The other process is responsible for filling in and updating the routing tables.
That is where the routing algorithm comes into play. This process is routing.
Regardless of whether routes are chosen independently for each packet or only
when new connections are established, certain properties are desirable in a
routing algorithm correctness, simplicity, robustness, stability, fairness,
optimality Routing algorithms can be grouped into two major classes:
1) nonadaptive (Static Routing)
2) adaptive. (Dynamic Routing)
Nonadaptive algorithm do not base their routing decisions on measurements or
estimates of the current traffic and topology. Instead, the choice of the route to
use to get from I to J is computed in advance, off line, and downloaded to the
routers when the network is booted.
This procedure is sometimes called static routing.
Adaptive algorithm, in contrast, change their routing decisions to reflect
changes in the topology, and usually the traffic as well.
Adaptive algorithms differ in
1) Where they get their information (e.g., locally, from adjacent routers, or from
all routers),
2) When they change the routes (e.g., every ΔT sec, when the load changes or
when the topology changes), and
3) What metric is used for optimization (e.g., distance, number of hops, or
estimated transit time). This procedure is called dynamic routing
Different Routing Algorithms
• Optimality principle
• Shortest path algorithm
• Flooding
• Distance vector routing
• Link state routing
• Hierarchical Routing

The Optimality Principle


One can make a general statement about optimal routes without regard to
network topology or traffic. This statement is known as the optimality principle.
It states that if router J is on the optimal path from router I to router K, then the
optimal path from J to K also falls along the same As a direct consequence of
the optimality principle, we can see that the set of optimal routes from all
sources to a given destination form a tree rooted at the destination. Such a tree is
called a sink tree. The goal of all routing algorithms is to discover and use the
sink trees for all routers

(a) A network. (b) A sink tree for router

Shortest Path Routing (Dijkstra’s)


The idea is to build a graph of the subnet, with each node of the graph
representing a router and each arc of the graph representing a communication
line or link.
To choose a route between a given pair of routers, the algorithm just finds the
shortest path between them on the graph
1. Start with the local node (router) as the root of the tree. Assign a cost of 0 to
this node and make it the first permanent node.
2. Examine each neighbour of the node that was the last permanent node.
3. Assign a cumulative cost to each node and make it tentative
4. Among the list of tentative nodes
a. Find the node with the smallest cost and make it Permanent
b. If a node can be reached from more than one route then select the route with
the shortest cumulative cost.
5. Repeat steps 2 to 4 until every node becomes permanent
Flooding
• Another static algorithm is flooding, in which every incoming packet is sent
out on every outgoing line except the one it arrived on.
• Flooding obviously generates vast numbers of duplicate packets, in fact, an
infinite number unless some measures are taken to damp the process.
• One such measure is to have a hop counter contained in the header of each
packet, which is decremented at each hop, with the packet being discarded when
the counter reaches zero.
Ideally, the hop counter should be initialized to the length of the path from
source to destination.
• A variation of flooding that is slightly more practical is selective flooding. In
this algorithm routers do not send every incoming packet out on every line, only
on those lines that are going approximately in the right direction.
• Flooding is not practical in most applications.
Intra- and Inter domain Routing
An autonomous system (AS) is a group of networks and routers under the
authority of a single administration.
Routing inside an autonomous system is referred to as intra domain routing.
(DISTANCE VECTOR, LINK STATE)
Routing between autonomous systems is referred to as inter domain routing.
(PATH VECTOR) Each autonomous system can choose one or more intra
domain routing protocols to handle routing inside the autonomous system.
However, only one inter domain routing protocol handles routing between
autonomous systems.

Distance Vector Routing


In distance vector routing, the least-cost route between any two nodes is the
route with minimum distance.
In this protocol, as the name implies, each node maintains a vector (table)
of minimum distances to every node.

Mainly 3 things in this

Initialization
Sharing
Updating
Initialization

Each node can know only the distance between itself and its immediate
neighbors, those directly connected to it. So for the moment, we assume that
each node can send a message to the immediate neighbors and find the distance
between itself and these neighbors.
Below fig shows the initial tables for each node. The distance for any entry that
is not a neighbor is marked as infinite (unreachable).

Initialization of tables in distance vector routing

Sharing
The whole idea of distance vector routing is the sharing of information between
neighbors. Although node A does not know about node E, node C does. So if
node C shares its routing table with A, node A can also know how to reach node
E. On the other hand, node C does not know how to reach node D, but node A
does. If node A shares its routing table with node C, node C also knows how to
reach node D. In other words, nodes A and C, as immediate
neighbors, can improve their routing tables if they help each other.
NOTE: In distance vector routing, each node shares its routing table with its
immediate neighbours periodically and when there is a change
Updating
When a node receives a two-column table from a neighbor, it needs to update its
routing table. Updating takes three steps:

1. The receiving node needs to add the cost between itself and the sending node
to each value in the second column. (x+y)
2. If the receiving node uses information from any row. The sending node is the
next node in the route.
3. The receiving node needs to compare each row of its old table with the
corresponding row of the modified version of the received table.
a. If the next-node entry is different, the receiving node chooses the row with
the smaller cost. If there is a tie, the old one is kept.
b. If the next-node entry is the same, the receiving node chooses the new row.

For example, suppose node C has previously advertised a route to node X with
distance 3. Suppose that now there is no path between C and X; node C now
advertises this route with a distance of infinity. Node A must not ignore this
value even though its old entry is smaller. The old route does not exist anymore.
The new route has a distance of infinity.

Updating in distance vector routing


When to Share
The question now is, When does a node send its partial routing table (only two
columns) to all its immediate neighbors? The table is sent both periodically and
when there is a change in the table.
Periodic Update : A node sends its routing table, normally every 30 s, in a
periodic update. The period depends on the protocol that is using distance
vector routing.
Triggered Update : A node sends its two-column routing table to its neighbors
anytime there is a change in its routing table. This is called a triggered update.

The change can result from the following.


1. A node receives a table from a neighbor, resulting in changes in its own table
after updating.
2. A node detects some failure in the neighboring links which results in a
distance change to infinity.
Two-node instability
Three-node instability

SOLUTIONS FOR INSTABILITY

1. Defining Infinity: redefine infinity to a smaller number, such as 100. For our
previous scenario, the system will be stable in less than 20 updates. As a matter
of fact, most implementations of the distance vector protocol define the distance
between each node to be 1 and define 16 as infinity. However, this means that
the distance vector routing cannot be used in large systems. The size of the
network, in each direction, cannot exceed 15 hops.
2. Split Horizon: In this strategy, instead of flooding the table through each
interface, each node sends only part of its table through each interface. If,
according to its table, node B thinks that the optimum route to reach X is via A,
it does not need to advertise this piece of information to A; the information has
come from A (A already knows). Taking information from node A, modifying
it, and sending it back to node A creates the confusion. In our
scenario, node B eliminates the last line of its routing table before it sends it to
A. In this case, node A keeps the value of infinity as the distance to X. Later
when node A sends its routing table to B, node B also corrects its routing table.
The system becomes stable after the first update: both node A and B know that
X is not reachable.
3. Split Horizon and Poison Reverse
Using the split horizon strategy has one drawback.
Normally, the distance vector protocol uses a timer, and if there is no news
about a route, the node deletes the route from its table. When node B in the
previous scenario eliminates the route to X from its advertisement to A, node A
cannot guess that this is due to the split horizon strategy (the source of
information was A) or because B has not received any news about X recently.
The split horizon strategy can be combined with the poison reverse strategy.
Node B can still advertise the value for X, but if the source of information is A,
it can replace the distance with infinity as a warning: "Do not use this value;
what I know about this route comes from you."

The Count-to-Infinity Problem

Link State Routing


Link state routing is based on the assumption that, although the global
knowledge about the topology is not clear, each node has partial knowledge: it
knows the state (type, condition, and cost) of its links.
In other words, the whole topology can be compiled from the partial
knowledge of each node

Building Routing Tables

1. Creation of the states of the links by each node, called the link state packet
(LSP).
2. Dissemination of LSPs to every other router, called flooding, in an efficient
and reliable way.
3. Formation of a shortest path tree for each node.
4. Calculation of a routing table based on the shortest path tree I.

Creation of Link State Packet (LSP)


A link state packet can carry a large amount of information. For the moment, we
assume that it carries a minimum amount of data: the node identity, the list of
links, a sequence number, and age. The first two, node identity and
the list of links, are needed to make the topology. The third, sequence number,
facilitates flooding and distinguishes new LSPs from old ones. The fourth, age,
prevents old LSPs from remaining in the domain for a long time.
LSPs are generated on two occasions:
1. When there is a change in the topology of the domain
2. on a periodic basis: The period in this case is much longer compared to
distance vector. The timer set for periodic dissemination is normally in the
range of 60 min or 2 h based on the implementation. A longer period en
sures that flooding does not create too much traffic on the network.

II. Flooding of LSPs:


After a node has prepared an LSP, it must be disseminated to all other
nodes, not only to its neighbours. The process is called flooding and based on
the following
1. The creating node sends a copy of the LSP out of each interface
2. A node that receives an LSP compares it with the copy it may already have. If
the newly arrived LSP is older than the one it has (found by checking the
sequence number), it discards the LSP. If it is newer, the node does the
following:
a. It discards the old LSP and keeps the new one.
b. It sends a copy of it out of each interface except the one from which the
packet arrived. This guarantees that flooding stops somewhere in the domain
(where a node has only one interface).
III. Formation of Shortest Path Tree: Dijkstra Algorithm
A shortest path tree is a tree in which the path between the root and every other
node is the shortest.
The Dijkstra algorithm creates a shortest path tree from a graph. The algorithm
divides the nodes into two sets: tentative and permanent. It finds the
neighbours of a current node, makes them tentative, examines them, and if they
pass the criteria, makes them permanent.
IV. Calculation of a routing table
routing table for node A
Path Vector Routing
Distance vector and link state routing are both intra domain routing protocols.
They can be used inside an autonomous system, but not between autonomous
systems. These two protocols are not suitable for inter domain routing mostly
because of scalability. Both of these routing protocols become intractable when
the domain of operation becomes large.

Distance vector routing is subject to instability in the domain of operation.


Link state routing needs a huge amount of resources to calculate routing tab
les. It also creates heavy traffic because of flooding. There is a need for a third
routing protocol which we call path vector routing. Path vector routing proved
to be useful for inter domain routing. The principle of path vector routing is
similar to that of distance vector routing.
In path vector routing, we assume that there is one node (there can be more,
but one is enough for our conceptual discussion) in each AS that acts on behalf
of the entire AS. Let us call it the speaker node. The speaker node in an AS
creates a routing table and advertises it to speaker nodes in the neighboring ASs.
The idea is the same as for distance vector routing except that only speaker
nodes in each AS can communicate with each other. However, what is
advertised is different. A speaker node advertises the path, not the metric of the
nodes, in its autonomous system or other autonomous systems

Initialization
Initial routing tables in path vector routing
Sharing
Just as in distance vector routing, in path vector routing, a speaker in an
autonomous system shares its table with immediate neighbours. In Figure, node
A1 shares its table with nodes B1 and C. Node C1 shares its table with nodes
D1, B1, and A1. Node B1 shares its table with C1 and A1. Node D1 shares its
table with C1.
Updating
When a speaker node receives a two-column table from a neighbor, it updates
its own table by adding the nodes that are not in its routing table and adding its
own autonomous system and the autonomous system that sent the table. After a
while each speaker has a table and knows how to reach each node in other Ass
a) Loop prevention. The instability of distance vector routing and the creation
of loops can be avoided in path vector routing. When a router receives a
message, it checks to see if its AS is in the path list to the destination. If it is,
looping is involved and the message is ignored.

b) Policy routing. Policy routing can be easily implemented through path


vector routing. When a router receives a message, it can check the path. If one
of the AS listed in the path is against its policy, it can ignore that path and that
destination. It does not update its routing table with this path, and it does not
send this message to its neighbors.

c) Optimum path. What is the optimum path in path vector routing? We are
looking for a path to a destination that is the best for the organization that runs
the AS. One system may use RIP, which defines hop count as the metric;
another may use OSPF with minimum delay defined as the metric. In our
previous figure, each AS may have more than one path to a destination. For
example, a path from AS4 to ASI can be AS4-AS3-AS2-AS1, or it can be AS4-
AS3-ASI. For the tables, we chose the one that had the smaller number of
ASs,
but this is not always the case. Other criteria, such as security, safety, and
reliability, can also be applied.

You might also like