NS-2 Tutorial - PowerPoint PPT Presentation

About This Presentation
Title:

NS-2 Tutorial

Description:

Share code, protocols, models, etc. a Discrete Event Simulator. Link layer and up ... NS Models. Wired. Routing: DV, LS, PIM-SM etc. Transportation: TCP and UDP ... – PowerPoint PPT presentation

Number of Views:2512
Avg rating:3.0/5.0
Slides: 51
Provided by: hyunju6
Learn more at: https://crystal.uta.edu
Category:
Tags: ls | models | tutorial

less

Transcript and Presenter's Notes

Title: NS-2 Tutorial


1
NS-2 Tutorial
Choe, Hyun Jung (Stella) Spring 2008 High
Performance Networks Department of Computer
Science and EngineeringThe University of Texas
at Arlington
2
Outline
  • NS-2 Overview
  • How to Run NS-2
  • How to Program
  • Simulation Examples
  • Project Overview
  • Q A

3
NS-2 Overview
4
What is NS-2?
  • VINT Project
  • UC Berkeley, LBL, USC/ISI, and Xerox PARC
  • Goals
  • Support networking research and education
  • Freely distributed, open source
  • Share code, protocols, models, etc
  • a Discrete Event Simulator
  • Link layer and up
  • Wired and Wireless

5
NS Models
  • Wired
  • Routing DV, LS, PIM-SM etc.
  • Transportation TCP and UDP
  • Traffic sources web, ftp, telnet, cbr,
    stochastic etc.
  • Queuing disciplines drop-tail, RED, FQ, SFQ,
    DRR etc.
  • QoS IntServ and Diffserv
  • Emulation
  • Wireless
  • Ad hoc routing, mobile IP and Satellite
  • Directed diffusion, sensor-MAC

6
NS Architecture
  • Object-oriented (C, OTcl)
  • data / control separation
  • C for data
  • per packet processing, core of ns
  • fast to run, detailed, complete control
  • OTcl for control
  • Simulation scenario configurations
  • Periodic or triggered action
  • Manipulating existing C objects
  • fast to write and change

7
OTcl and C The Duality
! OTcl (object variant of Tcl) and C share
class hierarchy !
8
NS Components
9
Part II How to Run NS-2
10
How to Run NS-2
  • gamma2 server
  • Version 2.30
  • Please use /tmp for your trace files (not codes)
    (later)
  • xdisplay for graphical results
  • If you want to install NS2 in your own PC
  • Current release ns-2.31, Mar 10, 2007)
  • http//www.isi.edu/nsnam/ns/ns-build.html
  • Platforms
  • Most Unix and Linux
  • Windows and Mac

11
How to Setup Path
  • ls a
  • .cshrc
  • setenv LD_LIBRARY_PATH /opt/ns-allinone-2.30/
  • .bash_profile
  • export PATH/opt/ns-allinone-2.30/binPATH
  • export LD_LIBRARY_PATH/opt/ns-allinone-2.30/otcl-
    1.12/opt/ns-allinone-2.30/libLD_LIBRARY_PATH
  • export TCL_LIBRARY/opt/ns-allinone-2.30/tcl8.4.13
    /library

12
gamma /tmp
  • for Temporary Usage only
  • Do Not save your scripts under /tmp
  • Use Your Own directory
  • mkdir /tmp/your_dir/
  • Example
  • set nf open /tmp/your_dir/out.nam w

13
How to Install NS-2 (Under Windows)
  • http//nsnam.isi.edu/nsnam/index.php/Running_Ns_an
    d_Nam_Under_Windows_9x/2000/XP_Using_Cygwin
  • Cygwin-1.3.12 or later required
  • Select UNIX text type
  • to check current mode, type mount grep
    textmode
  • C\Cygwin (not C\Program Files\Cygwin)
  • Install ltX11gt and ltDevelgt Categories (next
    page) and others (e.g., vim) in ltEditorgt
  • Download NS-2 under Cygwin (E.g., under
    /usr/local/)
  • tar zxvf ns-allinone-2.2x.x.tar.gz
  • cd ns-allinone-2.2x
  • ./install

14
(No Transcript)
15
Error?
  • error near unexpected token )'
  • ./configure line 7624 OSF)'
  • tcl8.3.2 configuration failed! Exiting ...
  • Tcl is not part of the ns project. Please see
    www.Scriptics.com
  • to see if they have a fix for your platform.
  • Remove only if there are two at the end of
    relid
  • find . xargs -n 1 grep -H relid\
  • Others
  • http//ns-2.blogspot.com/2006/05/problem-in-insta
    lling-ns-2292-allinone.html
  • http//www.isi.edu/nsnam/ns/ns-cygwin-old.html

16
How to Use Cygwin-X
  • http//xfree86.cygwin.com/docs/ug//usr/X11R6/
  • Run /usr/X11R6/bin/startxwin.bat
  • sh /usr/X11R6/bin/startxwin.sh
  • cp /etc/X11/xinit/xinitrc /.xinitrc
  • PATHPATH/usr/X11R6/bin
  • startx

