1 ns fundamentals. usc information sciences institute 2 otcl and c++: the duality c++ otcl pure c++...

41
1 NS Fundamentals

Upload: jemima-collins

Post on 14-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

11

NS Fundamentals

Page 2: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

22USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

OTcl and C++: The Duality

C++ OTcl

Pure C++objects

Pure OTclobjects

C++/OTcl split objects

ns

Page 3: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

33USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

NS input & output

Page 4: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

44USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Basic TclDefining a variable.

set var1 1 set var2 “Hello“

Variable Reference

puts "var1=$var1, var2=$var2"

Assign the results of a function

set var3 [expr 5*10]

Page 5: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

55USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Basic TclFor Loop

for {set i 0} {$i < 100} {incr i} { puts “I = $i "

}While Loop

set i 0 while {$i < 10} {     set n($i) [new Node]     incr i }

Procedureproc proc1 {} {     puts "in procedure proc1" }

proc1

Page 6: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

66USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Basic OTclClass MomMom instproc greet {} {

$self instvar age_puts “$age_ years old mom: How are you doing?”

}

Class Kid -superclass MomKid instproc greet {} {

$self instvar age_puts “$age_ years old kid: What’s up, dude?”

}

set mom [new Mom]

$mom set age_ 45

set kid [new Kid]

$kid set age_ 15

$mom greet

$kid greet

Page 7: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

77USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Simple Simulation Example

Page 8: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

88USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Summary: Generic Script Structure

set ns [new Simulator]set ns [new Simulator]

# [Turn on tracing]# [Turn on tracing]

# Create topology# Create topology

# Setup packet loss, link dynamics# Setup packet loss, link dynamics

# Create routing agents# Create routing agents

# Create: # Create:

# - multicast groups# - multicast groups

# - protocol agents# - protocol agents

# - application and/or setup traffic sources# - application and/or setup traffic sources

# Post-processing procs# Post-processing procs

# Start simulation# Start simulation

Page 9: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

99USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Creating Event Scheduler

Create event scheduler set ns [new Simulator]

Schedule events $ns at <time> <event> <event>: any legitimate ns/tcl

commands

Start scheduler $ns run

Page 10: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1010USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

TracingTrace packets on all links $ns trace-all [open out.tr w]

+ 0.112731 1 3 tcp 512 ------- 0 0.1 3.1 0 0 - 0.112731 1 3 tcp 512 ------- 0 0.1 3.1 0 0 r 0.125461 1 3 tcp 512 ------- 0 0.1 3.1 0 0

Page 11: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1111USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Creating Network

Nodes set n0 [$ns node] set n1 [$ns node]

Links and queuing $ns duplex-link $n0 $n1

<bandwidth> <delay> <queue_type>

<queue_type>: DropTail, RED, CBQ, FQ, SFQ, DRR

Page 12: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1212USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Setup Routing

Unicast $ns rtproto <type> <type>: Static, Session, DV, cost,

multi-path

Multicast $ns multicast (right after [new

Simulator]) $ns mrtproto <type> <type>: CtrMcast, DM, ST, BST

Page 13: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1313USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

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

Page 14: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1414USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Creating Traffic: On Top of UDP

CBR set src [new Application/Traffic/CBR]

Exponential or Pareto on-off set src [new

Application/Traffic/Exponential] set src [new

Application/Traffic/Pareto]

Page 15: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1515USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

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

Page 16: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1616USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

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

Page 17: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1717USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Simple Simulation Example

Page 18: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1818USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

TCL Script Step 1#Create a simulator objectset ns [new Simulator]

#Define different colors for data flows (for NAM)$ns color 1 Blue$ns color 2 Red

 #Open the NAM trace fileset nf [open out.nam w]$ns namtrace-all $nf

#Open the All trace fileSet f [open out.tr w]$ns trace-all $f

Page 19: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

1919USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

TCL Script Step 2

#Create four nodes

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

 

#Create links between the nodes

$ns duplex-link $n0 $n2 2Mb 10ms DropTail

$ns duplex-link $n1 $n2 2Mb 10ms DropTail

$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail

Page 20: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2020USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

TCL Script Step 3

#Set Queue Size of link (n2-n3) to 10$ns queue-limit $n2 $n3 10 #Give node position (for NAM)$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n1 $n2 orient right-up$ns duplex-link-op $n2 $n3 orient right #Monitor the queue for link (n2-n3). (for NAM)$ns duplex-link-op $n2 $n3 queuePos 0.5 

