Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010304019 | TK5105.5 L89 2012 | Open Access Book | Book | Searching... |
Searching... | 33000000017758 | TK5105.5 L89 2012 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
For fast, easy modeling, this practical guide provides all the essential information you need to know. A wide range of topics is covered, including custom protocols, programming in C++, External Model Access (EMA) modeling and co-simulation with external systems, giving you the guidance not provided in the OPNET documentation. A set of high-level wrapper APIs is also included to simplify programming custom OPNET models, whether you are a newcomer to OPNET or an experienced user needing to model efficiently. From the basic to the advanced, you will find topics are easy to follow with theory kept to a minimum, many practical tips and answers to frequently asked questions spread throughout the book and numerous step-by-step case studies and real-world network scenarios included.
Author Notes
Hongji Yang holds a Ph.D. in computer science from Durham University and a M. Phil. and B.Sc. in computer science from Jilin University in China.
He is a reader at DeMontfort University in England. His previous positions include senior research assistant at Durham University and lecturer at Jilin University in China. Dr. Yang has done extensive research in the areas of software engineering and computer networking. He has published extensively.
050
Table of Contents
Preface | p. xi |
List of abbreviations | p. xiii |
Part I Preparation for OPNET Modeling | p. 1 |
1 Introduction | p. 3 |
1.1 Network modeling and simulation | p. 3 |
1.2 Introduction to OPNET | p. 4 |
1.3 OPNET Modeler | p. 5 |
1.4 Summary | p. 6 |
1.5 Theoretical background | p. 6 |
1.5.1 Simulation and principles of simulator | p. 6 |
1.5.2 Hybrid simulation | p. 9 |
2 Installation of OPNET Modeler and setting up environments | p. 11 |
2.1 System requirements for using OPNET Modeler | p. 11 |
2.2 Installation on Windows | p. 11 |
2.2.1 Installation of OPNET Modeler | p. 12 |
2.2.2 Installation and configuration of Microsoft Visual C++ | p. 15 |
2.2.3 OPNET Modeler preferences for C/C++ compiler | p. 17 |
2.2.4 Licensing | p. 19 |
2.3 Installation on Linux | p. 20 |
2.3.1 Installation of OPNET Modeler | p. 20 |
2.3.2 Installation and configuration of GCC compiler | p. 21 |
2.3.3 OPNET Modeler preferences for GCC compiler | p. 21 |
2.3.4 Licensing | p. 22 |
2.4 Theoretical background | p. 23 |
2.4.1 Compilation and linking options | p. 23 |
2.4.2 Simulation models compilation and linking | p. 23 |
3 OPNET Modeler user interface | p. 24 |
3.1 Project management | p. 24 |
3.2 Modeler preferences | p. 26 |
3.3 OPNET editors | p. 29 |
3.3.1 Project Editor | p. 29 |
3.3.2 Node Editor | p. 31 |
3.3.3 Process Editor | p. 31 |
3.3.4 Link Editor | p. 32 |
3.3.5 Packet Format Editor | p. 32 |
3.3.6 ICI Editor | p. 34 |
3.3.7 PDF Editor | p. 35 |
3.3.8 Probe Editor | p. 35 |
3.4 Simulation Results Browser | p. 37 |
3.5 Animation Viewer | p. 37 |
3.6 Using OPNET documentation | p. 39 |
Part II Modeling Custom Networks and Protocols | p. 41 |
4 OPNET programming interfaces | p. 43 |
4.1 Introduction to OPNET programming | p. 43 |
4.2 OPNET API categorization | p. 44 |
4.3 Kernel APIs/Kernel Procedures (KPs) | p. 45 |
4.3.1 Distribution Package | p. 46 |
4.3.2 Packet Package | p. 49 |
4.3.3 Queue Package and Subqueue Package | p. 51 |
4.3.4 Statistic Package | p. 51 |
4.3.5 Segmentation and reassembly package | p. 52 |
4.3.6 Topology package | p. 52 |
4.3.7 Programming Support APIs | p. 54 |
4.4 Theoretical background | p. 54 |
4.4.1 Proto-C specifications | p. 54 |
4.4.2 Process model and external model access (EMA) program | p. 56 |
4.4.3 OPNET Modeler model programming external interfaces: co-simulation, external tool support (ETS) and OPNET Development Kit (ODK) | p. 56 |
5 Creating and simulating custom models using OPNET APIs | p. 58 |
5.1 General procedure for creating and simulating custom models | p. 58 |
5.2 Custom models | p. 59 |
5.2.1 Case 1 | p. 59 |
5.2.2 Case 2 | p. 68 |
5.2.3 Case 3 | p. 70 |
5.2.4 Case 4 | p. 74 |
5.2.5 Case 5 | p. 79 |
5.2.6 Case 6 | p. 83 |
5.2.7 Case 7 | p. 95 |
5.3 Model optimization and validation | p. 96 |
6 High-level wrapper APIs | p. 100 |
6.1 Why and how to use wrapper APIs | p. 100 |
6.2 Wrapper APIs provided with the book | p. 101 |
6.2.1 Geo_Topo wrapper APIs | p. 102 |
6.2.2 Routing wrapper APIs | p. 104 |
6.2.3 Flow wrapper APIs | p. 106 |
6.3 How to write your own wrapper API | p. 107 |
7 Modeling with high-level wrapper APIs | p. 110 |
7.1 Revisit of previous case | p. 110 |
7.2 Creating connection-oriented communications | p. 112 |
7.2.1 Single flow | p. 114 |
7.2.2 Trunk of flows | p. 119 |
Part III Modeling and Modifying Standard Networks and Protocols | p. 123 |
8 Modeling wired networks with standard models | p. 125 |
8.1 Client/server structure | p. 125 |
8.1.1 Creating a network model | p. 125 |
8.1.2 Task, application, and profile configurations | p. 127 |
8.1.3 Choosing and viewing statistic results | p. 131 |
8.2 Local area network | p. 132 |
8.3 Wide area IP network | p. 132 |
8.4 Automatic network deployment | p. 134 |
8.5 Summary | p. 135 |
9 Modeling wireless networks with standard models | p. 137 |
9.1 Basics of wireless modeling | p. 137 |
9.2 Wireless local area networks (WLANs) | p. 138 |
9.2.1 Communication within WLANs | p. 138 |
9.3 Communication between WLANs | p. 140 |
9.4 Wireless mobile networks | p. 143 |
9.4.1 Movement via trajectories | p. 143 |
9.4.2 Facilities for random mobility | p. 146 |
9.4.3 Movement via programming interfaces | p. 148 |
9.5 Automatic network deployment | p. 148 |
10 Modifying standard models | p. 151 |
10.1 Introduction | p. 151 |
10.2 Case study | p. 151 |
Part IV OPNET Modeling Facilities | p. 165 |
11 Debugging simulation | p. 167 |
11.1 Debugging facilities in OPNET Modeler | p. 167 |
11.1.1 Prerequisites for debugging | p. 168 |
11.1.2 Preparing simulation scenario | p. 168 |
11.1.3 Debugging with ODB | p. 169 |
11.1.4 Debugging with CDB/GDB | p. 175 |
11.1.5 Debugging with Microsoft Visual C++ Debugger | p. 177 |
11.1.6 Debugging with animation | p. 179 |
12 OPNET programming in C++ | p. 182 |
12.1 Proto-C, C, and C++: language and library differences | p. 182 |
12.2 Memory management differences between Proto-C APIs and C/C++ standard library functions | p. 182 |
12.3 Proto-C data structures and algorithms packages, C++ standard template libraries (STL) and Boost C++ libraries | p. 184 |
12.4 Environment configurations for C++ programming in OPNET | p. 185 |
12.5 Case study on programming OPNET models in C++ | p. 187 |
13 Traffic in OPNET simulation | p. 194 |
13.1 Introduction | p. 194 |
13.2 Explicit traffic | p. 194 |
13.2.1 Explicit traffic based on application | p. 195 |
13.2.2 Explicit traffic based on traffic generation parameters | p. 196 |
13.2.3 Explicit self-similar traffic based on raw packet generator (RPG) model | p. 197 |
13.3 Background traffic and hybrid simulation | p. 200 |
13.3.1 Background traffic based on baseline load | p. 201 |
13.3.2 Background traffic based on traffic flow | p. 202 |
14 External model access (EMA) | p. 207 |
14.1 What EMA is and reasons to use it | p. 207 |
14.2 EMA case study | p. 208 |
15 OPNET co-simulation with third-party programs | p. 215 |
15.1 Co-simulation with external programs | p. 215 |
15.1.1 Introduction | p. 215 |
15.1.2 Co-simulation with an external C program | p. 216 |
15.1.3 Creating simulation models | p. 217 |
15.1.4 Creating an external C co-simulation controller program | p. 221 |
15.1.5 Running co-simulation | p. 224 |
15.1.6 Co-simulation with other systems | p. 225 |
15.2 Co-simulation with MATLAB | p. 225 |
15.2.1 Setup of environment variables | p. 226 |
15.2.2 Modifying OPNET models and external code | p. 226 |
16 Model authoring and security | p. 232 |
16.1 Introduction | p. 232 |
16.2 Protecting a model | p. 232 |
16.3 Making a demo model | p. 234 |
16.4 Licensing a model | p. 234 |
References | p. 236 |
Index | p. 237 |