Routing protocols are used to automatically maintain routing tables in routers. Distance vector routing protocols like RIP use the distributed Bellman-Ford algorithm, where each router only knows its local state - the link metrics and estimates of distances to destinations from its neighbors. Using this information, routers periodically exchange distance updates with neighbors and recalculate path costs to determine the optimal next-hop for each destination. While simple and distributed, distance vector protocols are prone to slow convergence and routing loops in certain network conditions.
Distance Vector & Link state Routing AlgorithmMOHIT AGARWAL
1) Each router maintains a routing table containing the outgoing link and distance to reach each destination node. 2) Routers periodically share their routing tables with neighbors so each can update its own table. 3) This allows routers to continuously determine the shortest paths to all destinations as network conditions change.
ARP is a protocol that maps IP addresses to MAC addresses. It works by broadcasting an ARP request packet to all devices on the local network segment. The device with the matching IP address responds with its MAC address, allowing the requesting device to send packets directly to the destination MAC address on the local network.
Routing is the process of selecting a path for traffic in a network or between or across multiple networks. this slide helps to describe routing protocols and their various aspects.
This document discusses unicasting and multicasting in computer networks. It provides details on:
- The key differences between unicasting (one-to-one communication) and multicasting (one-to-many communication), including how routers handle forwarding for each.
- Common applications that use multicasting like audio/video distribution, file sharing, and conferencing.
- Approaches to multicast routing including source-based trees, group-shared trees, and protocols like PIM, CBT, and MBONE tunneling to connect isolated multicast networks.
- Mechanisms used in multicast routing protocols like RPF, pruning/grafting, and IGMP to discover multicast group members
Connection Establishment & Flow and Congestion ControlAdeel Rasheed
On these slides i describe all the detail about Connection Establishment & Flow and Congestion Control. For more detail visit: https://chauhantricks.blogspot.com/
Network address translation (NAT) is a method of remapping one IP address space into another by modifying network address information in Internet Protocol (IP) datagram packet headers while they are in transit across a traffic routing device.
Error correction techniques include retransmission of data when errors are detected and forward error correction where error correction codes are used to automatically correct errors. Hamming codes can detect and correct errors by using redundancy bits in the data and calculating parity checks to determine the position of errors. The document provides an example of how hamming codes work by adding redundancy bits to input data and using the parity checks to detect errors in the encoded data.
This document defines and describes several common computer networking devices. It explains that network interface cards allow computers to connect to networks by providing a physical connection and MAC address. Hubs broadcast all data to all ports, while switches only send data to the targeted port, improving efficiency. Bridges separate traffic on connected network segments. Routers connect dissimilar networks and make routing decisions. Gateways convert between data formats. Repeaters receive and retransmit signals to extend range. Modems convert digital data to analog signals for telephone line transmission. Media converters connect different cabling types. Wireless access points provide connections to wireless networks.
Distance Vector & Link state Routing AlgorithmMOHIT AGARWAL
1) Each router maintains a routing table containing the outgoing link and distance to reach each destination node. 2) Routers periodically share their routing tables with neighbors so each can update its own table. 3) This allows routers to continuously determine the shortest paths to all destinations as network conditions change.
ARP is a protocol that maps IP addresses to MAC addresses. It works by broadcasting an ARP request packet to all devices on the local network segment. The device with the matching IP address responds with its MAC address, allowing the requesting device to send packets directly to the destination MAC address on the local network.
Routing is the process of selecting a path for traffic in a network or between or across multiple networks. this slide helps to describe routing protocols and their various aspects.
This document discusses unicasting and multicasting in computer networks. It provides details on:
- The key differences between unicasting (one-to-one communication) and multicasting (one-to-many communication), including how routers handle forwarding for each.
- Common applications that use multicasting like audio/video distribution, file sharing, and conferencing.
- Approaches to multicast routing including source-based trees, group-shared trees, and protocols like PIM, CBT, and MBONE tunneling to connect isolated multicast networks.
- Mechanisms used in multicast routing protocols like RPF, pruning/grafting, and IGMP to discover multicast group members
Connection Establishment & Flow and Congestion ControlAdeel Rasheed
On these slides i describe all the detail about Connection Establishment & Flow and Congestion Control. For more detail visit: https://chauhantricks.blogspot.com/
Network address translation (NAT) is a method of remapping one IP address space into another by modifying network address information in Internet Protocol (IP) datagram packet headers while they are in transit across a traffic routing device.
Error correction techniques include retransmission of data when errors are detected and forward error correction where error correction codes are used to automatically correct errors. Hamming codes can detect and correct errors by using redundancy bits in the data and calculating parity checks to determine the position of errors. The document provides an example of how hamming codes work by adding redundancy bits to input data and using the parity checks to detect errors in the encoded data.
This document defines and describes several common computer networking devices. It explains that network interface cards allow computers to connect to networks by providing a physical connection and MAC address. Hubs broadcast all data to all ports, while switches only send data to the targeted port, improving efficiency. Bridges separate traffic on connected network segments. Routers connect dissimilar networks and make routing decisions. Gateways convert between data formats. Repeaters receive and retransmit signals to extend range. Modems convert digital data to analog signals for telephone line transmission. Media converters connect different cabling types. Wireless access points provide connections to wireless networks.
The document discusses various data link layer protocols. It begins by introducing stop-and-wait and sliding window protocols. It then provides an example of a stop-and-wait protocol where a frame is lost, leading the sender to retransmit a duplicate frame. Next, it discusses sliding window protocols and provides an example where the window allows multiple outstanding frames. Finally, it gives an example of a one-bit sliding window protocol that uses acknowledgments to control the window.
(Ref : Computer System Architecture by Morris Mano 3rd edition) : Microprogrammed Control unit, micro instructions, micro operations, symbolic and binary microprogram.
This document summarizes key aspects of the transport layer:
- The transport layer provides logical communication between application processes running on different hosts and handles reliable data transfer.
- It provides both connection-oriented and connectionless services to the application layer. Quality of service parameters like throughput and delay can be negotiated.
- Transport layer protocols like TCP and UDP are described. TCP provides reliable byte-stream delivery using connections while UDP provides best-effort unreliable datagram delivery.
The document discusses MAC layer protocols, specifically CSMA/CD and CSMA/CA.
CSMA/CD is used for wired networks and works by having nodes listen to check if the medium is free before transmitting. If a collision is detected, transmission stops and resumes after a backoff time.
CSMA/CA is used for wireless networks and aims to avoid collisions through the use of request to send, clear to send, and acknowledgement frames exchanged between nodes, rather than detecting collisions.
Both protocols reduce collisions compared to simple CSMA, but CSMA/CA is less efficient and cannot completely solve collisions in wireless networks due to issues like hidden terminals.
The document discusses various topics related to flow and error control in computer networks, including stop-and-wait ARQ, sliding window protocols, and selective reject ARQ. Stop-and-wait ARQ allows transmission of one frame at a time, while sliding window protocols allow multiple outstanding frames using sequence numbers and acknowledgments. Go-back-N ARQ requires retransmission of frames from the lost frame onward, while selective reject ARQ only retransmits the lost frame to minimize retransmissions.
The protocol is based on the Routing Information Protocol (RIP).[1] The router generates a routing table with the multicast group of which it has knowledge with corresponding distances (i.e. number of devices/routers between the router and the destination). When a multicast packet is received by a router, it is forwarded by the router's interfaces specified in the routing table.
DVMRP operates via a reverse path flooding technique, sending a copy of a received packet (specifically IGMP messages for exchanging routing information with other routers) out through each interface except the one at which the packet arrived. If a router (i.e. a LAN which it borders) does not wish to be part of a particular multicast group, it sends a "prune message" along the source path of the multicast.
This document discusses multiple access protocols used to coordinate access to shared broadcast channels. It describes various channel partitioning protocols like TDMA and FDMA that divide channels by time or frequency. Random access protocols like ALOHA and CSMA are also covered, which allow nodes to transmit randomly and detect collisions. CSMA/CD improves on CSMA by allowing nodes to detect collisions quickly and abort transmissions. Taking-turns protocols pass control of the channel between nodes either through polling or token passing. The document provides examples and compares the efficiency of different multiple access protocols.
Distance vector routing is a routing protocol that determines the best route for data packets based on distance. Each router maintains a routing table with the minimum distances to every other node and periodically shares its table with neighbors. When a router receives an update indicating a change, it will recalculate its own routing table and propagate changes. While simple to implement, distance vector routing is prone to counting to infinity problems and slow convergence.
Advanced computer network lab manual (practicals in Cisco Packet tracer)VrundaBhavsar
Book include how we can execute practical in cisco packet tracer.There are around 18 experiment covered .It contains topology also information about basic elements hub router.how we established
connection using HTTP and FTP protocols Also transferring Gmail and VOIP (Voice over IP) experiment. DHCP experiment included. How we create subnetmask.
Hub, switch, router, bridge & and repeaterMaksudujjaman
This document provides descriptions of various networking devices including hubs, switches, routers, bridges, and repeaters. It explains that hubs connect multiple devices but do not filter data or determine the best path for data packets. Switches maintain a list of network addresses and transmit data packets to the correct port, allowing for faster transmission speeds than hubs. Routers route data packets based on IP addresses and connect local and wide area networks. Bridges divide large networks into smaller segments and connect different network types/architectures. Repeaters regenerate weak signals to extend transmission distances but do not amplify signals.
TCP and UDP are transport layer protocols used for data transfer in the OSI model. TCP is connection-oriented, requiring a three-way handshake to establish a connection that maintains data integrity. It guarantees data will reach its destination without duplication but is slower than UDP. UDP is connectionless and used for applications requiring fast transmission like video calls, but does not ensure packet delivery and order. Both protocols add headers to packets with TCP focused on reliability and UDP on speed.
The document discusses error detection and correction techniques used in data communication. It describes different types of errors like single bit errors and burst errors. It then explains various error detection techniques like vertical redundancy check (VRC), longitudinal redundancy check (LRC), and cyclic redundancy check (CRC). VRC adds a parity bit, LRC calculates parity bits for each column, and CRC uses a generator polynomial to calculate redundant bits. The document also discusses Hamming code, an error correcting code that uses redundant bits to detect and correct single bit errors.
Internet Protocol (IP) is used to carry data from source to destination hosts across the Internet by providing addressing, fragmentation and reassembly, packet timeouts, and prioritization of traffic. IP uses 32-bit addresses to identify sending and receiving hosts and allows packets to be split into smaller fragments if needed to travel across networks. Routers use the IP Time to Live field to discard packets that have been traveling too long to prevent flooding of networks.
The network layer provides two main services: connectionless and connection-oriented. Connectionless service routes packets independently through routers using destination addresses and routing tables. Connection-oriented service establishes a virtual circuit between source and destination, routing all related traffic along the pre-determined path. The document also discusses store-and-forward packet switching, where packets are stored until fully received before being forwarded, and services provided to the transport layer like uniform addressing.
The document discusses the Internet Control Message Protocol (ICMP). ICMP provides error reporting, congestion reporting, and first-hop router redirection. It uses IP to carry its data end-to-end and is considered an integral part of IP. ICMP messages are encapsulated in IP datagrams and are used to report errors in IP datagrams, though some errors may still result in datagrams being dropped without a report. ICMP defines various message types including error messages like destination unreachable and informational messages like echo request and reply.
The document discusses different methods of wireless transmission across the electromagnetic spectrum. It covers radio transmission, which can travel long distances but power falls off with distance; microwave transmission, which travels in straight lines and is used for long-distance communication; and infrared transmission, which is used for short-range communication like TV remotes but does not pass through objects well. It also mentions lightwave transmission using lasers offers high bandwidth but requires precise aiming over distance.
This document summarizes several reactive routing protocols for mobile ad hoc networks (MANETs). Reactive protocols create routes only when needed by a source. Dynamic Source Routing uses route requests and replies to find paths, while Temporally-Ordered Routing Algorithm builds and maintains a directed acyclic graph rooted at destinations. Some protocols aim to improve quality of service or support real-time data streams through techniques like bandwidth estimation and mobility prediction. Source Routing with Local Recovery reduces overhead by allowing intermediate nodes to perform local error recovery using route caches when possible.
Network layer - design Issues ,Store-and-Forward Packet Switching, Services Provided to the Transport Layer, Which service is the best , Implementation of Service , Implementation of Connectionless Service , Implementation of Connection-Oriented Service
The document discusses Enhanced Interior Gateway Routing Protocol (EIGRP). It describes EIGRP's improvements over IGRP including faster convergence, efficient use of network resources through partial route updates, support for variable length subnet masking and multiple network layer protocols. The key technologies that enable EIGRP's performance are neighbor discovery, reliable transport protocol, Diffusing Update Algorithm and protocol dependent modules.
The network layer is responsible for transporting data segments from source to destination hosts. It encapsulates segments into datagrams and delivers them to the transport layer. Network layer protocols run on every host and router. Routers examine header fields to forward datagrams appropriately based on destination addresses. The network layer handles addressing, routing, and intermediate forwarding of datagrams between source and destination hosts.
The document discusses various data link layer protocols. It begins by introducing stop-and-wait and sliding window protocols. It then provides an example of a stop-and-wait protocol where a frame is lost, leading the sender to retransmit a duplicate frame. Next, it discusses sliding window protocols and provides an example where the window allows multiple outstanding frames. Finally, it gives an example of a one-bit sliding window protocol that uses acknowledgments to control the window.
(Ref : Computer System Architecture by Morris Mano 3rd edition) : Microprogrammed Control unit, micro instructions, micro operations, symbolic and binary microprogram.
This document summarizes key aspects of the transport layer:
- The transport layer provides logical communication between application processes running on different hosts and handles reliable data transfer.
- It provides both connection-oriented and connectionless services to the application layer. Quality of service parameters like throughput and delay can be negotiated.
- Transport layer protocols like TCP and UDP are described. TCP provides reliable byte-stream delivery using connections while UDP provides best-effort unreliable datagram delivery.
The document discusses MAC layer protocols, specifically CSMA/CD and CSMA/CA.
CSMA/CD is used for wired networks and works by having nodes listen to check if the medium is free before transmitting. If a collision is detected, transmission stops and resumes after a backoff time.
CSMA/CA is used for wireless networks and aims to avoid collisions through the use of request to send, clear to send, and acknowledgement frames exchanged between nodes, rather than detecting collisions.
Both protocols reduce collisions compared to simple CSMA, but CSMA/CA is less efficient and cannot completely solve collisions in wireless networks due to issues like hidden terminals.
The document discusses various topics related to flow and error control in computer networks, including stop-and-wait ARQ, sliding window protocols, and selective reject ARQ. Stop-and-wait ARQ allows transmission of one frame at a time, while sliding window protocols allow multiple outstanding frames using sequence numbers and acknowledgments. Go-back-N ARQ requires retransmission of frames from the lost frame onward, while selective reject ARQ only retransmits the lost frame to minimize retransmissions.
The protocol is based on the Routing Information Protocol (RIP).[1] The router generates a routing table with the multicast group of which it has knowledge with corresponding distances (i.e. number of devices/routers between the router and the destination). When a multicast packet is received by a router, it is forwarded by the router's interfaces specified in the routing table.
DVMRP operates via a reverse path flooding technique, sending a copy of a received packet (specifically IGMP messages for exchanging routing information with other routers) out through each interface except the one at which the packet arrived. If a router (i.e. a LAN which it borders) does not wish to be part of a particular multicast group, it sends a "prune message" along the source path of the multicast.
This document discusses multiple access protocols used to coordinate access to shared broadcast channels. It describes various channel partitioning protocols like TDMA and FDMA that divide channels by time or frequency. Random access protocols like ALOHA and CSMA are also covered, which allow nodes to transmit randomly and detect collisions. CSMA/CD improves on CSMA by allowing nodes to detect collisions quickly and abort transmissions. Taking-turns protocols pass control of the channel between nodes either through polling or token passing. The document provides examples and compares the efficiency of different multiple access protocols.
Distance vector routing is a routing protocol that determines the best route for data packets based on distance. Each router maintains a routing table with the minimum distances to every other node and periodically shares its table with neighbors. When a router receives an update indicating a change, it will recalculate its own routing table and propagate changes. While simple to implement, distance vector routing is prone to counting to infinity problems and slow convergence.
Advanced computer network lab manual (practicals in Cisco Packet tracer)VrundaBhavsar
Book include how we can execute practical in cisco packet tracer.There are around 18 experiment covered .It contains topology also information about basic elements hub router.how we established
connection using HTTP and FTP protocols Also transferring Gmail and VOIP (Voice over IP) experiment. DHCP experiment included. How we create subnetmask.
Hub, switch, router, bridge & and repeaterMaksudujjaman
This document provides descriptions of various networking devices including hubs, switches, routers, bridges, and repeaters. It explains that hubs connect multiple devices but do not filter data or determine the best path for data packets. Switches maintain a list of network addresses and transmit data packets to the correct port, allowing for faster transmission speeds than hubs. Routers route data packets based on IP addresses and connect local and wide area networks. Bridges divide large networks into smaller segments and connect different network types/architectures. Repeaters regenerate weak signals to extend transmission distances but do not amplify signals.
TCP and UDP are transport layer protocols used for data transfer in the OSI model. TCP is connection-oriented, requiring a three-way handshake to establish a connection that maintains data integrity. It guarantees data will reach its destination without duplication but is slower than UDP. UDP is connectionless and used for applications requiring fast transmission like video calls, but does not ensure packet delivery and order. Both protocols add headers to packets with TCP focused on reliability and UDP on speed.
The document discusses error detection and correction techniques used in data communication. It describes different types of errors like single bit errors and burst errors. It then explains various error detection techniques like vertical redundancy check (VRC), longitudinal redundancy check (LRC), and cyclic redundancy check (CRC). VRC adds a parity bit, LRC calculates parity bits for each column, and CRC uses a generator polynomial to calculate redundant bits. The document also discusses Hamming code, an error correcting code that uses redundant bits to detect and correct single bit errors.
Internet Protocol (IP) is used to carry data from source to destination hosts across the Internet by providing addressing, fragmentation and reassembly, packet timeouts, and prioritization of traffic. IP uses 32-bit addresses to identify sending and receiving hosts and allows packets to be split into smaller fragments if needed to travel across networks. Routers use the IP Time to Live field to discard packets that have been traveling too long to prevent flooding of networks.
The network layer provides two main services: connectionless and connection-oriented. Connectionless service routes packets independently through routers using destination addresses and routing tables. Connection-oriented service establishes a virtual circuit between source and destination, routing all related traffic along the pre-determined path. The document also discusses store-and-forward packet switching, where packets are stored until fully received before being forwarded, and services provided to the transport layer like uniform addressing.
The document discusses the Internet Control Message Protocol (ICMP). ICMP provides error reporting, congestion reporting, and first-hop router redirection. It uses IP to carry its data end-to-end and is considered an integral part of IP. ICMP messages are encapsulated in IP datagrams and are used to report errors in IP datagrams, though some errors may still result in datagrams being dropped without a report. ICMP defines various message types including error messages like destination unreachable and informational messages like echo request and reply.
The document discusses different methods of wireless transmission across the electromagnetic spectrum. It covers radio transmission, which can travel long distances but power falls off with distance; microwave transmission, which travels in straight lines and is used for long-distance communication; and infrared transmission, which is used for short-range communication like TV remotes but does not pass through objects well. It also mentions lightwave transmission using lasers offers high bandwidth but requires precise aiming over distance.
This document summarizes several reactive routing protocols for mobile ad hoc networks (MANETs). Reactive protocols create routes only when needed by a source. Dynamic Source Routing uses route requests and replies to find paths, while Temporally-Ordered Routing Algorithm builds and maintains a directed acyclic graph rooted at destinations. Some protocols aim to improve quality of service or support real-time data streams through techniques like bandwidth estimation and mobility prediction. Source Routing with Local Recovery reduces overhead by allowing intermediate nodes to perform local error recovery using route caches when possible.
Network layer - design Issues ,Store-and-Forward Packet Switching, Services Provided to the Transport Layer, Which service is the best , Implementation of Service , Implementation of Connectionless Service , Implementation of Connection-Oriented Service
The document discusses Enhanced Interior Gateway Routing Protocol (EIGRP). It describes EIGRP's improvements over IGRP including faster convergence, efficient use of network resources through partial route updates, support for variable length subnet masking and multiple network layer protocols. The key technologies that enable EIGRP's performance are neighbor discovery, reliable transport protocol, Diffusing Update Algorithm and protocol dependent modules.
The network layer is responsible for transporting data segments from source to destination hosts. It encapsulates segments into datagrams and delivers them to the transport layer. Network layer protocols run on every host and router. Routers examine header fields to forward datagrams appropriately based on destination addresses. The network layer handles addressing, routing, and intermediate forwarding of datagrams between source and destination hosts.
The network layer is responsible for carrying packets between hosts and routing packets through routers and switches. It addresses each device with an IP address to allow global communication. Routing protocols like RIP, OSPF, and BGP are used for routing packets within and between autonomous systems. Multicast routing protocols deliver data from one source to multiple destinations, while flooding can be used for broadcast routing but wastes bandwidth. The network layer packetizes data, fragments packets if needed for transmission through different networks, and performs address resolution.
The document describes routing algorithms and protocols at the network layer. It discusses global routing algorithms that use complete network knowledge versus decentralized algorithms that do not. It also covers the distance vector routing algorithm and how it works iteratively to share routing information between neighbors. Specific distance vector protocols discussed include RIP, which uses hop count as its metric. The document also introduces the concepts of hierarchical routing and autonomous systems to allow scaling of routing in a decentralized manner across large networks.
The document discusses network layer concepts including network layer design issues, routing algorithms, and protocols. It provides 3 key points:
1) The network layer is responsible for delivering packets between endpoints over multiple links using store-and-forward packet switching. It implements both connectionless and connection-oriented services for the transport layer.
2) Common routing algorithms discussed include shortest path algorithms like Dijkstra's algorithm, flooding, and distance vector routing. Flooding broadcasts all packets while distance vector uses the Bellman-Ford equation to iteratively calculate the shortest paths.
3) Protocols discussed include IPv4, IPv6, ARP, RARP, DHCP, and ICMP. Connectionless transmission uses datagrams while connection
Flooding is a basic routing protocol where each node forwards incoming packets to all neighboring nodes, except the node it was received from. This ensures all paths are tried but results in many duplicate packets. Improvements involve adding a hop count or node remembering already forwarded packets to limit duplicates. Flooding provides robustness and optimal paths but is inefficient. Distance vector routing uses neighbor-exchanged routing tables to calculate best paths. Each node maintains a table of distances and next hops to reach each destination. Link state routing involves each node learning neighbors, measuring costs to neighbors, constructing link state packets to share costs, and calculating shortest paths. Hierarchical routing addresses scaling by grouping nodes into regions to reduce routing table sizes at the cost of
The document summarizes routing protocols and algorithms used in computer networks. It discusses how routing protocols define how routers exchange network information, including the type of information exchanged and timing. Examples of routing protocols include RIP, EIGRP, OSPF and BGP. Routing algorithms find the least cost path between routers using a graph representation of the network. Dijkstra's algorithm is a link-state routing algorithm that computes the shortest paths from one router to all others using an iterative approach where it progressively updates the costs of reachable nodes.
The document discusses network layer design issues and routing algorithms. It covers key topics like store-and-forward packet switching, connection-oriented vs. connectionless services, routing table structure and updating, and different types of routing algorithms like shortest path, distance vector, link state, and hierarchical routing. The optimality principle states that if a router is on the optimal path between two other routers, then the optimal path between those two routers must pass through that router as well.
Dynamic time warping and PIC 16F676 for control of devicesRoger Gomes
A presentation done as a part of the final year project during Semester 8 in the under-graduate degree course in engineering.
This presentation explains one of the modules of the project "Speaker and Speech Recognition based Embedded System Design for User Authentication and remote Device Control" which is the Speech Recognition Module.
It effectively explains the Dynamic Time Warping Algorithm used for Speech Recognition and how that is further used along with PIC 16F676 Microcontroller to acquire control of remote devices connected to the system.
Overview of IP routing protocols, packet forwarding and proxy ARP.
The principle of IP routing proved to be very flexible and scalable in the growth of the Internet and TCP/IP based networks.
IP routing denotes protocols for exchanging IP address range reachability like RIP, BGP and OSPF.
In contrast to IP routing, IP packet forwarding collectively means all functions performed when an IP router receives a packet and forwards it over the output interface indicated by an IP route in the routing table.
When an IP router performs a route lookup, it calculates a route decision based on different properties like prefix (mask) length, route precedence and metrics.
Routing protocols for exchanging route information can be coarsely classified as distance vector and link state protocols. Distance vector protocols like RIP (Routing Information Protocol) exchange information about the path cost to specific targets (IP address ranges). Routers that talk distance vector protocols receive reachability information about all sub-networks indirectly from neighboring routers.
In contrast to distance vector protocols, link state protocols like OSPF disseminate information about the link state of each router link in a network to all routers in the network. Thus link state protocols tend to converge faster to topology changes since all routers have firsthand information of the topology of the network.
Proxy ARP may be a convenient solution when it comes to add additional subnets without having to add routes to routers and hosts. A proxy ARP enabled router would answer ARP requests on behalf of the targeted hosts mimicking a local network access to the requesting host.
The document discusses routing protocols used in internets and autonomous systems. It describes how distance vector routing protocols like RIP work by sharing routing tables between neighbors. It also explains link state routing protocols like OSPF, where each router shares information about connected links and all routers can independently calculate optimal routes. Finally, it outlines path vector routing and BGP, which is used for inter-domain routing between autonomous systems and considers routing policies.
The document discusses various topics related to network layer in computer networks including network layer services, packet switching, IP addressing, forwarding of IP packets, routing algorithms, and IP protocols. Specifically, it covers logical addressing, services provided at different nodes, forwarding methods based on destination address and labels, IP version 4 addressing including classes and subnetting, and processing of packets at routers and destination computers.
Resolution of Some Cases of Bgp Inter-Domain Oscillations with the Spvpoc Alg...ijceronline
International Journal of Computational Engineering Research (IJCER) is dedicated to protecting personal information and will make every reasonable effort to handle collected information appropriately. All information collected, as well as related requests, will be handled as carefully and efficiently as possible in accordance with IJCER standards for integrity and objectivity.
The document discusses various network layer services and routing algorithms. It describes packet switching which allows packets to be forwarded using destination addresses and connection-oriented services which require call setup and use virtual circuit identifiers. It also summarizes different routing algorithms including flooding, distance vector, link state, hierarchical routing, multicast routing, and routing for mobile and ad hoc networks.
This document provides an overview of key concepts in the network layer, including the architecture of routers, IPv6, routing algorithms like link state and distance vector, and routing protocols like RIP, OSPF, and BGP. It discusses router functions such as routing algorithms/protocols and packet forwarding. It also covers topics like switching fabrics, queuing, and hierarchical routing between autonomous systems.
This document contains the details of the final exam for the Communication Networks course EE 333. The exam consists of 4 questions. Question 1 involves analyzing the performance of different transmission strategies for packet delivery over a wireless network. Question 2 involves analyzing the steady-state behavior and performance metrics of an M/M/1/2 queue. Question 3 applies Dijkstra's algorithm to find least-cost paths in a network and discusses multicasting. Question 4 consists of brief answers to questions about TCP/IP concepts.
This document provides an overview and summary of networking technologies for Internet of Things applications. It discusses the roles and functions of network modules, common routing techniques like flooding, distance vector routing, and source routing. It then describes two specific routing protocols - Ad Hoc On-demand Distance Vector (AODV) routing and the IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL). AODV uses an on-demand approach to route discovery, while RPL is a proactive protocol that constructs a destination-oriented directed acyclic graph to route packets from nodes to the root. The document also discusses topology maintenance and the use of Trickle timers in RPL.
This document provides an overview and summary of networking technologies for Internet of Things applications. It discusses the roles and functions of network modules, common routing techniques like flooding, distance vector routing, and source routing. It then describes two specific routing protocols - Ad Hoc On-demand Distance Vector (AODV) routing and the IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL). AODV uses an on-demand approach to route discovery, while RPL is a proactive protocol that builds a destination oriented directed acyclic graph to route packets from nodes to the root. The document also discusses topology maintenance and the use of Trickle timers in RPL.
Main Java[All of the Base Concepts}.docxadhitya5119
This is part 1 of my Java Learning Journey. This Contains Custom methods, classes, constructors, packages, multithreading , try- catch block, finally block and more.
How to Build a Module in Odoo 17 Using the Scaffold MethodCeline George
Odoo provides an option for creating a module by using a single line command. By using this command the user can make a whole structure of a module. It is very easy for a beginner to make a module. There is no need to make each file manually. This slide will show how to create a module using the scaffold method.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPRAHUL
This Dissertation explores the particular circumstances of Mirzapur, a region located in the
core of India. Mirzapur, with its varied terrains and abundant biodiversity, offers an optimal
environment for investigating the changes in vegetation cover dynamics. Our study utilizes
advanced technologies such as GIS (Geographic Information Systems) and Remote sensing to
analyze the transformations that have taken place over the course of a decade.
The complex relationship between human activities and the environment has been the focus
of extensive research and worry. As the global community grapples with swift urbanization,
population expansion, and economic progress, the effects on natural ecosystems are becoming
more evident. A crucial element of this impact is the alteration of vegetation cover, which plays a
significant role in maintaining the ecological equilibrium of our planet.Land serves as the foundation for all human activities and provides the necessary materials for
these activities. As the most crucial natural resource, its utilization by humans results in different
'Land uses,' which are determined by both human activities and the physical characteristics of the
land.
The utilization of land is impacted by human needs and environmental factors. In countries
like India, rapid population growth and the emphasis on extensive resource exploitation can lead
to significant land degradation, adversely affecting the region's land cover.
Therefore, human intervention has significantly influenced land use patterns over many
centuries, evolving its structure over time and space. In the present era, these changes have
accelerated due to factors such as agriculture and urbanization. Information regarding land use and
cover is essential for various planning and management tasks related to the Earth's surface,
providing crucial environmental data for scientific, resource management, policy purposes, and
diverse human activities.
Accurate understanding of land use and cover is imperative for the development planning
of any area. Consequently, a wide range of professionals, including earth system scientists, land
and water managers, and urban planners, are interested in obtaining data on land use and cover
changes, conversion trends, and other related patterns. The spatial dimensions of land use and
cover support policymakers and scientists in making well-informed decisions, as alterations in
these patterns indicate shifts in economic and social conditions. Monitoring such changes with the
help of Advanced technologies like Remote Sensing and Geographic Information Systems is
crucial for coordinated efforts across different administrative levels. Advanced technologies like
Remote Sensing and Geographic Information Systems
9
Changes in vegetation cover refer to variations in the distribution, composition, and overall
structure of plant communities across different temporal and spatial scales. These changes can
occur natural.
2. 2
Contents
1. Routing in General
2. Distance vector
Bellman-Ford
How it is used in practice
3. Protocols that implement Distance Vector
RIP
RIP v2
IGRP
4. More about routing in general
3. 3
1. Introduction
Why were routing protocols invented
IP assumes routing tables are maintained at hosts and routers used by
Packet Forwarding
Routing = control method
maintain routing tables automatically
in routers
At host routing tables are usually maintained by
default rules
plus ICMP redirect
in old times: was done also by a routing protocol (RIP). Today, a host usually does not
run any routing protocol
Compare to: LANs connected by bridges operate at layer 2 like
connectionless packet forwarders
Q. How do they maintain routing information ?
solution
4. 4
Routing vs Packet Forwarding
Packet Forwarding
for every packet
done in real time
Routing
computation of routing tables or data structures for unicast and multicast
normally only between routers
non-real time: latency up to 2 minutes
uses dedicated protocols (RIP, OSPF, EIGRP (Cisco) for unicast
and DVMRP, M-OSPF, PIM)
ICMP-redirect may alter routing tables, but only in hosts
5. 5
Interior Routing
Routing methods are of two types
Inside an administrative domain = Interior Routing
Between domains = Exterior Routing
Problem solved by a routing protocol
What a routing protocol does
find reachable destinations
find best paths towards destinations
best in the sense of some metric
in this module, best means along shortest path, for some additive metric
(number of hops, delay)
6. 6
Metrics
Distance vector and link state find paths that minimize a metric
Static metric - does not depend on the network state; for example:
number of hops
link capacity and static delay
cost
Dynamic metric- depend on the network state
link load
current delay
see end of section
7. 7
Simple Routing Methods
How routing protocols work
static configuration
for toy networks only
flooding
each packet duplicated on each outgoing link; loops prevented by packet id
or other mechanism ; duplicate packets may be received at destination
simple and robust
no need for routing tables
robust - tolerates link or router failures
optimal in some sense
the first packet has found the shortest path to the destination
costly
many duplicated packets – little useful traffic
used as an ingredient by mobile ad-hoc routing methods (AODV, OLSR)
source routing
source writes route into packet header
router reads next hop from packet header, moves pointer
route discovered by flooding
8. 8
Source Routing
A B 2.2.4
IS
B
IS
IS
IS
A
SA DA RI data
1
2
3
1 2
1 3
1
3
4
3
2
2
4
A B 2.2.4
A B 2.2.4
Q. What are the routes that can be used from A to B ?
solution
A route is described by a sequence of port numbers
9. 9
Route Discovery in Token Rings
B1
A R1
R2
B4
R4
B3
B5
R5
B6
R6
B2
R3
B
One “All Route Broadcast” packet is generated by A. This
creates 5 different packets.
1. A-R1-B1-R2-B2-R3
2. A-R1-B1-R2-B3-R5-B6-R6
3. A-R1-B1-R2-B3-R5-B5-R4
4. A-R1-B4-R4-B5-R5-B3-R2-B2-R3
5. A-R1-B4-R4-B5-R5-B6-R6
2 of them reach B (numbers 2 and 5)
route_1 = R1.B1.R2.B3.R5.B6.R6
route_2 = R1.B4.R4.B5.R5.B6.R6
10. 10
In the 1980’s, the token was invented as a competitor to Ethernet. Bridging is in
theory independent of whether we use token ring or ethrnet, however in practice
token ring LANs used source routing bridges instead of spanning tree bridges.
Source routing bridges work as illustrated on the figure:
Bridges and token rings have numbers. Think of a token ring as functionally the same as an
Ethernet collision domain
Assume A has a packet to send to B (here A and B are MAC addresses, but this works equally
well with IP addresses). A needs to find a description of a route to B. To this end, A floods the
network with an “all-route-broadcast” packet. The packet is generated by A and sent over ring
R1. This packet has a special destination address that means “all-route-broadcast”.
All bridges listen to all rings that they are attached to (this is their job as forwarding devices).
When they see a packet with destination address “all-route-broadcast”, they forward the
packet to all other rings they are attached to, except if the packet has already visited this ring
(the packet contains in its header the list of rings and bridges that it has already visited).
For example, the packet created by A is seen by B1 [resp. B4] who forwards a copy on R2 [resp.
R4]. B2 and B3 see the packet on R2 and forward it to R5 and R3. Etc.
At some point in time, B4 sees a packet on R4 put by B5, which contains as list of visits: “A-R1-
B1-R2-B3-R5-B5-R4” (packet number 3). This packet contains R1 in its list, therefore B4 does not
forward it.
This generates 5 packets in total (numbered 1 to 5 on the figure), 2 of them reach ring R6. When
B sees any of them, it sends an acknowledgement to A. This ack is source routed, along the
reverse route.
A then receives two acks, each of them contains source route information that can be inverted
by A. A now has two routes to B and can choose for example the shortest (in number of hops).
DSR (Dynamic Source Routing) is a protocol for routing in ad-hoc networks that uses
the same mechanism, but with IP addresses instead of MAC addresses.
11. 11
Other Methods
Distance vector (Bellman-Ford)
routers only know their local state
link metric and neighbor estimates
interior routing protocols (RIP, IGRP)
Link state
knowledge of the global state
topology database
global optimization (Shortest Path First - Dijkstra)
interior routing protocols (OSPF, PNNI (ATM))
Path vector
no knowledge of the global state
path: sequence of AS with attributes
global optimization and policy routing
exterior routing protocols (BGP)
12. 12
2. Distance Vector
What it does:
Computes best paths to all destinations
Fully distributed
Using as only information the distances from self to all destinations
How it works
uses distributed Bellman-Ford – see next slides
Note: individual link cost is setup by network management
We first describe the centralized Bellman-Ford algorithm.
13. 13
The Centralized Bellman-Ford Algorithm
What: Given a directed graph with links costs A(i,j), computes the best path from i to
j for any couple (i,j).
We assume A(i, j) > 0 and A(i,j) = ∝ when i and j are not connected.
How: Take for example j=1 and let p(i) be the cost of the best path from i to 1.
Define pk
(i) as the cost of the best path from i to 1 in at most k hops. Let p0
(1) = 0, p0
(i) = ∝ for i
≠ 1.
(Bellman Ford, BF1)
Theorem
1. If the network is fully connected, the algorithm stops at the latest for k=n and then
pk
(i)=p(i) for all i
2. The shortest path from i ≠ 1 to 1 is defined by pred(i) = Argminj≠i [A(i,j) + p(j)].
Idea of Proof: pk
(i) is the distance from i to 1 in at most k hops.
Comment: recursion is equivalent to : pk
(i) = min{ minj≠i,j≠1 [A(i,j) + pk-1
(j)] , A(i,1) }
14. 14
Example
Apply the theorem: write pk
(i), pred(i) and draw the shortest
paths to node 1.
solution
3
2 1
45
6
1
1
1
1 3
3
15. 15
Impact of Initial Conditions
Example: Q. does the algorithm converge to the shortest path
with initial condition as shown ?
solution
3
2 1
45
6
1
1
1
1 3
3
ki 1 2 3 4 5
0 0 0 0 0 0
1
2
3
4
ki 1 2 3 4 5
0 0 6 1 1 0
1
2
3
4
16. 16
Impact of Initial Condition
Theorem
The algorithm converges in a finite number of steps to the correct values
for all initial conditions such that p0
(1)=0 and for every node i that is
connected to 1
If there is no path from i to 1, the algorithm lets pk
(i) converge to 1
17. 17
Proof
We do the proof assuming all nodes are connected.
1. Let pk
be the vector pk
[i], i=2,…. Let B be the mapping that transforms an array x[i]i=2…
into the array Bx defined for i ≠ 1 by
Bx[i]=min j≠i,j ≠1[A(i,j) + x(j)]
Let b be the array defined for i ≠ 1 by
b[i]= A(i,1)
The algorithm can be rewritten in vector form as
(1) pk
= B pk-1
∧ b
where ∧ is the pointwise minimum
2. Eq (1) is a min-plus linear equation and the operator B satisfies B(x ∧y)= Bx ∧By.
Thus, Eq(1) can be solved using min-plus algebra into
(2) pk
= Bk
p0
∧ Bk-1
b ∧ … ∧ Bb ∧ b
3. Define the array e for i ≠ 1 by e[i]= ∝. Let p0
=e. Eq (2) becomes
(3) pk
= Bk-1
b ∧ … ∧ Bb ∧ b. Now we have the Bellman Ford algorithm with classical
initial conditions, thus, by Theorem 1:
(4) for k ≥ n-1: Bk-1
b ∧ … ∧ Bb ∧ b = q
where q[i] is the distance from i to 1.
4. We can rewrite Eq(2) for k ≥ n-1 as
(5) pk
= Bk
p0
∧ q
5. Bk
p0
[i] can be written as A[i,i1]+ A[i1,i2]+ …+ A[ik-1,ik]+ p[ik] thus
(6) Bk
p0
[i] ≥ k a, where a is the minimum of all A[i,j]. Thus Bk
p0
[i] tends to ∝ when k
k 0
18. 18
Distributed Bellman Ford
BF1 can be used in a centralized algorithm to compute p(i) i.e. find the shortest path.
However, this is not its main interest, because there is a better algorithm (Dijkstra)
that can be used in a centralized method
But: it can be distributed, as follows.
Theorem: if the time to reliably send a message is bounded by T, the algo converges
to the same result as the centralized version in at most nT time units (if the network
is fully connected)
Distributed Bellman-Ford Algorithm v1, BFD1
every node, say i, maintains an estimate q(i) of the distance p(i) to some
fixed node 1; initial conditions are arbitrary but q(1)=0 at all steps
from time to time, i sends the new value q(i) to all its neighbours
when node i receives a value q(j0) from any neighbour j0, it sets q(j0) to
the received value and updates q(i) by recomputing
eq (1) q(i) := min j neighbour (A(i,j)+q(j))
if eq (1) causes q(i) to be modified, pred(i) is set to a value of j that
achieves the min
Distributed Bellman-Ford Algorithm v1, BFD1
every node, say i, maintains an estimate q(i) of the distance p(i) to some
fixed node 1; initial conditions are arbitrary but q(1)=0 at all steps
from time to time, i sends the new value q(i) to all its neighbours
when node i receives a value q(j0) from any neighbour j0, it sets q(j0) to
the received value and updates q(i) by recomputing
eq (1) q(i) := min j neighbour (A(i,j)+q(j))
if eq (1) causes q(i) to be modified, pred(i) is set to a value of j that
achieves the min
19. 19
Distributed Bellman-Ford v1
3
2 1
45
6
1
2
1
1 3
3
A possible run of algorithm v1. The
table shows the successive values of q(i)
solution
i 1 2 3 4 5
0 ∝ ∝ ∝ ∝
0 1 ∝ ∝ ∝
0 1 ∝ ∝ 4
0 1 7 ∝ 4
0 1 7 5 4
0 1 7 4 4
0 1 7 2 4
0 1 7 2 3
0 1 7 2 3
0 1 4 2 3
1 -> 2
2 -> 5
2 -> 3
5 -> 4
2 -> 4
1 -> 4
4 -> 5
5 -> 2
5 -> 3
link breaks
Q: give a possible
scenario after link
4—5 breaks
20. 20
Naive Distributed Bellman-Ford
The previous distributed version requires a node to remember all previously
received estimates q(j) for all neighbours, even if they are not the best ones
In practice this is a problem if we need to compute the shortest paths to not
just one destination, but to a large number.
A naive distributed Bellman-Ford would be as v1 except we replace eq(1)
by:
Q. does this work ? why or why not ?
solution
Distributed Bellman-Ford Algorithm v1a, BFD1a
when node i receives new value q(j) from node j do
eq (1a) q(i) := min { A(i,j) + q(j), q(i) }
Distributed Bellman-Ford Algorithm v1a, BFD1a
when node i receives new value q(j) from node j do
eq (1a) q(i) := min { A(i,j) + q(j), q(i) }
21. 21
Distributed Bellman-Ford, cont’d
There is an alternative algorithm, that requires only to remember the best
neighbour (pred(i))
Distributed Bellman-Ford Algorithm, version 2 BFD2
every node, say i, maintains an estimate q(i) of the distance p(i) to
some fixed node 1; initial conditions are arbitrary but q(1)=0 at all
steps
from time to time, i sends its value q(i) to all its neighbours
when node i receives a value q(j0) from any neighbour j0, it sets
q(j0) to the received value and updates q(i) by recomputing
eq (2) if j0 == pred(i)
then q(i) := A(i,j0)+q(j0)
else q(i) := min { A(i,j0) + q(j0), q(i) }
if eq (2) causes q(i) to be modified, pred(i) is set to j0
Distributed Bellman-Ford Algorithm, version 2 BFD2
every node, say i, maintains an estimate q(i) of the distance p(i) to
some fixed node 1; initial conditions are arbitrary but q(1)=0 at all
steps
from time to time, i sends its value q(i) to all its neighbours
when node i receives a value q(j0) from any neighbour j0, it sets
q(j0) to the received value and updates q(i) by recomputing
eq (2) if j0 == pred(i)
then q(i) := A(i,j0)+q(j0)
else q(i) := min { A(i,j0) + q(j0), q(i) }
if eq (2) causes q(i) to be modified, pred(i) is set to j0
22. 22
Distributed Bellman-Ford v2
Theorem: If the time to reliably send a message to all neighbours and perform local
computations is bounded by T’, then the algorithm BFD2 converges to the correct
values in at most m (T+T’) time units, where m is the number of steps of convergence
of the centralized algorithm with same initial conditions
Comment: The main difference with version 1 is that eq(2) replaces eq(1). Assume
we use v2, and we start from a condition such that q(i) is indeed equal to the
minimum given by eq (1) (which is what, intuitively, is true most of the time).
When j is not equal to pred(i), both eq(1) and eq(2) have the same effect: the new
value of q(i) is the same in both cases. In contrast, if j == pred(i), then eq (2) sets q(i)
to the new value A(i,j)+q(j), whereas eq(1) sets it to minjneighbour (A(i,j)+q(j)). Eq(2)
provides an upper bound on eq(1), in this case. It turns out that the algorithm still
works, by the same mechanism that makes the algorithm work even when the initial
conditions are arbitrary. Indeed, node i will send its new value to all remaining
neighbours, who will in turn do an update and eventually, node i will receive values
of q(j) that will correct the problem. In other words, if the new value of q(i) is too
high (compared to what would be obtained with eq (1)), this is repaired in one round
of exchanges with the neighbours.
24. 24
How it is used in practice
Node i computes shortest path and next hop for all network prefixes n that it
heard of.
Initially: D(i,n) = 0 if i directly connected to n and D(i,n) = +∞ for any n that
was never heard of.
Node i receives from neighbour k latest values of D(k,n) for all n (this is the
distance vector). Node i computes the best estimates according to algorithm
BFD2
This converges if network is stable
hello mechanism to reset computation after changes
if neighbour k is no longer present, node i will no longer receive hello messages, and
after a timeout, this has the same effect as if node i would receive the message from
k: D(k,n)=1 for all n. Then algorithm BFD2 is run
c(i,m)
c(i,1) D(1,n)
c(i,k) D(k,n)
D(m,n)
i n
1
k
m
25. 25
Example 1
n1
A B
n3
D C
n2n4
net dist nxt
n1 0 n1,A
n4 0 n4,A
net dist nxt
n1 0 n1,B
n2 0 n2,B
net dist nxt
n3 0 n3,D
n4 0 n4,D
m3 0 m3,D
net dist nxt
n2 0 n2,C
n3 0 n3,C
m1 0 m1,C
m2 0 m2,C
A B
CD
m1
m2
m3
26. 26
Example 1
n1
A B
n3
D C
n2n4
net dist nxt
n1 0 n1,A
n4 0 n4,A
net dist nxt
n1 0 n1,B
n2 0 n2,B
n4 1 n1,A
net dist nxt
n3 0 n3,D
n4 0 n4,D
m3 0 m3,D
net dist nxt
n2 0 n2,C
n3 0 n3,C
m1 0 m1,C
m2 0 m2,C
n4 1 n3,D
m3 1 n3,D
from A
n1 0
n4 0
A B
CD
m1
m2
m3
from D
n3 0
n4 0
m3 0
27. 27
Example 1
n1
A B
n3
D C
n2n4
net dist nxt
n1 0 n1,A
n4 0 n4,A
net dist nxt
n3 0 n3,D
n4 0 n4,D
m3 0 m3,D
net dist nxt
n2 0 n2,C
n3 0 n3,C
m1 0 m1,C
m2 0 m2,C
n4 1 n3,D
m3 1 n3,D
A
CD
m1
m2
m3
from C
n2 0
n3 0
m1 0
m2 0
n4 1
m3 1
net dist nxt
n1 0 n1,B
n2 0 n2,B
n3 1 n2,C
n4 1 n1,A
m1 1 n2,C
m2 1 n2,C
m3 2 n2,C
B
28. 28
Example 1 - Final
n1
A B
n3
D C
n2n4
net dist nxt
n1 0 n1,A
n2 1 n1,B
n3 1 n4,D
n4 0 n4,A
m1 2 n4,D
m2 2 n4,D
m3 1 n4,D
net dist nxt
n1 1 n4,A
n2 1 n3,C
n3 0 n3,D
n4 0 n4,D
m1 1 n3,C
m2 1 n3,C
m3 0 m3,D
A
C
D
m1
m2
m3
net dist nxt
n1 1 n2,B
n2 0 n2,C
n3 0 n3,C
m1 0 m1,C
m2 0 m2,C
n4 1 n3,D
m3 1 n3,D
net dist nxt
n1 0 n1,B
n2 0 n2,B
n3 1 n2,C
n4 1 n1,A
m1 1 n2,C
m2 1 n2,C
m3 2 n2,C
B
29. 29
Example 1 - Failure
n1
A B
n3
D C
n2n4
m1
m2
m3
net dist nxt
n1 1 A
n2 1 C
n3 0 D
n4 0 D
m1 1 C
m2 1 C
m3 0 D
D
C
net dist nxt
n1 1 B
n2 0 C
n3 0 C
m1 0 C
m2 0 C
n4 1 D
m3 1 D
net dist nxt
n1 0 B
n2 0 B
n3 1 C
n4 1 A
m1 1 C
m2 1 C
m3 2 C
B
We show only the router in the next hop field
30. 30
Example 1 - Failure
n1
A B
n3
D C
n2n4
m1
m2
m3
timeout
net dist nxt
n1 0 B
n2 0 B
n3 1 C
n4 1 A
m1 1 C
m2 1 C
m3 2 C
B
C
net dist nxt
n1 1 B
n2 0 C
n3 0 C
m1 0 C
m2 0 C
n4 1 D
m3 1 D
net dist nxt
n1 1 A
n2 1 C
n3 0 D
n4 0 D
m1 1 C
m2 1 C
m3 0 D
D
timeout
31. 31
Example 1 - Failure
n1
A B
n3
D C
n2n4
m1
m2
m3
net dist nxt
n1 0 B
n2 0 B
n3 1 C
m1 1 C
m2 1 C
m3 2 C
B
C
net dist nxt
n1 1 B
n2 0 C
n3 0 C
m1 0 C
m2 0 C
n4 1 D
m3 1 D
net dist nxt
n1 2 C
n2 1 C
n3 0 D
n4 0 D
m1 1 C
m2 1 C
m3 0 D
D
From C:
n1 1 B
n2 0 C
n3 0 C
m1 0 C
m2 0 C
n4 1 D
m3 1 D
32. 32
Example 1 - After Failure
n1
A B
n3
D C
n2n4
m1
m2
m3
net dist nxt
n1 0 B
n2 0 B
n3 1 C
n4 2 C
m1 1 C
m2 1 C
m3 2 C
B
C
net dist nxt
n1 1 B
n2 0 C
n3 0 C
m1 0 C
m2 0 C
n4 1 D
m3 1 D
net dist nxt
n1 2 C
n2 1 C
n3 0 D
n4 0 D
m1 1 C
m2 1 C
m3 0 D
D
33. 33
Example 1: conclusions
Example 1 illustrates
how Bellman Ford is mapped to the network concepts
how topology changes are taken into account
most recent announcement replaces previous ones
non refreshed announcements become obsolete
how distance vector carries reachability information
34. 34
Example 2
dest link cost
A local 0
B l1 1
D l3 1
C l1 2
E l1 2
A
l1
A B
l6
D E
l4l3 C
l5
l2
dest link cost
B local 0
A l1 1
C l2 1
E l4 1
D l1 2
B
dest link cost
C local 0
A l2 2
B l2 1
D l2 3
E l2 2
C
dest link cost
D local 0
A l3 1
B l3 2
C l3 3
E l6 1
D
dest link cost
E local 0
A l4 2
B l4 1
D l6 1
C l4 2
E
To simplify, we identify destination with router
Assume algorithm has converged
cost =1
cost =1
cost =1
cost =1
cost =5
35. 35
Example 2
l1
A B
l6
D E
l4l3 C
l5
we now show only table entries: to C
link 2 fails
B updates its table
C l1 2 C l2 ∞
C l3 3 C l4 2
C local 0
36. 36
Example 2: Link failure
Just before B updates its table, A broadcasts its table with cost 2
to C
B updates
l1
A B
l6
D E
l4l3 C
l5
C l1 2 C l1 3
C l3 3 C l4 2
from A: C l1 2
C local 0
37. 37
Example 2: Link failure
B sends update to A and E
A and E update
l1
A B
l6
D E
l4l3 C
l5
C l1 4 C l1 3
C l3 3 C l4 4
from B: C l1 3
from B: C l1 3
C local 0
38. 38
Example 2: Link failure
C sends update
it is ignored by E because it it less good
l1
A B
l6
D E
l4l3 C
l5
C l1 4 C l1 3
C l3 3 C l4 4
C local 0
from C: C local 0
39. 39
Example 2: Link failure
A broadcasts its table with cost 4 to C
B updates … we have a loop between A and C
cost is increase by 2 at every iteration
l1
A B
l6
D E
l4l3 C
l5
C l1 4 C l1 5
C l3 3 C l4 4
from A: C l1 4
C local 0
40. 40
Example 2: Link failure
l1
A B
l6
D E
l4l3 C
l5
C l1 6 C l1 7
C l3 7 C l5 5
from C: C local 0
E now accepts announcement from C
C local 0
41. 41
Example 2: Link failure
l1
A B
l6
D E
l4l3 C
l5
C l1 7 C l4 6
C l6 6 C l5 5
E sends announcements to D and B
B and D send announcements to A
the algorithm has converged – stable state
from E: C l5 5
from B: C l4 6
from E: C l5 5
C local 0
42. 42
Conclusions from Example 2
the algorithm converges after modification of the topology, but
the convergence may be very slow
bounce effect
Q: during convergence time, how are routing tables ?
solution
43. 43
Example 3
dest link cost
A local 0
B l3 3
D l3 1
C l3 3
E l3 2
A
A B
D E
l4l3 C
l5
l2
dest link cost
B local 0
A l4 3
C l2 1
E l4 1
D l4 2
B
dest link cost
C local 0
A l5 3
B l2 1
D l5 2
E l5 1
C
dest link cost
D local 0
A l3 1
B l3 ∞
C l6 ∞
E l6 ∞
D
dest link cost
E local 0
A l6 2
B l4 1
D l6 1
C l5 1
E
Assume now all link costs are equal to 1
Links l1 and l6 fail
D detects failure and sets costs to 1
44. 44
Example 3
dest link cost
A local 0
B l3 3
D l3 1
C l3 3
E l3 2
A
A
D
l3
dest link cost
D local 0
A l3 1
B l3 4
C l3 4
E l3 3
D
from A:
dest cost
A 0
B,C 3
D 1
E 2
dest link cost
A local 0
B l3 5
D l3 1
C l3 5
E l3 4
A
A
D
l3
dest link cost
D local 0
A l3 1
B l3 4
C l3 4
E l3 3
D
from B:
dest cost
A 1
B,C 4
D 0
E 3
dest link cost
A local 0
B l3 3
D l3 1
C l3 3
E l3 2
A
A
D
l3
dest link cost
D local 0
A l3 1
B l3 6
C l3 6
E l3 5
D
from A:
dest cost
A 0
B,C 5
D 1
E 3
45. 45
Conclusion from Example 3
The costs to C, B, E grow unbounded “Count to Infinity”
the true costs are infinite
Convergence to a stable state if we set
∞ = large number
e.g. RIP: ∞ = 16
“Split Horizon”
a heuristic to prevent this
if A routes packets to X via B, it does not announce this route to B
46. 46
Example 3: with Split Horizon
dest link cost
A local 0
B l3 3
D l3 1
C l3 3
E l3 2
A
A B
D E
l4l3 C
l5
l2
dest link cost
B local 0
A l4 3
C l2 1
E l4 1
D l4 2
B
dest link cost
C local 0
A l5 3
B l2 1
D l5 2
E l5 1
C
dest link cost
D local 0
A l3 1
B l3 ∞
C l6 ∞
E l6 ∞
D
dest link cost
E local 0
A l6 2
B l4 1
D l6 1
C l5 1
E
47. 47
Example 3: with Split Horizon
dest link cost
A local 0
B l3 3
D l3 1
C l3 3
E l3 2
A
A
D
l3
dest link cost
D local 0
A l3 1
B l3 ∞
C l6 ∞
E l6 ∞
D
from A:
dest cost
A 0
48. 48
Split horizon
dest link cost
A local 0
B l3 ∞
D l3 1
C l3 ∞
E l3 ∞
A
A
D
l3
dest link cost
D local 0
A l3 1
B l3 ∞
C l6 ∞
E l6 ∞
D
from D:
dest cost
D 0
B,C,E ∞
Split horizon cuts the process of
counting to infinity
49. 49
Split horizon may fail
B
E
l4 C
l5
l2
dest link cost
B local 0
A l4 ∞
C l2 1
E l4 1
D l4 ∞
B
dest link cost
C local 0
A l5 3
B l2 1
D l5 2
E l5 1
C
dest link cost
E local 0
A l6 ∞
B l4 1
D l6 ∞
C l5 1
E
from E:
dest cost
A ∞
B 1
C 1
D ∞
50. 50
Split horizon may fail
B
E
l4 C
l5
l2
dest link cost
B local 0
A l2 4
C l2 1
E l4 1
D l2 3
B
dest link cost
C local 0
A l5 3
B l2 1
D l5 2
E l5 1
C
dest link cost
E local 0
A l6 ∞
B l4 1
D l6 ∞
C l5 1
E
from C:
dest cost
A 3
D 2
E 1
from C:
dest cost
B 1
51. 51
Split horizon may fail
B
E
l4 C
l5
l2
dest link cost
B local 0
A l2 4
C l2 1
E l4 1
D l2 3
B
dest link cost
C local 0
A l5 3
B l2 1
D l5 2
E l5 1
C
dest link cost
E local 0
A l4 5
B l4 1
D l4 4
C l5 1
E
from B:
dest cost
A 4
B 0
C 1
D 3
53. 53
3. Distance Vector Protocols
RIP
Distance vector protocol
Metric - hops
Network span limited to 15
∞ = 16
Split horizon
Destination network identified by IP address
Netmasks in RIPv2
Encapsulated as UDP packets, port 520
Largely implemented (routed on Unix)
Broadcast every 30 seconds or when update detected
Route not announced during 3 minutes
cost becomes ∞
Authentication in RIPv2 by MD5 (shared secret)
54. 54
IGRP (Interior Gateway Routing
Protocol)
Proprietary protocol by CISCO
Metric that estimates the global delay
Maintains several routes of similar cost
load sharing
Takes into account netmasks
No limit of 15
number of routers included in messages
Broadcast every 90 sec
55. 55
Metric example
Metric
Trans = 10000000/Bandwidth (time to send 10 Kb)
delay = (sum of Delay)/10
m = [K1*Trans + (K2*Trans )/(256-load) + K3*delay]
default: K1=1, K2=0, K3=1, K4=0, K5=0
if K5 ≠ 0, m = m * [K5/(Reliability + K4)]
Bandwidth in Kb/s, Delay in µs
At Venus: Route for 172.17/16: Metric = 10000000/784 +
(20000+1000)/10 = 14855
At Saturn: Route for 12./8: Metric = 10000000/224 + (20000 +
1000)/10 = 46742
56. 56
3. Load Dependent Routing
We come back in this section to what routing protocols do.
Instead of maximizing a “path quality” metric (nb hops, delay)
assume we want to maximize the total network utility
for example: total transported flows
see congestion control chapter for other definitions
how should routing be done ?
Q1: show an example where shortest path routing does not
provide the optimal total flow (where path cost is static)
solution
One solution might be to take delay as the path cost
high load on a link => high cost => link is less used
however, this does not solve the problem: there is the Braess paradox
57. 57
Braess Paradox (1)
Assume all flows pick the route with shortest delay
Assume parallel paths exist and flows can make use of them
Delay is function of load as given below; link 5 is (temporarily) closed
Total offered load is b0 = 6 Gb/s
For example,
if we split traffic into : route 1-3: b = 1, route 2-4 b = 5
the delay along route 1-3 is 61, along route 2-4 is 105
thus the link costs will change and routing decisions will change also
Eventually, there will be an equilibrium (called “Wardrop Equilibrium”)
delay is equal on all competing routes
Q: compute the equilibrium traffic flow on every link
Solution
59. 59
Braess Paradox
With shortest delay routing, adding a new link may decrease
overall throughput
Thus shortest delay routing is not either a global optimum
60. 60
Optimal Routing
One can change the objective of routing: instead of computing
shortest paths,one could solve a global optimization problem:
minimize total delay subject to flow constraints
this is a well posed optimization problem
the optimal solution depends on all flows
but it can be implemented in a distributed algorithm similar to TCP
congestion control ; see [BertsekasGallager92]
Q. Can you imagine a way to use classical routing (like distance
vector, which finds shortest paths) and still find the optimum
network utility ?
solution
61. 61
Conclusion
Distance vector is smart
Fully distributed, little information stored
Largely deployed (Unix BSD routed)
Simplicity
But: slow convergence
Not suited for large and complex networks
Link State protocols should be used instead
62. 62
Review Questions
Explain the following terms:
distance vector
bounce effect
count to infinity
split horizon
Bellman Ford
RIP, IGMP
source routing
Explain why shortest path routing is not necessarily a globally
optimum
What is the Braess paradox ?
64. 64
1. Introduction
Why were routing protocols invented
Connectionless Network Layer assumes routing tables are
maintained at hosts and routers
used by Packet Forwarding
Routing = control method
maintain routing tables automatically
in routers
At host
normally done by default rules
plus ICMP redirect
in old times: was done also by a routing protocol (RIP)
Compare to: LANs connected by bridges operate at layer 2 like
connectionless packet forwarders
Q. How do they maintain routing information ?
A. By learning from the packets they observe; broadcast is used to bootstrap
back
65. 65
Source Routing
A B 2.2.4
IS
B
IS
IS
IS
A
SA DA RI data
1
2
3
1 2
1 3
1
3
4
3
2
2
4
A B 2.2.4
A B 2.2.4
Q. What are the routes that can be used from A to B ?
A. A 2 2 4
A 2 3 4
A 2 4 3 4
A 3 3 4
A 3 2 2 4
A 3 2 3 4
back
A route is described by a sequence of port numbers
66. 66
Example
Apply the theorem: write pk
(i,1), pred(i) and draw the shortest
paths to node 1.
back
3
2 1
45
6
1
1
1
1 3
3 i 1 2 3 4 5
pred(i) 1 1 5 1 4
ki 1 2 3 4 5
0 0 ∝ ∝ ∝ ∝
1 0 1 ∝ 1 ∝
2 0 1 7 1 2
3 0 1 3 1 2
67. 67
Impact of Initial Conditions
Example: Q. does the algorithm
converge to the shortest path with
initial condition as shown ? A. yes
3
2 1
45
6
1
1
1
1 3
3
ki 1 2 3 4 5
0 0 0 0 0 0
1 0 1 1 1 1
2 0 1 2 1 2
3 0 1 3 1 2
4 0 1 3 1 2
ki 1 2 3 4 5
0 0 6 1 1 0
1 0 1 1 1 2
2 0 1 3 1 2
68. 68
Distributed Bellman-Ford v1
3
2 1
45
6
1
2
1
1 3
3
A possible run of algorithm v1:
i 1 2 3 4 5
0 ∝ ∝ ∝ ∝
0 1 ∝ ∝ ∝
0 1 ∝ ∝ 4
0 1 7 ∝ 4
0 1 7 5 4
0 1 7 4 4
0 1 7 2 4
0 1 7 2 3
0 1 7 2 3
0 1 4 2 3
4 does as if received ∝ from 5
5 does as if received ∝ from 4
and continue computations from
there
0 1 4 2 4
0 1 5 2 4
1 -> 2
2 -> 5
2 -> 3
5 -> 4
2 -> 4
1 -> 4
4 -> 5
5 -> 2
5 -> 3
link breaks
5 -> 3
back
Q: give a possible
scenario after link
4—5 breaks
69. 69
Naive Distributed Bellman-Ford
The previous distributed version requires a node to remember all previously
received estimates q(j) for all neighbours, even if they are not the best ones
In practice this is a problem if we need to compute the shortest paths to not
just one destination, but to a large number.
A naive distributed Bellman-Ford would be as v1 except we replace eq(1)
by:
Q. does this work ? why or why not ?
A. no. q(i) can only decrease. So if we start from initial conditions as in
example « Impact of Initial Conditions », the algorithm will not converge to
the right value. It gets « stuck » with a low value. It is possible to show that it
works if all initial conditions are above the final values, for example q(j)=1
initially. But even then, it will not work if there is a topology change, since
this is equivalent to starting from different initial conditions
back
Distributed Bellman-Ford Algorithm v1a, BFD1a
when node i receives new value q(j) from node j do
eq (1a) q(i) := min { A(i,j) + q(j), q(i) }
Distributed Bellman-Ford Algorithm v1a, BFD1a
when node i receives new value q(j) from node j do
eq (1a) q(i) := min { A(i,j) + q(j), q(i) }
70. 70
Distributed Bellman-Ford v2
3
2 1
45
6
1
2
1
1 3
3
A possible run of algorithm v1:
i 1 2 3 4 5
0 ∝ ∝ ∝ ∝
0 1 ∝ ∝ ∝
0 1 ∝ ∝ 4
0 1 7 ∝ 4
0 1 7 5 4
0 1 7 4 4
0 1 7 2 4
0 1 7 2 3
0 1 7 2 3
0 1 4 2 3
4 does as if received ∝ from 5
5 ≠ pred(4)
0 1 4 2 3
5 does as if received ∝ from 4
4 == pred(5)
0 1 4 2 ∝
0 1 ∝ 2 ∝
0 1 7 2 ∝
0 1 7 2 4
0 1 5 2 4
1 -> 2
2 -> 5
2 -> 3
5 -> 4
2 -> 4
1 -> 4
4 -> 5
5 -> 2
5 -> 3
link breaks
5 -> 3
2 -> 3
2 -> 5
5 -> 3back
Q: give a possible
scenario after link
4—5 breaks
71. 71
Conclusions from Example 2
Q: during convergence time, how are routing tables ?
A:
they are incorrect
there are loops – packets are discarded (TTL expires)
back
72. 72
3. Load Dependent Routing
Q. show an example where shortest path routing does not provide the optimal
total flow (where path cost is static)
A. assume all data flow goes from B to E: Static shortest path routing will pick
the direct link BE only instead of distributing the load also on some of the
longer links (BADE and BCE)
back
l1
A B
l6
D E
l4l3 C
l5
l2
E
cost =1
cost =1
cost =1
cost =1
cost =5
73. 73
Braess Paradox (1)
A. there are two paths
1: links 1, 3; 2: links 2,4
let bi be the traffic on path I
Delay equations:
50+ 11b1 = 50 + 11b2
Total flow
b1 + b2 = b0
equilibrium is for b1 = b2 = 3
delay is 83
back
74. 74
Braess Paradox (2)
Q: same question when we open link 5 with delay function:
A: there are three paths
1: links 1, 3;
2: links 2,4;
3: links 1, 5, 4
delay equations
50 + 11b1 + 10b3 = 50 + 11b2 + 10b3 = 10 + 10b1 + 10 b2 + 21 b3
total flow
b1 + b2 + b3 = b0
We find b1= b2 = b3 = 2 Gb/s
The total delay on all paths is the same, equal to 92 : larger than before!
75. 75
Optimal Routing
One can change the objective of routing: instead of computing
shortest paths,one could solve a global optimization problem:
minimize total delay subject to flow constraints
this is a well posed optimization problem
the optimal solution depends on all flows
but it can be implemented in a distributed algorithm similar to TCP
congestion control ; see [BertsekasGallager92]
Q. Can you imagine a way to use classical routing (like distance
vector, which finds shortest paths) and still find the optimum
network utility ?
A.
Let a centralized network management procedure update the link costs
(used by distance vector routing).
given link costs ci and traffic matrix compute total throughput or average
delay ( a hard optimization problem, solved with heuristics)
every few minutes, update the link costs in all routers – let the routing
algorithm compute new paths
back
Editor's Notes
The failure is detected by B, so it marks Inf to C. Before broadcasting this information, A sends its vector
The failure is detected by B, so it marks Inf to C. Before broadcasting this information, A sends its vector with cost 2 to C. B accepts this - l1, cost 3 (second line) and sends updated vector to A and E. The update comes on the links used for the routes, so it is accepted and this gives the first and the last line.
The failure is detected by B, so it marks Inf to C. Before broadcasting this information, A sends its vector with cost 2 to C. B accepts this - l1, cost 3 (second line) and sends updated vector to A and E. The update comes on the links used for the routes, so it is accepted and this gives the first and the last line.
The failure is detected by B, so it marks Inf to C. Before broadcasting this information, A sends its vector with cost 2 to C. B accepts this - l1, cost 3 (second line) and sends updated vector to A and E. The update comes on the links used for the routes, so it is accepted and this gives the first and the last line.
The failure is detected by B, so it marks Inf to C. Before broadcasting this information, A sends its vector with cost 2 to C. B accepts this - l1, cost 3 (second line) and sends updated vector to A and E. The update comes on the links used for the routes, so it is accepted and this gives the first and the last line.
The failure is detected by B, so it marks Inf to C. Before broadcasting this information, A sends its vector with cost 2 to C. B accepts this - l1, cost 3 (second line) and sends updated vector to A and E. The update comes on the links used for the routes, so it is accepted and this gives the first and the last line.
The failure is detected by B, so it marks Inf to C. Before broadcasting this information, A sends its vector with cost 2 to C. B accepts this - l1, cost 3 (second line) and sends updated vector to A and E. The update comes on the links used for the routes, so it is accepted and this gives the first and the last line.
D: all distances are not better than existing ones,the distance of Inf to B is announced on l3, the link used to reach B. So, D modifies it to Inf.
If A sends its vector before D, D will use its routes!
D: all distances are not better than existing ones,the distance of Inf to B is announced on l3, the link used to reach B. So, D modifies it to Inf.
If A sends its vector before D, D will use its routes!
If A sends its vector before D, D will use its routes!
Vector of E arrives at B, but not at C.
Vector of E arrives at B, but not at C.
Vector of E arrives at B, but not at C.
At lower bandwidths, the bandwidth has more influence over the total
metric; at higher bandwidths, the delay has more influence over the total
metric.