NS2 Tutorial Project 1 - PowerPoint PPT Presentation

1 / 53
About This Presentation
Title:

NS2 Tutorial Project 1

Description:

NS-2 Tutorial / Project 1. Choe, Hyun Jung (Stella) September 15, 2005. High ... http://ns-2.blogspot.com/2006/05/problem-in-installing-ns-2292-allinone.htm l ... – PowerPoint PPT presentation

Number of Views:430
Avg rating:3.0/5.0
Slides: 54
Provided by: afran
Category:
Tags: html | ip | ns2 | php | project | trace | tutorial

less

Transcript and Presenter's Notes

Title: NS2 Tutorial Project 1


1
NS-2 Tutorial / Project 1
Choe, Hyun Jung (Stella) September 15,
2005 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
  • Project I Overview
  • Appendix

3
Part I NS-2 Overview
4
What is NS-2?
  • a Discrete event simulator
  • Goals
  • Support networking research and education
  • Freely distributed, open source
  • Share code, protocols, models, etc
  • 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.26
  • Please use /tmp for your trace files (not codes)
    (later)
  • xdisplay
  • If you want to install NS2 in your own PC
  • Current release ns-2.29, Oct. 22, 2005)
  • http//www.isi.edu/nsnam/ns/ns-build.html
  • Platforms
  • Most Unix and Linux
  • Windows and Mac

11
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

12
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 Category (next page) and others
    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

13
(No Transcript)
14
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

15
NS-2 Directory Structure
/usr/local/ns-allinone-2.26/
ns-allinone
...
TK8.3
OTcl
tclcl
Tcl8.3
ns-2
nam-1
C code
...
tcl
ex
test
mcast
lib
...
examples
validation tests
OTcl code
16
Part III How to Program
17
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

18
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
19
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

20
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
21
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
22
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
23
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
24
A simulation example
ftp
W32
tcp
sink
n0
n4
5Mb, 15ms
n2
n3
10Mb,2ms
10Mb,2ms
n1
n5
sink
tcp
ftp
W32
25
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

26
Tracing and Monitoring II
  • Packet tracing
  • On all links ns trace-all open out.tr w
  • On one specific link ns trace-queue n0 n1tr
  • ltEventgt lttimegt ltfromgt lttogt ltpktgt ltsizegt -- ltfidgt
    ltsrcgt ltdstgt ltseqgt ltattrgt
  • 1 0 2 cbr 210 ------- 0 0.0 3.1 0 0
  • - 1 0 2 cbr 210 ------- 0 0.0 3.1 0 0
  • r 1.00234 0 2 cbr 210 ------- 0 0.0 3.1 0 0
  • Event tracing (support TCP right now)
  • Record event in trace file ns eventtrace-all
  • E 2.267203 0 4 TCP slow_start 0 210 1

27
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_

28
Tracing and Monitoring IV
  • Visualize trace in nam
  • ns namtrace-all open test.nam w
  • ns namtrace-queue n0 n1
  • 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

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

30
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
  • /usr/local/ns-allinone-2.26/bin/xgraph

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

32
(No Transcript)
33
Post-processing general trace file
34
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

35
Part IV Project 1 Overview
36
Topology
10Mb, 5ms
1.5Mb, 10ms
37
Purpose
  • To study TCP congestion avoidance approaches
  • RED (random early detection)
  • ECN (Elicit congestion notification)
  • Measurements
  • queue size
  • throughput of each flow
  • end-to-end delay of each flow
  • packet drop rate of each flow

38
Scenarios
  • with RED, without ECN
  • with RED, with ECN
  • without RED, with ECN
  • without RED, without ECN

39
Final Report
  • Readme file
  • Analysis Report (hardcopy also)
  • Scripts
  • One Page Assessment (hardcopy also)
  • Refer to the project description on course
    website for more information.
  • Late submission
  • 10 deduction for one day

40
Part V Appendix
41
Extending Tcl Interpreter
  • TclCL
  • C and OTcl linkage
  • glue library that makes it easy to share
    functions, variables, etc
  • 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

42
Example Hello World
  • Batch mode
  • simple.tcl
  • set ns new Simulator
  • ns at 1 puts \Hello World!\
  • ns at 1.5 exit
  • ns run
  • ns simple.tcl
  • Hello World!
  • Interactive mode
  • ns
  • set ns new Simulator
  • _o3
  • ns at 1 puts \Hello World!\
  • 1
  • ns at 1.5 exit
  • 2
  • ns run
  • Hello World!

43
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
  • test 43 27

44
Basic OTcl
  • Class Mom
  • Mom instproc greet
  • self instvar age_
  • puts age_ years old mom How are you doing?
  • Class Kid -superclass Mom
  • Kid instproc greet
  • self instvar age_
  • puts age_ years old kid Whats up, dude?

set mom new Mom mom set age_ 45 set kid new
Kid kid set age_ 15 mom greet kid greet
45
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

46
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

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

48
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

49
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\

50
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

51
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

52
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

53
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"
Write a Comment
User Comments (0)
About PowerShow.com