[ns] ns-2 FAQ
johnh at ISI.EDU
Sat May 1 01:45:17 PDT 2004
The Network Simulator ns-2: Frequently Asked Questions
(This FAQ is also on the web at
* _Where do I get ns?_
From the ns web site at http://www.isi.edu/nsnam/ns/ns.html and
the download page http://www.isi.edu/nsnam/ns/ns-tests.html.
* _What platforms does ns run on and what kind of hardware do I
Please see "where to start" on the building ns web page:
* _What should I do if I have trouble downloading/extracting ns?_
This question is answered in detail at
* _What should I do if I encounter problems building ns?_
1. the README that comes in the distribution (very brief),
2. the "installation problems, bug fixes and help" web page
3. the archives of the ns-users mailing list
4. post a bug report (see below)
* _What do I do after I successfully build ns?_
+ Put the path to your ns executable into your PATH environment
+ Put the path to your otcl into your LD_LIBRARY_PATH
+ Put the path to your tcl library into your TCL_LIBRARY
* _Where can I find documentation for ns?_
All documentation is linked from the main ns web page
http://www.isi.edu/nsnam/ns/. Documentation includes a tutorial
(originally from Marc Greis) and a reference manual (ns notes and
* _Words, words, words... that documentation is nice, but where are
some sample scripts I can start from?_
Many sample scripts can be found in the ns distribution in
~ns-2/tcl/ex and ~ns-2/tcl/test.
* _What protocols does ns support?_
A lot! Almost all variants of TCP, several forms of multicast,
wired networking, several ad hoc routing protocols and propagation
models (but not cellular phones), data diffusion, satellite, and
other stuff. See the documentation (described above) for details,
or download ns and look.
* _How do I know that ns correctly implements these protocols?_
Ns has validation tests that cover many protocols, see
http://www.isi.edu/nsnam/ns/ns-tests.html. However, ultimately
users are responsible for verifying that ns is accurate for their
purposes---since we cannot foresee all the ways ns may be used, we
cannot test all cases with all inputs.
* _Are there any contributed/additional protocols not in the main
Yes, please see the contributed code web page
http://www.isi.edu/nsnam/ns/ns-contributed.html. The mailing list
archives can also be helpful (see below).
* _How should I get started doing something (like implementing a new
protocol or trying an experiment)?_
We recommend that you look through the tutorial (see
documentation, above), then start with an example program that is
most similar to yours (in the tutorial, or in tcl/ex or tcl/test
in the distribution), and then start changing things.
* _What should I do to compile ns to reflect my changes if I've
modified some .cc or .h files?_
go to ns directory and run "make" or "make depend; make"
* _How do I subscribe to the ns-users mailing list? How do I search
old list archives? I can't take any more---how do I get off this
To subscribe or unsubscribe, see
http://www.isi.edu/nsnam/ns/ns-lists.html. The list archive is at
* _What if I have a question that's not answered here?_
If you've checked the installation problems and bug fixes web page
(http://www.isi.edu/nsnam/ns/ns-problems.html) and there's no
answer to your question, you may want to file a bug report or post
a question to the ns-user's mailing list.
First, you should check the archive of the list at
http://www.isi.edu/nsnam/ns/ns-lists.html. Your question may
already be answered there.
If not, you can post a bug report using the web form at
If your question is NOT about ns implementation bugs, you may wish
to post to the list. First you should subscribe. Subscription
instructions are at http://www.isi.edu/nsnam/ns/ns-lists.html.
_Please note that mail sent to the list is publicly distributed
and archived. _If you have concerns about your message being made
public (spam harvesting of your address), please consider that
_before_ posting. We cannot remove messages from reciepient's
mailboxes or the public archive after they're posted.
When posting bug reports, please _always_ include information
including at least (the bug report form includes spaces for
+ what version of ns you're using,
+ what operating system you're running on (not just Linux or
Solaris, but RedHat version 7.0 or Solaris 2.4---send us the
output of "uname -a"),
+ what specific behavior you see (if ns doesn't compile, what's
the specific error; if TCP does something strange, what
exactly did it do [send a pointer to a packet trace]),
+ what behavior you expected to see (if ns doesn't compile this
is obvious, but if TCP does something strange, why is it
strange, where is the TCP spec violated?),
+ pointers to your script detailed output files,
+ a statement that "yes, I've read the FAQ, ns-problems page,
and manual and I couldn't find the answer there" (or a
statement about why you didn't do that yet :-)
A reminder about mailing list etiquette:
+ Please check the web pages and list archives before posting
+ Please keep the body of your post to simple ASCII, not HTML.
+ Please do _not_ send large attachments (if what you have is
bigger than a few kilobytes, put it on a web page and send a
+ Before posting a question like "did people see my post" or
"the list seems down", please check the archives (you can
answer this question more accurately by checking yourself
rather than asking).
+ Please don't post subscribe/unsubscribe requests directly to
the list, use the lists' information page. (see the web page
mentioned above for details).
More information about the Ns-users