54
Introduction to NS2 -Network Simulator- -Prepared by Changyong Jung

Introduction to NS2 -Network Simulator- -Prepared by Changyong Jung

Embed Size (px)

Citation preview

Introduction to NS2-Network Simulator-

-Prepared by Changyong Jung

Contents

OverviewHow to InstallOTCL – The User LanguageEvent SchedulerPacketSimulation Example

Overview

What is NS2?

- Event driven network simulator

- Developed at UC Berkely

- Implements network protocols 1) TCP, UPD

2) Traffic source mechanism: FTP, TELNET, Web, CBR and VBR

3) Router Queue management mechanism: Drop Tail, RED, CBQ

4) Routing Algorithm: Dijkstra, and etc…

5) Multicasting, Mac layer protocols for LAN

Overview

Background on the ns Simulator

- based on two languages( an object-oriented simulator (C++), and OTcl (object-oriented Tcl) interpreter.

- has rich library of network and protocol object

- Compiled C++ hierarchy gives efficiency in simulation and faster execution times.

- With OTcl script provided by user, a network topology is simulated.

Overview

Ns2 is event simulator where the advance of time depends on the timing of events which are maintained by a scheduler.

Event – an object in C++ hierarchy.

unique ID, Scheduled time,

pointer to an object Scheduler – maintains ordered data structure

with the events to be executed and fires them one by one, invoking the handler of the event.

How to Install-Window XP-

Go to Website: http://nsnam.isi.edu/nsnam/index.php/Running_Ns_and_Nam_Under_Windows_9x/2000/XP_Using_Cygwin

Read “Requirements and Installation Tips” Carefully.

Download cygwin.exe from http://www.cygwin.com/

Click the “cygwin.exe”

How to Install

Cygwin Installation

How to Install

How to Install

Select browse for “cygwin” file( I selected as “default”)

How to Install

Local package directory (I recommend c:\cygwin).

How to Install

Select to Install all ( I recommend it) You can select “install”, “default”, “uninstall”, “install”, and “reinstall” behind the first

line “all”. If you select “install”, then all sub items will be automatically selected. Otherwise you may lose some items.

How to Install

Select download site

How to Install

Installing

How to Install

Finishing Installing

How to Install

NS2 InstallationDownload ns-allinone-2.29.2.tar.gz from

Website and Save it to the c:/cygwin /usr/local

Unpack it: tar xvfz ns-allinone-2.29.2.tar.gzClick on desktop icon “cygwin”

How to Install

How to Install

Type “cd ..” to go to the upper folder(“cd” must be low case. And there is one space between “d” and “.”)

Type “cd ..” again.

How to Install

“cd usr”, go to folder “usr” “cd local”, go to folder “local”

How to Install

Find “install.exe”

How to Install

Start to run the installation “./install”

How to Install

Installing

How to Install

Installing

How to Install

Configure system variables and library paths After finishing installing, following window appears

How to Install

Configure system variables Go to “My computer” and click “view system information”

How to Install

Go to “advanced” Tab and Click “Environmental variables”

How to Install

How to Install

Highlight “path” which is “system variable” box and press the “Edit” button.

How to Install

How to Install

Add the following path separated with “;” make sure to not change the existing path.

/usr/local/ns-allinone-2.29.2/bin

/usr/local/ns-allinone-2.29.2/tcl8.4.11/unix

/usr/local/ns-allinone-2.29.2/tk8.4.11/unix

How to Install

Go to cygwin and type the following content

Export LD_LIBRARY_PATH=/usr/local/ns-allinone-2.29/otcl-1.11

Export LD_LIBRARY_PATH=/usr/local/ns-allinone-2.29/lib

Export TCL_LIBRARY_PATH=/usr/local/ns-allinone-2.29/tcl8.4.11/library

How to Install

OTcl – The User Language

NS2 is basically an OTcl interpreter with network simulation object libraries

Very simple syntax and easy integration with other languages.

Characteristics: - fast development - provide graphic interface - compatible with many platforms - flexible for integration - easy to use - free

OTcl – The User Language

Example

OTcl – The User Language

Proc: define a procedure, followed by an procedure name and arguments

Set: assign a value to a variable[expr …]: to make the interpreter calculate

the value of expression within the bracketTo assign to variable x the value that

variable a has, then write “set x $a”.Put: prints out

OTcl – The User Language

Event Scheduler

Main users of an event scheduler are network components that simulate packet-handling delay or that need time

Event Scheduler

Two different types of event schedulers

- real time: for emulation which allow the simulator to interact with a real network

- non-real time: three implementations are available (Heap, List, Calendar). The default is set as Calendar

Event Scheduler

Example . . .

set ns [new Simulator]$ns use-scheduler Heap. . .

. . .set ns [new Simulator]$ns use-scheduler Heap$ns at 300.5 "complete_sim". . .

proc complete_sim {} {. . .}

Packet

NS2 packet is composed of a stack of headers and optional dataspace.

Packet format is initialized when a Simulator object is created. So, a network object can access any header in the stack of a packet it processes using corresponding offset value.

Packet

Simple Simulation Implement

Simple Simulation Implement

Simple Simulation Implement

Click on desktop icon “cygwin”Make sure to put the exe files under C:\

cygwin\usr\localDo the following steps to execute

example.

Simple Simulation Implement

Simple Simulation Implement

However you will fail to run the “ns-simple.tcl” with the displayed notice. This is because you did not open “XWin” yet

Simple Simulation Implement

Open “Xwin” from “C:\cygwin\usr\X11R6\bin”. If everything is fine, you will then get the following figures.

Simple Simulation Implement

Yet you may get the following warning messages:

Simple Simulation Implement

That means some components missed. You can then copy these files from “C:\cygwin\bin” to “C:\cygwin\usr\X11R6\bin”

After you open X11, you may still can not run “ns-simple.tcl”

Simple Simulation Implement

The following command can solve this issue

export DISPLAY=:0.0

Simple Simulation Implement

Simple Simulation Implement

Run “ns-simple.tcl”

Simple Simulation Implement

DONE !!!

Simple Simulation Implement

Thank You….