Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Free access

NEST: a network simulation and prototyping testbed

Published: 01 October 1990 Publication History

Abstract

The Network Simulation Testbed (NEST) is a graphical environment for simulation and rapid-prototyping of distributed networked systems and protocols. Designers of distributed networked systems require the ability to study the systems operations under a variety of simulated network scenarios. For example, designers of a routing protocol need to study the steady-state performance features of the mechanism as well as its dynamic response to failure of links or switching nodes. Similarly, designers of a distributed transaction processing system need to study the performance of the system under a variety of load models as well as its response to failure conditions. NEST provides a complete environment for modeling, execution and monitoring of distributed systems of arbitrary complexity.
NEST is embedded within a standard UNIX environment. A user develops a simulation model of a communication network using a set of graphical tools provided by the NEST generic monitor tools. Node functions (e.g., routing protocol) as well as communication link behaviors (e.g., packet loss or delay features) are typically coded by the user in C; in theory, any high-level block-structured language could be supported for this function. These procedures provided by the user are linked with the simulated network model and executed efficiently by the NEST simulation server. The user can reconfigure the simulation scenario either through graphical interaction or under program control. The results of an execution can be graphically monitored through custom monitors, developed using NEST graphical tools.
NEST may thus be used to conduct simulation studies of arbitrary distributed networked systems. However, unlike pure simulation tools, NEST may also be used as an environment for rapid prototyping of distributed systems and protocols. The actual code of the systems developed in this manner can be used at any development stage as the node functions for a simulation. The behavior of the system may be examined under a variety of simulated scenarios. For example, in the development of a routing protocol for a mobile packet radio network, it is possible to examine the speed with which the routing protocol responds to changes in the topology, the probability and expected duration of a routing loop. The actual code of the routing protocol may be embedded as node functions within NEST. The only modifications of the code will involve use of NEST calls upon the simulated network to send, receive or broadcast a message. Thus NEST is particularly useful as a tool to study the performance behavior of real (or realisticly modeled) distributed systems in response to simulated complex dynamical network behaviors. Such dynamic response is typically beyond the scope of analytical techniques restricted to model steady-state equilibrium behaviors.
Traditional approaches to simulation are either language-based or model-based. Language-based approaches (e.g., Simula, Simscript) provide users with specialized programming language constructs to support modeling and simulation. The key advantage of these approaches is their generality of applications. These approaches, however, are fundamentally limited as tools to study complex distributed systems: First, they separate the tasks of modeling and simulation from those of design and development. A designer of a network protocol is required to develop the code in one environment using one language (e.g., C), while simultaneously developing a consistent simulation model (e.g., in Simscript). The distinctions between the simulation model and the actual system may be significant enough to reduce the effectiveness of simulation. This is particularly true for complex systems involving a long design cycle and significant changes. Second, these approaches require the modeler to efficiently manage the complexity of scheduling distributed system models (under arbitrary network scenarios).
Model-based approaches (e.g., queuing-network simulators such as IBM's RESQ [12]) provide users with extensive collections of tools supporting a particular simulation-modeling technique. The key advantage of model-based approaches is the efficiency with which they may handle large-scale simulations by utilizing model-specific techniques (e.g., fast algorithms to solve complex queuing network models). Their key disadvantage is a narrower scope of applications and questions that they may answer. For example, it is not possible within a pure queuing-network model to model and analyze complex transient behaviors (e.g., formation of routing loops in a mobile packet radio network). The model-based approach, like the language-based approaches, suffers from having simulation/testing separated from design/development. It has the additional important disadvantage of requiring users to develop in-depth understanding of the modeling techniques. Designers of distributed database transaction systems are often unfamiliar with queuing models.
NEST pursues a different approach to simulation studies: extending a networked operating system environment to support simulation modeling and efficient execution. This environment-based approach to simulation shares the generality of its modeling power with language-based approaches. NEST may be used to model arbitrary distributed interacting systems. NEST also shares with the language-based approach an internal execution architecture that accomplishes very efficient scheduling of a large number of processes. However, unlike language-based approaches, the user does not need to be concerned with management of complex simulation scheduling problems. Furthermore, NEST does not require the user to master or use a separate simulation language facility; the processes of design, development and simulation are fully integrated. The user can study the behavior of the actual system being developed (at any level of detail) under arbitrary simulated scenarios. The routing protocol designer, for example, can attach the routing protocol designed (actual code with minor adjustments) to a NEST simulation and study the system behavior. As the system changes through the design process, new simulation studies may be conducted by attaching the new code to the same simulation models. NEST can thus be used as an integral part of the design process along with other tools (e.g., for debugging).
In similarity to model-based approaches, NEST is specifically targeted toward a limited scope of applications: distributed networked systems. NEST supports a built-in customizable communication network model. However, this scope has been sufficiently broad to support studies ranging from low-level communication protocols to complex distributed transaction processing systems, avionic systems and even manufacturing processes.
The environment-based approach to simulation offers a few important attractions to users:
1. Simulation is integrated with the range of tools supported by the environment.
The user can utilize graphics, statistical packages, debuggers and other standard tools of choice in the simulation study.
Simulation can become an integral part of a standard development process.
2. Users need not develop extensive new skills or knowledge to pursue simulation studies.
3. Standard features of the environment can be used to enhance the range of applicability.
NEST simulation is configured as a network server with monitors as clients. The client/server model permits multiple remote accesses to a shared testbed. This can be very important in supporting a large-scale multisite project.
In this article we describe the architecture of NEST, illustrate its use, and describe some aspects of NEST implementation. We will also feature its design and provide examples of NEST applications.

References

[1]
Barak, A. International Computer Science Institute, Berkeley, private communication, 1989.]]
[2]
Bacon, D., Dupuy, A., Schwartz, J., Yemini, Y. Nest: A network simulation and prototyping tool. Winter USENIX Technical Conference, February 1988.]]
[3]
Bertsekas, D. Data Networks. Prentice-Hall, Englewood Cliffs, N J. 1987.]]
[4]
Demers, A., Keshav, S., Shenker, S. Analysis and simulation of a fair queuing algorithm. In Proceedings of the ACM SIGCOMM Symposium on Communications Architectures and Protocols, (September 1989).]]
[5]
Dupuy, A., Bacon, D. A Distributed Position Location System. Columbia University, 1987.]]
[6]
Dupuy, A., Schwartz, J. Nest User Interface Manual and Nest User's Guide, Columbia University, March 1988.]]
[7]
Ferguson, D., Nikolau, C., Yemini, Y. Microeconomic algorithms for dynamic load balancing in distributed computer systems. Res. Rep., IBM T.J. Watson Research Center, Yorktown Heights, NY, October 1989.]]
[8]
Ferguson, D., Nikolau, C., Yemini, Y. Microeconomic algorithms for flow control in virtual circuit networks. Res. Rep., IBM T.J. Watson Research Center, Yorktown Heights, NY, January 1990.]]
[9]
Hedrick, C. L. Routing Information Protocol. Network working group RFC 1058, SRI International, June 1988.]]
[10]
Keshav, S. REAL: A network simulator. Tech. Rep. UCB/CSD 88/472, University of California at Berkeley, December 1988.]]
[11]
Rose, M. The Nest simulation facility at NRTC. Tech. Rep., Northrop Research and Technology Center, 1987.]]
[12]
Sauer, C. H., McNair, E. A., Kurose, J. F. The Research Queuture. In Proceedings of the National Computer Conference, Arlington, VA, 1982.]]
[13]
Sun Microsystems, Inc. SunOS 4.0 system services overview. 1988.]]
[14]
Swinyer, B. Comparison of routing algorithms. Project Rep., Columbia University, 1988.]]

