Git Product home page Git Product logo

ndntrace's Introduction

NDN-Trace

NDN-Trace is a measurement tool developed to retrieve certain information about an NDN network (RTTs, paths to a name, topology). The paper that describes the protocol in details was published in ACM ICN 2017.

Link to access the paper

Authors:

  • Siham Khoussi
  • Davide Pesavento
  • Lotfi Benmohamed
  • Abdella Battou

Prerequisits

  • Install VERSION = "0.5.0" of ndn-cxx library and its prerequisites. Please see Getting Started with ndn-cxx for how to install ndn-cxx. If you are using a different version of ndn-cxx, use the following command (inside ndn-cxx) to get the required version:

    git checkout tags/ndn-cxx-0.5.0

  • Install the NDN daemon NFD, VERSION = "0.5.0". If you are using a different version of NFD, use the following command (inside NFD) to get the required version:

    git checkout tags/NFD-0.5.0

  • Clone Rapidjson into your home in a new folder named "include".

Building ndn-cxx with the trace programs:

  • Clone ndntrace into your home directory.

  • From ndntrace/patches, apply the patch ws.patch inside ndn-cxx.

  • Copy the two programs "trace_daemon" and "trace_client" into ndn-cxx/examples.

  • From ndntrace/patches, apply the patch nackcpp.patch and nackhpp.patch inside ndn-cxx/src/lp.

  • Apply the patch ws.patch to the wscript in ndn-cxx.

  • To build ndn-cxx with the new changes run the following commands:

    ./waf configure --with-examples

    ./waf

    sudo ./waf install

Building the NFD with the trace strategy components:

The steps below provide guidance to integrate Trace changes into the ASF strategy as well as thebest route strategy:

  • Open NFD directory

  • From ndntrace/patches, apply the patches bestroutecpp.patch bestroutehpp.patch inside NFD/daemon/fw. To include NdnTrace changes to the best route strategy.

  • From ndntrace/patches, apply the patches asfcpp.patch asfhpp.patch inside NFD/daemon/fw. To include NdnTrace changes to the ASF strategy.

  • Build the daemon once more to include the changes by running the following commands:

    ./waf configure

    ./waf

    sudo ./waf install

To use NdnTrace on different/customized strategies, follow these steps:

  • Change the field "YourDefaultStrategyHere" from strategy_components.hpp into the name of your strategy. Then copy it's content into it.

  • Copy the content of strategy_component.cpp into your own strategy and call "Trace" function from within "afterReceiveInterest".

  • Initialize "m_forwarder" in the constructer of your strategy class.

  • Build the NFD with the above changes:

    ./waf configure

    ./waf

    sudo ./waf install

Usage:

- run the trace_client and trace_daemon from ndn-cxx/build/examples:
- Run trace_daemon on every NDN node.
- On the tracing node run the client with

> trace_client -n <NAME> [-s|-m] [-p|-c] where:

  - -n specifies the traced name prefix. This is the only mandatory parameter.
  - -s and -m choose between single-path and multi-path tracing.
  - -p|-c indicates the type of tracing session: -p to trace a producer application, -c to find a cached copy.

Questions:

Siham Khoussi [email protected]

ndntrace's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

yaosiyan siham-kh

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.