NEST - Columbia University's Network Simulation Tool _A_d_d_r_e_s_s: Alexander Dupuy 450 Computer Science Columbia University New York, NY 10027 _E-_m_a_i_l: nest-request@cs.columbia.edu _P_h_o_n_e: (212) 939-7000 FAX: (212) 666-0140 _D_e_s_c_r_i_p_t_i_o_n The NEST simulation package developed at Columbia is an environment for rapid prototyping and simulation of distri- buted networked systems. NEST users can develop and test distributed systems and protocols (from crude models to actual system code) within simulated network scenarios. NEST is organized as a simulation server, responsible for execution of complex simulation scenarios, and a separate graphical interface for simulation control. The client/server model permits distribution of NEST over a net- work environment. Thus, complex simulations may be migrated to powerful remote computational servers. Alternatively, complex studies/development efforts by multiple teams may utilize a shared multi-site simulation/integration testbed. Simulation servers are created using the NEST library, a C- language library which runs under most Unix variants, and on POWER (IBM RS/6000), SPARC, MIPS, 680x0 and VAX architec- tures. The NEST library provides a simple, high-level message-passing facility among a set of concurrent light- weight processes which simulate a distributed system. The interface provided by the NEST library allows users to link in their own C code and run it on one or more nodes in a simulated distributed environment. NEST provides the _________________________ The information in this section is provided in accor- dance with the copyright notice appearing at the front of this guide. September 4, 1992 NNSC Section M.5, Page 1 following operations in this environment: o+ send messages to neighboring nodes o+ receive messages (optionally, with timestamps) o+ check for available messages o+ control passage of simulation time The user can also provide C code which simulates the behavior of a channel, and associate it with one or more communications channels. More than one function can be associated with a channel, and the following operations are provided: o+ alter contents of messages o+ control transmission delay of messages o+ drop messages (cause them to not be received) Finally, a monitor function can be provided by the user, which runs periodically in the simulation, and can perform modifications to the network scenario as noted below in the description of the NEST generic monitor. In addition, the functionality provided by most available Unix libraries is accessible within a simulation server. Users interact with NEST through the NEST generic monitor, an X-based graphical interface supporting editing and modif- ication of simulation scenarios as well as dynamic reconfi- guration of a simulation during execution. Thus, it is pos- sible to study the dynamic response of a distributed system to failures, burst-loads or other complex dynamical changes. The nest monitor provides the following operations for mani- pulation of the network simulation scenario: o+ create and delete nodes o+ create and delete links o+ start and stop functions running on nodes September 4, 1992 NNSC Section M.5, Page 2 o+ change the function associated with a node o+ change the list of channel functions associated with an edge o+ change the weight parameter associated with an edge o+ change the monitor function which runs periodically o+ show the current status of a node in the simulation NEST includes documentation and complete C source code for both the NEST library and the NEST generic monitor. The NEST library will run under most Unix variants, including AIX, SunOS, Ultrix, 4.x BSD, and System V. The NEST generic monitor is an X application which uses the XView library. The currently released version of NEST is version 2.6. _N_e_t_w_o_r_k _A_c_c_e_s_s NEST documentation and full source is available via anonymous FTP from cs.columbia.edu [128.59.16.20] in the nest directory. Some files are stored as compressed tar archives - be sure to remember to use binary mode when transferring them! There are several files in the ~ftp/nest directory: nest-2.6.tar.Z Source for Nest 2.6 library & UI display nest-2.6-patch.* Patches to Nest 2.6 library - please apply all nest-25-doc.tar.Z Lineprinter formatted documentation nest-25-doc2.tar.Z Scribe and PostScript formatted docs _W_h_o _C_a_n _U_s_e _t_h_e _S_e_r_v_i_c_e The NEST software is distributed under this arrangement for research and evaluation purposes only. Any redistribution or commercial use of the software itself in any form is prohibited without further licensing from Columbia Univer- sity. September 4, 1992 NNSC Section M.5, Page 3