Cited By

View all
  • (2022)Functional and Performance Analysis of Discrete Event Network Simulation ToolsSimulation Modelling Practice and Theory10.1016/j.simpat.2021.102470116(102470)Online publication date: Apr-2022
  • (2020)The Case for Custom Storage Backends in Distributed Storage SystemsACM Transactions on Storage10.1145/338636216:2(1-31)Online publication date: 18-May-2020
  • (2020)Algorithm 1010ACM Transactions on Mathematical Software10.1145/338624146:2(1-28)Online publication date: 19-May-2020
  • Show More Cited By

Recommendations

Reviews

Paul Adrian Luker

The devotion of this issue of Communications of the ACM to simulation attests to the increasing importance of simulation as a tool to help understand and manage our increasingly complex world. This special issue is also evidence of a recognition that simulation poses interesting problems for the computer scientist. For example, many simulationists are concerned with the integration of artificial intelligence techniques and traditional simulations, while others, in a quest for speed, are developing simulations for distribution over multiprocessor systems, or LANs. For papers like those in this issue, the reader would normally have to consult specialist publications, such as those of the Society for Computer Simulation, or the proceedings of simulation conferences. This collection has been produced from reworkings of papers presented at the 1989 Winter Simulation Conference, an annual conference that primarily addresses discrete event simulation. The collection was compiled, edited, and introduced by the program chair of the conference, Philip Heidelberger. The introduction is quite short and is little more than a (good) summary of each paper. My only major concern with the special issue is that it lacks the glue to hold the components together. Each paper is excellent in its own way, but the reader who is not familiar with discrete event simulation may not find it easy to put each contribution into its proper context. I would have liked to see a longer introduction that provided a general overview of discrete event simulation and led into each paper at the appropriate point. Further, the ordering of the papers shows no clear logic. L'Ecuyer's paper, for example, is germane to all discrete event simulations, while Fujimoto's paper addresses distributed simulation which, though very interesting, is at present relevant to fewer would-be simulationists. Richard Fujimoto's paper is by far the longest contribution to the special issue. A well-known and respected author in the area of distributed simulation, Fujimoto has here produced an excellent introduction to parallel discrete event simulation, beginning with a review of the nature of discrete event simulation (which may justify the paper's position in the vanguard). Typically, discrete event systems are asynchronous. The simulation is decomposed into a set of concurrent processes that may be mapped onto different processor configurations, loosely or tightly coupled, to achieve a speedup in performance. The parallelization is data-dependent and is certainly not amenable to techniques such as vector processing. Consequently, parallel discrete event simulation is seen as a model for distributed computation in general. For all discrete event simulations, the key problem is to process events in increasing simulation time (or timestamp) order. If this order is violated, then causality errors can arise, in which an event could affect a past event—clearly no more acceptable in the simulation than in the system being simulated. In parallel discrete event simulation, each real-world process is represented in the simulation by a logical process, which communicates with other processes by sending messages that represent future events. However the simulation is implemented, each logical process has to process events in increasing order of event time. Herein lies the challenge. Fujimoto discusses at some length the two basic mechanisms, conservative and optimistic, to meet this challenge. He follows the description of each method with an assessment of its performance and a critique. Conservative mechanisms, as the name implies, avoid causality errors by only processing an event when it is safe to do so. This requires blocking processes, which in turn can lead to deadlock. Fujimoto describes schemes for overcoming deadlock and discusses a number of approaches to performance optimization. Optimistic mechanisms detect causality errors after the fact and then recover from them, which involves “undoing” any damage. The author describes Time Warp, the best known optimistic method, along with variations and alternative and hybrid approaches. In sum, Fujimoto's paper will interest anybody who wants to speed up a discrete event simulation and anybody curious about parallel and distributed computation in general. The second paper, by Jain, Barber, and Osterfeld, describes a specific application of discrete event simulation: plant floor scheduling in computer integrated manufacturing. Although specific in focus, this contribution has a general interest in that it describes the integration of an expert system with simulation software. The expert system is used to capture the human scheduling expertise, while the simulation is used to produce schedules and identify decision points. The authors discuss the expert system component first. They assess the limitations of existing packages and make the case for using the expert system. When constructing the expert system, the authors had access to a good human expert, who, from the description given, seems to have been a knowledge engineer's dream. Their simulation component employs backward simulation, analogous to backward reasoning, which starts with the same goal state and moves backwards in time to the initial state. Such a method makes it easier to accommodate just-in-time scheduling. Compatibility between the two components was achieved through the use of object orientation. Specifically, KEE was used for the expert system and LISP for the simulation. Having explained the architecture of their system, the authors explain and illustrate its role on the factory floor. They conclude by discussing some of the advantages of their system, which will interest those who wish to combine expert systems and simulations. One of the problems cited is the difficulty of interfacing AI hardware with general-purpose hardware: in particular, the communication overhead can be prohibitive. Among the advantages listed are the ability to perform rapid prototyping with the expert system shell and the flexibility of the frame-based knowledge representation scheme used. The next paper describes another specific application, NEST. Once again, though, the architecture of the system is of general appeal. NEST is a graphical environment, embedded within UNIX, for the simulation and rapid prototyping of distributed, networked systems. It can be used to investigate such things as performance, fault tolerance, and protocols. The structure of the problem is described graphically, while algorithms (for routing or other protocols) are written in C. The results of the simulations are displayed graphically. The authors contrast the basic approach of NEST to what they call the “traditional approaches,” which are either language-based or model-based. In the former approach, the simulation is specified in its entirety using a simulation language. While this allows maximum generality, it separates modeling and simulation from the processes of design and development. It is also tedious and error-prone. The model-based approach, using special-purpose packages such as RESQ, is less flexible, only allowing a limited scope, but it can lead to excellent run-time efficiency. Language- and model-based systems both require expertise of the user. These disadvantages led the authors (and many other workers) to adopt an environment-based approach, which provides the user with a high level of support without requiring a lot of expertise. NEST's architecture is interesting—NEST is configured as a simulation server with client monitors. The client monitors, which utilize windows and menus, are used to create, edit, and configure simulations and display the results of their executions. It is possible to reconfigure a simulation during a run, which makes the system highly suitable for analyzing the effect of system failures. These monitors will, typically, reside on separate workstations. The communication overhead between client and server is low, so the server can support clients over a wide area network. Each node is represented in the simulation server by a lightweight process (or thread) within a single UNIX process. This leads to a maximization of concurrency and, thereby, efficient execution. The authors describe the synchronization of events and discuss the relationship between simulation time and real time (which harks back to some of Fujimoto's discussion). They give an example of a simulation of the Routing Information Protocol, developed at Xerox PARC and UC Berkeley. The paper ends with a summary of other applications and further discussion of the implementation of NEST. I enjoyed this paper, which contains some good, widely applicable ideas. The fourth paper, by Peter Glynn, is the most specific of the six, and will only be useful if you are interested in optimizing stochastic systems. Glynn describes a technique for Monte Carlo gradient estimation, which he claims is very efficient. He begins by describing and elaborating two scenarios that motivate the development of efficient gradient estimation techniques. He then describes the underlying nature of the technique, specializes it for discrete-time stochastic processes, and derives a treatment of continuous-time (but discrete-event) systems. The derivations of all formulae are shown, and examples demonstrate the wide applicability of the technique. Although Glynn's method assumes that the simulations terminate, the final section discusses the extension of likelihood ratio gradient estimation to steady-state performance measurement. Regenerative stochastic systems are well suited to the technique, but non-regenerative systems remain a subject of research. As L'Ecuyer himself states in the fifth paper, many people believe that the problem of generating uniform “random” numbers has long been solved—and in some respects it has. Good theoretical treatments have been published, and random number generators that have excellent statistical properties are available. Nevertheless, some generators that have terrible properties are in use. With dependence on simulation increasing, it is especially important that there be robust, reliable, efficient, and portable random number generators. This paper offers a useful overview of techniques that are relevant to today's requirements on machines ranging from laptops to supercomputers. L'Ecuyer gives a base definition of a pseudorandom number generator and discusses the assessment of such generators. He then presents a detailed treatment of (matrix) linear congruential generators, into which category the majority of available generators fit. The discussion is comprehensive, well structured, and clear. Among the important issues addressed is the generation of (well separated) subsequences, including vectorization techniques for simultaneous subsequence generation on parallel computers. The author then considers the programming of linear congruential generators and goes on to discuss their statistical properties. A brief section on nonlinear generators leads into a discussion of hybrid generators, which attempt to obtain the best of both the linear and nonlinear worlds—a long period without regular patterns. Everybody undertaking discrete event simulations should read this excellent treatment of current concerns and techniques in random generation. The bibliography is outstanding. The final paper describes a simulation of a semiconductor fabrication line. In such a production line, turnaround time is of vital importance because it affects contamination, yield, and costs. The process is too complex to yield entirely to analytical techniques, so simulation is the only methodology that can be applied to studying the dynamics of semiconductor manufacture. Miller explains the main variables of the production process and then provides details of the model and simulation. The chosen implementation language, SIMAN, quite rightly enforces a separation of the model specification from the specification of the experiment to be performed. The paper describes the structure of both components of the simulation as well as the verification and validation procedures. Although the model is for a specific plant, it has been applied to other semiconductor fabrication lines. As has been found for models of many types of production line, the simulation described here led to improved production characteristics without the need for retooling or additional resources.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Communications of the ACM
Communications of the ACM  Volume 33, Issue 10
Special issue on simulation
Oct. 1990
118 pages
ISSN:0001-0782
EISSN:1557-7317
DOI:10.1145/84537
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1990
Published in CACM Volume 33, Issue 10

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)141
  • Downloads (Last 6 weeks)34
Reflects downloads up to 27 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Functional and Performance Analysis of Discrete Event Network Simulation ToolsSimulation Modelling Practice and Theory10.1016/j.simpat.2021.102470116(102470)Online publication date: Apr-2022
  • (2020)The Case for Custom Storage Backends in Distributed Storage SystemsACM Transactions on Storage10.1145/338636216:2(1-31)Online publication date: 18-May-2020
  • (2020)Algorithm 1010ACM Transactions on Mathematical Software10.1145/338624146:2(1-28)Online publication date: 19-May-2020
  • (2020)Algorithm 1009ACM Transactions on Mathematical Software10.1145/338153746:2(1-28)Online publication date: 19-May-2020
  • (2020)JGraphT—A Java Library for Graph Data Structures and AlgorithmsACM Transactions on Mathematical Software10.1145/338144946:2(1-29)Online publication date: 19-May-2020
  • (2020)The BLAS API of BLASFEOACM Transactions on Mathematical Software10.1145/337867146:2(1-36)Online publication date: 19-May-2020
  • (2020)Algorithm 1008ACM Transactions on Mathematical Software10.1145/337854246:2(1-26)Online publication date: 19-May-2020
  • (2020)Error Analysis of Some Operations Involved in the Cooley-Tukey Fast Fourier TransformACM Transactions on Mathematical Software10.1145/336861946:2(1-27)Online publication date: 19-May-2020
  • (2020)Bidiagonal SVD Computation via an Associated Tridiagonal EigenproblemACM Transactions on Mathematical Software10.1145/336174646:2(1-25)Online publication date: 19-May-2020
  • (2019)Simulation of Network Interaction Between Base Stations and Subscribers in 5G2019 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering (EIConRus)10.1109/EIConRus.2019.8656680(1544-1549)Online publication date: Jan-2019
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media