17
NS-2 Directory Structure
/opt/ns-allinone-2.30/
ns-allinone
...
TK8.4.13
OTcl
tclcl
Tcl8.4.13
ns-2
nam-1.12
C code
...
tcl
ex
test
mcast
lib
...
examples
validation tests
OTcl code
18
Part III How to Program
19
Basic Tcl Programming
  • set b 0
  • b 0 in C
  • set x b
  • set x expr a b
  • http//www-sop.inria.fr/maestro/personnel/Eitan.
    Altman/COURS-NS/n3.pdf

20
Basic Tcl
  • Command arg1 arg2 arg3
  • set a 43
  • set b 27
  • proc test a b
  • set c expr a b
  • set d expr expr a - b c
  • for set k 0 k lt 10 incr k
  • if k lt 5
  • puts k lt 5, pow expr pow(d, k)
  • else
  • puts k gt 5, mod expr d k

21
Elements of NS-2
  • Create the event scheduler
  • Turn on tracing
  • Create network
  • Setup routing
  • Insert errors
  • Create transport connection
  • Create traffic
  • Transmit application-level data

22
How to Simulate
  • Create event scheduler
  • set ns new Simulator
  • Schedule events
  • ns at lttimegt lteventgt
  • lteventgt
  • any legitimate ns/tcl commands
  • ns at 5.0 finish
  • Start scheduler
  • ns run
  • TclCL
  • C and OTcl linkage
  • glue library that makes it easy to share
    functions, variables, etc

23
Example helloWorld.tcl
  • set ns new Simulator
  • ns at 1 puts \Hello World!\
  • ns at 1.5 exit
  • ns run
  • ns simple.tcl
  • Hello World!

24
Creating Network
  • Nodes
  • set n0 ns node
  • set n1 ns node
  • Links and queuing
  • ns duplex-link n0 n1 ltbandwidthgt ltdelaygt
    ltqueue_typegt
  • ltqueue_typegt DropTail, RED, CBQ, FQ, SFQ, DRR
  • ns duplex-link-op no n1 OPTIONS

n0
n1
25
Setup Routing
  • Unicast
  • ns rtproto lttypegt
  • lttypegt Static, Session, DV, cost, multi-path
  • Multicast
  • ns multicast (right after new Simulator)
  • ns mrtproto lttypegt
  • lttypegt CtrMcast, DM, ST, BST

26
Creating Connection UDP
  • UDP
  • set udp new Agent/UDP
  • set null new Agent/Null
  • ns attach-agent n0 udp
  • ns attach-agent n1 null
  • ns connect udp null

UDP
null
n0
n1
27
Creating Traffic On Top of UDP
  • CBR
  • set src new Application/Traffic/CBR
  • src attach-agent udp0
  • Exponential or Pareto on-off
  • set src new Application/Traffic/Exponential
  • set src new Application/Traffic/Pareto
  • src attach-agent udp0

CBR
UDP
null
n0
n1
28
Structure of a Unicast Node
29
Structure of a Simplex Link
30
Creating Connection TCP
  • TCP
  • set tcp new Agent/TCP
  • set tcpsink new Agent/TCPSink
  • ns attach-agent n0 tcp
  • ns attach-agent n1 tcpsink
  • ns connect tcp tcpsink

TCP
sink
n0
n1
31
Creating Traffic On Top of TCP
  • FTP
  • set ftp new Application/FTP
  • ftp attach-agent tcp
  • Telnet
  • set telnet new Application/Telnet
  • telnet attach-agent tcp

FTP
TCP
sink
n0
n1
32
A simulation example
ftp
W32
tcp
sink
n0
n4
5Mb, 15ms
n2
n3
10Mb,2ms
10Mb,2ms
n1
n5
sink
tcp
ftp
W32
33
TCP Agents
  • ns has several variants of TCP available
  • -- Agent/TCP/Tahoe a tahoe'' TCP sender
  • -- Agent/TCP/Reno a Reno'' TCP sender
  • -- Agent/TCP/NewReno Reno with a modification
  • -- Agent/TCP/Sack1 TCP with selective repeat
    (follows RFC2018)
  • -- Agent/TCP/Vegas TCP Vegas
  • -- Agent/TCP/Fack Reno TCP with forward
    acknowledge ment''
  • The oneway TCP receiving agents currently
    supported are
  • -- Agent/TCPSink TCP sink with one ACK per
    packet
  • -- Agent/TCPSink/DelAck TCP sink with
    configurable delay per ACK
  • -- Agent/TCPSink/Sack1 selective ACK sink
    (follows RFC2018)
  • -- Agent/TCPSink/Sack1/DelAck Sack1 with DelAck
  • The twoway experimental sender currently supports
    only a Reno form of TCP
  • -- Agent/TCP/FullTcp

