Rudra Dutta CSC Fall 2011, Section 001

Slides:



Advertisements
Similar presentations
Courtesy: Nick McKeown, Stanford
Advertisements

Routing - I Important concepts: link state based routing, distance vector based routing.
Routing So how does the network layer do its business?
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 22 Introduction to Computer Networks.
Chapter 4 Distance Vector Problems, and Link-State Routing Professor Rick Han University of Colorado at Boulder
Network Layer Design Isues Store-and-Forward Packet Switching Services Provided to the Transport Layer The service should be independent of the router.
Spring Routing & Switching Umar Kalim Dept. of Communication Systems Engineering 06/04/2007.
1 Computer Networks Routing Algorithms. 2 IP Packet Delivery Two Processes are required to accomplish IP packet delivery: –Routing discovering and selecting.
SAvPS – úvod Genči 2009 (bsaed on Tanenbaum’s slides.
1 Computer Communication & Networks Lecture 22 Network Layer: Delivery, Forwarding, Routing (contd.)
Packet-Switching Networks Routing in Packet Networks.
1 Introducing Routing 1. Dynamic routing - information is learned from other routers, and routing protocols adjust routes automatically. 2. Static routing.
M.Menelaou CCNA2 ROUTING. M.Menelaou ROUTING Routing is the process that a router uses to forward packets toward the destination network. A router makes.
1. 2 Anatomy of an IP Packet IP packets consist of the data from upper layers plus an IP header. The IP header consists of the following:
Network and Communications Ju Wang Chapter 5 Routing Algorithm Adopted from Choi’s notes Virginia Commonwealth University.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Chapter 5 Network Layer.
Data Communications and Networking Chapter 11 Routing in Switched Networks References: Book Chapters 12.1, 12.3 Data and Computer Communications, 8th edition.
Diverse Routing Algorithms
Routing and Routing Protocols
Cisco Systems Networking Academy S2 C 11 Routing Basics.
1 Computer Communication & Networks Lecture 21 Network Layer: Delivery, Forwarding, Routing Waleed.
Routing Networks and Protocols Prepared by: TGK First Prepared on: Last Modified on: Quality checked by: Copyright 2009 Asia Pacific Institute of Information.
The Networking Layer Rudra Dutta CSC Fall 2012.
Spring 2000CS 4611 Routing Outline Algorithms Scalability.
Spring Routing: Part I Section 4.2 Outline Algorithms Scalability.
Distance Vector Routing
CS 6401 Intra-domain Routing Outline Introduction to Routing Distance Vector Algorithm.
CSE 421 Computer Networks. Network Layer 4-2 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside.
Routing and Routing Protocols CCNA 2 v3 – Module 6.
IP tutorial - #2 Routing KAIST Dept. of CS NC Lab.
Network Layer Routing Networks: Routing.
William Stallings Data and Computer Communications
Network Layer COMPUTER NETWORKS Networking Standards (Network LAYER)
CS 5565 Network Architecture and Protocols
Instructor Materials Chapter 5: Dynamic Routing
Dynamic Routing Protocols part2
(How the routers’ tables are filled in)
Routing Protocols and Concepts
Dynamic Routing Protocols part2
THE NETWORK LAYER.
Intra-Domain Routing Jacob Strauss September 14, 2006.
Routing: Distance Vector Algorithm
Routing.
Chapter 5: Dynamic Routing
Disjoint Path Routing Algorithms
Dynamic Routing Protocols part2
Routing in Packet Networks Shortest Path Routing
CS 3700 Networks and Distributed Systems
Link-State Routing Protocols
Intradomain Routing Outline Introduction to Routing
CS 640: Introduction to Computer Networks
Dynamic Routing and OSPF
Chapter 7 Packet-Switching Networks
ECE453 – Introduction to Computer Networks
The Network Layer Network Layer Design Issues:
PRESENTATION COMPUTER NETWORKS
CS 3700 Networks and Distributed Systems
Network Layer Routing Networks: Routing.
Rudra Dutta ECE/CSC Fall 2010, Section 001, 601
Link-State Routing Protocols
Communication Networks
Delivery, Forwarding, and Routing
Routing.
Network Layer (contd.) Routing
Brad Karp UCL Computer Science
EE 122: Intra-domain routing: Distance Vector
Communication Networks
Routing.
Network Layer Routing.
Presentation transcript:

Rudra Dutta CSC 401 - Fall 2011, Section 001 The Networking Layer Rudra Dutta CSC 401 - Fall 2011, Section 001

Positioning DLC allows communication between connected computers Cooperation can create connectivity not present in physical topology – networking Lowest layer aware of end-to-end traffic Functions: Forwarding Routing Addressing? We want to understand: Descriptive Connectionless and connection- oriented, virtual circuits, flow routing Algorithmic Dijkstra, flooding, DV, LSA, broadcast Copyright Rudra Dutta, NCSU, Fall, 2011

Concepts Inter-networking Addressing Forwarding and Routing Assume physical (“sub”)network knows how to deliver Addressing Physical network computers already have addresses Do these make sense in broader context? Consider postal - house, subdivision, ... If not, networking layer addresses must be assigned Forwarding and Routing Switching granularity and context Circuits (L1), packets (L3) Hierarchical switching Forwarding Information Base Copyright Rudra Dutta, NCSU, Fall, 2011

Concepts - Forwarding / Routing The act of forwarding PDUs Where to forward? Likely to be partially determined by data source/destination Must be embedded in data Likely to be partially determined by network factors Must be stored at node Forwarding will combine these two types of information Routing Path-finding For any and all traffic, determination of path it takes from source to destination At a node, must translate into: Distilling “network factors” above into easy-to-refer information for forwarding - mapping from data to next-hop Copyright Rudra Dutta, NCSU, Fall, 2011

Concept - Context Context is needed to switch data Wire - perfect context (no-brains forwarding) At L3, need context to switch Meta-data makes it unnecessary to maintain context Each PDU carries context information (destination, source, ...) Allows store-and-forward, therefore utilization, but Now need to undertake significant forwarding effort for each packet Context makes it unnecessary to reinvent the wheel First send some “special” traffic packets establishing context Units of traffic following the context establishment forwarded cheaply, but To ensure that we do not drop data, must end up wasting bandwidth The overhead of context maintenance is also present Copyright Rudra Dutta, NCSU, Fall, 2011

Concepts - Forwarding Information Base A “lookup table” for next-hop router Packet arrives with embedded context (full or partial) Context information is extracted and looked up in FIB Packet forwarded to next-hop intermediate node Next-hop FIB Context Forwarding DLC PHY NET A R D Copyright Rudra Dutta, NCSU, Fall, 2011

Connection-less Forwarding H1 sends packet 1 to A A consults FIB  forward to C C consults FIB  forward to E E consults FIB  forward to F F uses LAN to forward to H2 If FIB changes, a following packet may traverse different path A’s FIB A’s FIB C’s FIB E’s FIB Copyright Rudra Dutta, NCSU, Fall, 2011

Connection Oriented Forwarding H1 sends request to A A assigns label “1”, forwards request to C C assigns label “6”, forwards request to E E assigns label “3”, forwards request to F F accepts request, replies to E with label “11” E notes label, replies to C with assigned label C notes label, replies to A with assigned label A notes label, replies to H1 with assigned label H1 sends packets with label “1” to A on “virtual circuit” A’s FIB C’s FIB E’s FIB 6 6 3 3 11 Copyright Rudra Dutta, NCSU, Fall, 2011

Comparison Copyright Rudra Dutta, NCSU, Fall, 2011

Routing - Fundamentals Different concerns Correctness and optimality Robustness, stability, … More complicated “policy” concerns Optimality – who decides? Once design goals have been decided, Algorithm must be designed to attain them Some fundamental approaches to routing exist Routing may be fixed, or fixed alternate May be adaptive, or dynamic Adapting to what? How is information shared? Copyright Rudra Dutta, NCSU, Fall, 2011

Space of Routing Choices Static vs. dynamic or adaptive For a node, next-hop determined by Destination only Source and destination Particular flow of traffic Other characteristics May be bifurcated (split) or non-bifurcated Next-hop may be unique or multiple Deterministically or randomly picked Copyright Rudra Dutta, NCSU, Fall, 2011

Flooding Simple – forward to everybody else Generates unbounded copies Hop count can be introduced to bound Can be more intelligent if packets can be recognized Selective flooding – shortlist of links Highly robust Serves as benchmark Useful as a “phase” in other strategies Copyright Rudra Dutta, NCSU, Fall, 2011

“Optimality Criterion” Nice characteristic, works for “distance” or “cost” related routing goals Based on “sink tree” argument Goals that can be expressed additively “Sub-path of optimal path must be optimal” Copyright Rudra Dutta, NCSU, Fall, 2011

Finding Shortest Paths An example where a graph-theoretic abstraction is useful Abstract networking into vertices and arcs Weighted arcs – least cost approach Dijkstra’s algorithm Finds least cost path to all vertices from one Based on moving vertices from a set with “tentative” distances to a set with “fixed” distances Desirable computational properties Other algorithms exist Useful for additive measures of path cost “Shortest” is better understood as “least additive cost” Copyright Rudra Dutta, NCSU, Fall, 2011

Dijkstra’s Algorithm Finding shortest distances (and corresponding paths) from ONE source to ALL destinations Easily adapted to vice-versa First, mark source node with tentative distance zero Mark all other nodes tentatively with distance “infinity” (not reachable) Do iteratively (until all nodes marked): Pick the node with the least tentative distance, and mark it as final distance – call it node X Pick all outgoing links from this node, for each: Update the tentative distance of the neighbor IF: (Final distance of X + link cost) < Tentative distance of neighbor If updated, remember X as previous node of neighbor ∞ ∞ 5 B E 7 2 5 3 1 ∞ A C F ∞ 2 5 1 8 ∞ D G ∞ ∞ 7 ∞ 5 B E 7 2 5 3 1 ∞ A C F ∞ 2 3 5 1 8 ∞ D G ∞ 5 At the end, previous nodes can be read off to find complete paths Copyright Rudra Dutta, NCSU, Fall, 2011

Dijkstra’s Algorithm ∞ ∞ 7 ∞ ∞ 4 ∞ 3 ∞ ∞ ∞ 4 7 ∞ 6 ∞ ∞ 4 3 3 ∞ ∞ 5 4 B E 5 B E 7 2 5 7 2 3 1 5 ∞ A C F 3 1 4 ∞ A C F 2 5 3 1 8 2 5 1 8 ∞ D G ∞ ∞ D G 4 7 ∞ 6 ∞ 5 5 B E B E 7 2 7 2 5 5 3 1 ∞ 3 1 4 A C F A C F 3 3 2 2 5 1 5 8 1 8 ∞ ∞ D G D G 5 4 Copyright Rudra Dutta, NCSU, Fall, 2011

Shortest Disjoint Path Pair Objective: find a pair of paths between a source a destination that are: Edge-disjoint, or Vertex-disjoint Sum of their lengths is minimum Observations: Vertex-disjointness implies edge-disjointedness For graph of vertices with degrees 3 or less: Edge-disjointedness implies Vertex-disjointedness Length of vertex-disjoint pair ≥ length of edge-disjoint pair Copyright Rudra Dutta, NCSU, Fall, 2011

Simple Two-step Approach Fails Obvious approach - find one, then other May not find shortest pair May not find pair at all even when one exists Trap topology A B D Z E C 1 2 Copyright Rudra Dutta, NCSU, Fall, 2011

Disjoint Paths Algorithms Simple approach (two-step) fails with trap topologies Remedy - “remember” first path found by link reversal Replace each link by backward directed arc (“can undo this link choice”) Mark arc with cost negative of link cost (“undo refund”) Must be able to find shortest paths in presence of negative-cost arcs Remedy - modify Dijkstra’s algorithm Copyright Rudra Dutta, NCSU, Fall, 2011

Dijkstra’s Algorithm Given: Use: Undirected graph G with vertices V, Source node A, Destination node Z Edge costs l(ij) Use: N(i) = set of neighbors of i, d(i) = distance from A to i, S = set of nodes to which shortest distance has NOT been found, P(i) = predecessor of i in path from A Copyright Rudra Dutta, NCSU, Fall, 2011

Dijkstra’s Algorithm Initialize Select new vertex to label permanently l(ij) cost of edge ij N(i) = neighbors of i d(i) = distance A to i S = nodes not found P(i) = predecessor of i Dijkstra’s Algorithm Initialize d(A) = 0; d(i) = l(Ai) for all i in N(A), ∞ for all other i S = all vertices except A P(i) = A for all i in S Select new vertex to label permanently Choose j from S such that d(j) = min d(i), for i in S Remove j from S If j = Z, then stop; otherwise go to Step 3 Update distances For all i in N(j) such that i is also in S If d(j) + l(ij) < d(i), update d(i) to d(j) + l(ij) and set P(i) to j Back to Step 2 Copyright Rudra Dutta, NCSU, Fall, 2011

Dijkstra’s - Example Initialize Select new vertex to label permanently l(ij) cost of edge ij N(i) = neighbors of i d(i) = distance A to i S = nodes not found P(i) = predecessor of i Dijkstra’s - Example Initialize d(A) = 0; d(i) = l(Ai) for all i in N(A), ∞ for all other i S = all vertices except A P(i) = A for all i in S Select new vertex to label permanently Choose j from S such that d(j) = min d(i), for i in S Remove j from S If j = Z, then stop; otherwise go to Step 3 Update distances For all i in N(j) such that i is also in S If d(j) + l(ij) < d(i), update d(i) to d(j) + l(ij) and set P(i) to j Back to Step 2 Copyright Rudra Dutta, NCSU, Fall, 2011

Negative Cost Arcs Many reasonable cost metrics are positive-only However, sometimes negatives costs can turn up Sometimes introduced by specific desired transformations of graphs Graph may have cycles Cycles with negative total costs exist Concept of shortest path? If negative cost arcs, but not cycles? Specific family of such graphs generated by useful diverse routing algorithms Dijkstra’s algorithm fails with negative arc costs Copyright Rudra Dutta, NCSU, Fall, 2011

Failure of Dijkstra - Example l(ij) cost of edge ij N(i) = neighbors of i d(i) = distance A to i S = nodes not found P(i) = predecessor of i Failure of Dijkstra - Example Initialize d(A) = 0; d(i) = l(Ai) for all i in N(A), ∞ for all other i S = all vertices except A P(i) = A for all i in S Select new vertex to label permanently Choose j from S such that d(j) = min d(i), for i in S Remove j from S If j = Z, then stop; otherwise go to Step 3 Update distances For all i in N(j) such that i is also in S If d(j) + l(ij) < d(i), update d(i) to d(j) + l(ij) and set P(i) to j Back to Step 2 Copyright Rudra Dutta, NCSU, Fall, 2011

Dijkstra’s Algorithm - Modified l(ij) cost of edge ij N(i) = neighbors of i d(i) = distance A to i S = nodes not found P(i) = predecessor of i Dijkstra’s Algorithm - Modified Initialize d(A) = 0; d(i) = l(Ai) for all i in N(A), ∞ for all other i S = all vertices except A P(i) = A for all i in S Select new vertex to label permanently Choose j from S such that d(j) = min d(i), for i in S Remove j from S If j = Z, then stop; otherwise go to Step 3 Update distances For all i in N(j) such that i is also in S If d(j) + l(ij) < d(i), update d(i) to d(j) + l(ij) and set P(i) to j Back to Step 2 S = ϕ ----------------------------- Also add i back to S Copyright Rudra Dutta, NCSU, Fall, 2011

Modified Dijkstra - Example l(ij) cost of edge ij N(i) = neighbors of i d(i) = distance A to i S = nodes not found P(i) = predecessor of i Modified Dijkstra - Example Initialize d(A) = 0; d(i) = l(Ai) for all i in N(A), ∞ for all other i S = all vertices except A P(i) = A for all i in S Select new vertex to label permanently Choose j from S such that d(j) = min d(i), for i in S Remove j from S If S = ϕ, then stop; otherwise go to Step 3 Update distances For all i in N(j) such that i is also in S If d(j) + l(ij) < d(i), update d(i) to d(j) + l(ij) and set P(i) to j Also add i back to S Back to Step 2 Copyright Rudra Dutta, NCSU, Fall, 2011

Bhandari’s Algorithm Find the shortest path from A to Z with the modified Dijkstra algorithm Replace each edge of the shortest path by a single arc directed towards the source vertex Make the length of each of the above arcs negative Find the shortest path from A to Z in the modified graph with the modified Dijkstra algorithm Transform to the original graph, and erase any interlacing edges of the two paths found Group the remaining edges to obtain the shortest pair of edge-disjoint paths Copyright Rudra Dutta, NCSU, Fall, 2011

Bhandari’s Algorithm - Example Copyright Rudra Dutta, NCSU, Fall, 2011

Distance Vector (DV) “Routing” Asynchronous, iterative distributed computation exchange of routing information: (destination, min_distance) exchange info with neighbors only computation step: based on Bellman-Ford method Find for each destination cost of least cost path next node (neighbor) on least cost path (not complete path) Routers do not store or compute the network topology; they only store distance / next hop information Used by many protocols: RIP, BGP, ISO IDRP, Novel IPX Advertise distances to route prefixes (networks, subnets, hosts), not routers Copyright Rudra Dutta, NCSU, Fall, 2011

Hey, I can get you there for $8! Bellman's Equation For any node A, Edge costs l(ij) = Cost of link from i to j, if exists ∞, otherwise Beyond neighborhood, trust neighbors’ claims D(i,j) = mink {l(ik) + D(k,j)} D(i,i) = 0 A forms vector of D(A,j), distributes to neighbors So does every other node Nodes collectively and iteratively learn about better and better paths 7 3 I can get you to 54.0.0.0 for $10 Hey, I can get you there for $8! D(A,54.0.0.0 = min (3+10, 7+8) A Copyright Rudra Dutta, NCSU, Fall, 2011

Distance-Vector Algorithm (Each Router) Start with a distance vector consisting of the value "0" for itself "infinity" for every other destination Link cost to neighbors is available, through direct measurement, or administrator configuration Transmit its distance vector to each of its neighbors when the link to the neighbor first comes up whenever the information changes  triggered updates periodically (even if there are no changes) Saves the most recent distance vector from each neighbor Calculates its own distance vector using Bellman's equation Iterate Copyright Rudra Dutta, NCSU, Fall, 2011

D(i,j) = mink {l(ik) + D(k,j)} DV Example D(i,j) = mink {l(ik) + D(k,j)} A B C D E A’s DV - (=\ B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV (=\ C’s DV D’s DV E’s DV 1 A B 2 1 5 A B C D E A’s DV - (=\ B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV C 8 1 D 2 E A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV (=\ C’s DV D’s DV E’s DV A B C D E A’s DV - (=\ B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV Copyright Rudra Dutta, NCSU, Fall, 2011

D(i,j) = mink {l(ik) + D(k,j)} DV Example D(i,j) = mink {l(ik) + D(k,j)} A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV 1 8 C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV 1 2 - 5 B’s DV C’s DV D’s DV E’s DV 1 A B 2 1 5 A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV C A B C D E A’s DV - B’s DV C’s DV 2 1 D’s DV E’s DV 8 1 D 2 E A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV C’s DV D’s DV 8 2 E’s DV A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV A B C D E A’s DV - B’s DV C’s DV D’s DV E’s DV 5 1 2 Copyright Rudra Dutta, NCSU, Fall, 2011

D(i,j) = mink {l(ik) + D(k,j)} DV Example D(i,j) = mink {l(ik) + D(k,j)} A B C D E A’s DV 1 2 - 5 B’s DV 8 C’s DV D’s DV E’s DV A B C D E A’s DV 1 2 - 5 B’s DV 8 C’s DV D’s DV E’s DV A B C D E A’s DV 1 2 - 5 B’s DV 8 C’s DV D’s DV E’s DV A B C D E A’s DV 1 2 7 3 B’s DV 8 - C’s DV D’s DV E’s DV 5 1 A B 2 1 5 A B C D E A’s DV 1 2 - 5 B’s DV 8 C’s DV D’s DV E’s DV C A B C D E A’s DV 1 2 - 5 B’s DV 8 C’s DV 3 D’s DV E’s DV 8 1 D 2 E A B C D E A’s DV - B’s DV 1 8 C’s DV D’s DV 2 E’s DV 5 A B C D E A’s DV - B’s DV 1 8 C’s DV D’s DV 7 3 2 E’s DV 5 A B C D E A’s DV 1 2 - 5 B’s DV C’s DV D’s DV 8 E’s DV A B C D E A’s DV 1 2 - 5 B’s DV C’s DV D’s DV 8 E’s DV 3 Copyright Rudra Dutta, NCSU, Fall, 2011

D(i,j) = mink {l(ik) + D(k,j)} DV Example D(i,j) = mink {l(ik) + D(k,j)} A B C D E A’s DV 1 2 7 3 B’s DV 8 C’s DV D’s DV E’s DV - A B C D E A’s DV 1 2 7 3 B’s DV 4 C’s DV D’s DV 8 E’s DV - A B C D E A’s DV 1 2 7 3 B’s DV 8 C’s DV D’s DV - E’s DV A B C D E A’s DV 1 2 5 3 B’s DV 8 C’s DV D’s DV - E’s DV 1 A B 2 1 5 A B C D E A’s DV 1 2 7 3 B’s DV 8 C’s DV D’s DV - E’s DV C A B C D E A’s DV 1 2 7 3 B’s DV 8 C’s DV D’s DV - E’s DV 8 1 D 2 E A B C D E A’s DV - B’s DV 1 8 2 C’s DV D’s DV 7 3 E’s DV A B C D E A’s DV - B’s DV 1 8 2 C’s DV D’s DV 5 4 3 E’s DV A B C D E A’s DV 1 2 7 3 B’s DV - C’s DV D’s DV 8 E’s DV A B C D E A’s DV 1 2 7 3 B’s DV - C’s DV D’s DV 8 E’s DV Copyright Rudra Dutta, NCSU, Fall, 2011

DV Routing (cont'd) Events causing recalculation of the distance vector receive from a neighbor a distance vector containing new info when link goes down  discard / disregard distance vector from the neighbor on the other end of that link how determine link / neighbor is down? how long does it take to determine this? Copyright Rudra Dutta, NCSU, Fall, 2011

Properties and Problems DV algorithm eventually will converge on shortest paths as long as state of the links / routers remains stable no requirement for updates to be synchronized During convergence, non-shortest paths and loops may develop "good news travels fast, bad news travels slowly" count-to-infinity problem Copyright Rudra Dutta, NCSU, Fall, 2011

The Count-to-Infinity Problem “Good news” – availability of a link / router “Bad news” – failure of a link / router Copyright Rudra Dutta, NCSU, Fall, 2011

How to Find Arc Costs? Must know arc costs to neighbors Depending on cost metric, may be possible to measure Beyond that, may trust neighbors’ claims Local, do not have full picture of network Cannot run Dijkstra or equivalent Or may attempt to exchange local information Full model of network can be built Either way, routing information must be exchanged Bootstrapping problem - solved by flooding The exchange mechanism is a distributed algorithm, and often becomes known as a “routing method” Actually, a “dynamic routing protocol” More correctly, a “dynamic routing enablement protocol” Copyright Rudra Dutta, NCSU, Fall, 2011

Link State Protocols Each router distributes information it has to every other router Information is in the form of LSA’s (myID, neighborID, link cost) Distribution is by controlled flooding Distribute along each link but receiving one Now, each router has complete information OSPF is a prevalent example SPF with LSA to find arc costs Copyright Rudra Dutta, NCSU, Fall, 2011

LSA Routing Algorithm Each router does the following “Meets the (immediately adjacent) neighbors” and learns their IDs Builds an LSA containing IDs and distance to each of its neighbors Transmits the LSA to all other routers How? Most complex and critical piece of link-state routing algorithm Stores the most recent LSA from every other router in the network Not just from its immediate neighbors! Creates a “map” of the network topology from LSAs Computes routes (to store in forwarding table) from its local map of the topology Copyright Rudra Dutta, NCSU, Fall, 2011

Generating LSAs A router generates LSAs periodically  background refresh rate A router also generates LSAs when its local environment changes it has a new neighbor (router comes online) a link goes down (indicated by absence of "Hello" packets) the cost of a link to an existing neighbor has changed Limiting the overhead (network bandwidth) consumed by routing messages, particularly LSAs set a minimum interval between successive updates Copyright Rudra Dutta, NCSU, Fall, 2011

Forwarding LSAs Flooding except to transmitting neighbor Infinite number of packets Hop-limited would still result in exponential number of packets LSA flooding can use information in LSA Each router stores the most recent copy of LSAs from all routers  easy to recognize duplicate LSAs Each router floods an LSA only once an LSA will travel over each link of the network exactly once generally, O (n) packets propagated Actually, could be more (simultaneity) Copyright Rudra Dutta, NCSU, Fall, 2011

LSA Forwarding Router A below transmits its LSA across the network shown below, using LSA Flooding. In one flooding “step” an LSA can be transmitted to any and all adjacent neighbors. Over what links is the LSA flooded in step #1? In step #2? Continue answering this question until the final step, whatever that is. Issue of simultaneity becomes clear when doing this example . A B D E F C Copyright Rudra Dutta, NCSU, Fall, 2011

Why DV / LSA ? Loop-freeness in LSA “Local” character of DV But not impossible to attain in DV “Local” character of DV Less overhead, storage But does not scale well Luckily, advantages are in different zones Small scale and simplicity – DV Large scale and optimality – LSA Copyright Rudra Dutta, NCSU, Fall, 2011

Hierarchical Routing Divide and conquer Group destinations into logical localities Break routing into two phases Between groups Groups may not be directly connected Inside a group For both phases, use some other strategy Can be generalized into more levels Application in Ad Hoc routing Copyright Rudra Dutta, NCSU, Fall, 2011

Broadcast Routing Destination is “all hosts”, not a single one Special case of multicasting Flooding is obvious choice for distributing to networks But assumes each networks has “broadcast” semantics Otherwise need to unicast to each host, impractical Multidestination routing Replicate only when necessary Spanning tree of routers Flood on spanning tree routers Copyright Rudra Dutta, NCSU, Fall, 2011

Spanning Tree Tree - a connected graph with no cycles Spanning tree - a subgraph of original graph that is a tree and included every node Must have exactly N-1 links Efficient broadcast Copyright Rudra Dutta, NCSU, Fall, 2011

Broadcast – Reverse Path Forwarding An attempt to obtain the benefits of a spanning tree with no extra information or overhead With tree, when a broadcast packet arrives It is from either from the “parent” Must be forwarded to all “children” Like flooding – all interfaces except the one packet came in over Or from a “child” Must be discarded, to avoid duplication But how to establish parent-child relation without overhead of forming spanning tree? Use sink tree for the source “If this packet originates at A, comes to me through X” Forward if X is my next-hop router to A (to all neighbors except X) Otherwise discard Copyright Rudra Dutta, NCSU, Fall, 2011

Multi-level Forwarding Special case of Generalized Protocol Layering “Links” of one network are really “paths” of a different one “Virtual” or “logical” links Can occur on multiple levels Virtual links may be instantiated by physical layer Optical networks: “lightpaths” Wireless networks: recent approaches using OFDM Or may be instantiated as “virtual” circuits Different networking layers at different levels may have differing routing strategies/goals May be “obviously sub-optimal” when viewed globally Copyright Rudra Dutta, NCSU, Fall, 2011

Summary Network layer allows separate physical networks to cooperate Context may or may not be utilized to minimize forwarding effort Dual concerns of forwarding and routing Various fundamental approaches to routing Real strategies can be designed from combination of these approaches Copyright Rudra Dutta, NCSU, Fall, 2011