Complex routing algorithms maintain data in routing tables and allocate the data based on a specific algorithm that determines the fastest route. Sometimes the fastest route is the shortest path, however based on highway traffic jams, we all know that the shortest path isn't always the fastest. Just like a highway traffic jam, data can get congested in certain nodes along the way. Sending data from point A to point B is similar to sending a letter from address to address. Instead of printed directions to an address in Florida, I can drive into Florida blindly before asking for the city name. Once I drive into the city I can ask for the street name, and then the house number. It's not impossible, but very unreasonable to think that data can travel directly from point A to point B directly. For example, big telephone cables are running down the street with smaller telephone cables on back roads, with smaller telephone cables that travel from the street to your home, with even smaller telephone cables that from the main house connection to each phone in the home. Data travels in a similar format, but with a routing table that determines the fastest route.
Distance Vector Algorithms and Link State Algorithms have a predetermined protocol list that routes data in certain directions depending on other data collected. "A distance vector algorithm uses metrics known as costs to help determine the best path to a destination. The path with the lowest total cost is chosen as the best path. (Dimarzio, 2002)" The 'costs' are in dollars, the costs are time delays, congestion weight, etc. All of the costs are gathered and weighed against each other. Then the packets are sent through the lowest 'cost' approach. "...where a distance vector algorithm will compute the lowest metric between Network A and Network C, a link-state protocol will compute it as two distinct paths, A to B and B to C. (Dimarzio, 2002)" Link State algorithms are used more in large scale systems while Distance Vector algorithms are used throughout all systems more often.
The main advantage of routing algorithms is speed and efficiency. Huge data traffic jams could cause harm to networks as well, so the algorithms prevent technical issues with data transport as well. "Since the nodes with the largest degree are very susceptible to traffic congestion, an effective way to improve traffic and control congestion, as our strategy, can be redistributing traffic load in central nodes to other noncentral nodes. Simulation results indicate that the network capability in processing traffic is improved more than 10 times by optimizing the efficient path, which is in good agreement with the analysis. (Yan, 2006)" It's getting to the point where routing algorithms are mandatory instead of just being an advantage, more often in large systems compared to smaller systems. Those systems not using routing tables to prevent congestion could be creating congestion for other systems. For example, even though it's faster to go around traffic congestion, it's still slower than taking the shortest path if there wasn't any traffic at all. "...advanced routing algorithms operate efficiently in more dynamic environments than was previously thought. Finally, the good behavior of the algorithms improves even if the interests of the consumers are not evenly distributed, which can be expected in practice. (Muhl, 2002)"
"A disadvantage is a 15 router-hop maximum, after which the packet is discarded. Sometimes routes end up in a loop because they continue to try to get around congestion. Also, there's no knowledge of the amount of bandwidth of a link which creates size issues. (Rahim, 2012)" When bigger companies can afford to use routing algorithms to avoid congestion, it only helps smaller companies neglect the routing protocols. Without using routing algorithms the data will travel down the same path and hit the same congestion, so thanks to those that use the algorithms and change routes, there is less congestion for the rest of the data still traveling down the same path. There are also updates that need to happen called advertisements whenever the router changes states. "When a particular link becomes unavailable (changes state), the router sends an update through the environment alerting all the routers with which it is directly linked. (Dimarzio, 2002)"
Both algorithms are popular and used in today's systems and conduct similar analysis to create the most efficient path to the next router. The algorithms are very important to avoid data congestion in nodes because if every transport went the shortest route, it would end up taking much longer due to over congested nodes. It doesn't matter what time of day it is, the algorithms runs the entire process each time to determine the most efficient route. So any time congestion appears, the algorithms, or routing protocol, sends the packets another way.
Dimarzio, Jerome (June, 2002). Routing 101: Routing Algorithms. Retrieved from:
G. Muhl ; Dept. of Comput. Sci., Darmstadt Univ. of Technol., Germany ; L. Fiege ; F. C. Gartner ; A. Buchmann. Evaluating advanced routing algorithms for content-based publish/subscribe systems Retrieved from: IEEE Explore
Gang Yan, Tao Zhou, Bo Hu, Zhong-Qian Fu, and Bing-Hong Wang (April, 2006). Phys. Rev. E 73, 046108.
Rahim, Abdul (November, 2012). Advantages and Disadvantages of Routing Protocols. Retrieved from: