+ All Categories
Home > Documents > An Introduction to NSAn Introduction to NS2An Introduction ...

An Introduction to NSAn Introduction to NS2An Introduction ...

Date post: 10-Jan-2022
Category:
Upload: others
View: 27 times
Download: 0 times
Share this document with a friend
32
An Introduction to NS An Introduction to NS2 An Introduction to NS An Introduction to NS2 Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 1
Transcript
Page 1: An Introduction to NSAn Introduction to NS2An Introduction ...

An Introduction to NSAn Introduction to NS22An Introduction to NSAn Introduction to NS22

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 1

Page 2: An Introduction to NSAn Introduction to NS2An Introduction ...

Outline• OverviewOverview• Installation

E l• An Example• Incorporate C++ Modules into NS2p• Summary

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 2

Page 3: An Introduction to NSAn Introduction to NS2An Introduction ...

Overview: Network SimulationOverview: Network Simulation• 3 Simulation Main Stepsp1. Design and Implementation

• Things to simulate• Assumptions• Assumptions• Performance measure• Code Implementation

2 Simul ti n2. Simulation• Network Configuration Phase• Simulation Phase

3. Result Compilation• Debugging and Tracing• Compute performance measures

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008.

p p

3

Page 4: An Introduction to NSAn Introduction to NS2An Introduction ...

Overview: NS2 ArchitectureOverview: NS2 Architecture

• NS2 = Network Simulator 2NS Network S mulator • Consists of

– C++: Internal mechanism– C++: Internal mechanism– OTcl: User interface

TclCL: Connecting C++ to OTcl– TclCL: Connecting C++ to OTcl

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 4

Page 5: An Introduction to NSAn Introduction to NS2An Introduction ...

Overview: NS2 InvocationOverview: NS2 Invocation• Syntaxy

>> ns [<filename>] [<args>]– No argument: Enter NS2 environment– <filename> = Tcl simulation script; Use OTcl filename Tcl simulation script; Use OTcl

programming lauguage– In the Tcl file, <args> is stores in the internal variable ( $argv ). ( g )

• Example>> ns myfirst ns tcl 1 2 3>> ns myfirst_ns.tcl 1 2 3

– To retrieve the second input argument (2), execute( lindex $argv 1 )

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 5The index of the element to retrieve, starting from 0

Page 6: An Introduction to NSAn Introduction to NS2An Introduction ...

Outline• OverviewOverview• Installation

E l• An Example• Incorporate C++ Modules into NS2p• Summary

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 6

Page 7: An Introduction to NSAn Introduction to NS2An Introduction ...

Installation: NS2Installation: NS21. Go to NS2 web page:p g

– NS2 Webpage: http://www.isi.edu/nsnam/ns/– Download Link: http://www.isi.edu/nsnam/ns/ns-build.html#allinone1.

2 G t ll i k2. Get all-in-one package– NS2, Tcl/Tk, OTcl, TclCL– NAM, Zlib, Xgraph

3 U i ll th fil3. Unzip all the files4. Use the installation package “./install”• Follow the instruction• NS2 is designed for Unix• For windows, install Cygwin

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 7

Note: We will focus text mode only Not Animation !!

Page 8: An Introduction to NSAn Introduction to NS2An Introduction ...

Installation: CygwinInstallation: Cygwin• Cygwin = Linux emulation for windows1. Go to Cygwin Webpage: http://www.cygwin.com/2. Get the package

ll k3. Install the basic package4. Install the following additional packages:

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008.Note: You may ignore warning about X11 packages

8

Page 9: An Introduction to NSAn Introduction to NS2An Introduction ...

Installation: EnvironmentInstallation: Environment• Add NS2 path and the variable path• In file <home>/.bashrc, add the following linesPATH=${PATH}:~/ns-new-2.33/ns-2.33export PATHLD_LIBRARY_PATH=~/ns-new-2.33/otcl-1.13:~/ns-new-2.33/libexport LD_LIBRARY_PATHTCL_LIBRARY=~/ns-new-2.33/tcl8.4.18export TCL_LIBRARY

• For convenience, d / /l l/bicd /usr/local/binln –s ~/ns-new-2.33/ns-2.33/ns

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 9

Page 10: An Introduction to NSAn Introduction to NS2An Introduction ...

Outline• OverviewOverview• Installation

E l• An Example• Incorporate C++ Modules into NS2p• Summary

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 10

Page 11: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 11

Page 12: An Introduction to NSAn Introduction to NS2An Introduction ...

T l Si l i S iTcl Simulation Script• Filename “myfirst ns tcl”Filename myfirst_ns.tcl• Create a simulator

