Visualization Tutorial
Visualization Tutorial
March 2013
NS-3 Consortium Meeting
March 2013
Outline
Getting visualization and raw data from ns-3
Tracing requirements
Tracing is a structured form of simulation
output
Example (from ns-2):
+
r
r
+
1.84375
1.84375
1.84471
1.84566
1.84566
0
0
2
2
0
2
2
1
0
2
cbr
cbr
cbr
ack
tcp
Tracing in ns-3
ns-3 configures multiple 'TraceSource' objects
(TracedValue, TracedCallback)
Multiple types of 'TraceSink' objects can be hooked to
these sources
A special configuration namespace helps to manage
access to trace sources
TracedValue
TraceSource
TraceSource
unattached
NS-3 Consortium Meeting
March 2013
NetDevice::
ReceiveCallback
CsmaNetDevice::Send ()
MacRx
MacTx
MacDrop
queue
Sniffer
PromiscSniffer
MacTxBackoff
PhyTxBegin
PhyTxDrop
PhyTxEnd
CsmaNetDevice::
TransmitStart()
PhyRxEnd
PhyRxDrop
CsmaNetDevice::
Receive()
CsmaChannel
NS-3 Consortium Meeting
March 2013
Outline
Getting visualization and raw data from ns-3
Packet traces
Gnuplot and Matplotlib
Flow Monitor
PyViz
NetAnim
Statistics
Data Collection Framework
NS-3 Consortium Meeting
March 2013
Gnuplot
src/tools/gnuplot.{cc,h}
Matplotlib
Matplotlib or other Python plotting programs can be used
example: src/core/examples/sample-rng-plot.py
11
Outline
Getting visualization and raw data from ns-3
Packet traces
Gnuplot and Matplotlib
Flow Monitor
PyViz
NetAnim
Statistics
Data Collection Framework
NS-3 Consortium Meeting
March 2013
12
FlowMonitor
Network monitoring framework found in
src/flow-monitor/
Goals:
detect all flows passing through network
stores metrics for analysis such as bitrates,
duration, delays, packet sizes, packet loss
ratios
FlowMonitor architecture
Basic classes
FlowMonitor
FlowProbe
FlowClassifier
FlowMonitorHelper
Ipv4 only
FlowMonitor statistics
Statistics gathered
FlowMonitor configuration
example/wireless/wifi-hidden-terminal.cc
FlowMonitor output
This program exports statistics to stdout
Other examples integrate with PyViz
Outline
Getting visualization and raw data from ns-3
Packet traces
Gnuplot and Matplotlib
Flow Monitor
PyViz
NetAnim
Statistics
Data Collection Framework
NS-3 Consortium Meeting
March 2013
18
PyViz overview
Developed by Gustavo Carneiro
Live simulation visualizer (no trace files)
Useful for debugging
mobility model behavior
where are packets being dropped?
Outline
Getting visualization and raw data from ns-3
Packet traces
Gnuplot and Matplotlib
Flow Monitor
PyViz
NetAnim
Statistics
Data Collection Framework
NS-3 Consortium Meeting
March 2013
23
NetAnim
"NetAnim" by George Riley and John Abraham
pyviz
24
Outline
Getting visualization and raw data from ns-3
Packet traces
Gnuplot and Matplotlib
Flow Monitor
PyViz
NetAnim
Statistics
Data Collection Framework
NS-3 Consortium Meeting
March 2013
27
Statistics
Statistics module contributed by Joe Kopena
early in the project
src/stats directory
example "wifi-example-sim"
(packet loss vs distance for
default wifi settings)
Outline
Getting visualization and raw data from ns-3
Packet traces
Gnuplot and Matplotlib
Flow Monitor
PyViz
NetAnim
Statistics
Data Collection Framework
NS-3 Consortium Meeting
March 2013
30
Probe: wrap
trace source
Collector: data
reduction
Aggregator:
marshal data
database
controls
to enable/
disable
named
within
configuration
namespace
Static method for
instrumenting code
(Stat::Put() of
ns2measure)
examples:
averaging, time
series, etc.
can be
chained
together
gnuplot
postgresql
other...
files
"/NodeList/*/ApplicationList/0/$ns3::PacketSink/Rx"
Probe
filter trace
source data
within time
window
Collector
compute
statistics on
packet and
byte counts
Aggregator
gnuplot
postgresql
SAFE
other...
Under construction:
steady-state collector