Data networks
Analysis and simulation of a fair queueing algorithm
SIGCOMM '89 Symposium proceedings on Communications architectures & protocols
REAL: A Network Simulator
Modeling description in the INSYDE simulator for evaluating large-scale computer system performance
WSC '94 Proceedings of the 26th conference on Winter simulation
Packet network simulation: speedup and accuracy versus timing granularity
IEEE/ACM Transactions on Networking (TON)
DEPEND: A Simulation-Based Environment for System Level Dependability Analysis
IEEE Transactions on Computers
EURO-DAC '96/EURO-VHDL '96 Proceedings of the conference on European design automation
Simulator for the evaluation of distributed network-system performance
WSC '96 Proceedings of the 28th conference on Winter simulation
IEEE Transactions on Computers
An integrated approach to enterprise computing architectures
Communications of the ACM
Advances in Network Simulation
Computer
Delay Compensation Protocols for Synchronization of Multimedia Data Streams
IEEE Transactions on Knowledge and Data Engineering
Dynamic Lazy Calendar Queue: An Event List for Network Simulation
HPC-ASIA '97 Proceedings of the High-Performance Computing on the Information Superhighway, HPC-Asia '97
Prototyping network architectures on a supercomputer
HPDC '96 Proceedings of the 5th IEEE International Symposium on High Performance Distributed Computing
Towards a new distributed programming environment (CORDS)
CASCON '91 Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research
Nestmod: the NetMod - NEST interface
CASCON '91 Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research
A simulation model for X.500 directories: initial experiences
CASCON '91 Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research
Narratives of space and time: visualization for distributed applications
CASCON '91 Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research
The role of directory services in network management
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2
NESTMOD simulation of DQDB metropolitan networks
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2
An integrated distributed systems management architecture
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
Managing heterogeneous distributed computing systems: using information repositories
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: distributed computing - Volume 2
J-Sim: A Simulation Environment for Wireless Sensor Networks
ANSS '05 Proceedings of the 38th annual Symposium on Simulation
Towards Composable and Extensible Network Simulation
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 10 - Volume 11
On Load Sharing In Distributed Systems: A Novel Approach
Journal of Integrated Design & Process Science
NSDI'09 Proceedings of the 6th USENIX symposium on Networked systems design and implementation
SpringSim '09 Proceedings of the 2009 Spring Simulation Multiconference
A performance comparison of recent network simulators
ICC'09 Proceedings of the 2009 IEEE international conference on Communications
FTCS'95 Proceedings of the Twenty-Fifth international conference on Fault-tolerant computing
The state of peer-to-peer network simulators
ACM Computing Surveys (CSUR)
Hi-index | 0.03 |
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.