NIST Net runs on Linux and is a network emulation package.Using this package we can emulate a wide variety of network conditions on a single machine which has been set up as a router.The network conditions can be packet loss, duplication, delay and jitter, bandwidth limitations, and network congestion. NIST Net allows  allows testing of network-adaptive protocols and applications  in a lab setting.

NIST Net is implemented as a kernel module extension to the Linux operating system and an X Window System-based user interface application.This package allows two kinds of interface one of which is a graphical user interface.

The source comes in a gzipped tar file, nistnet.tar.gz.
To uncompress the file:
tar -xvzf nistnet.tar.gz - produces a directory nistnet and a bunch of files in it. That is the directory referred to as nistnet below.

Before you try to install NIST Net, first make sure you can build and install usable kernels:
To do that follow the following steps:
Go to
cd /usr/src/linux
make config (or menuconfig/xconfig)
make modules
make install
make modules_install
- make sure new kernel boots properly

Make sure you do this before you recompile the kernel, else you will get a lot of warnings
1 Make sure  time and date set on your computer is correct. Use the command
                    > date MMDDhhmmYY
  to set the appropriate date and time
2. Set the hardware clock to the current system time with the command:
                    > hwclock --systohc
Install the fast timer kernel patches:
- to install all the kernel patches
Make sure the patches install correctly! Messages like "offset 2 lines" or "with fuzz 2" are ok; but things like "Hunk 1 FAILED" or "misordered hunks" are not. If some of the patches fail, your kernel is pretty much guaranteed not to work.
Now, configure and build the patched kernel:
cd /usr/src/linux
make config (or menuconfig/xconfig)
- say "y" to CONFIG_FAST_TIMER (at end, under "kernel hacks")*
make dep
make install
cd nistnet
edit Imakefile
cd nistnet/monitor
edit Imakefile
xmkmf -a
- creates customized Makefiles.
Build and install the nistnet module, API library, and user interface
cd nistnet
make install
Try things out:
insmod nistnet
- loads "nistnet" emulator module into kernel
- runs (X-based) user interface
cnistnet -h
Information of other commands can be accessed by going to the following link:

Before running NIST Net, the kernel emulator module must be installed through insmod nistnet.
There are two tools for controlling the emulator, Hitbox which is a command line interface and Nistnet which is a graphical user interface.
The Hitbox mode takes a lot of arguments some of which are:
-u up (turn emulator on)
-d down (turn emulator off - entries are retained)
-a src dest delay delsigma bandwidth drop dup drdmin drdmax
add new entry
-r src dest
remove entry
-s src dest
see stats for entry
-S src dest
see stats for entry continuously
read current list of entries in kernel
debug on
debug off
see global stats
More information about the Nistnet Graphical user interface can be accessed from:

Nistnet FAQ
Nistnet Home Page