 Hello and welcome to a lecture on routing algorithms learning outcomes by the end of this session student will be able to illustrate a routing algorithms before starting this lecture you may here pause the video and answer this question. The question is what do you mean by routing? Routing is nothing but the process of selecting a path for a traffic in a network or between the network or across multiple networks. Routing is nothing but selecting an optimal path or the best path. The process of finding the best or the optimal path is nothing but routing. There are two types of protocol at network layer the routed protocols and the routing protocols. Routed protocol actually carry the data IPv4, IPv6 and apple talk are some of the examples of routed protocol while routing protocols are RIP, OSPF, BGP. They have difference in between them but before going directly to the routing protocols first we will see what are the routing algorithms. By using these algorithms the protocols are developed let's see what is routing algorithm. We know internet is a combination of several networks and these networks are connected to each other with the help of routers. We know router work at the network layer which is layer number 3 of OSI model. One of the function of network layer is routing the packet from source machine to the destination machine and that router forward these packets based on the decisions made by the routing algorithms. When a packet or a datagram travels from source machine to the destination machine it has to pass through many routers to reach the router which is attached to the destination network. The notable exception for a datagram to travel across the network through router is that when source and the destination are on the same network so it does not need to go through the router it only has to go through the switch for that particular network. The algorithm which choose the routes or the best routes and the data structure that they use are major area of network layer design. The need of routing algorithm why do we need the routing algorithm let's see. Routing algorithm is a part of network layer software and these software are installed inside a router. These software decide on which output line or which output port the incoming packet should be transmitted on. If the network or a subnet is using datagrams internally then this decision of forwarding the packet on which output port must be made for every arriving data packet since the best route may have changed since the last time the packet was forwarding. If the network or the subnet is using virtual circuits internally then the routing decisions are made only when a new virtual circuit is being set up. Once the circuit is set up then all the packets thereafter will just have to be forwarded on a previously established route. Then it is sometime useful to make distinction between the routing which is making the decision about which route to use for forwarding the packet on arrival. The router has two processes inside it. The first is forwarding process. To forward the packet on arrival they use one routing table and this routing table is created and filled in or updated by the routing algorithms or the routing protocols. So this filling in and updating the routing table gives rise to the routing algorithms. How the router is going to fill in the routing table and update the routing table gives rise to the need of routing algorithm. Based on the routing table only the forwarding decisions are made. So the main important process inside the router is updating and filling the routing table for different routes. What are the desired properties of routing algorithms? Now irrespective of whether or not the routes are chosen independently for the datagram packets or only when the new virtual circuit connection is being set up. Certain properties are desired in routing algorithms and those are listed on the screen. The first is correctness and simplicity. These two desired properties doesn't need any explanation or any comment because the routing algorithm should be correct 100% correct and it should be simple. Then the remaining properties are robustness, stability, fairness and optimality. We will make comment on some of the desired properties in the coming section. The robustness property. Once major part of the network start functioning means once it comes on air. It has to run continuously for years without system wide failures. The failures may include hardware failures as well as software failures of all kinds. The host, routers or the link which connects router to host or networks each other may fail repeatedly and the topology will change many a times. So the routing algorithm should be able to handle these failures and changes in the topologies and without aborting the traffic or without aborting the all jobs which are going on all the host as well as without rebooting the network every time some of the routers or link crashes down. So this is the main and the real important desired property of a routing algorithm. So the next desired property stability. Stability is also vital property or goal of routing algorithm that the routing algorithm should show. There are some routing algorithm that never converge to equilibrium. Despite for how long time they run a stable algorithm reaches equilibrium and stays there but there are so many routers which do not reach to equilibrium. Then the last two properties fairness and optimality. The fairness and optimality may sound obvious but they are often contradictory to each other. Let us see with the help of this figure. We have sufficient traffic between A, A dash, B, B dash, C and C dash. We have sufficient enough traffic to saturate this horizontal link between X and X dash. So if we want to maximize the flow between A, A dash, B, B dash and C C dash then we have to shut off the altogether traffic from X to X dash along this horizontal link to maximize the traffic between A, A dash, B, B dash and C C dash. But it will not be fair enough or it will not be fair for X and X dash to deny the chance of transmission. So there should be a compromise between the global efficiency and the fairness means which we should provide the fair chances to all the machines to send out their traffic or send out their data. Before we find out the tradeoff between fairness and optimality, first we should decide what we want to optimize. If we want to minimize the packet delay then we are in turn maximizing the total network throughput. The throughput is nothing but the amount of data transferred from source to the delivered within a specified time period that is nothing but throughput. If we are trying to minimize the mean packet delay then we are maximizing the throughput. Furthermore, these two also are in conflict. Since if we are operating any queuing system near to its full capacity which implies to long queuing delay. So as a compromise, many machines many networks try to reduce the number of hopes. So the packet should travel the less number of hopes. Since as we are reducing or the network is reducing the number of hopes, so it tends to improve the delay because as the number of hope increases means the number of routers the packet should travel or cross is reducing means it is spending less time inside the router in its queuing system. So it is ultimately reducing or improving the delay. So also it is reducing the bandwidth consumption and in turn it is improving the throughput as well. These are the references. Thank you.