C t t bj t• Create trace objects

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 12

Page 13: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

• Define a “finish” proceduerDefine a finish proceduer

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 13

Page 14: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

• Create nodesCreate nodes

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 14

Page 15: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 15

Page 16: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

• Connect node with “duplex” linksConnect node with duplex links

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 16

Page 17: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 17

Page 18: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

• Create a flow from n0 to n3Create a flow from n0 to n3– Create a UDP flow

Attach a CBR source to the UDP flow– Attach a CBR source to the UDP flow

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 18

Page 19: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

• Create a flow from n1 to n4Create a flow from n1 to n4– Create a TCP flow

A h FTP h TCP fl– Attach a FTP source to the TCP flow

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 19

Page 20: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

• Schedule EventsSchedule Events

• Start simulation

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 20

Page 21: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example

• We are in step two of network simulationWe are in step two of network simulationStep 1 = ( Design )Step 3 = ( Result Compilation )Step 3 = ( Result Compilation )

Sub Step The part of the codeSub-Step The part of the code1. (Network Configuration) (the rest of the codes ) 2 ( ) ( )2. (Simulation ) ($ns run )3. ( ) ( )

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 21

Page 22: An Introduction to NSAn Introduction to NS2An Introduction ...

A Network Simulation Example• Results? (files out tr and out nam )Results? (files out.tr and out.nam )

{ ( ) d ( ) i ( ) d (d)}Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 22

{enque(+),deque(-),receive(r),drop(d)}

Page 23: An Introduction to NSAn Introduction to NS2An Introduction ...

Outline• OverviewOverview• Installation

E l• An Example• Incorporate C++ Modules into NS2p• Summary

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 23

Page 24: An Introduction to NSAn Introduction to NS2An Introduction ...

N M d lNew Modules• NS2 Modules: C++ and OTclNS Modules C and O cl• Directories: ~ns

~tclcl

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 24

See Also: http://www-rp.lip6.fr/ns-doc/ns226-doc/html/hierarchy.htm

Page 25: An Introduction to NSAn Introduction to NS2An Introduction ...

N M d lNew Modules• New C++ or OTcl Modules New C++ or OTcl Modules

– Need to recompile and links all NEW modulesmodules

– Use make utility– Take about 5 seconds to run– Take about 5 seconds to run.

• When adding a new OTcl moduleW id i tilit – We can avoid running make utility,

– Define the new module in your simulation s i t

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008.

script25

Page 26: An Introduction to NSAn Introduction to NS2An Introduction ...

M k U iliMake Utility• “make” contains a set of things that will be done make contains a set of things that will be done

when “make” is executed from the command prompt.

• Make usage• Make usage>> make [-f <filename>]

– Executed what specified in <filename>– <filename> is called a “file descriptor”– <filename> is called a file descriptor– No file is given use file “Makefile”

• File descriptor– Syntax– Syntax

<target1> [<target2> …] : [<dep1> <dep2> …]<command>

– Targets are remade if any of the dependency is changed

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008.

g y p y g– The change is specified in the command.

26

Page 27: An Introduction to NSAn Introduction to NS2An Introduction ...

M k U iliMake Utility• ExampleExample

cc -o channel main o

Execute ( ) if ( ) is changed

cc -o channel main.o, fade.o, model.o

( ) g

main.o, fade.o, and/ormodel.o

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 27

Page 28: An Introduction to NSAn Introduction to NS2An Introduction ...

M k U iliMake Utility• Example: Use variables OBJS and COMp

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 28

Page 29: An Introduction to NSAn Introduction to NS2An Introduction ...

M k fil f NS2Makefile for NS2• Located in ~nsLocated in ~ns• Key components:

Di t– INCLUDES = : Directory– OBJ_CC = : All NS2 object files

ll l f l– NS_TCL_LIB = : All NS2 OTcl files• Put your files in these three

components

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 29

Page 30: An Introduction to NSAn Introduction to NS2An Introduction ...

Makefile for NS2: Example

Use *.o

Use “\” to separate lines

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 30

p

Page 31: An Introduction to NSAn Introduction to NS2An Introduction ...

Outline• OverviewOverview• Installation

E l• An Example• Incorporate C++ Modules into NS2p• Summary

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 31

Page 32: An Introduction to NSAn Introduction to NS2An Introduction ...

SSummary• NS2 consists of NS2 consists of

– OTcl ( user interface ) and – C++ ( internal mechanism )( )

• Installation: NS2 + Cygwin• An ExampleAn Example• Make utility

– INCLUDE: Directoryy– OBJ_CC: C++ Modules– NS_TCL_LIB: OTcl Modules

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer 2008. 32


Recommended