900 likes | 1.06k Views
TCOM 541. Session 1. Agenda. Overview Recap TCOM540 material needed for this course. Introduction. Text: Wide Area Network Design by Robert S. Cahn, Publ. Morgan Kaufmann, ISBN 1-55860-458-8 Other supplementary readings Web site http://teal.gmu.edu/ececourses/tcom540/TCOM540541.htm.
E N D
TCOM 541 Session 1
Agenda • Overview • Recap TCOM540 material needed for this course
Introduction • Text: Wide Area Network Design by Robert S. Cahn, Publ. Morgan Kaufmann, ISBN 1-55860-458-8 • Other supplementary readings • Web site http://teal.gmu.edu/ececourses/tcom540/TCOM540541.htm
Introduction (2) • Approximate schedule for TCOM 541 • Week 1 – Introduction and recap TCOM 540 material • Week 2 – Automated design tools, mesh network design • Week 3 – Augmenting and merging networks • Week 4 – Buying services vs. buying equipment and circuits • Weeks 5 and 6 – Practical vs. theoretical considerations • Week 7 – Review • Week 8 – TCOM 541 final
Introduction (3) • Evaluation weightings • Homework 25% • Term paper/project 25% • Finals 25% • Class Participation 25% • Quizzes approximately every two weeks
Network Optimization … • Is generally not possible … • Conflicting objectives • Combinatorial explosion defeats exact solutions • Inadequate /inaccurate information • Rate of change, especially for data networks • Generally have to settle for a “pretty good” design
Conflicting Objectives • Cost • Performance • Reliability • Trade-offs are inevitable!
540 Recap Topics • Queuing and blocking • Graph theory • Minimum Spanning Trees • Shortest Path Trees • Tours • Traffic Models • Access and Backbone
Voice Traffic Distribution and Measurement • Traffic peaks around 11 am and 2 pm • Assume 20% of traffic in “busy hour” • (Voice) traffic is measured in Erlangs • Erlangs = arrival rate/departure rate • E.g., if calls arrive at 2 per minute and hold for 3 minutes, then: • Arrival rate = 2 per minute • Departure rate = 0.3333 per minute • Traffic = 2/(0.3333) = 6 Erlangs
Erlang Recursion • Let B(E, n) = blocking when E Erlangs of traffic offered to n lines • Then B(E, n) = E*B(E, n-1)/(E*B(E, n-1) + n) This is generally the easiest way to calculate blocking. In real life there is software to do this.
Example Erlang Blocking Calculation Assume 5 lines, 3 Erlangs of traffic. Then: B(3,0) = 1 B(3,1) = 3*B(3,0)/(3*B(3,0)+1) = 3/4 B(3,2) = 3*B(3,1)/(3*B(3,1)+2) = 2.25/(2.25+2) = 0.5294 B(3,3) = 3*B(3,2)/(3*B(3,2)+3) = 1.5882/(1.5882+3) = 0.3461 B(3,4) = 3*B(3,3)/(3*B(3,3)+4) = 1.0383/(1.0383+4) = 0.2061 B(3,5) = 3*B(3,4)/(3*B(3,4)+5) = 0.6183/(0.6183+5) = 0.1101
Queuing Theory (1) • Needed to understand/calculate link delays • Store-and-forward • Service time = packet size/link speed • Delay determined by packet size distribution and packet arrival distribution
Queuing Theory (2) • Service time is N/S, where: • N = number of bits/packet • S = link speed in bits/sec • Assume interarrival and packet length PDFs are of form c*e (-c*x) • Called an M/M/1 queue
Queuing Theory (3) • Define r = ratio of arrival rate (l) to service rate (m) • Average waiting time Tw = (r/m)/(1- r) • Average service time Ts = 1/ m • Average total time = Ts + Tw = (1/m)/(1-r)
Set Theory • A set is a collection of (mathematical) objects • E.g., {A, B, C} • E.g., {1,2,3, …, 99} • s e S means “s is a member of S” • s ~ e S means “s is not a member of S” • T is a subset of S if every member of T is also a member of S • It’s a proper subset if there is at least one member of S that is not a member of T
Set Theory (2) • The set of all subsets of S is denoted as 2s • If S has n members, then 2s has 2n members • Union of two sets is the set of all their members • Intersection of two sets is the set of common members
Set Theory (3) Intersection Union
Set Theory (4) • Cartesian Product of two sets, S and T, is the set SxT • Elements are (s,t) where s e S and t eT • The graph of a function f:S T is the subset of SxT that consists of {(s,t) f(s) = t)}
Graphs • A graph consists of a set of vertices (or nodes) V and a set of edges E D C Z B A I
Some Definitions for Graphs • Each edge connects two vertices (may be same – then it’s called a loop) • Two edges are called parallel if they connect the same vertices • A graph is simple if it has no loops or parallel edges • The degree of a vertex is the number of edges it has • Two nodes are adjacent if there is an edge that has them as endpoints
Some Definitions for Graphs (2) • A path between vertices v1 and vn is a set of edges (e1, e2, …, en) such that ei and ei+1 have a common endpoint, and v1 is an endpoint of e1 and vn is an endpoint of en • A cycle is a path from a vertex to itself • A graph is connected if for any two nodes there is a path between them
A Small (But Not Simple) Graph D Parallel edges Adjacent nodes C Z B A I Loop Node degree 3 (DZ), (ZB), (BI), (ID) is a cycle. This graph is connected
Definitions (3) • A subgraph G* of a graph G with vertices V and edges E is a pair (V*, E*) where • V* is a subset of V • E* is a subset of E • If an edge belongs to E* then both its endpoints must belong to V* • A component of a graph is a maximal connected subgraph • Two graphs G1, G2 are isomorphic if there is a 1-to-1 mapping f:V1 V2 such that (v1, v2) is a member of E1 iff (f(v1), f(v2)) is a member of E2
Another Graph X P e7 e15 e5 D J C K e2 Z e99 e9 e4 e8 e11 e6 e1 e16 B M Q e12 A e13 N I e3 H R ( (D, Z, B, M, J), (e2, e8, e4)) is a subgraph It is not a component. The two right-hand components are isomorphic
Definitions (4) • A tree is a connected simple graph without cycles • A star is a tree in which exactly one node has degree >1 • A chain is a tree in which no node has degree greater than 2 • Define N(G) = number of nodes in G
V&H Coordinates • V&H coordinate grid covers U.S. • Approx 10,000 x 10,000 • Distance between points (v1, h1) and (v2, h2) for tariff calculations is sometimes defined as: • A simpler formulation is: • Note V&H assumes earth is flat … Dist = 1+int{[(dv2+9)/10+(dh2 +9)/10]0.5} Where dv = v1-v2 and dh = h1-h2 Dist = 1 + int[(dv2+dh2)/10]
Weighted Graph • A weighted graph is a graph G where each edge e has a weight w(e) • Denoted by (G, w) • Generally w(e) > 0 • Weight of a subgraph G* is sum of weights of edges in G* • Real networks are weighted graphs • Weight may be cost, delay, or other parameter
Minimum Spanning Tree • A Minimum Spanning Tree (MST) is a connected subgraph with minimum weight
Kruskal’s Algorithm for MST Sort edges in ascending order of weight Is G connected? stop no yes Mark each node as separate component Loop on edges Let e be candidate edge If ends of e are in different components, accept e Stop when number of edges = N(G) - 1
Prim’s Algorithm for MST Start with all nodes unconnected and Label = infinity Scan neighbors, update Labels = min edge to tree Select root node Add closest neighbor (smallest Label) Stop when N(G) –1 added
Limitations of MSTs • No redundancy • One link failure separates the network into two disconnected components • Big problem for large networks • May involve very long paths in large networks
MSTs Do Not Scale • Number of hops between nodes n1 and n2 is the number of edges in the path chosen by the routing algorithm • Average number of hops is traffic-weighted = (Sn1,n2traffic(n1,n2)*hops(n1,n2))/Sn1,n2traffic(n1,n2)
Definitions • For a weighted graph (G,w), and nodes n1 and n2, the shortest path P from n1 to n2 minimizes SeePw(e) • The shortest-path tree (SPT) rooted at node n1 is a tree T such that for any other node n2 the path from n1 to n2 is a shortest path
Dijkstra’s Algorithm for Shortest-Path Trees • Mark each node unscanned, assign label infinity • Set label of root to 0, and predecessor to self • Loop through nodes • Find node n with smallest label • Mark as scanned • Examine all adjacent nodes m, see if distance through n < label • If so, update label, update predecessor(m) = n • Note that a link may drop out of the tree if a shorter route is found
Characteristics of SPTs • In a complete graph, SPT is a star* • High performance and reliability • But likely implies low link utilization, high expense * Unless triangle inequality does not hold
Prim-Dijkstra Trees • We play with the definition of the Label • Prim’s Label = minneighborsdist(node, neighbor) • Dijkstra’s Label = minneighbors[dist(root, neighbor) + dist(neighbor, node)] • Prim-Dijkstra Label = = minneighbors[a*dist(root, neighbor) + dist(neighbor, node)] • Now a is a parameter that we choose, between 0 and 1
Tours • A tree design may be unreliable • A tour adds one link to significantly increase reliability • A tour of a set of vertices (v1, v2, …, vn) is a set of n edges such that each vertex has degree 2 and the graph is connected
Tours (2) • Leads to the (in)famous Traveling Salesman Problem (TSP) • Given a set of vertices (v1, v2, …, vn) and a distance function d(vi,vj) between vertices, find the tour T(vti) such that Sd(vti,ti+1) is minimized
Reliability of a Tree • Reliability = probability that functioning nodes are connected by working links • For a tree, reliability = (1-p)n-1, where • p = probability of a link failing • n = number of nodes • P(failure) = 1- reliability = 1 - (1-p)n-1 @ (n-1)*p
Reliability of a Ring • A ring can tolerate one failure • For a ring, P(failure) = 1- (1-p)n – n*p*(1-p)n-1 @ 0.5*n*(n-1)*p2 if p is small X
A Simple Algorithm for Building a Tour • Denote a root node, set current node = root • Loop through nodes • Find closest node (not in tour) to current node • Add an edge to it • Reset current node to be this node just added • Create an edge between last node and root
Creditable Solutions and Creditability Tests • A solution is creditable if it is a local optimum • I.e., it is not creditable if, by some method, we can manipulate the solution to a better one • Cahn uses a crossing test to determine creditability of the simple tour-building algorithm • It does not do well ….
A Better Tour-Building Algorithm • Look for closest neighbor to any node in the partial tour (not just the last one added) • Insert between two adjacent nodes in tour in “best” place • Minimum increase in partial tour length • Also “farthest neighbor” heuristic • Avoids stranding distant nodes
A Difficulty • TSP tours do not scale • Similar to trees in this respect • Average number of hops increases O(n)
2-Connectivity • A vertex v of a connected graph G = (V, E) is an articulation point if removing the vertex and all attached edges disconnects the graph • If a connected graph has no articulation points, it is said to be 2-connected
Connecting 2-Connected Graphs • Suppose G1 = (V1, E1) and G2 = (V2, E2) are two disjoint 2-connected graphs. Take v1 and v2 from G1 and v3 and v4 from G2 and add the edges (v1,v3) and (v2,v4). The resulting graph is 2-connected
Connecting 2-Connected Graphs • Suppose G1 = (V1, E1) and G2 = (V2, E2) are two disjoint 2-connected graphs. Take v1 and v2 from G1 and v3 and v4 from G2 and add the edges (v1,v3) and (v2,v4). The resulting graph is 2-connected • Roughly, if you connect 2 pairs of vertices from two 2-connected graphs, the resulting graph is 2-connected
Heuristic Based on Partitioning • Divide set of nodes into multiple “clusters” • Use nearest-neighbor algorithm to build TSP tour on each cluster • Connect clusters, ensuring no connectors have a common vertex • Resulting graph is 2-connected