There are different kinds of routing algorithms which are used in different circumstances. But I will not go into the types of routing algorithms. Routing algorithms are used for sending data from one point to other by choosing the most appropriate path. As we know that in a network many paths exist for one destination and data can be send by choosing any path. But there should be criteria for selecting a path and this is the responsibility of routing algorithms.
I would like to explain the importance of routing algorithms. Consider a scenario where hundreds of computers are connected in a network. Now one user sends data to other user then it can go through any path. But what will happen if more than sixty computers choose the same path. Definitely a single path will be overloaded and it will affect the performance of whole network.
It is also possible that data may not be received on the other hand. In this scenario an algorithm must be used that will intelligently select a path for sending data from one end to other. Routing algorithms also used a table which is known as routing table. With the help of this table they control all the traffic on network.
Routing algorithms are used for the following purpose.Purpose of a routing algorithm is just to select the best possible route to pass data in any form. Data can be in the form of voice, video, text, images etc. Actually, it is not easy to maintain the efficiency of network without using powerful algorithm. Whenever a huge network is created, then some powerful algorithms are used to maintain data security. Routing algorithms are also used to handle dead lock problem.
AS data comes to a workstation, then routing algorithm checks the address of the data as where to send the data to its final destination. More than one possible ways can be used to send the data but it is the duty of the algorithm to check the shortest and efficient path as well as to check which path has more traffic and which has less. If a path has more traffic and there is a chance of deadlock or congestion flow then it is up to the routing algorithm to select that path which does not cause the problem of dead lock. In simple words it is the responsibility of a routing algorithm to choose the best possible path for sending data from one place to another.
There are different reasons on the basis of which one routing algorithm differs to the other; these reasons vary with the design goals. Each routing algorithm has different design; in fact the design is based on the goals to be achieved during communication or routing. As the design goals are different so is the case with the usage of network and router resources.
All routing algorithms have different metrics according to the certain situations to calculate the optimal, in fact the excellent path for routing. Routing algorithms are designed for very efficient communication and to achieve one of these goals; optimality, simplicity and low overhead, robustness, steadiness, rapid convergence and elasticity. All of these design goals offer different services to the communication being held between the networks. One most important must be kept in mind while designing these routing algorithms and that is to keep these algorithms very simple and easy going.
If an algorithm design is complex, then it will be tough for that to even manage its own functionality in certain situations, then how will it be able to maintain an efficient routing during communication. And while implementing these routing algorithms, efficiency can be measured by observing less involvement and usage of hardware resources
Routing algorithms can be defined as a mechanism that tells the router how to process. All these algorithms are different from others regarding their design and efficiency and type. Routing algorithms can broadly be divided into following categories; Static versus dynamic, Single-path versus multipath, Flat versus hierarchical, Host-intelligent versus router-intelligent, Interadomain versus interdomain, Link-state versus distance vector.
All these algorithms have different design, different working and different metrics to measure the best paths for routing. Static algorithms are actually the tables that are created by the network administrator before the beginning of routing; they will not be updated till an administrator does it manually. While the dynamic routing algorithms are updated as they find any sort of change in routing paths. The single path routing algorithms have a single path to the destination while multipath algorithms allow traffic to route over multiple lines in order to get more efficiency and load balancing.
The scenarios where flat algorithm routing protocols are implemented, the routers are just like peers to each other while in hierarchical algorithms routers might be differentiated into backbone and non-backbone routers and so is their functionalities. Host intelligent algorithms let the source routers work involuntarily and mindlessly, they just send packets and leave the decision on destination routers.
In router intelligent algorithm routers define their path to destination regarding their own routing path calculations. Routing algorithms that are restricted to only work within the domain are referred as interadomain routing algorithms and if they are not restricted only within the domains then they are interdomain algorithms. Link state algorithms, all routers send the states updating of their linked nodes to all other nodes in the Internetwork while distance vector algorithms are able to send only the major changes to its neighbours.