Download presentation
Presentation is loading. Please wait.
1
Rudra Dutta CSC 401 - Fall 2011, Section 001
The Networking Layer Rudra Dutta CSC Fall 2011, Section 001
2
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
3
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
4
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
5
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
6
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
7
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
8
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
9
Comparison Copyright Rudra Dutta, NCSU, Fall, 2011
10
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
11
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
12
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
13
“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
14
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
15
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
16
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
17
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
18
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
19
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
20
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
21
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
22
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
23
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
24
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
25
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
26
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
27
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
28
Bhandari’s Algorithm - Example
Copyright Rudra Dutta, NCSU, Fall, 2011
29
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
30
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 for $10 Hey, I can get you there for $8! D(A, = min (3+10, 7+8) A Copyright Rudra Dutta, NCSU, Fall, 2011
31
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
32
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
33
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
34
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
35
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
36
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
37
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
38
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
39
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
40
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
41
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
42
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
43
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
44
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
45
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
46
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
47
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
48
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
49
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
50
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
51
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.