Page 21: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2121USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

TCL Script Step 4#Setup a TCP connection

set tcp [new Agent/TCP]

$ns attach-agent $n0 $tcp

set sink [new Agent/TCPSink]

$ns attach-agent $n3 $sink

$ns connect $tcp $sink

$tcp set fid_ 1

 

#Setup a FTP over TCP connection

set ftp [new Application/FTP]

$ftp attach-agent $tcp

Page 22: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2222USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

TCL Script Step 5#Setup a UDP connectionset udp [new Agent/UDP]$ns attach-agent $n1 $udpset null [new Agent/Null]$ns attach-agent $n3 $null$ns connect $udp $null$udp set fid_ 2 #Setup a CBR over UDP connectionset cbr [new Application/Traffic/CBR]$cbr attach-agent $udp$cbr set packet_size_ 1000$cbr set rate_ 1mb

Page 23: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2323USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

TCL Script Step 6

#Schedule events for the CBR and FTP agents$ns at 0.1 "$cbr start"$ns at 1.0 "$ftp start"$ns at 4.0 "$ftp stop"$ns at 4.5 "$cbr stop" #Call the finish procedure after 5 seconds of

simulation time$ns at 5.0 "finish" #Print CBR packet size and intervalputs "CBR packet size = [$cbr set packet_size_]"puts "CBR interval = [$cbr set interval_]" 

Page 24: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2424USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

TCL Script Step 7

#Define a 'finish' procedureproc finish {} { global ns nf $ns flush-trace #Close the NAM trace file close $nf #Execute NAM on the trace file exec nam out.nam & exit 0} #Run the simulation$ns run

Page 25: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2525USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

NS Directory map

Page 26: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2626USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

ns Primer – Wired World

Basic nsA complete example Multicast routing

Visualization

Page 27: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2727USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

G2time1.3s G2time1.2s

G1G2

time1.35s

Example: Multicast Routing

Dynamic group membership under Dense Mode

n0 n1

n2

n3

1.5Mb, 10ms

1.5Mb, 10ms

G1time1.25s

G2

1.5Mb, 10ms

Page 28: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2828USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Multicast: Step 1

Scheduler, tracing, and topology

# Create scheduler# Create scheduler

set ns [new Simulator]set ns [new Simulator]

# Turn on multicast# Turn on multicast

$ns multicast$ns multicast

# Turn on Tracing# Turn on Tracing

set fd [new “mcast.nam” w]set fd [new “mcast.nam” w]

$ns namtrace-all $fd$ns namtrace-all $fd

Page 29: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

2929USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Multicast: Step 2

Topology

# Create nodes# Create nodes

set n0 [$ns node]set n0 [$ns node]

set n1 [$ns node]set n1 [$ns node]

set n2 [$ns node]set n2 [$ns node]

set n3 [$ns node]set n3 [$ns node]

# Create links# Create links

$ns duplex-link $n0 $n1 1.5Mb 10ms DropTail$ns duplex-link $n0 $n1 1.5Mb 10ms DropTail

$ns duplex-link $n0 $n2 1.5Mb 10ms DropTail$ns duplex-link $n0 $n2 1.5Mb 10ms DropTail

$ns duplex-link $n0 $n3 1.5Mb 10ms DropTail$ns duplex-link $n0 $n3 1.5Mb 10ms DropTail

Page 30: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3030USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Multicast: Step 3

Routing and group setup

# Routing protocol: let’s run distance vector# Routing protocol: let’s run distance vector

$ns mrtproto DM$ns mrtproto DM

# Allocate group addresses# Allocate group addresses

set group1 [Node allocaddr]set group1 [Node allocaddr]

set group2 [Node allocaddr]set group2 [Node allocaddr]

Page 31: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3131USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Multicast: Step 4

Sender 0

# Transport agent for the traffic source# Transport agent for the traffic sourceset set udp0udp0 [new Agent/UDP] [new Agent/UDP]$ns attach-agent $$ns attach-agent $n1n1 $ $udp0udp0$$udp0udp0 set dst_addr_ $ set dst_addr_ $group1group1$$udp0udp0 set dst_port_ 0 set dst_port_ 0

# Constant Bit Rate source #0 # Constant Bit Rate source #0 set set cbr0cbr0 [new Application/Traffic/CBR] [new Application/Traffic/CBR]$$cbr0cbr0 attach-agent $ attach-agent $udp0udp0# Start at time 1.0 second# Start at time 1.0 second$ns at 1.0 "$$ns at 1.0 "$cbr0cbr0 start" start"

