Presentation is loading. Please wait.

Presentation is loading. Please wait.

NdnSIM Tutorial.

Similar presentations


Presentation on theme: "NdnSIM Tutorial."— Presentation transcript:

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

21

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

25

26

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

31

32 ./waf --run=ndn-load-balancer --vis

33 Example: ndn-simple-with-link-failure.cpp

34

35

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

41

42 ./waf --run=ndn-tree-tracers
Create "rate-trace.txt", analyze

43 Example: ndn-tree-tracers.cpp
topo-tree-25-node.txt

44

45

46

47

48

49 ./waf --run=ndn-tree-with-l2tracer --vis


Download ppt "NdnSIM Tutorial."

Similar presentations


Ads by Google