introducing ns
software by Lloyd Wood
I learned to use the network simulator ns-2,
and spoke at a VINT ns retreat.
I gained my doctoral thesis and some publications from using ns-2. If I can do it knowing that little about ns, then you can too. You'll even be able to succeed without my help -- I get emailed questions from many new users of ns, which I don't have time to read or think about, let alone answer. Do not email me your questions about ns. Use the ns-users list. If you're a student emailing about your ns problems, please do not expect a reply. You're not my student. (I haven't used ns3 - though I predicted ns3. My only recent ns activity was chairing the WNS2 workshop in 2008.)
If you're wondering about the worth of using ns-2 and having to learn that weird Tcl language... Tcl is quite common, and Tcl is on Cisco routers.
For viewing satellite simulations, satellite network drawing scripts are available. 4-up and pdf versions of tutorial slides are available.
Home of ns and users mailing list at ISI. Report ns bugs there. If you have a question about using or
installing ns, ask the ns-users mailing list. That's what it's for; I'm not actively paying attention to ns or that list myself.
Material answering questions that are asked regularly:
ns was developed as part of VINT (old pages).
learning ns
Marc Greis' ns
tutorial is an invaluable introduction. It's now maintained by the ns developers, who have added a wireless chapter. Read the
OTcl
tutorial. There's now a multimedia introduction, but since it requires a RealAudio browser plugin on
a Windows box I haven't tried it.
Official documentation is included in the distribution - and now it's in HTML as well.
Subscribe to the ns-users mailing list and search for relevant information before asking questions on the list. Using Edit/Find... in Acrobat on a pdf copy of the ns documentation is recommended.
Introducing aspects of
TCP using ns - a very nice tutorial using the RFC793edu TCP. See also
further work in the
NIUNet project. ns tips and tricks from Aaron Striegel.
tracking the ns codebase
Read the change history.
They've taken over maintenance of xgraph - hurrah.
Tcl debug (1.7, gzipped tarfile) in case
of problems with new 1.9.x version; according to the ns change log 1.9.x was only supported as of 21 January 1999, and nam was
upgraded later. Caution pays off...
other ns work
Here is an old list of third-party additions (many now documented on the ns contributed code wiki page). As I'm not actively following the ns-users list, not everything mentioned to that list is given below:
- DTN-related code.
- Satellite Toolkit ns script generator from Case Western.
- Debugging ns from Pedro Vale Estrela.
- RCS rate control scheme from Georgia Tech.
- Gnutella simulation from Georgia Tech.
- TCP Westwood+, from Alfredo Grieco, is based on TCP Westwood.
- hints on building ns under Windows.
- µAMPS wireless sensor network extensions for ns-2.1b5.
- MoRE, from Suresh Singh, is a modified version of ns-2.1b8a including network management software and resource visualisation.
- QoS routing extensions.
- ZRP, the Zone Routing Protocol.
- nscript
is a java-based graphical editor to create ns scripts.
- diffserv WFQ scheduler and HTTP/1.1 in OTcl from Ulrich Fielder.
- Graphing traces with Matlab under Windows.
- nsweb for web traffic simulation.
- SensorSim for sensor networks.
- Optical networking: Optical links from
Jianping Wang and Optical wavelength division multiplexing (OWNS) from
DAWN research lab.
- SIMD from Liang Guo.
- 802.11 PCF from Anders Lindgren.
- Mobile IP support
from Charlie Perkins.
- Ad-hoc on-demand distance-vector routing from Mahesh Marina.
- QoS routing extensions from
Amardeep Singh.
- Stream Control Transmission Protocol (SCTP) from University of Delaware.
- Performance optimisations from Tom Kelly.
- Tutorial from WPI.
- altered mobility scenario generator from Li Qiming.
- RED-pd - RED with preferential dropping.
- Virtual clock scheduler for QoS.
- Active QoS Routing
- Mobility extension hacks.
- PTP, the
Performance Transparency Protocol. Downloadable code.
Described in draft-welzl-ptp-05.txt.
- Extensions
for Mobile IP and wireless work by Jörg Widmer. Also his ns overview presentation.
- Mobile IP work for IPv6.
- Shaper token bucket from
Carlos Alberto Kamienski
- IBM's Bluetooth extensions are called Bluehoc.
- TCP Emulation at Receivers (TEAR)
- MPLS simulation, originally for 2.1b5. That functionality is now included in the distribution as of 2.1b7, but
a version 2.0 has been released.
- RSVP from
Marc Greis for 2.1b3; updated for 2.1b5 by Sean Murphy. Updated again for 2.1b8.
- various ns work from Sean Murphy. Sean did a diffserv patch, as did the Nortel Open IP group. Nortel's code was
rolled into ns in November 2000.
- Insignia ad-hoc routing extensions
and micromobility extensions from
Columbia.
- Other changes from Kedar (poduri@cisco.com).
- latest segmentation and reassembly code from
Nguyen Huu Thanh (thanh@informatik.unibw-muenchen.de). His more general and compatible code is based on
older segmentation and reassembly code (local copy) by Yukio Hashimoto (YHASH@cstp.umkc.edu). May need to email Behcet Sarikaya (sarikaya@u-aizu.ac.jp).
- original mftp work and
interactive
simulation from Christoph Hänle - currently forbidden?
- OSPF routing protocol and IS-IS routing protocol simulation.
- Worst-case WFQ. And
other WFQ patches from Paolo Losi. latest WFQ. Other WFQ
- Core stateless fair queuing.
- Blue queue management for ns version 1.
Updated and ported to work with ns version 2.
- ACIRI's ns work include RIO for ns 2.1b6.
- Daedalus ns work includes Tom's satellite scripts and web background traffic generator.
- ATM support for ns version 1. Haven't evaluated this; you're on your own. Try the MPLS simulation above instead.
ATM is dead, MPLS is king.
Variations on the theme of ns:
- Intersim aims to produce a more scalable ns.
- JNS and Javis - ns recreated in Java as an undergraduate UCL project. Further work on Javis in the NIUNet project.
-
You're probably better off looking at J-Sim, which, like ns, has a Tcl scripting interface.
Parallelising simulation:
Useful links:
ns people
This guide to
ns people now seems current. The
ISI staff page is useful.
The dup script from Haobo Yu is useful for managing shared installations; here are
instructions.
These days, Kun-chan has taken over nam development from Haobo.
some
ns people:
John. Tom. Sally (old). Deborah Estrin.
Lee Breslau's trace converter (see also video traces).
George.
nam in action
Here are some old screenshots of nam showing some simulation development, building static moment-in-time topologies using traditional ns nodes:
Lloyd Wood
(L.Wood@society.surrey.ac.uk)
this page last updated 18 August 2005