Page 32: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3232USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Multicast: Step 5

Sender 1

# Transport agent for the traffic source# Transport agent for the traffic sourceset set udp1udp1 [new Agent/UDP] [new Agent/UDP]$ns attach-agent $$ns attach-agent $n3n3 $ $udp1udp1$$udp1udp1 set dst_addr_ $ set dst_addr_ $group2group2$$udp1udp1 set dst_port_ 0 set dst_port_ 0

# Constant Bit Rate source #0 # Constant Bit Rate source #0 set set cbr1cbr1 [new Application/Traffic/CBR] [new Application/Traffic/CBR]$$cbr1cbr1 attach-agent $ attach-agent $udp1udp1# Start at time 1.1 second# Start at time 1.1 second$ns at 1.1 "$$ns at 1.1 "$cbr1cbr1 start" start"

Page 33: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3333USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Multicast: Step 6

Receiver with dynamic membership

# Can also be Agent/Null# Can also be Agent/Null

set rcvr [new Agent/LossMonitor]set rcvr [new Agent/LossMonitor]

# Assign it to node $n2# Assign it to node $n2

$ns at $ns at 1.21.2 "$n2 join-group $rcvr $ "$n2 join-group $rcvr $group2group2""

$ns at $ns at 1.251.25 "$n2 leave-group $rcvr $ "$n2 leave-group $rcvr $group2group2""

$ns at $ns at 1.31.3 "$n2 join-group $rcvr $ "$n2 join-group $rcvr $group2group2""

$ns at $ns at 1.351.35 "$n2 join-group $rcvr $ "$n2 join-group $rcvr $group1group1""

Page 34: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3434USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Multicast: Step 7

End-of-simulation wrapper (as usual)

$ns at 2.0 "finish"$ns at 2.0 "finish"proc finish {} {proc finish {} {

global ns fdglobal ns fdclose $fdclose $fd$ns flush-trace$ns flush-traceputs "running nam..."puts "running nam..."exec nam out.nam &exec nam out.nam &exit 0exit 0

}}$ns run$ns run

Page 35: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3535USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

ns Primer – Wired World

Basic nsTwo examples TCP, multicast routing

Visualization

Page 36: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3636USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Visualization Tools

nam-1 (Network AniMator Version 1) Packet-level animation Well supported by ns

xgraph Conversion from ns trace to xgraph

format

Page 37: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3737USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

nam Interface: Color

Color mapping$ns color 40 red$ns color 40 red

$ns color 41 blue$ns color 41 blue

$ns color 42 chocolate$ns color 42 chocolate

Color flow id association$tcp0 set fid_ 40$tcp0 set fid_ 40 ;# red packets;# red packets

$tcp1 set fid_ 41$tcp1 set fid_ 41 ;# blue packets;# blue packets

Page 38: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3838USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Multicast:

Define nam color

# Colors for packets from two mcast groups# Colors for packets from two mcast groups$ns color 10 blue$ns color 10 blue$ns color 11 red$ns color 11 red

# Prune packets (# Prune packets (predefinedpredefined))$ns color 30 purple$ns color 30 purple# Graft packets# Graft packets$ns color 31 green$ns color 31 green

Page 39: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

3939USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

Tracefile for cwnd, rtt

# trace file for RTTset f3 [open rtt.tr w]set tcp0 [new Agent/TCP]$tcp0 attach $f3$tcp0 trace rtt_

# trace file for Congestion Window Sizeset f4 [open cwnd.tr w]set tcp0 [new Agent/TCP]$tcp0 attach $f4$tcp0 trace cwnd_

Page 40: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

4040USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE

GNUPLOT

#simple.gnuset term x11set xrange [0:200]set yrange [0:0.4]set xlabel 'Time (s)'set ylabel 'Throughput (Mbit/s)'plot 'blm.tr' title 'blm' with l 1, 'tcp.tr' title 'tcp' with l 5set term postscriptset output 'blm.ps'rep

%gnuplot simple.gnu

Page 41: 1 NS Fundamentals. USC INFORMATION SCIENCES INSTITUTE 2 OTcl and C++: The Duality C++ OTcl Pure C++ objects Pure OTcl objects C++/OTcl split objects ns

4141USC INFORMATION SCIENCES INSTITUTEUSC INFORMATION SCIENCES INSTITUTE