Download presentation
Presentation is loading. Please wait.
1
ndnSIM Tutorial
2
About ndnSIM ns-3 based Named Data Networking (NDN) simulator
Current version 2.0 Web,
3
Index Getting started ndnSIM helpers Examples Metrics
4
Getting Started Preferred OS Install dependencies Ubuntu Linux 14.04
Only describe the steps on Ubuntu 14.04 Visit for more Install dependencies
5
Download ndnSIM source
Download ndn-cxx Download ns3 and add ndnSIM into it May take hours to download, depending on the github server
6
Compile ndn-cxx Compile ns-3
Enable the examples (under ./src/ndnSIM/examples/) The g++ compiler may crash several times, retry with './waf'
7
Index Getting started ndnSIM helpers Examples Metrics
8
ndmSim helpers NDN stack helper
Routing: where Interest can be forwarded Manual routes
9
Automatic shortest path routes
install NDN interfaces on nodes specify which node exports which prefix calculate and install FIBs on every node
10
Forwarding strategy Specify the desired per-name prefix forwarding strategy for one, more or all the nodes of a topology. Strategy name /localhost/nfd/strategy/best-route /localhost/nfd/strategy/broadcast Install on one node Install on all nodes
11
Link Control helper Allows scheduling of link failures and failure recoveries
12
Application Helper Create helper for specific applications class
Assign prefix on which application operates Assign application-specific attributes using AppHelper::SetAttribute(): Install application on one or more nodes:
13
Index Getting started ndnSIM helpers Examples Metrics
14
Example: ndn-simple.cpp
15
Consumer is simulated using ConsumerCbr reference application and generates Interests towards the producer with frequency of 10 Interests per second
16
Producer is simulated using Producer class, which is used to satisfy all incoming Interests with virtual payload data (1024 bytes).
17
Run the program Run with log model Run with Python visualizer
$ NS_LOG=ndn.Producer:ndn.Consumer ./waf --run=ndn-simple ./waf --run=ndn-simple --vis
18
Example: ndn-grid-topo-plugin.cpp
A 3 × 3 grid topology Use AnnotatedTopologyReader to load topology file
19
topo-grid-3x3.txt
20
ndn-grid-topo-plugin.cpp
22
$ ./waf --run=ndn-grid-topo-plugin --vis
23
Example: ndn-different-strategy-per-prefix.cpp
A grid topology The broadcast strategy to be installed for the name prefix "/prefix1" in all the nodes For the name prefix "/prefix2", the best-route strategy will be installed in all the topology nodes
24
ndn-different-strategy-per-prefix.cpp
27
$ ./waf --run=ndn-different-strategy-per-prefix --vis
28
Example: ndn-load-balancer.cpp
A load balancer topology
29
topo-load-balancer.txt
30
ndn-load-balancer.cpp
32
./waf --run=ndn-load-balancer --vis
33
Example: ndn-simple-with-link-failure.cpp
36
Index Getting started ndnSIM helpers Examples Metrics
37
Metrics ndn::L3RateTracer
Tracing the rate in bytes and in number of packets of Interest/Data packets forwarded by an NDN node Output file format is tab-separated values Time, Node, FaceId, Type, Packets, Kilobytes, PacketsRaw, KilobytesRaw See for details
38
L2Tracer traces only packet drop on layer 2 (e.g., due to transmission queue overflow). Output file format is tab-separated values, Time, Node, Interface, Type, Packets, Kilobytes, PacketsRaw, KilobytesRaw See for details
39
Example: ndn-tree-tracers.cpp
topo-tree.txt
40
ndn-tree-tracers.cpp
42
./waf --run=ndn-tree-tracers
Create "rate-trace.txt", analyze
43
Example: ndn-tree-tracers.cpp
topo-tree-25-node.txt
49
./waf --run=ndn-tree-with-l2tracer --vis
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.