34
TCP Agent Parameters
  • Agent/TCP set tcpTick 0.1 timer granularity
    in sec (.1 is NONST ANDARD)
  • Agent/TCP set maxrto 64 bound on RTO
    (seconds)
  • Agent/TCP set dupacks 0 duplicate ACK counter
  • Agent/TCP set ack 0 highest ACK received
  • Agent/TCP set cwnd 0 congestion window
    (packets)
  • Agent/TCP set awnd 0 averaged cwnd
    (experimental)
  • Agent/TCP set ssthresh 0 slowstat threshold
    (packets)
  • Agent/TCP set rtt 0 rtt sample
  • Agent/TCP set srtt 0 smoothed (averaged) rtt
  • Agent/TCP set rttvar 0 mean deviation of rtt
    samples
  • Agent/TCP set backoff 0 current RTO backoff
    factor
  • Agent/TCP set maxseq 0 max (packet) seq
    number sent

35
Tracing and Monitoring I
  • Trace packets on all links
  • Open the NAM trace file Open the Trace file
  • set nf open out.nam w set tf open
    out.tr w
  • ns namtrace-all nf ns
    trace-all tf
  • Must appear immediately after creating scheduler
  • Turn on tracing on specific links
  • ns trace-queue n0 n1
  • ns namtrace-queue n0 n1
  • Event tracing (support TCP right now)
  • Record event in trace file ns eventtrace-all

36
Tracing and Monitoring II
37
Tracing and Monitoring III
  • Queue monitor
  • set qmon ns monitor-queue n0 n1 q_f
    sample_interval
  • Get statistics for a queue
  • qmon set pdrops_
  • Record to trace file as an optional
  • 29.000000000000142 0 1 0.0 0.0 4 4 0 1160 1160
    0
  • Flow monitor
  • set fmon ns_ makeflowmon Fid
  • ns_ attach-fmon slink fmon
  • fmon set pdrops_

38
Tracing and Monitoring IV
  • Variable tracing in nam
  • Agent/TCP set nam_tracevar_ true
  • tcp tracevar srtt_
  • tcp tracevar cwnd_
  • Monitor agent variables in nam
  • ns add-agent-trace tcp tcp
  • ns monitor-agent-trace tcp
  • srm0 tracevar cwnd_
  • ns delete-agent-trace tcp

39
Visualization Tools
  • nam-1 (Network AniMator Version 1)
  • Packet-level animation
  • Well supported by ns
  • xgraph
  • Conversion from ns trace to xgraph format

40
xgraph
  • The xgraph program draws a graph on an X display
    given data read from either data files.
  • To run it xgraph dataFileName
  • You can save the hardcopy of the graph as a
    postscript file.
  • Xgraph is available on gamma
  • /opt/ns-allinone-2.30/xgraph-12.1

41
nam
  • Basic visualization
  • Topology layout
  • Animation control
  • Synchronous replay
  • Fine-tune layout
  • TCP/SRM visualization
  • Editor generate ns simulation scripts

42
ns?nam Interface
  • Color
  • Node manipulation
  • Link manipulation
  • Topology layout
  • Protocol state
  • Misc

43
nam Interface Color
  • Color mapping
  • ns color 1 red
  • ns color 2 blue
  • ns color 3 chocolate
  • Color ? flow id association
  • tcp0 set fid_ 1 red packets
  • tcp1 set fid_ 2 blue packets

44
nam Interface Nodes
  • Color
  • node color red
  • Shape (cant be changed after sim starts)
  • node shape box circle, box, hexagon
  • Marks (concentric shapes)
  • ns at 1.0 n0 add-mark m0 blue box
  • ns at 2.0 n0 delete-mark m0
  • Label (single string)
  • ns at 1.1 n0 label \web cache 0\

45
nam Interfaces Links
  • Color
  • ns duplex-link-op n0 n1 color "green"
  • Label
  • ns duplex-link-op n0 n1 label "abced"
  • Dynamics (automatically handled)
  • ns rtmodel Deterministic 2.0 0.9 0.1 n0 n1
  • Asymmetric links not allowed

46
nam Interface Topo Layout
  • Manual layout specify everything
  • ns duplex-link-op n(0) n(1) orient right
  • ns duplex-link-op n(1) n(2) orient right
  • ns duplex-link-op n(2) n(3) orient right
  • ns duplex-link-op n(3) n(4) orient 60deg
  • If anything missing ? automatic layout

47
nam Interface Protocol State
  • Monitor values of agent variables
  • ns add-agent-trace srm0 srm_agent0
  • ns monitor-agent-trace srm0
  • srm0 tracevar C1_
  • srm0 tracevar C2_
  • ns delete-agent-trace tcp1

48
nam Interface Misc
  • Annotation
  • Add textual explaination to your sim
  • ns at 3.5 "ns trace-annotate \packet drop\"
  • Set animation rate
  • ns at 0.0 "ns set-animation-rate 0.1ms"

49
(No Transcript)
50
Summary Generic Script Structure
  • set ns new Simulator
  • Turn on tracing
  • Create topology
  • Setup packet loss, link dynamics
  • Create routing agents
  • Create
  • - multicast groups
  • - protocol agents
  • - application and/or setup traffic sources
  • Post-processing procs
  • Start simulation
Write a Comment
User Comments (0)
About PowerShow.com