UFDC Home  Search all Groups  UF Institutional Repository  UF Institutional Repository  UF Theses & Dissertations  Vendor Digitized Files   Help 
Material Information
Subjects
Notes
Record Information

Full Text 
FORMULAS AND ALGORITHMS FOR OPTIMIZING THE PERFORMANCE OF RAPIDLY CHANGING SATELLITE NETWORKS By CHARLES D. MCLOCHLIN A DISSERTATION PRESENTED TO TIE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR OF PHILOSOPHY UNIVERSITY OF FLORIDA 1989 Copyright 1989 by Charles McLochlin ACKNOWLEDGEMENTS Dr. Chow and Dr. NewmanWolf deserve thanks for directing my research and providing guidance in the writing of this dissertation. I would also like to thank the other committee members for their helpful comments. Dr. Principe and Dr. Papachristidis expanded my way of thinking and without their help I would not have completed the requirements for the Ph. D. degree. Dr. Christopher Ward provided the Latex macros for the formating of this dis sertation. Financial support for this research was supplied in part by an SDIO/IST con tract administered by the Department of Navy, Space and Naval Warfare Systems Command under contract number N0003987C0221. TABLE OF CONTENTS ACKNOWLEDGEMENTS LIST OF TABLES .............. LIST OF FIGURES .. ......... ABSTRACT ................ CHAPTERS 1 INTRODUCTION ........ ... Scope . . Principal Results .. Chapter Synopsis .. 2 BACKGROUND .. ......................... 2.1 Features of the SDI ") 9 Rei iremrnnt c Architecture I., 11 L t .,. .. . Summary of Harris Work ......... Other Related Work ........... Minimum Cost Flow Problem ...... Disjoint Paths of Minimum Total Cost 3 CLOSED FORMS FOR PROPAGATION DELAY AND CONNECTIVITY 3.1 M aximum Visibility Distance .. .................. 3.2 Minimum Altitude for the Np.N., Topology .. ........... 3.3 Minimum Propagation Delay for the Np,.s Topology .. ....... 3.4 Maximum Propagation Delay for the Np..s Topology .. ...... 3.5 Node Connectivity . . . . 3.6 Optimizing the Delay and Cununctivitl ............. 4 ALGORITHMS FOR COMPUTING PROPAGATION DELAY ..... 4.1 Minimum Propagation Delay Algorithm .. ............. 4.2 Time Average and Maximum Propagation Delay Algorithm .... . Vii . . 1 S. 1 3 4 . 3 . 4 . 5 ANALYSIS OF A 2LEVEL HIERARCHICAL MODEL ... ........ 39 5.1 Definition and Description of the Model .... ............ .. 39 5.2 Minimum Altitude Derivation of Np.Ns Regions ... .. 41 5.3 Link Assignment ..... ... .. .............. 43 5.4 Queueing Delay of the Model .. ... .............. 49 5.5 Computing Dv,,q .. ................... .. 50 5.6 Importance of the Model .. .... ................... 52 5.7 Visibility Probability .. .... ............ 52 5.8 Conclusions... ............... . .... 52 6 KPATHS OF MINIMUM TOTAL COST ... .. ........... 55 6.1 Fewest Repeated Nodes or Links .. .. .. .. ......... .355 6.1.1 Definitions .... ....... . .. 55 6.1.2 Discussion of the Approach .......... 57 6.1.3 Flow to Graph Constructs .. .............. .. 60 6.1.4 KPaths Algorithm .. .. ....... . 62 6.1.5 Proofs ............. ...... . ... 65 6.1.6 Conclusions ................ .. 68 6.2 A Quick Algorithm for Disjoint Paths .. . 69 6.2.1 Discussion of the Approach . . 69 6.2.2 Disjoint Path Algorithms ..... ... . 70 6.2.3 Proofs ........... .. ...... .. .73 6.2.4 Conclusions ............... .. . 73 7 EVENT DRIVEN SIMULATION .... . ..... 74 7.1 Distributed Packet Level Simulation ... ............... 74 7.1.1 Objectives and Measurements .. .... ........ 75 7.1.2 Event Processing .. ............... 75 7.1.3 Hardware Architecture ..... ......... 76 7.1.4 Software Architecture ... .. .............. 77 7.1.5 Software Module Description ....... . ... 80 7.1.6 Conclusions .......................... 80 7.2 M/M/1 Queueing Level Simulator .. .............. 81 7.2.1 Total Delay ............... . 82 7.2.2 Transient Response .................. ... .. 83 7.2.3 Conclusions... ............ .............. .. 84 8 CONCLUSIONS .......... ................ .. 86 8.1 Significant Results .. ........ ... .... . 86 8.2 M etrics ... .. .. ... .. .. .. ........ 87 8.3 Association of Algorithms and Performance .. . 87 8.4 Extensions of the Research .. ... .. ... 88 APPENDICES A NODE DISJOINT PATHS ....... ...... ... ......... 89 B DUAL DSP32 BOARD .......... ........ ... ...... 95 B.1 Hardware Operation .. .. .. .................. 95 B.2 Software Operation ............. . ..... 96 B.3 Satellite Node Software ........ . 99 REFERENCES ..................... ....... ..... 100 BIOGRAPHICAL SKETCH .... ... ......... 104 LIST OF TABLES 3.1 Node Connectivity for Np, Ns Topologies .. ............ 3.2 Minimum Altitude and Maximum Propagation Delay for Furthest Ter restrial P points . . . . 5.1 Propagation Delay of Np,Ns Topologies. Unlimited Antennas .. 5.2 Propagation Delay Using Np,Ns Mesh Link Assignment .. ..... 5.3 Propagation Delay Using 24 Regions, Satellite Altitude = 1506 km 5.4 Davg Versus Altitude .. ........ .. .. ........ 5.5 Probability of Two Satellites Being Visible .. ........... Adjacency Matrix for Np = 2. Node Disjoint Paths for Np = Adjacency Matrix for Np = 2. Node Disjoint Paths for Np = Adjacency Matrix for Np = 2. Node Disjoint Paths for Np = Ns = 2. Xs 2.s = 2. NA.s 2. N.' 3 . = 3 4 . =4 3 . = 3 . . 8 9 . . 90 . 9 1 . . 9 2 .. 93 . . 94 LIST OF FIGURES 3.1 Maximum Tangential Visibility Distance . .. 12 3.2 Maximum Visibility Distance wit l Minimum Horizon Angle 13 3.3 Satellites 1.2.3.4 Looking down the YAxis .... ... 16 3.4 Minimum Path Distance Via Terminating Satellites .... 20 6.1 Finding a Minimum Cost Flow ....... . 58 6.2 Flow to Graph Constructs for Fewest Repeated Links ... 60 6.3 Flow to Graph Constructs for Fewest Repeated Nodes ... 61 Abstract of Dissertation Presented to the Graduate School of the University of Florida, in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy FORMULAS AND ALGORITHMS FOR OPTIMIZING TIIE PERFORMANCE OF RAPIDLY CIIANGING SATELLITE NETWORKS By CHARLES MCLOCIILIN May 1989 Chairman: Dr. YuanChieh Chow Cochairman: Dr. Richard NewmanWolfe Major Department: Computer and Informatlion Sciences Rapidly changing satellite networks are now in the design stage. Interest in this new area has been fostered by the Strategic Defense Initiative (SDI). Many SDI architectures have been proposed, but because the technology has not been fully developed and no satellitetosatellite links exist, the architecture is only loosely defined. This dissertation considers the SDI communications network from a systems point of view. Research was performed in the areas of topology, link assignment, routing, models. and performance measures. At the systems level, these areas are closely related. For example, consider the physical network which is a topology. In order to determine the performance of the system model using packet delay as a metric, a link assignment and routing algorithm are required. The emphasis of this research was to develop link assignment and routing algo rithms for optimizing the performance of rapidly changing satellite network topolo gies. Performance measures for the link assignment included connectivity, retarget ing frequency, and propagation delay. Measures for routing include endtoend delay. rerouting frequency, and number of common satellites on multiple paths between ori gin and destination. Minimizing the number of common satellites on multiple paths is an important consideration for survivable SDI communications and is a new area of research. Efficient algorithms for this probleni are presented. The topology optimization of satellite networks used a model of Xp (orbit planes) and Ns (satellites per orbit) which provided complete coverage of the earth at all times. Closed formulas for the Np.Vs. model were derived for the minimum altitude. minimum propagation delay, and maximum propagation delay. Algorithms were developed to obtain minimum, average, and maximum propagation delav for arbitrary single altitude topologies. Optimization of link assignment for arbitrary topologies uses a 2level hierarchical model based on an Np,Ns region concept. The regions are circles which cover all points on an arbitrary altitude shell. Level 1 satellites form a mesh backbone between regions which contain level 2 satellites. This link assignment has an optimal connec tivity when satellites are constrained to have four antennas. An analytical solution for the total delay of the 2level hierarchical model is derived for region disjoint path routing. The routing research extends the minimum cost flow problem to include a mini mum number of common nodes on multiple paths. The general minimum cost flow problem finds paths of minimum cost without regard to repeated nodes, which is undesirable for survivable network routing. CHAPTER 1 INTRODUCTION 1.1 Scope A new kind of communication network is evolving which incorporates satellite tosatellite links. Communication bandwidths of 10100 megabits using fullduplex laser crosslinks are envisioned. The links will be redirected in order to optimize performance or prevent network fragmentation. These networks will not use geosyn chronous orbiting satellites, hence continuous communication between earth stations via a single satellite will not be possible. Interest in this new area has been fostered by the Strategic Defense Initiative (SDI). The SDI requirements for sensing satel lites, weapon satellites, and battle manager satellites cannot be met by using only the geosynchronous altitude of 35,744 km [1,5,9]. Lower altitudes afford a higher resolution view of landbased enemy missiles, and higher altitudes offer a greater immunity to attack. Consequently, sensor and weapon satellites are more effective below the geosynchronous altitude and battle managers are more secure above. Many SDI architectures have been proposed. but because the technology has not been fully developed and no satellitetosatellite links exist. the architecture is only loosely defined. In addition, because SDI is a multiservice venture, the architecture can vary to reflect each service's respective battle phase responsibility [2]. The three battle phases with responsible service are: 1. Boost enemy vehicle liftoff (Air Force) 2. Midcourse warhead dispersement (Navy) 3. Terminal atmosphere reentry (Army) The architecture has been evolving and will continue to evolve as research progress is made. The Harris Corporation has contributed to this research. They have been using architectures provided by the Rome Air Development Center (RADC) and Naval Research Laboratory (NRL). A summary of the published Harris work is provided in Chapter 2. A primary objective of the SDI communications network is that it must be sur vivable. The network should be able to adapt to jammed links, satellite losses, and traffic pulses. In addition, the network should operate at near optimum performance measures. Obviously, these are high goals and because the architecture is not firmly established, many areas of research are available. This research proposal considers: 1. topology 2. link assignment 3. routing 4. models 5. performance measures Although these areas are very diverse from a purely theoretical view. they are closely related from a systems view. For example, consider the physical network which is a topology. In order to determine the performance of the system model using packet delay as a metric, a link assignment and routing algorithm are required. 1.2 Principal Results The study of lowaltitude satellite network topologies has resulted in the deriva tion of several important closed formulas and algorithms. These equations and al gorithms have been used to facilitate and reduce simulation of satellite networks. In addition, they have been used to optimize single coverage satellite topologies. References [26,27] provide simulation results and applications of the equations and algorithms. The derivations and proofs are in reference [28]. The principal equations derived include: 1. Maximum visibility distance of satellites with specified minimum horizon angle; 2. Minimum altitude of an Np (orbit planes), Ns (satellites per plane) satellite topology with specified minimum horizon angle: 3. Minimum propagation delay between arbitrary points on the earth via an Np = 2, Ns > 3 topology with specified minimum horizon angle; 4. Maximum propagation delay for maximally separated points on the earth via an Xp = [2.3.4.5], AVs = [2,4.6.8.10.12] topology at minimum altitude with specified minimum horizon angle. Two propagation delay algorithms are given with their pseudocode and correct ness proofs. The algorithms 1. determine the minimum propagation distance for arbitrary points on the earth separated by an arbitrary set of terrestrial arc distances, for a single altitude topology and specified minimum horizon angle: and 2. determine the time average and maximum propagation delay between a set of terrestrial sourcedestination pairs via a single altitude topology with specified minimum horizon angle. The minimum propagation delay algorithm is very efficient because it uses closed formulas and dynamic programming rather than a grid search. The time average and maximum propagation delay algorithm uses dynamic programming to provide a speedup of 10 over Dijksta's shortest path algorithm for a topology of 45 satellites at 1000 km. An p.,Ns region model was developed to evaluate 1he performance of arbitrary 2altitude topologies. A closed form for the minimum altitude of the Np,Ns regions is derived. Also an analytic solution for the total delay of a 2level hierarchical satellite network is presented. References [10,25] contain applications of the model which include an optimal link assignment and survivable routing strategy for a region disjoint structure. Several multiple path routing algorithms have been developed which find K paths of minimum cost. where cost is defined as delay or remaining time of path. In addition, the K paths have a minimum number of common nodes and links. The running time of finding the K paths from origin to destination is O(/n2) where n is the number of satellites and K < a. 1.3 Chapter Synopsis The chapters are ordered starting with topology and closed formulas for propa gation delay, then progress toward the multiple path algorithms and multiprocessor simulation for the SDI communications network. Chapter 2 provides background ma terial on the features and requirements of the SDI architecture. Also, a brief review of the Harris work and others on link assignment, routing, and simulation is pre sented. A general description of the minimum cost flow problem and path diversity is also given. Chapters 3 and 4 provide derivations of the closed forms and algorithms developed to reduce simulation time. These chapters also contain some simulation results. Chapter 5 presents a 2level hierarchical model which is used to derive the total delay of a 2altitude SDI architecture. Chapter 6 presents the Kpaths algo rithms of minimum total cost. Chapter 7 discusses the multiprocessor simulation for the SDI communications network. Finally. Chapter 8 contains the conclusions of this dissertation. CIIAPTER 2 BACKGROUND A brief overview of the SDI architecture issues and the published Harris work on the communications network is provided in this chapter. Also a description of the minimum cost flow problem and node disjoint path algorithms are given. Section 2.1 gives the features and 2.2 discusses the requirements. The second generation Harris link assignment and routing strategy is given in section 2.3. and other relevant work is presented in 2.4. The minimum cost flow problem is stated in section 2.5, and 2.6 discusses algorithms for node disjoint paths of minimum total cost. 2.1 Features of the SDI Architecture The two basic capabilities of SDI are to sense enemy vehicles (missiles) and to disable them. These capabilities are very diverse and, because of hardware special ization, separate satellite types called sensors and weapons have been proposed. In addition, a third type of satellite called a battle manager is used to process sensor reports and direct the weapons. Due to visibility resolution constraints, the sensor and weapon satellites are placed in lowaltitude orbits. Atmospheric drag poses a lower limit of about 500 km. There are many different solutions to the problem of assimilating sensor traffic and disabling the corresponding targets as efficiently as possible. Each solution can be used to define a different kind of architecture. NRL has defined an architecture which reflects a compromise between a completely distributed architecture and a centralized one. Approximately 12 battle manager satellites are used at an altitude of about 50,000 km. This high altitude offers a visibility probability between weapons and sensors of 0.5 and also security from terrestrial attack. A weakness of this approach is that enemy space mines need only disable 12 satellites to render SDI useless. Cost reductions in laser links and sensors, along with advances in distributed processing, may eliminate the need for a battle manager satellite. Hence a network of sensors with highspeed processing capability would provide the battle manager function, and sensors would direct the weapon satellites. This architecture has the advantage of more graceful degradation with satellite loss. In addition, the commu nications delay between sensors and battle managers has been eliminated. Future Harris work will use larger numbers of satellites, and the satellites will be less dis tinctive (i.e., a blending of sensor, weapon, and battle manager functions). The SDI network will use highbandwidth, pointtopoint communications be tween sensor satellites. Broadcast links are also included in some architectures such as the NRL plan, which uses time division multiplexing between the weapon and battle manager satellites. A broadcast channel has also been proposed for finding satellites which become disconnected from the network. However. because broad casting requires more power and is more vulnerable to jamming, pointtopoint com munications are being substituted for broadcast links whenever practical. 2.2 Requirements The two basic requirements for the SDI communications network are that it be survivable and near optimum. Unfortunately. neither of these requirements have unique definitions. Reference [32] gives survivability in terms of two measures: 1) the endtoend communications delay as a function of failed nodes in the weapons network, and 2) the number of isolated nodes in the weapons network as a function of the number of failed nodes. Reference [27] gives survivability in terms of connec tivity and ground coverage. The reason for so many different definitions is that there are numerous performance measures for a communications network. Any of these measures can be optimized, but no all single encompassing architecture will simul taneously optimize all measures. A classic contradiction for satellite networks is the minimization of propagation delay (low altitude) and maximization of connectivity (high altitude). Hence, survivability means many things. For purposes of this dis sertation. delay, connectivity, retargeting frequency, and number of common nodes on multiple paths will be the measures of survivability. The first two choices are the ones generally used for networks, the latter two being a specialization for SDI. 2.3 Summary of Harris Work The link assignment algorithm performs three functions which include: (1) es tablishing and maintaining a single connected subnetwork. (2) connecting the sub networks into a single network, (3) optimizing the connectivity within subnetworks [7]. The algorithm is run on all satellites. Each satellite has an identical copy of the network connectivity table. A heuristic is used with various metrics consisting of propagation delay, remaining link visibility, connectivity. queueing delay, etc., for determining the link assignment. The routing algorithm uses multiple disjoint paths for sending multiple message copies [8]. The redundancy adds to the traffic flow. but offers greater survivability. The disjoint paths are computed by using Max Flow. A heuristic is used for load balancing which uses a metric of queueing delay and propagation delay. 2.4 Other Related Work Reference [37] gives a link assignment algorithm and simulation data for ground coverage and propagation delay vs. retargeting time. The link assignment algorithm uses the all pairs propagation delay as an objective function. A heuristic is used to minimize the propagation delay. The heuristic assigns links to adjacent neighbors on the same plane and then connects satellites on adjacent planes until the number of satellite antennas are exhausted. For four antennas and N ,, V, topologies, the final link assignment is very similar to the \V, N., mesh link assignment described in Chapter 5. Reference [11] uses random and deterministic routing on two satellite constel lations to determine output statistics which include endtoend delay and average queue sizes. Chapter 5 derives similar results for the N\,,, A, mesh link assignment. Reference [20] gives a hierarchical routing algorithm which is based on (1) a hierarchical addressing scheme, (2) regional node routing architecture. References [13,24] discuss simulation programs for satellite networks using a single processor. Satellites are modeled as either procedures or processes. Both programs were developed as tools to evaluate the performance of rapdily changing networks. The programs are event driven. 2.5 Minimum Cost Flow Problem The desire to reduce transportation costs and risks led to the formulation of this problem in the late 1940s. Several routes and transportation media were available between warehouses and troops. However, the capacity and cost (risk) varied with the route. Several people from various countries worked independently on this prob lem during World War II. Two of the pioneers of this era later wrote a text [18] which has become a classic on the subject of flow. The text contains algorithms for solving various flow problems. Other researchers have improved the efficiency of the algorithms, notably [15] which uses a flow augmentation along a shortest path [14]. The minimum cost flow problem can be solved by linear programming as suggested in [12], but reference [29] describes this approach akin to killing a mouse with a cannon. However, many theorems on flow are proved using the principle of linear programming. Some related work includes an algorithm for the minimum augmentation of a directed tree to a Kedgeconnected directed graph [23]. 2.6 Disjoint Paths of Minimum Total Cost References [19,35] constrained the general minimum cost flow problem to a capac ity of 1 and showed how finding node disjoint paths of minimum cost was as simple as finding a shortest path. However, a similar problem. one of finding a maximum number of bounded paths, is shown to be NPcomplete in [21.33]. Efficiency improvements in Dijkstra's shortest path algorithm for sparse graphs is given in [22] which uses a dheap. This approach was later used in [36] for an O(m log n) algorithm for finding two, edge disjoint paths between a single source and n destinations on a graph of m edges. Some related work to disjoint paths includes optimally reliable graphs [16] and efficient allpairs shortestpath algorithms [30]. CHAPTER 3 CLOSED FORMS FOR PROPAGATION DELAY AND CONNECTIVITY A simple model using Np orbit planes and .\s satellites per orbit is analyzed to obtain closed formulas for measuring performance. The following sections contain derivations of the performance metrics of propagation delav and connectivity. Section 3.1 gives the condition for satellite visibility with nonzero minimum horizon angle. This condition applies to any single altitude topology. The minimum altitude for complete coverage is produced in section 3.2. The minimum and maximum propaga tion delays are derived in sections 3.3 and 3.4 respectively. Connectivity is discussed in section 3.5, and a proof that three, time invariant node disjoint paths exist for the Np,Ns model is given. Finally, section 3.6 shows how the equations can be used for topology optimization. An abbreviated version of this section is in [27]. 3.1 Maximum Visibility Distance Definitions: 1. Visibility direct line of sight exists between a point on the earth and a satellite or between two satellites 2. Minimum horizon angle the minimum angle between a tangent to the earth and a satellite Symbols: 1. Re the radius of the earth, approx. 6378 km 2. A altitude 12 :3. H, horizon angle Lemma 3.1: The maximum tangential distance at which a point on the earth and a satellite have visibility at altitude A is Dmi'2 = 1 + 2 .4 1 A (3.1) It follows that the maximum distance at which two satellites have visibility is Dmax. D max /2 Figure 3.1. Maximum Tangential Visibility Distance Proof: The triangle with vertices at the center of the earth, the center of the satellite, and the point of tangency on the earth is a right triangle. Orbital mechanics requires every satellite orbit to be in a plane which includes the center of the earth. By application of the Pythagorean theorem. Dmaz/2 = A 1+2R 4 Lemma 3.2: The maximum distance at which a point on the earth and a satellite have visibility with minimum horizon angle H, is (3.2) D 2 = O()Dmax where 2 cos(0 + Ha) S= arctan (Dm2R \2R, 2 A Figure 3.2. Maximum Visibility Distance with Minimum Horizon Angle Proof: The equilateral triangles with satellite at altitude A and satellite at altitude A' have a common base. Using the cosine relations of angle 0 and 0 + Ha results in ^ cos(0)Dma D' /2 = cos(O)D,, where maox 2cos(0 + H,) 0= arctan D(i ) ( 2Re , Lemma 3.3: For some altitude A with zero minimum horizon angle, the new altitude for a specified minimum horizon angle, H, is given by: A l cos2(+ H) (1 cos(O))Re (3.3) Proof: From figure 3.2, h' and A' can be expressed as: h' = 1 cos2(0 + I,) = h' (1 cos(0))I? Hence the equation follows. 3.2 Minimum Altitude for tie \p.I.\. Topology Definition of the Np,Ns Satellite Topology: 1. There are Ns equally spaced satellites per plane, with Ns > 3 2. There are Np equally spaced planes, with Np > 2 3. The Ns x Np satellites are at a single minimum altitude which provides com plete coverage of a spherical earth 4. The phase offset of the satellite planes is zero 5. All planes are rotated about one axis Lemma 3.4: The locus of points on the earth Dmax/2 away from a satellite is a circle of radius R, RI, = I, (3.4) 2(R, + A) Proof: Without loss of generality, assume the zaxis intersects the satellite. Using spherical coordinates, the distance between a point on the earth and the satellite is: satellite location earth location S = 0 E = Re sin(El) cos(A:) Sy = 0 Ey = R, sin(El) sin(Az) S, = R, + A EZ = R, cos(El) D' 4ax/ E 2 E + (E: S')' This equation simplifies to cos(El) = R. Using the triangle in Lemma I. sin(El) = . Thus the circle + = i(Re+A) has radius Re R, = eDma 2(Re + A) Lemma 3.5: For the Np,Ns topology with all orbital planes rotated about the x axis, the hardest points to cover (fewest satellites overhead) are in the yz plane. Proof: Without loss of generality, let two adjacent orbital planes be rotated by +I radians about the xaxis. Using polar coordinates with Az measured from the xaxis in the xy plane, a satellite location on the lower plane is given bv x 1 0 0 (R + A) cos(.4I) S= 0 cos( ) n(2 ) ( +.4)sin(.4z) z 0 sin( ) cos( ) 0 The distance between satellites on adjacent orbital planes is given by the absolute difference between their z coordinates which is 2(R, + A) sin(.Az) sin( ). Hence the maximum distance occurs in the yz plane at Az = 1 By Lemma 3.4 the earth coverage provided by a satellite is a circle, so the hardest point to cover will be the intersection of arcs connecting centers of diagonal circles as shown in figure 3.3. The 16 distances between the centers of the circles (1.4) and (2.3) are at a maximum when the satellites are at A: = radians. This can be shown by taking the derivative of the distance equation for the vertical separation of satellites and noting the rates of change. the hardest point to cover Figure 3.3. Satellites 1,2,3,4 Looking down the YAxis Dzl3 Dz24 where Az' = derivativeofthejdistancebetweensatellites_ 1, 3) = 2(Re + A)sin( )sin(Az') 2Np = derivativeof_thedistancebetween.satellites 2, 4) = 2(R + A) sin(  sin(Az'  = Az 0 < A' < ANs The horizontal separation remains constant and the distance between satellites (2,4) decreases at a faster rate than (1.3) increases as .A' is varied from to zero. Hence the maximum diagonal satellite spacing and corresponding circles of coverage are furthest apart when Az' = S, and the intersection of the diagonals in the yz plane is at the hardest point to cover. Theorem 3.1: The minimum altitude for the N p,N.s satellite topology is Amin = (I ( l R, (3.5) cos( ) cos( ) ) Proof: By Lemma 3.5 the hardest point to cover is in the yz plane and since the orbital planes are symmetrically rotated about the x axis, then it is sufficient to show that if the earth location intersected by the v axis is covered by a satellite at all times, then all points on the earth are covered at all times. The topology of Ns satellites per plane ensures that a satellite will always be within # radians of the vz plane. The equations for the satellite position in Lemma 3.5 can be used to compute the distance between the earth location (E, = O.Ey = R?,E. = 0) and a satellite in the azimuth range (!  ) radians to T radians. Setting this distance to the visibility distance of Dmax/2 ensures all points will be covered. DM a/4 = (E, 5)2 + )+(E, ( .S)2 SR + (R + A)2 2(R, + A) cos( )sin(Az) 2Np The right side of the above equation is maximized over the range of Az when Az _= Using this value for Az ensures that the hardest point to cover on the 2 N"S* earth will always be visible to the satellite over the range of Az. Solving for A in the above equation with Az = produces the minimum altitude for complete coverage. Armin = (Cos(J ( , (s ' The value for Amin assumes a zero horizon angle. For some specified minimum horizon angle, Ha, Lemma 3.3 can be used to lind the new altitude. The new altitude V'n with D'm evaluated at A,,, is: A', = /1 cos2(0 + HJ) (1 cos(0))R, (3.6) 3.3 Minimum Propagation Delay for the Np.Ns Topology Lemma 3.6: The shortest geodesic (minimum distance path) using three or more satellites on an arc of Ct radians occurs when the maximum possible satellite spacing is used between as many satellites as possible. Proof: Let the shortest geodesic use n (n >_ 3) satellites on an arc of Ct radians and radius R with 7r > Ct = (1 + C2 + + C,I1, where C' is the arc between satellite i and satellite i+1. The path distance of the a satellites is C'1 C C. 1 path_distance = 2R(sin() + sin( ) + + sin( )) Since sn' is monotonically decreasing for U < .r < then inn..path_distance = 2R?(k sil(0) + sill(  k0 )) where 0 arctan Dma2, Hence the shortest geodesic uses the maximum possible satellite spacing between as many satellites as possible. Lemma 3.7: The minimum propagation path will have equal sourcetosatellite and destinationtosatellite distances: and source, destination, center of the earth, and both terminating satellites will be in one plane. Proof: Let the terrestrial arc distance be s. with source and destination separation Sradians. Without loss of generality, the terminating satellites can be symmetrically located about the vaxis as shown in figure 3.. The objective is to show e is and Y';ot = 0 for a minimum length path. This proves Dsl = Ds2 and points are coplanar. satellite 1.2 locations Sri = (Re + .4)sin(p) source and destination location Si = (R, + A) cos(O) S, = R sin( e) = S, = R,cos( e)cos(IYro) '2 = Sl R, t) y2 S j'yl S, = Re cos( e) sin(Yot) 2 yl D, = Re sin(e), D= Rsin(e)= arbitrary angle DY = R, cos(e) cos(rot) = R cos(e) cos(I. t) Dsl = source to satellite 1 distance D, = 11 chose) Sins(I'rot) ScoDd2 = destination to satellite 2 distance D12 = satellite I to satellite 2 distance pathlgthIc = DAl + Dd2 + D12 The derivative of the path with respect to e is zero when e is for all values of 1ot and 6. The path length is minimized for all 6 when "o't = 0. Hence the source. destination, center of the earth, and both terminating satellites are in one plane. Also Dsl = Ds2 since e = 2 2R, Theorem 3.2: The minimum propagation path over an arbitrary terrestrial arc distance s. between all pairs of points for the N.s..Vp = 2 satellite topology is given bv: I ~ pathhdistance = 2/A2 + 2R,(R, + A)(1 cos()) where =(0, 2R,) s = (0,2Re) (3.7) I Figure 3.4. Minimum Path Distance Via Terminating Satellites Proof: For Np = 2, 0 < L and only one satellite is needed to connect all points on the earth. By Lemma 3.7, the sourcetosatellite distance equals the destination tosatellite distance. Hence the path distance equation follows for zero minimum horizon angle. For some specified minimum horizon angle Ha, A' can be substituted for A. 3.4 Maximum Propagation Delay for the :Ap.NA. Topology Theorem 3.3: The maximum geodesic propagation path over the terrestrial arc distance. s = Rr, between all pairs of points for tile A's > 4 and N'p = [2.3.4,5] satellite topology with altitude A, and visibility distance D,ar is given by: Np = 2. Ns = (4.6. 8.10.12) D2 = 2Dm,, + 2(l, + .A) cos( ) cos( ) Vp = 3. Ns = (4) D3 = 2D,,,,, 2(R, + + A) cos( 1) sin() Np = 3, Ns = (6) D3 = D,,,,,, + 6(R, + A) sin( .) AVp = 3. Ns = (8.10. 12) D3 = 2D,,,n + 4(R, + A) cos( ') sin( .) Np = 4. Ns = (4) D4 = 2D,,,, + 2(?, + A.) cos( ~) sin( ) NVp = 4. .'s = (6)) D4 = D,6,(, + (R~ ?, + A) sin( `) Vp = 4. Ns = (8) D4 = D,,, + 8(R7, + A) sin(t) Np = 4. As = (10.12) D4 = 2D,a,, + 6(1, + .4) cos(,) sin(g) Np = 5, Ns = (4) D5 = 2Dma, + 2(R? + A) cos(.) sin( ) Np = 5, Ns = (6) D5 = Dm + 6((R, + A) sin( ) Np = 5, Ns = (8) D5 = D,,,,, + 8(R, + A) sin() Np = 5, Ns = (10) D5 = D,= + 10(R, + A)sin() p = 5. Ns = (12) D5 = 2Dm + 8( + Aco) cs() sin(' ) Proof: The distance expressions are valid when satellites are radians from the x = 0 plane (measured in the z = 0 plane). Source and destination are in the x = 0 plane and midway between two orbital planes. Both source and destination are at least Dmax/2 away from all satellites. The satellitetosatellite paths must be one of the following segment types: 1. same orbit plane: distance = 2(R, + A) sin( ): with m = 1.2.... and distance < DDm 2 2. different orbit planes but in the same yz plane: distance = 2(R + A) sin(Az) sin( "') with = 1.2.... distance < . and 0 < . < , 3. different orbit planes and in different yz planes (a diagonal path): distance < D mar 2 The closed formulas of Theorem 3.3 are the sum of D,,,, and some combination of the three satellitetosatellite segment types. The closed formulas can be shown to be a local maximum by noting that a change in sourcedestination location will provide a shorter path (there are only 2 Np points which are D,,ax/2 away from all satellites). Also a change in satellite position will require the sourcetosatellite and destinationto satellite distance to be less than Dma,/2 and the diagonally opposite satellite distance will become shorter (less than Dmax). In the case of Np = 2 the derivative of the satellite path when Az = , is: satellite path = V(R, + A) sin(4Az) + Diag where Diag2 2(R, + A)2(l cos(Az) cos(Az + .)) DI path derivative = /2(Re + A) cos(Az) +  where D2 D1( R+ + 2A) 27 2 D1 =(cos(.A) sin(Az + ) + sin(.lz) cos(Az + )) D2 1 cos(Az) cos(Az + ) Substituting Az = makes the satellite path derivative v/2( R, + A) sin( ). The derivative of the sourcetosatellite path is: sourcetosatellite path = D where D2 R + (Re + A)2 2(R, + A)Resin(Az) Taking the derivative of D with respect to Az D' = (R, + A)R cos(Az)/D or D' = /2(R + l)Rsin()/Dmar with substitution Az = j. Hence the rate of change for source and destination is 2D'. The sourcetodestination geodesic will increase as Az =  is approached. The derivative will not be zero at the local maximum because the local maximum exists because of a boundary condition: the sourcetosatellite distance equation is only valid to Az = 2 The diagram below shows the four diagonal satellites and location of the source for Az > Satellites 1.3 are moving apart at a slower rate than satellites 2,4 are moving together, hence the source must move at the rate of satellites 2,4 in order to stay D,,,,/2 away from satellites 2.4. The combination of a shorter diagonal distance, shorter source to satellite distance, and shorter destination to satellite offsets the increase in distance of satellites 1,3, thus producing a monotonically decreasing geodesic distance for Az > 2 N Since the closed formulas are for local maximums. to show they are for global maximums requires Algorithm 2. The threedimensional search space is: 1. Azimuth of source (destination) 2. Elevation of source (destination) 3. Satellite displacement angle, Az(t) Use Algorithm 2 outside the vicinity of t he local maximum with a grid size such that: upper bound error < closed formula distance DO where DO is some minimum in the vicinity of the local maximum. Assume adjacent pairs of a grid have the same satellite path. If a longer geodesic exists, then the sum of the maximum distance of the four corners and the upper bound error must exceed the closed formula distance. If adjacent pairs have different satellite paths. then the circles of coverage need to be solved to ensure some longer path is not missed. Since no longer path can be found for the stated topologies, the closed forms of theorem III are the maximum geodesic distances for s = R7r. Corollary: D2 in theorem 3.3 is valid for N.s > 12 because it is true for Ns < 12 and as Ns increases, the degree of satellite coverage overlap increases. This is shown by comparing the distance between adjacent circles of coverage with the diameter of the circles. If a longer geodesic existed than D2. then it would exit at smaller values of Ns. 3.5 Node Connectivity The Np,Ns topologies have at least four node disjoint paths at the minimum altitude for complete coverage. Table 3.1 contains the minimum and time average node connectivities. These connectivities were obtained using a topology generator program and applying Even's algorithm [17] whenever the satellite adjacency matrix changed. The proof that four node disjoint paths exist can be made by assuming a mesh link assignment as follows: 1. Let the satellites be rotated about the xaxis. then the satellite positions are defined bv: Xi = (Re + A)cos( J + Az) .ij = (Re + A)sin ( + (. cos ( Z, = (Re+ A)sin ( + A )sin ) A\l s PI Table 3.1. Node Connectivity for Xp. .Ns Topologies Two Planes at 90 degrees Three Planes at 60 degrees V, Ns node kconn :,, V, node kconn satellites alt. min. avg. satellites alt. niin. avg. 2X3 = 6 11662 5 5.0 3X3 = 351 7 .8 2X4 = 8 6378 4 4.0 3X1 = 12 4037 6 6.0 2X5 = 10 1771 4 4.0 3X5 = 15 2725 6 6.0 2X6= 12 4037 4 4.0 3X6 = 18 2126 5 6.0 2X7 = 14 3633 4 4.0 3X7 = 21 1796 6 6.0 2X8 = 16 3385 8 8.0 3X8 = 2 1593 5 6.0 2X9 = 18 3221 8 8.0 3X9 = 27 1459 5 6.0 Four Planes at 45 degrees Five Planes at 36 degrees N aV, node kconn A'l ', node kconn satellites alt. min. avg. satellites alt. min. avg. 4X3 = 12 7429 7 9.2 5X3 = 15 7034 7 10.1 4X4 = 16 3385 7 8.0 5X4 = 20 3106 8 9.9 4X5 = 20 2155 6 7.9 5X5 = 25 1911 6 9.3 4X6 = 24 1593 5 7.5 5X6 = 30 1:366 7 8. 4X7 = 28 1284 6 7.0 5X7 = 35 1065 7 7.0 4X8 = 32 1094 5 7.2 5X8 = 10 881 7 7.0 4X9 = 36 969 6 7.0 5X9 = 15 759 6 7.0 Notes: 1. Averages are time averages 2. Altitude in kilometers 3. The N,,. N systems provide complete coverage of the earth at all times where i= 0,1..... VP I and j =0.1.. .. 1 2. The distance. D between visible satellites i.j and i'. j' is: D = (Re + A)2(1 c). where S= os +Az cos + + A +3. S es+ Aij sin e + As os: 3. Satellite i,j is connected to four satellites as follows: decreasing i: increasing i: if i > 0 if i = 0 and N, odd if i = 0 and N, even if i < NV1 if i = Np1 and N, odd if i = N,1 and Ns even (i ).j (Np1).(j1) mod A, (AN1),(A 1j) (i+1).j 0.(j+l) mod N, 0.( lj) decreasing j: increasing j: i.(j1) mod Ns i.(j+l) mod N, The link assignment is valid because each satellite has four links and the maximum distance links are < D,,x. The latter is true because the maximum distance links are between diagonally opposite satellites, which is constrained by the minimum altitude for complete coverage. The four links are true because of the four cases for Az < ' 'Vs Az can be constrained to this interval because it is the period of the topology. To prove the given link assignment is four connected, an inductive proof can be used. There are two basis topologies, odd and even .\. Appendix A has the node (3.8) disjoint paths for Np = 2.Ns = 3 and Np = 2. A.s = 4 which were found by Max Flow. Tables A.2 and A.4 show the four node disjoint paths for all pairs of satellites. The inductive step is similar to that for the three. time invariant node disjoint paths and will be given for that proof. The time invariant link assignment is the set of links which do not require retar geting. The link assignment is as follows: decreasing i: if i > 0 (il).j increasing i: ifi < Ap1 (i+1). decreasing j: i.(j1) mod A, increasing j: i,(j+l) mod AN Each satellite on planes i = 0 and i = AI 1 have three antennas and all other satellites have four antennas. The basis topology is Np = 2, Ns = 3 which is three connected. Table A.6 shows the three node disjoint paths for all pairs of satellites. For the inductive step consider adding an internal plane 0 < i, < N 1. Each satellite on ip has four neighbors. By the link assignment. a mesh exists for any ip. Since the connectivity of the mesh is four. then the connectivity of each satellite is at least three. Next consider adding an additional satellite to all planes 0 < j < \', 1. By the link assignment each satellite has three neighbors for i = 0. A' 1 and assume it is three connected. Adding satellite j will not reduce the connectivity because it does not change the structure (i.e.. each satellite has a left and right neighbor on the same plane and one neighbor on an adjacent plane). 3.6 Optimizing the Delay and Connectivity A topology of N satellites at minimum altitude can be analyzed to provide opti mum values for Np and Ns (N = Np* Ns) such that a specified delay metric is min imized. The delay metric could be maximum propagation delay, average maximum propagation delay (over time), etc. Suppose the metric is the maximum propagation delay for maximally separated terrestrial points at minimum altitude. The equations from section 3.4 can be used for Ns even; for NVs odd. simulation is required. Table 3.2 contains the propagation delays for N:p = [2.3.4.51 and NVs = [3.4.5.6.7,8.9]. The minimum altitude for systems with phase offset of 27/(Vp) *.V s) is also given for comparison purposes. These altitudes were determined iteratively. Notice that for NVs > Np there is little or no altitude reduction by using a nonzero phase offset. Also note that the lowest altitude for N = Np Ns satellites occurs when Ns > Np and Ns is odd. This is because the elevation angle spans 180 degrees, while the azimuth angle spans 360 degrees. Hence Ns should be about twice as large as Np and odd values of Ns ensure the propagation path does not overshoot either source or desti nation. For NAs even, the propagation path overshoots either source or destination for furthest terrestrial points, resulting in a longer delay. Optimizing connectivity for an NpNs topology can be performed in a manner similar to that used for propagation delay. However, unlike propagation delay where minimum altitude is desired, connectivity improves with increasing altitude. Hence some maximum tolerable delay must be specified and thereby some maximum altitude for the satellite topology. Table 3.2. Minimum Altitude and Maximum Propagation Delay for Furthest Terres trial Points Two Planes at 90 degrees Three Planes at 60 degrees S* phase=0 phase= phase=0 ase pas0 phase= P, satellites alt. ela alt. satellites alt. delav alt. 2X3 = 6 11662 205 11662 3X3 = '351 1(0 S131 2X4 8 6378 190 5897 3X1 = 12 1037 152 3940 2X5 = 10 4771 139 4771 3X5 = 15 2725 106 2710 2X6 = 12 4037 152 3857 3X6 = 18 2126 123 2090 2X7 = 14 3633 131 3633 3X7 = 21 1796 97 1785 2X8 = 16 3385 141 3291 3X8 = 24 1593 113 1522 2X9 = 18 3221 127 3221 3X9 = 27 1459 96 1455 Four Planes at 45 degrees Five Planes at 36 degrees N% N, phase=0 phase=P, A N phase=0 phase=P, satellites alt. delay alt. satellites alt. delay alt. 4X3 = 12 7429 148 7320 5X3 = 15 70:34 141 5695 4X4 = 16 3385 141 3350 5X4 = 20 3106 136 3085 4X5 = 20 2155 96 2140 5X5 = 25 1911 91 189.5 4X6 = 24 1593 112 1580 5X6 = 30 1366 107 1360 4X7 = 28 1284 86 1273 5X7 = 35 1065 83 1055 4X8 = 32 1094 102 1090 5X8 = 40 881 97 875 4X9 = 36 969 85 5 5 5X9 = .5 759 79 755 Notes: 1. P = 2zr/(N A,) 2. Altitude in kilometers 3. Delay in milliseconds between two terrestrial locations separated by 7rI? 4. The Np, YNs systems provide complete coverage of t lie earth at all times ('CHAPTER 4 ALGORITHMS FOR COMPLETING PROPAGATION DELAY Determining performance measures for general topologies can be done with ap proximate analytic solutions or more precisely with simulation. For those who need precise solutions, two algorithms and their correctness proofs are given in the follow ing sections. These algorithms measure propagation dllav. 4.1 Minimum Propagation Delay Algorithm Definition of Algorithm 1: Determine the minimum propagation delay between arbitrary source and destina tion locations on the earth separated by terrestrial arc distances, S = {si, s2...., sN} using a single altitude topology. General Description: The algorithm uses dynamic programming and maintains the shortest propagation distances between arbitrary points on the earth for each pair of satellites for one orbit period. The algorithm works because: 1. The source, destination, and terminating satellites are coplanar for the shortest geodesic 2. The ratio of terrestrial arc distance to propagation path distance is monoton ically decreasing as the angle of satellite separation increases from I 20 to + 20 Every possible pair of satellitetosatellite paths will be tested to determine whether they can offer a shorter path for some terrestrial arc distance in S. The algorithm 30 uses a closed formula for the propagation path distance as a function of terrestrial arc distance. Thus eliminating grid search for the minimum. In addition, a. data structure is maintained which eliminates ihe need to test all terrestrial distances in S. PseudoCode for Algorithm 1: 1. Initialize (a) Choose a set of terrestrial arc distances S = {l,.s2,. .. ..s} and let the index into the set be I, = 1 ......V (b) Initialize arrays MinDistance[] and TerrestrialAngle[] for I, = 1..... for corresponding terrestrial distances .. .. .x MinDistance[I,] = IAXIN. T {for terrestrial distance s, > 2R0O} = 2 1,'2 + 2I(R1 + A')(1 cos R) \2Re / {for si < 2R,0} TerrestrialAngle[l,] = s,l/R {angle of terrestrial points } (c) .4. = 0 {simulation angle is 0 to 2r} (d) Nsat = {number of satellites} (e) m = V,,t (Nat 1)/2 { number of geodesics } 2. At simulation angle A., compute the distance between all pairs of satellites at different locations and store the distances less than D'ax in a matrix. Use Floyd's allpairs shortestpath algorithm to compute the geodesic distance be tween all satellite pairs. Label the m geodesic paths P, to P,, and corresponding angles of separation .4 to Am 3. for i = 1 to m do begin 4. {For each Ai, compute the maximum terrestrial distance. Smax, Smar = (Ai + 20)Re if mSax < 7rR then pathdistance = PiDistance { path P, geodesic distance} + D',m$ else begin { SmaT > rR,, so source distance < D' $/2 } pathdistance = Pistac nce + DA'2 + 2R,(R, + A')(1 cos((7r A;)/2)) Smax = W Re end k = { index of Smax } {update all shorter geodesics for path P; while (MinDistance[k] > path_distance) and (k > 0) and (TerrestrialAngle[k] > A,) do begin MinDistance[k] = pathdistance: k = b 1 q = TerrestrialAngle[k] A, { q is a temporary variable } path_distance = Pi_Distance + 7A' + 2R,(R, + A')(1 cos(q/2)) end end i 5. Increment A. and go to step 2 if A. < 2,T. Proof of Algorithm: The algorithm has three loops: 1. Outer loop for all satellite azimuth positions (0 < Az <" 2,) 2. Inner loop for geodesics P1 to Pm 3. While loop to update MinDistance[k] for each geodesic Pi Outer Loop All possible satellite positions are considered because the topology has period 2r. This assumes an Az(t) step approaching zero. In practice, a finite Az(t) step will be used which will make the MinDistance values in error. An upper bound on the error can be derived and is given as: errordistance = 2(R, + A)D(lAz(M + DelAz) where DelAz and M are the azimuth step and number of satellites on a path respec tively. Lemma 3.1 can be used to determine which satellites are visible. Flovd's all pairs shortest path algorithm will provide the geodesic distance between all pairs of satellites. Inner Loop All possible geodesics are considered. For Ai < 20. array MinDis tance[] has the shortest delay because these angles require only I satellite. While Loop Prove the algorithm segment for step 4. if S'max< rR, then pathdistance = Pi_Distance { path P, geodesic distance} + D'max else begin { Sa,, > rR,, so source distance < D'm /2 } path distance = Pi_Distance + .jA'2 + 2R,(R, + A')(1 cos((7r A.)/2)) Smar = 7Re end Variables Smar and pathdistance have the correct values after executing the if statement because: 1. if Sma x R, holds before the if statement then t lie path distance is the satellite path + 2D' /2 2. if Sma, > Rex holds before the if statement then Smax is limited to Re, (the maximum sourcetodestination arc distance) and the sourcetosatellite dis tance is less than D'ax/2 and is given by A'2 + 2Re(Re + A')(1 cos((7r A)/2)) Preconditions of the while loop: 1. k has index of Sm,,a 2. MinDistance[] has the minimum path lengths for Is = 1 to N for the geodesics tested so far k = { index of Sax } {update all shorter geodesics for path P,} while (MinDistance[k] > path_distance) and (k > 0) and (TerrestrialAngle[k] > A,) do begin MinDistance[k] = pathdistance: k = k 1 q = TerrestrialAngle[k] A. { q is a temporary variable } path_distance = PiDistance + + 2?~.(R. + A')(1 cos(q/2)) end Postconditions of the while loop: 1. k has index for which a shorter path existed 2. MinDistance[] has the minimum path lengths for Is = 1 to N for the geodesics tested so far Loop Invariant: MinDistance[i] = MINIMUM {lMinDistance[i],pathdistance } for k < i < {index of S',a }, where MinDistance[k] > pathdistance 1. the upper bound of i follows from the precondition 2. the lower bound of i follows since the ratio of terrestrial distance to propagation path distance is monotonically decreasing for decreasing terrestrial distance; hence if MinDistance[i] > path distance, then all valid smaller values of i can be ignored because some other previous path had a shorter satellite to satellite path (i.e., a larger ratio of terrestrial distance to propagation path distance) The running time of Algorithm 1 is O[( S' + m)steps]; where Sn = number of satellites. steps = number of azimuth steps. m = (number of MinDistance updates) xs ,(S, 1)/2. The number of MinDistance updates is topology dependent and varies from 1 to Sn. 4.2 Time Average and Maximum Propagation Delay Algorithm Definition of Algorithm 2: Compute the time average and maximum propagation delav for a set of arbi trary terrestrial locations separated by the terrestrial arc distance R~ using a single altitude topology. General Description: The algorithm computes the geodesics between a set of sourcedestination pairs by first computing the geodesics between all satellite pairs and then comparing all possible paths between source and destination for the shortest geodesic distance. This algorithm becomes more efficient for low altitudes where only a small number of the total satellites are over head at one time. PseudoCode for Algorithm 2: 1. Initialize (a) .A = 0 {simulation angle is 0 to 27 } (b) for i = 1 to P do begin {P = number of sourcedestination pairs} TotalDistance[i] = 0 {running sum of path length} MaxDistance[i] = 0 {maximum propagation path length} end (c) S[i] = {terrestrial grid points for source, i = 1 to P} (d) D[i] = {terrestrial grid points for destination} (e) Nat = {number of satellites} 2. At simulation angle A,, compute the distance between allpairs of satellites at different locations and store the distances less than D',, in a matrix. Use Floyd's algorithm to compute the geodesic for all satellite pairs. The result is in array Dis[], with element Dis[k,m] the geodesic from satellite k to satellite im. 3. for i = 1 to P do begin {Determine which satellites are visible to the source and destination} Sindex = 0 {number of satellites visible to the source} Dindex = 0 {number of satellites visible to the destination} MINd = MAXINT: {minimum geodesic distance} for k = 1 to Ns,, do begin DS[k] = {distance between S[i] and satellite k} if DS[k] < D,,m/2 then begin Sindex = Sindex + 1: Snode[Sindex] = k end DD[k] = {distance between D[i] and satellite k} if DD[k] < Dm,x/2 then begin Dindex = Dindex + 1: Dnode[Dindex] = k end end {Determine the shortest geodesic between all possible paths} for k = 1 to Sindex do for m = 1 to Dindex do MINd = min ( MINd. DS[Snode[k]]+DD[Dnode[m]]+Dis[Snode[k], Dnode[m]] ) TotalDistance[i] = TotalDistance[i] + MINd {update for average distance} MaxDistance[i] = MAX(MaxDistance[i].MINd) {update for max distance} end i 4. if A, < 27r. then increment A and go to step 2. 5. Average_Distance[i] = TotalDistance[i]/[P* number_of_azimuthsteps] Proof of Algorithm: The algorithm has four loops: 1. Outer loop for 0 < Az < 2r 2. Inner loop using index i for set of grid points 3. Visibility loop 4. Shortest path loop Outer Loop All possible satellite positions are considered because the topology has period 2. This assumes an Az(t) step approaching zero. In practice, a finite Az(t) step will be used which will make the propagation distances in error. An upper bound on the error can be derived and is given as: Re errordistance = (R, + A)DelAz(21 + (DclG x DelG + DelAz)) where DelAz, DelG and M are the azimuth step, grid angle, and number of satellites on a path respectively. Lemma 3.1 can be used to determine which satellites are visible. Floyd's all pairs shortest path algorithm will provide the geodesic distance between allpairs of satellites. Inner Loop All grid points are considered. Visibility Loop Prove the program segment for step 3. Preconditions: arrays Snode and Dnode are empty for i = 1 to P do begin {Determine which satellites are visible to thle source and destination} Sindex = 0 {number of satellites visible to the source} Dindex = 0 {number of satellites visible to t le destination} MINd = MAXINT; {minimum geodesic distance} for k = I to Nsat do begin DS[k] = {distance between S[i] and satellite k} if DS[k] < Da,,/2 then begin Sindex = Sindex + 1; Snode[Sindex] = k end DD[k] = {distance between D[i] and satellite k} if DD[k] < D,,a/2 then begin Dindex = Dindex + 1; Dnode[Dindex] = k end end Postconditions: Snode[] has the set of satellites visible to source S[i] and Dnode[] has the set of satellites visible to destination D[i] Precondition: MINd = MAXINT {Determine the shortest geodesic between all possible paths} for k = 1 to Sindex do for m = 1 to Dindex do MINd = min ( MINd. DS[Snode[k]]+DD[Dnode[m]]+Dis[Snode[k], Dnode[m]] ) TotalDistance[i] = TotalDistance[i] + MINd {update for average distance} MaxDistance[i] = MAX(MaxDistance[i],MINd) {update for max distance} Postcondition: MINd = MINIMUM { S[i] to D[i] path distance } Loop Invariant: MINd = MINIMUM { S[i] to D[i] path distance, MINd } All possible satellite paths are tested between S[i] and D[i]. The minimum distance is in MINd at loop termination. The running time of Algorithm 2 as compared to Dijkstra's single source algorithm is: Algorithm A.2 Dijkstra O(L(2N + 112)) O(L(N + 2)2) L = (number of azimuth steps) (number of sourcedestination pairs) M = average number of visible satellites from the earth N = number of satellites in the network Note: (1) Assumes (number of sourcedestination pairs) *(2N + 112) >> N3 (2) M + N/2 as A + oc CHAPTER 5 ANALYSIS OF A 2LEVEL IIIERARCIIICAL MODEL An analytic approximation for the total average delay of a pointtopoint satellite network with arbitrary topologies can be obtained by using a parameterized 2level hierarchy. The advantages of such a network are a reduction in the complexity of delay and routing analysis. The parameters include link capacity. traffic Hfow between all pairs of satellites, number of satellites, number of antennas per satellite, and two altitudes. The link assignment provides a 2level hierarchy by using a backbone (level1) and local regions (level2). The routing strategy uses traffic flow balancing by splitting traffic between node disjoint paths. Satellites are used in a backbone which connects regions of diameter Dmax on each arbitrary altitude shell and also between the two shells. The local regions have diameter Dmax and form a "wrappedaround mesh" which offers a region disjoint structure for routing over four disjoint paths. The diameter of the regions ensures all satellites within the region are visible to one another. 5.1 Definition and Description of the Model 1. All satellites are contained in a circular region with diameter Dm,. The regions cover all points on a shell. 2. The centers of the regions are: ,j = (Re + .A)sin ( + Iz cos ( ) yi = (Re + .4) sin + sin X, (" Ar P,? z = (Re + A.) cos ( + az) where i= 0,1,..... V, 1 and j =0.1,.... N 1 3. The minimum altitude of the Np, \, region model is derived in the next section, and given as: min = C = ang El = ( 1) I?, where c / sin(El) sin(EI') cos  + cos(El) cos(El') XLJ + a(i. where 0 < az <  4 AS any if any <  272 ang , otherwise Si 7r 2r 7 ang if ang' < ang' + 2 N's 27r ang + i otherwise N1s tl]\ /*>T (5.1) El' arctan ( ) (El< El' S= cos(El) cos El+ 2 e = cos(i) ( 7El) s El + ) AP > 2 and iV > 3 4. The number of regions is Np Ns for az > U. 5. The link assignment in a region is made independently of propagation distance between satellites. 6. The propagation distance between satellites in the circular region is a random variable. The average satellitetosatellite distance is D,,z.tDma,/2. where D,,g is a constant which depends only on the altitude of the satellite shell. The value of Dav, ranges from 1.0 at 10000 km to 0.93 at 1000 km. 7. Satellites on a shell can have an arbitrary topology. For az = 0 and N, even there are NA regions for j = 0 and j = N,/2. Hence the set of regions do not form a region disjoint structure. However, at the higher altitude. A'in, the regions for j = 1 and j = NV 1 will cover all points of the A regions at j = 0. Similarly, the j = iN/2 regions will also be covered. Hence the values of j 1, ..... + 1... s I form a region disjoint structure. The equation for A'm n is derived in the next section, and given as: A'n = Re 1 + tan2 ( Re (5.2) For Np = 3, Ns = 10, az = 0 there are 24 regions which cover a shell at A > A'n = 1506 km. A lower altitude is obtained by relaxing the equal spacing of the regions, i.e. modify the angle LI to 2 A, where A is large for j = 0 and j = and zero for j = and j = 3. In addition, by allowing the regions to be 10% greater than Dma the 24 regions cover a shell at A >1000 km. 5.2 Minimum Altitude Derivation of Np.Ns Regions The minimum altitude of the N,,, Ns region model is: Amin = I 1 R, where c = sin(El) sin(El') cos ( ) + cos(El) cos(El') A', 27r 92, ang = [ + az, where 0 < az <  4 N, AV ang = ang if ang < =27 = ang otherwise 3'. El = ang' if ng' < ang' +  2 A s  2r7 = ang' + 7 otherwise El' = arctan (El < El' < El + d = cos(El) cos El + e = cos in(El) sin El + Proof: 1. The distance squared between a region center (El.Az) and some arbitrary point (El'.Az') on a sphere of radius R is: D2 = 2R2 2R2 sin(El) sin(El') cos(Az Az') 2R2 cos(El) cos(El'). where 2w 2w El = az, + az,..., (N 1)+ a Ns Ns Az = 0, ,...,(Np1) Np Np 2. A point (El'..A') maximally distant from all region centers will be equally distant between the four adjacent region centers, hence AzAz'  2Np El' = arctan where d = cos(El) cos El + e = cos (sin(El) in El + ) 3. The region centers which are furthest apart are those nearest the z = 0 plane. hence El = + az, + az or [ + az 2" whichever is closest to 4. Make the maximum distance squared. D' equal to A2 + DA,,/4 A2 + Dm/4 = 2R2 2R2 sin(El) sin(El') cos(.A Az') 2R2 cos(El) cos(El'). where R = Re + A 5. The value of A which satisfies the equation is .A,,, and the desired expression is obtained. The minimum altitude A for which all points in j = 0 and j = N A/2 are covered by adjacent regions for N, even is: 4'm = Re + ta.n2 ( R Proof: 1. The angle between common orbit satellites j = 1 and j = Ns 1 is . 2. Equate the maximum tangential angle, arctan ( t) to half the satellite sep aration angle and the expression follows. 5.3 Link Assignment A comparison of propagation delay results using unlimited antennas for the topol ogy types of N,, Ns and random (equal distribution of satellites per unit area) shows only about a 15% difference. The metrics used in the comparison include average path delay and maximum propagation delay. In addition, the propagation delay for .VN, N, topologies increases only about 10% when the number of antennas is reduced to four and a mesh link assignment is made. A mesh provides a node connectivity of four with three, time invariant (no retargeting) node disjoint paths between allpairs of satellites. Table 5.1 contains the propagation delay results for geodesic paths using simula tion for minimum altitude Np,Ns topologies with unlimited antennae. Table 5.2 is for the same topologies, but using four antennas per satellite and a mesh link assignment. Both propagation delay (in milliseconds) and hop values are time averages. The N,Ns, mesh link assignment is defined as: 1. Let the satellites be rotated about the xaxis, then the satellite positions are defined by: Xj = (Re+ A)cos(j2 i+ 4 (27rj 7ri ,j = (Re + A) sin (j + A) cos \ l, + \4'Po Zi, (Re+ + A) sin( + A sin( where i =0,1,....,\,1 and j =0.1......, 1 2. The distance. D between visible satellites i.j and i'. j' is: D = (Re + A) 2(1 c), where (5.3) c = cos +A cos + A Ns ) Cos +sm + z sin (7+ AZ C cos ( 3. Satellite i.j is connected to four satellites as follows: decreasing i: if i > 0 (il).j if i = 0 and N, odd (N,1).(jI) mod NS if i = 0 and N. even (.,1).(.,1j) Table 5.1. Propagation Delay of Np,Ns Topologies. Unlimited Antennas N,* Ns altitude distance hops satellites (km) mean std_dev max mean std_dev max 2X3 = 6 11662 90.1 23.5 109.7 1.0 000.0 1.0 2X4 = 8 6378 68.9 27.1 118.3 1.2 0.4 2.0 2X5 = 10 4771 59.3 22.2 94.2 1.3 0.5 2.0 2X6 = 12 4037 56.2 22.9 101.1 1.5 0.5 2.5 2X7 = 14 3633 53.3 21.5 1.3 1.6 0.7 3.0 2X8 = 16 3385 51.0 21.2 92.0 1.4 0.5 2.0 2X9 = 18 3221 49.8 20.5 85.0 1.4 0.5 2.6 3X3 = 9 8351 70.4 23.6 99.6 1.0 0.2 1.8 3X4 = 12 4037 54.7 23.2 97.8 1.3 0.5 2.0 3X5 = 15 2725 47.6 19.1 76.9 1.5 0.5 2.0 3X6 = 18 2126 45.4 19.4 84.9 1.6 0.6 3.0 3X7 = 21 1796 43.4 18.2 75.5 1.8 0.7 3.0 3X8 = 24 1593 42.7 18.6 81.4 1.9 0.8 4.0 3X9 = 27 1459 41.7 18.1 75.2 2.1 1.0 4.0 4X3 = 12 7429 64.7 24.2 97.5 1.1 0.3 1.9 4X4 = 16 3385 50.3 22.4 92.0 1.3 0.5 2.2 4X5 = 20 2155 44.3 18.5 73.3 1.5 0.5 3.0 4X6 = 24 1593 42.3 18.6 79.7 1.7 0.7 3.0 4X7 = 28 1284 40.5 17.5 70.9 1.9 0.8 3.1 4X8 = 32 1094 39.8 17.7 76.3 2.1 0.9 4.0 4X9 = 36 969 39.1 17.2 70.5 2.2 1.0 4.0 5X3 = 15 7034 62.1 24.6 97.2 1.1 0.3 1.9 5X4 = 20 3106 48.5 22.2 89.4 1.4 0.5 2.5 5X5 = 25 1911 42.6 18.2 72.0 1.5 0.5 2.9 5X6 = 30 1366 40.8 18.3 77.5 1.8 0.7 3.5 5X7 = 35 1065 39.2 17.2 69.2 2.0 0.8 4.0 5X8 = 40 881 38.6 17.3 74.2 2.2 0.9 4.0 5X9 = 45 759 37.9 16.9 68.7 2.3 1.0 4.1 Table 5.2. Propagation Delay Using 'p.Ns Mesh Link Assignment Np N, altitude distance hops satellites (km) mean std_dev max mean std_dev max 2X3 = 6 11662 100.3 33.7 173.6 1.2 000.4 2.0 2X4 = 8 6378 74.9 30.4 120.3 1.4 0.5 2.0 2X5 = 10 4771 67.6 27.1 126.4 1.7 0.7 3.0 2X6 = 12 4037 61.3 25.4 107.3 1.8 0.7 3.0 2X7 = 11 3633 61.5 26.1 114.9 2.2 1.0 4.0 2X8 = 16 3385 57.4 24.5 105.6 2.3 1.0 4.0 2X9 = 18 3221 59.0 25.7 109.4 2.7 1.3 5.0 3X3 = 9 8351 76.6 27.5 103.6 1.5 0.6 2.8 3X4 = 12 4037 61.0 26.2 101.7 1.8 0.7 3.0 3X5 = 15 2725 52.6 23.2 79.9 2.0 0.8 3.0 3X6 = 18 2126 50.1 21.1 87.1 2.3 0.9 4.0 3X7 = 21 1796 48.5 20.1 78.5 2.5 1.0 4.0 3X8 = 24 1593 46.9 19.9 83.3 2.6 1.1 5.0 3X9 = 27 1459 44.6 19.2 77.2 2.7 1.1 5.0 4X3 = 12 7429 71.6 27.3 105.6 1.9 0.7 3.5 4X4 = 16 3385 57.2 25.6 100.4 2.2 1.0 4.0 4X5 = 20 2155 54.2 13.4 81.3 2.3 1.0 4.5 4X6 = 24 1593 46.9 20.1 84.5 2.6 1.1 5.0 4X7 = 28 1284 45.4 19.4 75.7 2.8 1.2 5.5 4X8 = 32 1094 44.0 18.9 79.8 3.0 1.3 6.1 4X9 = 36 969 42.2 18.0 73.3 3.1 1.4 6.2 5X3 = 15 7034 69.2 27.6 106.2 2.4 1.0 3.9 5X4 = 20 3106 55.5 25.5 98.9 2.6 1.2 5.0 5X5 = 25 1911 50.7 22.3 77.1 2.8 1.2 5.5 5X6 = 30 1366 45.5 19.7 82.9 3.0 1.3 6.0 5X7 = 35 1065 44.3 19.3 73.3 3.2 1.4 6.5 5X8 = 40 881 42.8 18.6 78.1 3.3 1.4 7.1 5X9 = 45 759 41.7 17.9 71.8 3.3 1.4 7.4 increasing i: if i < Np1 (i+1).j if i = NA1 and AN odd 0.(j+1) mod ,\ ifi = Np1 and AN, even U.(Nsij) decreasing j: i,(j1) mod N,, increasing j: i,(j+l) mod N, The four shortest node disjoint paths of the N,,. Ns topologies can be generated from geometry and by using equation 5.3. the propagation delay of the paths can be computed. Hence propagation delay of the .p,,N, topologies can be used to approxi mate the delay between regions of the Np,N, region model at each altitude (low and high). The delay range between the low altitude shell. Aow, and the high altitude shell, Ahigh is: DSmin = Ahlgh Alow DSmax = Aio,11/1 + 2  V 1'low, +Ahigh 1 2  Ahigh An average of DSmin and DSmax is a good approximation for the distance between the two shells when Ahigh > 2Alow since DSmin approaches DSmax as Ahigh increases. The mesh link assignment algorithm for arbitrary topologies is to first construct a backbone as follows: 1. Determine satellites in a region overlap 2. Pick one satellite in each overlap area and assign two antennas to each of two overlapping regions (if more than two regions overlap, choose regions which have the fewest possible regionregion links) Note: the regiontoregion link is inside a satellite 3. For all adjacent regions which do not have a link: assign one link between regions with priority of assignment based on fewest interregion links 4. If each region is linked to four adjacent neighbors: the mesh is formed. If the mesh is not formed then find all satellites which are visible to each other and in different unconnected regions and assign the link. Since each local region can potentially be fully connected because all satellites are visible to each other, remaining antennas can be assigned to optimize some metric consisting of connectivity and maximum hops. The links between shells are best assigned based on queueing delay, since there is very little difference in propagation delay when Ahigh > 24Aow. A 2level hierarchy using 24 regions was chosen to evaluate the propagation delay of the network using only four antennas per satellite. This hierarchy model has a minimum altitude of 1506 km (N, = 3.., = 10. a: = 0) which is an average alti tude attributed to sensor satellites (typically 10002000 km) in the SDI architecture. To determine the performance of the 2level hierarchical link assignment, satellites at an altitude of 1506 km were randomly located with probability proportional to the area of the shell. The allpairs geodesic distances were computed assuming an unlimited number of antennas and using only four antennas. The unlimited antenna case provided the optimum delay. Table 5.3 gives the mean, standard deviation, and maximum path delays in milliseconds. The top half of the table is for satellites in all 24 regions, the bottom half has satellites in only 23 regions. Region i = 2, j = 8 was constrained to be void to simulate a disaster condition. The results show only about a 15% increase in propagation delay when the number of antennas is reduced to four. In addition, a void region has little affect on the delay. This was expected because of the three node disjoint paths. The table shows only the cases for 25100 satellites because there was no appreciable change in delay for 100150 satellites. Table 5.3. Propagation Delay Using 24 Regions. Satellite Altitude = 1506 km number unlimited antennas 4 antennas satellites mean std dev max mean stddev max satellites in 2 regions 25 43.4 23.8 95.0 48.2 24.0 100.9 50 38.8 8.4 80.1 43.4 8.5 84.8 75 38.1 5.5 79.0 13.1 5.6 83.0 100 38.0 1.0 7S.6 42.8 1.2 82.9 satellites in 23 regions only 25 43.2 23.9 94.5 48.3 24.3 102.1 50 38.9 8.4 81.2 43.4 8.7 85.0 75 38.2 5.6 79.1 43.2 5.5 84.4 100 37.9 4.1 78.7 43.0 4.4 83.6 5.4 Queueing Delay of the Model The queueing delay of the network is obtained by using IM/M/1 assumptions with some arbitrary traffic flow between all pairs of satellites and routing based on minimizing the maximum link flow. The NV. NVs topologies have four node disjoint paths and by splitting the flow. flow balancing can be achieved. In fact. for the A, = 2. AN = 3 topology all links have the same flow when each satellite sends the same traffic flow to the other five satellites in the network. For arbitrary topologies, the flow can be split between region disjoint paths. The total delay is the sum of the propagation delay and queueing delay. 5.5 Computing D,,.,, D,.vq is a constant which varies slightly with altitude and is the proportionality constant between Dmax/2 and the expected distance of two random points in a region of diameter D,,,ax The computation of D,,,, using numerical integration is as follows: 1. Use spherical coordinates to locate points at altitude A: x = (R, + A) sin(El) cos(Az) !y = (fl, + A)sin(El)sin(Az) S(R, + A) cos(El) where 0 < .4A < 2 and 0 < Eil,,, = 2arcsin ( UA) 2. The distance between two points (Az.El) and (A:'.EI') is Dis = V2(R, + A) /1 sin(E) sin(El')cos(A: A') cos(El)cos(El') 3. Algorithm: (a) for ij = [1.Nt]: A A:' = 2:r( (b) compute frequency of abs(ij): num[0] = NA num [k] = 2 (N k), for k = [1,N,1] (c) sum all pairs distance: sum = 0 for EI.El'= [1,Nt] do for k = 0 to N,,1 do sum = sum + nlum[k]xDis(k.EI,EI') 4. Running time is O(Ni =), which is much better than storing t points and then computing the all pairs distances: an 0(AiNl 2) algorithm Table 5.4 contains computed values of D,,,v for Np.X., regions. Three methods of computation were used for comparison. Table 5.4. Da Versus Altitude Altitude Dmr Random Grid AN,. (km (km) i) X,V D,,,., D,,,, 2 D,,3 10497 31246 2 3 1.014 1.016 0.971 4669 18040 2 0.970 0.974 0.923 3365 14729 3 4 0.961 0.960 0.912 2616 12683 3 5 0.950 0.950 0.895 2126 11250 3 6 0.945 0.944 0.894 1593 9564 4 6 0.936 0.937 0.888 1366 8783 5 6 0.932 0.934 0.885 1256 8392 4 7 0.930 0.932 0.880 1014 7472 4 8 0.925 0.928 0.878 830 6715 5 8 0.928 0.925 0.884 673 6014 5 10 0.916 0.923 0.876 Notes: 1. Random topologies have numbers of satellites proportional to surface area. 2. Grid uses satellites on a grid of approximately 0.25 degrees. 3. .\ = 5. NS = 18 topology. 5.6 Imnortance of t he Model 1. The propagation delay for strings. rings. etc. in a region can be compared with closed formulas. topology average furthest points distance # antennas string Dvg(Nodes l)Dm,,/2 2 ring Dv, L i [ D= /2 2 double ring D,, (1 + i lo' j) D,,,,,/2 3 2. The propagation distance between regions for single altitude systems can be compared with 2altitude systems by using closed formulas. 3. Large numbers of satellites do not make the model more complex and the model becomes more valid as the number of satellite changes increase. 4. The model is valid for link assignment based on queue length or connectivity. 5. The model approximates any 2altitude deployed satellite configuration. 5.7 Visibility Probability If satellites are distributed uniformly per unit area. t he probability of two satellites being visible is only a function of altitude. This is useful for analytic appoximations for connectivity. Table 5.5 contains the visibility probability values for various alti tudes. For comparison purposes three methods of computation were used. ..8 Conclusioins The *Vp. Ns model provides a regular topology for which analytic solutions can be obtained for the performance of a network. A link assignment strategy which takes Table 5.5. Probability of Two Satellites Being Visible Altitude Visibilitv Probability Percentage (km) Random Phase = ,,, Phase = 0 I Grid 11000 90.0 82.1 S2.1 85.8 10000 87.8 80.9 81.0 84.0 9000 84.7 79.6 79.5 81.9 8000 83.5 77.9 77.6 79.3 7000 80.5 75.2 75.5 76.1 6000 76.9 70.2 70.3 72.2 5000 72.9 66.6 66.2 67.2 4000 65.9 60.7 61.1 60.9 3000 57.2 51.9 51.9 52.8 2000 46.3 43.6 43.8 43.0 1000 27.8 27.5 27.5 29.3 Notes: 1. Random topologies have numbers of satellites proportional to surface area. 2. Phase = 0 and phase = p, are .V, = 5. N, = 18 topologies which are time averaged over one period with zero phase and 27/90 phase offsets respectively. 3. Grid uses satellites on a grid of approximately 1 degree. 54 advantage of the regularity inherent in the model is introduced. In addition the NP. AV, model can be extended to regions in which a 2level hierarchical model can be used for random topologies. Although the total delay measures assume steady state conditions, the transient response can be approximated when propagation delays are long compared to the queueing delays for high data rate communications. Future research will use the transient response to analyze link failures, thus help prevent link saturation in a congestion avoidance algorithm. CHAPTER 6 KPATHS OF MINIMUM TOTAL COST Redundant messages can be used in a network to reduce delays caused by retrans mission. By using disjoint paths, the reliability of message transfer can be improved. In particular, routing algorithms proposed for SDI have used multiple paths for in creased survivability [8]. Suurballe [35] has given an algorithm for a minimum total cost set of node disjoint paths. However, if Kpaths are desired and K disjoint paths do not exist, then some nodes must be repeated. In this chapter two algorithms are presented for finding Kpaths of minimum total cost. Section 6.1 gives the algorithm for fewest repeated nodes or links, and section 6.2 gives an algorithm for finding disjoints paths of minimum total cost which uses a different metric than the Suurballe algorithm, but is faster. 6.1 Fewest Repeated Nodes or Links Let G be an undirected graph containing m links (edges) of nonnegative cost and n nodes (vertices). An algorithm is presented which finds Kpaths on G between a pair of nodes which are of minimum total cost and have fewest repeated nodes or links. The running time for dense graphs is O(IKn) and for sparse graphs O(Km log n). The algorithm uses the solution to a modified minimum cost flow problem to find the desired Kpaths. 6.1.1 Definitions The path cost definition provides for metrics of propagation delay (Linkdi.sance) and retargeting frequency (Linkcost = 1/Remainingink_time). The latter metric is for rapidly changing network topologies such as the proposed SDI communications network. The path cost is: path cost where P P = P I +V Frequen~cyi = E Linkdisitancei on path P or = MAX[Link_costi] on path P = n \MAX[Linkdistancc,] or = 1 + NAX[Ltinkco.,ti] = number of times node i or on the Kpaths link i is used The second term of the path cost is a penalty for repeated nodes or links. This term is zero for disjoint paths. The corresponding flow problem for the defined path cost is as follows: c(u.v) = capacity of link from node u to v d(u.v) = cost of link from node u to v f(u.v) = flow from node u to v, no greater than c(u.v) E outgoing flow E incoming flow = 0. if not source or destination = K. if source = K. if destination where K is the number of desired paths Minimize cost C. where C = FC + iEJ',, 1 [f(u, v) 1.0] IFC = E,>, f(u.v)*d(u.v) or FC = E \ MAX[d(u.v) on path i] The second term of the cost function. C is a modification to the minimum cost flow problem. This modification produces an extrema, for each of the following cases: lreqquencyq 1. W = 0 and d(u,v) > 0 2. IV > 0 and d(u,v) = 0 3. W > 0 and d(u,v) > 0 Case 1 can be used for disjoint paths when the capacity is limited to 1. Using an arbitrary capacity for individual links is useful for restricting flow on risky links. Cases 2 and 3 are used for fewest repeated nodes or links. The weight, W is picked such that the cost of a repeated node or link exceeds the maximum cost of  P 1. Hence a minimum total cost set of disjoint paths will be found first, and if additional paths are required, then the fewest possible nodes or links will be repeated. 6.1.2 Discussion of the Approach Ford [18] and Dantzig [12] provided early solutions to the minimum cost flow problem. Edmonds [15] showed how augmentation along a minimum cost path would produce a minimum cost flow with each iteration. Figure 6.1 shows the steps for producing a minimum cost flow for a network with capacity of 1 for all links. (1) A minimum cost path, P is found from A to Z. (2) Each link on P receives a flow of 1 and the link is reversed. The saturated links have a negative cost because a flow in the reversed link will cancel the existing flow and reduce the total cost of the flow. Adjacent links to the source with flow of 1 cannot be reduced, so are removed. This may not be obvious, but is shown to be true for a minimum cost flow. (3) Step 1 is repeated and another shortest path is found. This produces a flow of 2. and hence 2 link disjoint paths of minimum total cost given by P2. Dijkstra's shortest path algorithm [14] cannot be used directly on a, graph with negative edges. However, it can be used on an equivalent canonic network as shown by Suurballe [35]. The Dijkstra labels, L, (cost from source to node i) are used to P = ABCDEZ Pt = ABCDEZ P = AEDGZ P2 = ABCDGZ, AEZ Figure 6.1. Finding A Minimum Cost Flow transform negative arcs to positive ones: d' = (Li + d) L, The algorithm for Kpaths of minimum total cost with fewest repeated nodes and links is very similar. A minimum cost path is found from source to destination on a transformed graph. G'. The construction procedure for G' provides for arbitrary capacity links and weights for links or nodes with flow greater than 1. (3.1.3 Flow to Graph Constructs Fewest Repeated Links Let f[i.j] be the flow from node i to node j, d[i.j] the edge cost. W the repeat link weight. c[i,j] the link capacity, and G be a simple undirected graph. The graph constructs for a flow f[i,j] are shown in figure 6.2. if f[i,j] = 0 and f[j,i] = 0 if f[i,j] = F and f[j,i] = 0, where F < c[i,j] if f[i,j] = c[i,j] and f[j,i] = 0 d[i,j] d[j ,i] W*F+d[i,j] W*(Fl)d[i,j] W*Fd[i,j] 0 Q Figure 6.2. Flow to Graph Constructs For Fewest Repeated Links Explanation of constructs: 1. f[i.j] = 0 and f[j.i] = 0: the flow from i to j or j to i can be increased to 1 2. ffi.j] = F and f[j,i] = 0: the flow from i to j can be increased by 1 or the flow can be decreased by 1 3. f[i,j] = c[i.j] and f[j,i] = 0: the flow can only be decreased by 1 Fewest Reneated Nodes Let f[i.j] be the tiow from node i to node j. d[i.j] the edge cost. c:i.j] the link capacity. W the repeat node weight. Ft[i] the sum of incoming flow of node i. and c be a simple undirected graph. The graph constructs for a flow f[i.j] are shown in figure 6.3. if f[i,j] = 0 and f[j,i] = 0 d[i,j] d[j,i] if f[i,j] = F and f[j,i] = 0, i d[i,j] where W*Ft[i] F < c[i,j] Wr = W*(Ft[i]l) Wr d[i,j] if f[i,j] = c[i,j] and f[j,i] = 0 i d[i,j] DOWt [ W*Ft [i] Figure 6.3. Flow to Graph Constructs For Fewest Repeated Nodes 6.1.4 KPaths Algorithm Fewest Repeated Links 1. f[i,j] = 0 for all i and j 2. construct G' from G using the graph constructs for f[i.j] 3. remove any arcs on G' which enter the source 4. find the minimum cost path, S on G' from source to destination if S does not exist, go to step 7 (K paths do not exist) 5. for each edge on S: if edge from i to j on G' is positive then f[i,j] = f[i,j] + 1; otherwise f[j,i] = f[j,i] 1 6. if Zj f[source.j] < K. then go to step 2 7. use a breadth first search on matrix f[i,j] to find the paths from source to destination Note: the set of paths is not unique, but all sets have the same total cost Correctness proof: The following propositions are made, with proofs or references to proofs given in section 6.1.5. 1. construction of G' from G and f[i,j] provides for all possible minimum cost flows 2. if f[i,j] > 0, then the flow construction has 2 parallel edges from j to i: (1) a negative edge corresponding to a flow reduction (2) a positive edge correspond ing to a flow increase; hence the positive edge can be ignored without loss of generality 3. flow augmentation is along the minimum cost path: this guarantees the cost function is minimum for each flow increment 4. the final flow is K if S exists on the last iteration 5. the number of paths is equal to E, f[source.j] 6. the number of repeated links is minimum 7. the shortest paths on G' are link simple 8. no flow reduction can occur on links adjacent to the source A consequence of the minimum total cost set of paths with repeated links is that bidirectional links will not occur. This may seem counterintuitive, but results from the shortest path always following a link reduction (negative cost) rather than link increment (positive cost). Fewest Repeated Nodes The algorithm for fewest repeated nodes is very similar, the only difference is that each node is split into "to" and "from" with an arc of cost equal to the weight connecting "to" and "from". The weight is applied to node i when it is on a minimum cost path S. The node splitting need not be explicit. It can be done implicitly by modifying Dijkstra's shortest path algorithm. The update step becomes: Lj = IIN[Lj.di+ + Li + II] Correctness proof: The following propositions are made, with proofs or references to proofs given in section 6.1.5. 1. all propositions made for link disjoint paths 2. the number of repeated nodes is minimum 3. the shortest paths on G' are node simple for all positive links Maximum Cost Link on Minimum Cost Path The maximum cost link on the minimum cost path can be found by using Dijk stra's algorithm with the sum function replaced with the maximum function. Hence the update of the label's becomes: Lj = MIN[Lj, MAX(dij, Li)] The proof is as follows: Given: A directed arc graph G(V,E), where V is the set of vertices V = {I.. 02,....V and a set of edges E = {el, 6.... em} with no selfloops. Assign a cost to each edge and denote the edge from vertex vi to vertex as u(i,j) with cost c(ij), where co < c(i.j) < 0. Algorithm: a. Initialize Unknown = V {v }; all vertices are unknown except source L[i] = c(Ai), if .'i is adjacent to v.1; the tentative cost = ,c. otherwise: of going from vertex cv to c; Define L[A] = 0 b. Find index s such that L[s] = MIN(L[i]: for all i. i an index of the vertex in the set Unknown) c. Unknown = Unknown {v,} d. For all vertices vi adjacent to v, in the set Unknown: L[i] = MIN(L[i],MAX(L[s],c(s,i))) e. If Unknown is not empty, go to step b Correctness Proof: Prove by induction that L[i] is the cost of the minimum cost path from VA to v,. basis: At initialization only the origin v,i is not in Unknown and L[A] = 0. Hence the basis is true by definition. loop invariant: If vertex vi is not in Unknown. then L[i] is the cost of the minimum cost path from vA to V'. inductive step: Assume that the loop invariant holds on the previous iteration. In the current iteration 1. choose s such that L[s] is the minimum L[i] for all vi in Unknown 2. Unknown nknon known { v,} 3. L[x] = MIN(L[x],MAX(L[s],c(s,x))), for all v, in Unknown claim i: Any path P, from v.4 to c, which has vertices from Unknown has cost greater than or equal to L[s]. Assume by way of contradiction that some path P,, has cost C, where L[s] is minimum leads to a contradiction in (1). claim ii: L[s] is the cost of the minimum cost path from c.. to v,. We know that there is a path from v., to v, using only vertices not in Unknown. By the update procedure L[s] < MAX(L[s].c(s.x)). thus L[s] < cost of minimum cost path. 6.1.5 Proofs Lemma 6.1: The 3 flow constructs of figure 6.2 provide for all possible flow aug mentations along a minimum cost path on G'. Proof: Let Fo: f[ij] = 0 and f[j,i] = 0; FF: 0 F,: f[i.j] = c[i,j] and f[j,i] = 0. Case 1): A link with no flow is represented by Fo. By definition, the flow can only increase. Links from i to j and j to i provide for an increase of flow in either direction. The cost of a flow increase is d[i,j]. Case 2) A link with nonzero flow and not saturated is represented by F. The flow in the link can either increase or decrease. A flow increase is feasible with link from i to j. The cost of the increase is W*F+d[i,j]. A flow decrease is feasible with link from j to i. The flow decrease can be represented by two parallel links from j to i: a) a negative cost link. (F1)*Wd[i.j] b) a positive cost link. d[i.j]. The flow augmenta tion is along the minimum cost path. Since (F1)*\\d[i.j] < d[i.j], the augmentation path will always follow the negative cost link. Hence the positive cost link from j to i can be neglected without loss of generality. Case 3) A saturated link is represented by F. By definition, the flow can only de crease. A link from j to i of cost W*Fd[i,j] will reduce the cost function by reducing the flow from i to j by 1 unit. Lemma 6.2: The construction of G' from G and f[i.j] provides for all minimum cost flows. Proof: Initially f[i,j] = 0 for all i and j. This state is represented by construct Fo. If a path exists from source to destination, then one or more links will have a. flow of 1 after the first flow augmentation. Each link of G will be represented by Fo.FF. or F, on G'. By lemma 6.1, all possible flow augmentations can be represented by G'. At any augmentation step 0 < i < K, FO,FF.F, represent all feasible flows because the link flow transitions due to augmentation are constrained to be: Fo FF or F, FF  Fo, FF, or F, Fc FF or Fo All flow augmentations are feasible and hence all minimum cost flows can be repre sented by G' from G and f[i,j]. Lemma 6.3: The cost function C is minimized for each flow increment. Proof: Theorem 5 in reference [18], p.121 proves a minimum cost augmentation path added to a minimum cost flow of F, produces a minimum cost flow of F + 1 for a. cost function with I" = 0. (i. e.. no penalty term). Theorem 4 in [15] shows the minimum cost path is a. shortest path. It will be shown that the cost function. C' with no penalty term for graph. G' is equivalent to a cost function. C with penalty for graph. G. Let each link on G' with capacity c[u.v] be represented as c[u,v] links of capacity 1. Assign a cost to the i'1 link as TI i+d[u.v]. By references [15.18] a minimum cost flow can be obtained on G'. Since the flow augmentation always chooses the least cost link, higher cost links can be ignored without loss of generality. Hence the cost. C' of a flow on G' with no penalty term is equivalent to the cost C with link penalty term on G. Proof using the node penalty term is analogus. Split each node into "to" and "from" nodes connected with links of capacity 1 and cost W i for the ith link. Using the same arguments for the link penalty term proves the cost function C is minimized for each flow increment and this completes the proof. Lemma 6.4: The number of paths is equal to T. f[source.j]. Proof: Let K' = Ej f[source,j]. K' is equal to the number of augmentations since each augmentation increases the flow from the source by 1. Hence there are K' paths from the source to nodes adjacent to the source. By the conservation of flow, the outgoing flow must equal the incoming flow to a node, unless it is the destination. So. if a flow of KD goes from source to destination with no intermediate nodes, then K'KD paths exist from source to destination with one or more intermediate nodes. At any intermediate layer of nodes from the source, there will be a flow of K'KD', where KD' is the flow into the destination node. By the conservation of flow there must be some layer of nodes from the source where K' = KD' and hence K' paths exist from source to destination. Lemma 6.5: The final flow is K iff S exists on the last iteration. Proof: The flow is increased by 1 with each iteration on which S exists. After K iterations, the flow is K. If S exists after K iterations, then S must have existed on the previous K1 iterations because the algorithm terminates when S does not exist. Hence the final flow is K iff S exists on the last iteration. Lemma 6.6: The number of repeated nodes or links is minimum. Proof: Assume some path P' has fewer repeated nodes or links than the minimum cost path, P. The cost of the penalty is f[i.j]:W\ with W > MAX I P 1. Since P < P'. a contradiction in the constraint MAX I P 1< \V exists. Hence the number of repeated nodes or links is minimum. Lemma 6.7: The minimum cost paths on G' are link simple. Proof: Assume paths P1 and P, exist on G' between an arbitrary pair of nodes. Suppose the flow augmentation chooses P1. then P, < PI. Reversing all links on P, results in a cycle of cost P2 P1 > 0. Hence all cycles produced by the flow augmen tation are nonnegative. Positive cost loops greater than zero violate the minimum cost path constraint and zero cost loops will not occur in a shortest path algorithm when a node simple path exists. Hence minimum cost paths on G' are link simple. Corollary 6.1: The flow on a link adjacent to the source cannot be decreased. Proof: Reduction of flow on a link adjacent to the source implies the source is on a negative cycle. As shown in lemma 6.7. negative cycles do not exist on G'. Hence the flow on adjacent links cannot be decreased. 6.1.6 Conclusions An algorithm is presented which finds Ipaths of minimum total cost with fewest repeated nodes or links. The running time is the same as that for finding a shortest path on a graph. The algorithm can be used for multiple path routing for increased reliability. Two different metrics are given: (1) propagation delay (2) retargeting frequency. The latter metric is useful for rapidly changing topologies such as the proposed SDI communications network. The solution to the minimum cost flow problem with penalty term is used. A graph to capacity flow transformation is given. 6.2 A Quick Algorithm for Disjoint Paths Suurballe [35] has given an O(K n' log(n)) algorithm for node disjoint paths of minimum total distance between a single source and all destinations. Another impor tant metric is remaining path time, where link cost is the reciprocal of remaining link time. For low altitude satellite networks, remaining link time may be only minutes. Hence to reduce the number of path changes, the minimum sum of the remaining path time reciprocals can be used. Let G be an undirected graph containing m links (edges) of nonnegative cost and n nodes (vertices). The cost of a path is defined to be the maximum cost link on the minimum cost path. An algorithm is presented which finds a maximal number of disjoint paths of minimum total cost between any pair of nodes on G. The running time of the algorithm for a single source to all n 1 destinations is O(K nm). where K is the number of disjoint paths. 6.2.1 Discussion of the Approach The maximum cost link on the minimum cost path can be found by using Dijk stra's algorithm with the sum function replaced with the maximum function. Hence the update of the label's becomes: Lj = MIN[Lj, MAX(d;, Li)] The path cost of the maximum cost link on the minimum cost path can only be from the set of link costs rather than the universal set. Using this fact will provide for a faster algorithm than Dijktra's shortest path algorithm. The speed up comes in finding the minimum cost label, which can be clone in constant time rather than log n time. The minimum cost label can be found in constant time for the maximum cost edge on the minimum cost path by using a link cost transformation. The transformation uses the index of the sorted list of link costs. If two links have the same cost, then they have the same index. Hence the range of the link costs is from 1 to the number of edges. The algorithm uses the Hlow to graph constructs given in 6.1. however the link flow is constrained to be 0 or 1. The following sections give the algorithm and proofs. 6.2.2 Disjoint Path Algorithms Link Disjoint 1. f[i][j] = 0 for all i and j (flow from i to j) 2. generate adjacent node list for each node i. AdjNodes[i][k]: i = 1,..,n and k = 1,..,DegreeOfl 3. sort links into increasing order, place in SortedLinks[i] 4. assign link numbers: count = 1: LastLink = 1 for i = 1....NumberOfLinks DO BEGIN LinkNumber[i] = count if (SortedLinks[i] NE LastLink) THEN count = count + 1 LastLink = SortedLinks[i] ENDi 5. conl[i][j] = LinkNumber[], if edge on input graph (undirected) G exists, other wise conl[i][j] = MAXINT (edge does not exist) 6. for each destination node j = 1,..,n BEGIN 7. for each path m = 1...,NumberDisjointPaths BEGIN 8. use MaxMin algorithm to find a path. S from source to j (use conl[i][j] and AdjNodes[i][k]) 9. for each edge on S between i and j: if (conl[i][j] > 0) THEN BEGIN conl[i][j] = conl[i][j] + W: f[i][j] ; con][i] = conl[j][i]; END if (conl[i][j] < 0) THEN BEGIN f[j][i] = 0; conl[j][i] = conl[j][i] VW; conl[i][j] = conl[i][j]; END 10. END m 11. use breadth first search on f[i][j] to find the paths from source to destination (use AdjNodes[i][k]) Note: f[i][j] and conl[i][j] are restored to initial state with: if (f[i][j] = 1) THEN BEGIN f[i][j] = 0; conl[i][j] = conl[i][j] WV; conl[j][i] = conl[j][i]; END 12. output disjoint paths from source to j 13. ENDj Correctness proof: The propositions made in section 6.1.4 for the Ipaths algorithm apply here. The proofs or references to proofs are given in section 6.2.3. Node Disioint The algorithm for node disjoint paths is very similar, the only difference is that each node is split into "to" and "from" with an arc of cost equal to the weight con necting "to" and "from". The weight is applied to node i when it is on a minimum cost path S. The node splitting need not be explicit. It can be done implicitly by modifying the maximum cost link on the minimum cost path algorithm. The update step becomes: L, = MIN[L,, .AX(dj, L, ) + Wj] Correctness proof: The following propositions are made. with proofs or references to proofs given in section 6.2.3. all propositions made for link disjoint paths the shortest paths on G' are node simple for all positive links Maximum Cost Link on Minimum Cost Path Determine the cost and path of the maximum cost link on the minimum cost path from source to destination. The algorithm is: 1. initialize link cost bins. best distance labels, and path tree: for i = 1....NumberOfEdges DO Bin[i] = 0 for i = 1..,n DO BEGIN L[i] = conl[source][i]; tree[i] = source; Bin[L[i]] = i: END i 2. for i = 1 to NumberOfEdges BEGIN if (Bin[i] > 0) BEGIN for all nodes j at i: for all nodes k adjacent to j: if (L[k] > MAX(L[j],conl[j][k])) THEN BEGIN tree[k] = j; L[k] = MAX(L[j],conl[j][k]); add k to Bin[L[k]]; END if 3. END i.j,k Correctness Proof: Lemma 6.8: For each pair of link costs d[i.j] and d[p,q], there is a relation Ripq = {<,=, >} which is identical to Rjpq for LinkN:umberij and LinkNumnberpq. Proof: Assume d[i,j] Rijpq d[p,q] and LikNum. beri Rjp,, LinkNumberpq. Rzjpq = Rijq because the sorting and assignment rule preserve {<,=. > }. Conversely, assume LinkNumberij RMjpq LinkNumberpq and d[i.j] R,,,,pq d[p.q]. Rijpq = R'jpq because the elements d[x,y] are sorted for all x,y and the assignment rule preserves {<,=, >}. Lemma 6.9: Compression of link values d[i,j] into LinkN.umberi( does not change the minimum cost path P. where path cost is equal to the maximum cost link. Proof: The best distance labels. Lj are determined by the rule: L = MIN[Lj,MAX(dij, Li)] Hence Lj is determined only by the maximum and minimum operators. By lemma 6.8, Rijpq = Rijp,, so the operators choose the same links. Hence compression of link values does not change the minimum cost path. 6.2.3 Proofs Lemmas 6.1 through 6.7 prove the general algorithm for fewest repeated nodes or links. No repeated nodes or links is a special case of the general algorithm. 6.2.4 Conclusions An algorithm is presented which finds disjoint paths of minimum total cost. The running time is the same as that for flow augmentation. The algorithm can be used for multiple path routing for increased reliability. CHAPTER 7 EVENT DRIVEN SIMULATION An event driven simulation can run on one or more processors and can be imple mented at the packet level or M/M/1 queueing equation level. The SDI communica tions network was simulated using both approaches. The novelty of the packet level simulation is that it runs on multiple processors with a dynamically reconfigurable network [31,34,38]. Each satellite was modeled using a DSP32 processor. The recon figurable network reflected the link assignment. The novelty of the M/M/1 queueing equation level simulation was that it would handle step changes in the traffic matrix. The importance of using these two novel approaches is that a conventional packet simulation on a uniprocessor is not feasible for large networks. The 1M/M/1 queueing equation level offers a speedup proportional to the packet transmission rate. A linear speedup in the simulation can be made by using a processor for each satellite, and connecting all processors with high speed communication links. Section 7.1 discusses the packet level simulation using multiple procesors and section 7.2 discusses the M/M/1 queueing equation level simulation. 7.1 Distributed Packet Level Simulation A simulation of a rapidly changing satellite network with laser cross links uses an AT&T DSP32 processor for each satellite. The processors are connected via a reconfigurable network which reflects the time varying topology. One or more laser channels can be optionally inserted between the processors. A combined discrete event and discrete time simulation is used for packet transfer between satellites [6,39]. Each packet contains time so that the simulation proceeds at the rate of the slowest processor. Since the minimum delay between satellites is several milliseconds and packet transfer rates of at least 10 per millisecond are used, each satellite can process packets as discrete events during the minimum delay window. 7.1.1 Objectives and Measurements The simulation provides a test of the algorithms used for link assignment, routing, link failure detection, link reconfiguration, and data link protocols. Many different algorithms have been developed and performance can be measured using various topologies. Performance measures for link assignment include connectivity, retarget ing frequency, and propagation delay. Measures for routing include endtoend delay, rerouting frequency, and number of common satellites on multiple paths between ori gin and destination. Minimizing the number of common satellites on multiple paths is an important consideration for survivable military communications. 7.1.2 Event Processing The simulation proceeds based on the slowest processor (satellite). Each processor has a counter which marks discrete time. The counter is included in each packet transmitted. When a processor receives a packet with a smaller count, that processor sets its counter to the smaller value. The synchronization of clocks is not critical since each packet transmitted has a minimum propagation delay of several milliseconds. Hence each processor can run a discrete event simulation during the interval from the processors clock to processor clock plus minimum propagation delay. The clock synchronization assumes time packets will be transmitted if no other packets are available to be sent. This adds overhead to lightly loaded links, but not to heavily loaded links. Time packets may be used in the real system as well because link establishment is done in advance and synchronized clocks are required to eliminate waiting caused by a satellite with a slower clock. 7.1.3 Hardware Architecture A multiprocessor simulation of a high data rate communications network requires that all processors be interconnected via some high speed communications network. This is necessary because packet transfers must be passed between the processors and all packets must be processed in proper time sequence. For discrete event simulation only the packet headers need be passed between the processors. However, if 100 packets/msec links are to be simulated. transferring only packet headers can be a bottleneck in the simulation. The high speed parallel and serial ports of the AT&T DSP32 are connected to DMA channels, which make it well suited as a processing element in a distributed architecture. One architecture which is being used on a board manufactured by DSP Applications, Inc. uses one slow speed DSP32 as a controller for four high speed DSP32C processors. The controller has the parallel ports of the DSP32C processors connected to its 32 bit wide data bus. Since the parallel ports are either 8 or 16 bits wide, the DSP32 controller can read or write two or four processors in a single instruction cycle. The serial ports on the controllers can be connected in a ring to form a 2connected network. In addition, the serial ports on the DSP32C processors can be connected in a variety of ways to form a 3connected network. The serial port interconnection need not be static. 64X61 crossbar chips are available from Texas Instruments which could be used to dynamically configure the DSP32C serial ports. This architecture offers an improvement over the AT&T ASPEN machine which uses the serial ports connected into a binary tree. In a binary tree. nodes near the root become a bottleneck. This can be avoided by using a ring, at the expense of a longer worst case path between processors. But this worst case path can be reduced by connecting DSP32C processors as cords on the ring (using serial ports). Use of a controller for four processors offers two kinds of satellite network sim ulations: 1) each DSP32C can be modeled as a satellite. 2) each DSP32C can be modeled as a transmit/receive processor, so the satellite is modeled by the controller and four DSP32C processors. The latter configuration offers four times the data rate, but fewer nodes. This type of simulation is useful for realtime demonstrations. An important advantage of the controller, four DSP32C processor architecture is the modularity. Each DSP32C with 12S Kbvtes of memory and 25 MFLOPS of processing capability can be contained on a 4" by 4" plugable card. A single board for the IBM PC could contain a DSP32 controller and four DSP32C plugin cards. This would offer 100 MFLOPS of processing power. Multiple controller cards could be used and all DSP32C processors would be fully connected via the controllers. Hence any satellite topology could be accommodated via the parallel ports or the serial ports. The parallel port on the DSP32 controller is used to communicate with a host for antenna direction control. The host controls the network configuration based on the antenna direction commands received from each DSP32 controller. 7.1.4 Software Architecture The software in each node is identical and executes as a single process. A node could be either a single DSP32C or an IBM PC host with DSP32 controller and four DSP32C processors. The software uses an object oriented approach. The objects are satellites and packets. The following tables give the attributes of each. SATELLITE Attribute Description CurrentAntenna[4] FutureAntenna[4] FutureAntTime[4] CurPathPointer[4] FurPathPointer[4] Position[3] NextPacketTime list of satellites pointed at list of satellites to be pointed at time antennas will be pointed pointer to list of satellites on path pointer to list of satellites on future path x,y,z coordinates of position time next packet will be generated PACKET Attribute Source Destination PathNumber Stime Atime DataField Description source satellite number destination satellite number path number for disjoint paths start time arrival time packet data Each satellite contains a description of all other satellites in the network. The descriptions are updated based on packet exchange and predicted satellite positions. It is assumed that each satellite has four antennas (the number of processors time multiplexed). Hence the dimension of four on the satellite attributes. The four path pointers are for multiple paths. For example, the satellite j description by satellite i would have the first satellite on the path as i and the last as j. Link assignment and routing can be clone in advance since orbital mechanics are used to predict future satellite positions. Hence no transmission time is lost due to the overhead of executing the algorithms. Each packet has a path number and an optional data field. The path number is used to uniquely define the packet route when node disjoint routing is used. Other routing algorithms use only the destination and ignore path number. The data field can be null for information packets. This reduces the simulation communication between processors. The simulation statistics reflect the transmission of a full data field by adjusting arrival times (Atime) to be propagation delay plus transmission time of a full packet. The transmission queues (propagation) are combined with the satellite antenna queues for ease in processing. The Atime is the time the packet will arrive at the satellite. Hence, the packet stays in the queue until the simulation clock is greater than Atime. The queues are sorted based on Atime. For packets being generated, the Stime and Atime are the same. When a packet reaches its destination, the delay statistics are computed and the packet disappears. Routing and link control are passed via the data field. For most packets this field is null. but for packets where link change information is needed or protocol testing is desired, the field is filled in. The event handler provides two services (1) it checks all incoming packets for routing or link control information and passes them to the appropriate control rou tines, (2) passes all other packets to the routing routine for satellite queue determi nation or if it has reached its destination, it passes then to the packet delay statistics routine. 7.1.5 Software Module Description The satellite simulation program is written in Clanguage. The modules are in clude files, which facilitate algorithm testing. A common set of procedure calls are used for each module. Hence, if a different link assignment algorithm is to be tested, only the include file name need be changed. The following table provides the functions of the current modules. Module Name Functions connect.li disjoint paths, graph connectivity topology.h 3D rotation. satellite visibility, orbits kpaths.h multiple path routing algorithms neighbor.h nearest neighbor link assignment packet.h packet generation and queueing schedule.h event handling, simulation control 7.1.6 Conclusions A DSP32 multiprocessor architecture is described which will accommodate high speed simulation of large networks. The processors are 3connected with a dynamic topology. The topology can be made to match a rapidly changing satellite network topology. The advantages of the multiprocessor architecture include: 1) modularity, 2) high speed communication. 3) nodes can be modeled as a single processor or four processors. 4) dynamic reconfigurable network. 5) all processors are fully connected via DSP32 controllers. The software architecture is also modular, using include files to implement the net work communications software. A common calling convention allows link assignment and routing algorithms to be swapped without affecting the rest of the simulation program. 7.2 NM/M/1 Queeing Level Simulator The MI/M/1 notation means that packet generation is done using an exponential distribution. This should be valid for target report generation which is expected to account for 80% of the SDI traffic. Other assumptions of M/M/1 include unbounded buffers and firstcomefirstserve scheduling of t lie queues. The latter restriction does not mean that preemption cannot be used for priority packets. If priority packets are few in number, then the queueing delay can be neglected, since it should be small compared to the propagation delay. The principal advantages of 1M/M/1 for the SDI simulation are: 1. analytical solutions can be used to reduce simulation time 2. the simulation results reflect the true average characteristics of the network 3. transient responses can be studied The disadvantages of M1/M/1 include: 1. worst case conditions may be hard to represent 2. 1M/M/1 assumptions may not be valid Because of link and routing changes, an lM/I/1 simulation would not be appro priate for SDI. However, a mixture of NI/NI/1 and packet level could certainly be valid. The following sections describe the equations and algorithms for computing the packet endtoend delay for a transient response. It is assumed the SDI traffic will be a series of traffic steps. 7.2.1 Total Delay The total elapsed time between when a packet is sent and when a packet is received is the total delay. This delay contains propagation delay and queueing delay. The propagation delay is constant if the topology does not change and is simply the ratio of distance and velocity of light in a vacuum. The queueing delay varies and has a minimum time equal to the time it takes to transmit one packet in a store and forward network. In a relay node, the queueing time can be zero because the packet is not stored before it is retransmitted. For high data rate satellite networks, the transmission time is microseconds while the propagation time is milliseconds. so the packet store time can be neglected (swamped by propagation time). For the M/MI/1 equation level simulator an algorithm is needed to first compute the link flows and then add the propagation delay and queueing delay. The queueing delay is given by: queuedelay = (7.1) linkcapacity linkflow The algorithm for finding the total network delay is: TrafficFlow[i,j] = packets/sec from satellite i to satellite j ProbabilityOfUse[i,j,k] = probability of using path k from satellite i to satellite j /* k = 1,2,3,4 */ for i = 1 to Np*Ns for j = (i+1) to Np*Ns { generate 4 node disjoint paths from i to j for k = 1 to 4 /* node disjoint paths 1,2,3,4 */ { PropagationDistance = sum of D values from closed formula P = ProbabilityOfUse[i,j,k] PropagationDelay[i,j] = PropagationDelay[i,j] + P*PropagationDistance/SpeedOfLight for nodes = 1 to nodes_on_path_k 1 { p = from_node q = to_node Flow[p,q] + Flow[p,q] + P*TrafficFlow[i,j] Flow[q,p] = Flow[q,p] + P*TrafficFlow[j,i] } } } C = linkcapacity /* link_capacity > Max(Flow[i,j]) */ for i = 1 to Np*Ns for j = (i+1) to Np*Ns { TotalDelay[i,j] = PropagationDelay[i,j] TotalDelay[j,i] = PropagationDelay[i,j] generate 4 node disjoint paths from i to j P = ProbabilityOfUse[i,j,k] for k = 1 to 4 /* node disjoint paths 1,2,3,4 */ for nodes = 1 to nodes on_path_k 1 { p = from_node q = tonode TotalDelay[i,j] = TotalDelay[i,j] + P/(CFlow[p,q]) TotalDelay[j,i] = TotalDelay[j,i] + P/(CFlow[q,p]) } } 7.2.2 Transient Response The transient response for the packet level simulator only requires monitoring the packet delays and computing a running average over some time interval. A convenient interval is one millisecond. This interval is short compared to link propagation delays (> 50 milliseconds), but long enough to average out the delay fluctuations caused by exponential arrival times. The transient response for the M/M/1 queueing equation level simulator uses the following algorithm: 1. compute the steadystate total delay at time Ti for an Np.Ns network with traffic matrix TM(Ti) and routing probability matrix RP(Ti) 2. compute the steadystate total delay at time Ti+1 for an Np.Ns network with traffic matrix TM(Ti+1) and routing probability matrix RP(Ti+i) 3. find propagation times from each source node to each node along the path to the destination node for all 2Np*Ns*(Np*Ns1) paths 4. store the from node, to node, and corresponding propagation delay plus linear approximation to queue delay I QueDelay(T,) = LinkCap LiokFlouw(,) QueDelay(T,+1) = LinkCap LinkFlow(Ti+1) DT = (T+) (Ti) t Ti QueueDelay(t) = QueDelay(Ti) + T (QueDelay (Ti+) QueDelay(Tj)) 5. order the times in a list, Tsl, Ts2, Tsn 6. for T = TsI, Ts2,..., Tsn for all nodes in the list at time T Fij(Tk) = Fij(Tk) + ATMsdRPsd (Tk T,)/DT where Fij(Tk) is the steadystate flow from i to j at time TA. ATMsdRPsd = TMsd(Ti+ )RPsd(Ti+,) TlIsd(T,) RPsd(Ti) TMsd(Ti) is the source to destination traffic flow at time T, 7.2.3 Conclusions An analytical method for computing the step response of a network is presented which gives the average delay as a function of time. This approach is valid for 85 networks where propagation delay is long compared to queueing delay. The principal advantages of this approach include: 1) average packet delay can be computed for large networks, 2) true M/M/1 average delays are computed, 3) preemption can be accommodated for priority packets. CHAPTER 8 CONCLUSIONS This dissertation considers the SDI communications network as a system. Met rics for the performance of the system were given and solutions were derived which optimized the metrics. Section 8.1 gives the significant results of the optimization. The close association of topology, link assignment, routing, and performance metrics are given in section 8.2. Finally, future work that could be (lone is given in 8.3. 8.1 Significant Results Topology optimization was possible using the closed formulas derived for the Np, \, model. The metrics were propagation delay and connectivity. Algorithms were developed for more general topologies. Link assignment was optimized using the Np, N, mesh. The connectivity was op timal for N:V N, topologies with 4 antennas and general topologies were near optimal. An analytical solution was derived for the propagation delay of the Np, Ns mesh. Routing algorithms were developed which have a primary objective of minimum total cost and a secondary objective of fewest repeated nodes or links. The algorithm for Kpaths of minimum total cost with fewest repeated nodes or links is a gener alization of Suurballe's node disjoint algorithm. The generalization makes use of a modified minimum cost flow problem which has a penalty term for multiple uses of a node or link. The generalization also includes the linear metric of distance and the nonlinear metric of maximum cost link on the minimum cost path. The latter metric is important when the overhead of retargeting is appreciable. This metric also offers an asymptotically faster algorithm for the single source to all destinations routing problem. 8.2 M~etrics The source to destination delay of packets consists of queueing delay and prop agation delay. Using a single metric such as propagation delay for optimizing link assignment can result in a small improvement in delay at the expense of reduced connectivity and increased hops per path. These latter two metrics are important for multiple path routing and congestion. Simulation of the NA,. A, mesh link assign ment has shown that shortest paths using distance as a metric may have several more nodes than a shortest path using hops as a metric. In addition, comparison of hop counts for shortest distance paths using 4 antennas and unlimited antennas shows the longer paths with several more nodes. To minimize congestion, paths should have the fewest possible nodes. The NA, N, mesh link assignment may not be the best possible compromise between propagation delay, connectivity, and hops per path. A heuristic such as Np, NA mesh could be improved by using a penalty for each link used on a path. This might also reduce the number of repeated nodes or links in the Kpaths routing algorithms. 8.3 Association of Algorithms and Performance The SDI communications network can be considered at the system level with inputs and outputs. The inputs can be constrained to be injected packets and link disturbances; while the ouputs are delivered packets. The topology, link assignment, and routing algorithms are part of the system and effect the endtoend delay of the packets. The association between topology, link assignment, and routing algorithms in this dissertation is principally connectivity. The number of disjoint paths is limited by the link assignment, which in turn is limited by the visibility matrix of the topology. The performance measures are metrics to evaluate how well the topology, link assignment, and routing algorithms work individually and as a whole system. Simulation provides qualitative performance results for the algorithms using general topologies. 8.4 Extensions of the Research Metric The link assignment and routing algorithms use a single metric for the primary or secondary objective. Some combination of metrics could be used. Using Feedback From the Routing Algorithm Algorithms have been given for link assignment and for routing, but the algorithms work independently with the common objective of multiple paths of fewest common nodes or links. An algorithm with feedback from routing to topology could produce fewer common nodes or links. If the topology is considered fixed (such as a deployed SDI system), then the feedback could be from routing to link assignment. Neural networks have been used to solve optimization problems with feedback. Perhaps n2 perceptrons would be needed to model n satellites, but the perceptrons can be implemented on a digital computer. The ideal digital computer would have a processor for each perception. Such an implementation has become feasible with cheaper processors. APPENDIX A NODE DISJOINT PATHS Tables A.2 and A.4 contain the node disjoint paths for the mesh link assignment using topologies of Np = 2. Ns = 3 and Ns = 4 respectively. The satellite numbers are assigned according to the following equation: SatelliteuVumber = 1 + Ns i + j, where i = 0..... Vp 1 and j = 0 ..., Ns 1 Table A.6 has the time invariant node disjoint paths for Np = 2, Ns = 3. Table A.1. Adjacency Matrix for Np = 2. Vs = 3 connectivity from i to j j\i 1 2 :3 4 5 6 1 0 1 1 1 01 2 1 0 1 1 1 0 3 1 1 0 0 1 1 4 1 1 0 0 1 1 5 0 1 1 1 0 1 6 1 0 1 1 1 0 Table A.2. Node Disjoint Paths for Np' = 2. Ns = 3 node disjoint paths 1 6 5 2 3 6 4 142 3 5 4 1 3 2 3 2 4 12 3 14 1 6 3 3 6 5 1 4 5 3 35 13 3 25 1 2 3 3 1 4 5 1 6 1 3 6 1 4 3 5 6 1 3 5 4 3 2 4 6 1 2 4 3 1 6 1 6 5 4 6 5 145 45 135 425 1 2 5 4 1 3 5 1 6 4 6 146 4 5 6 1 3 6 4 2 36 1 2 5 6 4 1 6 2 5 3 56 2 4 6 3 5 4 6 2 3 5 3 6 2 1 3 5 2 1 6 2 5 4 2 4 2 3 6 4 2 1 4 214 2 5 245 2 4 5 2 3 5 2 1 6 5 2 5 6 2 4 6 2 3 6 2 1 6 236 216 