NS-2

A very good website maintained by Dr. Issariyakul of AIT Thailand, with lots of interesting support material for NS-2.

*********************************************************************************************************************************

Installing NS-2.34 on Ubuntu 12.04 with this help makes things a lot easier. This is also good, along with this (also guides about GCC version to update ~ Mar-16).

Installing NS-2.34 on Ubuntu 14.04 needs one additional small change in linkstate\ls.h. Have a look here.

*********************************************************************************************************************************

Trace Analysis Example: This will help you to understand what the "out.tr" file basically means.

Nam Trace Format: Similar help for the "out.nam" file you generate.

*********************************************************************************************************************************

An interesting page describing TCP Throughput and Goodput from Emory University.

*********************************************************************************************************************************

Writing Timers for NS2:

Recently I experienced some difficulty in writing what should have been very simple code for a timer in NS2. But I faced a lot of compile time errors. One thing I realized was that I was making the mistake of writing all the code in the header file. It works best if one writes the class definitions (both for the timer class and the other class you want to tightly associate with your timer) in the header file, and prepare a separate C++ file for the expire function. I got help from the NS2 book written by Dr. Issariyakul.

*********************************************************************************************************************************

The following error when doing make:

ns2.34 ./config.h:60:19: fatal error: tclcl.h: No such file or directory

I tried to look around on the web, and I remember seeing somewhere that it is a good idea to do "./configure" and then run "make clean" and "make" all over again. That worked out (by the grace of God)!

*********************************************************************************************************************************

If you ever faced the following error in NS-2.34: TcpAgent: negative RTO!

The likely problem is this: "During long simulations (30-60 minutes), ns would sometimes abort with the message "TcpAgent: negative RTO!". The problem was that TcpAgent::t_backoff _ was overflowing and becoming negative, since it was doubled each time a backoff was triggered but maxrto_ prevented the time between doublings from growing beyond 60 seconds. Patch from Michele Weigle."

Thankfully, there is a simple patch, that can be found here. Courtesy of Michele Weigle.

*********************************************************************************************************************************

An interesting discussion about the tcpTick parameter and it's importance, which also recommends reading the appendix of a seminal paper by Sally Floyd et al. Have a look: link