NDN Codebase and Tools - Named Data Networking (NDN)GUI and experimental framework provided to...
Embed Size (px)
Transcript of NDN Codebase and Tools - Named Data Networking (NDN)GUI and experimental framework provided to...

NDNCodebaseandTools
AlexAfanasyevFloridaInternationalUniversity

StartingPoint:https://named-data.net/➠ Codebase
2

WheretoFindSourceCodeforNDNCodebase
• Mostlinkedfromhttps://named-data.net➠ Codebase• Github organizations
– https://github.com/named-data• NFD,corelibraries,andothergeneralusesoftware
– https://github.com/named-data-mobile• Androidandrelatedsoftware
– https://github.com/named-data-iot• IoT relatedsoftware
– https://github.com/named-data-ndnsim• ndnSIM core,exampleandrealsimulationscenarios
3

NDNCodebaseOverview
4
EvaluationFrameworksApps
InfrastructureSoftware
NDNLibraries
ndn-cxx
NDN-CPP
NDN-JS PyNDN jNDN
NFD
NDN-RTC
NFD-android
ndnSIM
ndn-atmos
ChronoChat
ChronoSync
ndns
NdnCon
miniNDN
NLSRNDN-RIOT
Repo-ng,repo-sql
NDNTools
ndncert
Manyothers NDNTestbed
PSyncVectorSync
ndn-flow
ndn-fs
μNFD
NDNControlCenter

SupportedPlatforms
• DesktopSystems– Ubuntu,OSX,FreeBSDandotherLinuxdistributions
• Homerouters– OpenWRT,DD-WRT
• Mobile:– Android,iOS(libraryonly)
• IoT:– Arduino,ESP8266,RIOT-OS– RaspberryPi(runsNFD,availablebinarypackages)
• Webbrowser– NDN-JSlibrary+microforwarder
5
https://redmine.named-data.net/projects/nfd/wiki

NDNForwardingDaemon(NFD)
• ThereferenceimplementationofNDNforwarder• https://named-data.net/doc/NFD/current/
– Overview– Gettingstarted– NFDDeveloper’sGuide– Manpages– Wiki– APIdocumentation(doxygen)
• Feedback,suggestions,andcontributionsarewelcome.
6

NDN-Android:NDNStackforAndroid
7
NDN
Security Tools
NDN Forwarding Daemon
Management GUI
NDN Tools
NDN Certificate Management
WiFi DirectCommunication
Contents
lib
res
classes.dex
AndroidManifest.xml
x86_64
armeabi
libboost_*.solibndn-cxx.so
…
libnfd-daemon.solibnfd-wrapper.so
…
anim
color
…
• Embeds actual NFD, compiled using NDK
• Works with all (non-rooted) Android devices
https://play.google.com/store/apps/details?id=net.named_data.nfd&hl=enhttps://github.com/named-data-mobile

NDN-RIOT:NDNforRIOT-OS
• OptimizedforIoTapps• Support
– Data-centricsecurity– StatefulNDNpacketforwarding– Replaceableforwardingstrategies– 802.15.4andEthernet
• SimpleapplicationAPIs• Severalsimpleexamplestogetstarted
8
NDNapp
NDN-RIOT
module
NetDeviceDriver
Sched InterruptHandlerIPC
CPU Timer NIC Peripherals
IPC IPCThreads
RIOT-OS Core
Hardware
https://github.com/named-data-iot

GettingStartedwithNDN-RIOTExamples
• Downloading– mkdir riot– cd riot– git clone https://github.com/named-data-iot/RIOT– git clone https://github.com/named-data-iot/ndn-riot– git clone https://github.com/named-data-iot/ndn-riot-examples
• Compilinganexample– cdndn-riot-examples/<APP>– Forhostarchitecture(fordebugging)
• make– ForaspecificRIOTboard
• makeBOARD=samr21-xpro• makeflashBOARD=samr21-xpro#toflashfirmware• maketermBOARD=samr21-xpro#toaccessboardviaserialinterface
9
ndn-benchmark
ndn-consumer
ndn-ping
ndn-producer
ndn-rtt
ndn-template

NDNTools
• ndnping,ndnpingserver– Rechability testingtools
• ndncatchunks,ndnputchunks– Segmentedfiletransferbetweenaconsumerandproducer
• ndnpeek,ndnpoke– Transmitasinglepacketbetweenaconsumerandaproducer
• ndndump,dissect,wireshark-dissect– DebugNDNpacketflow
• repo-ng,repo-sql:NDNrepositoriesprovidingmanagedpersistentstorage
10

LIBRARIES
11

ndn-cxx:NDNC++librarywitheXperimentaleXtensions
• C++11• Thereferencelibraryandsecuritylibraryimplementation• Usedin:NFD,NLSR,ndn-tools,ChronoChat,etc.• https://named-data.net/doc/ndn-cxx/current/
– Overview– Gettingstarted– Trivialapplications– Tutorials– Specifications– Manpages– APIdocumentation(doxygen)
• Feedback,suggestions,andcontributionsarewelcome.
12

NDNCommonClientLibraries(NDN-CPP,NDN-JS,jNDN,PyNDN)
• C++,Java,Python,JavaScript,C#,Squirrel• Usedin:NDN-RTC,NdnCon,NFD-Android,etc.• https://named-
data.net/codebase/platform/ndn-ccl/– NDNCommonClientLibrariesAPI– NDN-CPPAPI– PyNDN API– NDN-JSAPI– jNDN API
13

EVALUATIONTOOLSATDIFFERENTSCALES
14

NDNTestbed
• Networkof37sitesacross4continents,14countries
Opentojoinandusehttps://named-data.net/ndn-testbed/policies-
connecting-nodes-ndn-testbed/
• Examplesapplicationsandexperiments:videoconferencing,networkmanagement,virtualmachinemigration,strategies,nTorrent,etc.
• Smallscaleevaluations
15

OpenNetworkLab(ONL)
• Remotelyaccessiblenetworktestbed– OperatedandmaintainedbyAppliedResearchLabinDepartmentofComputer
ScienceandEngineeringatWashingtonUniversityinSt.Louis– RealHardwareforrunningrepeatablenetworkexperimentswithtrustedresults.(NOT
simulations)• UseforNDN
– NDNinstalledoneachhost/VM– NFDperformancestudy– NDNTestbedEmulation totestnewreleases
• Howtojoin?– https://onl.wustl.edu/
• And“Getanaccount”
16

MiniNDN:NDNEmulationFramework(BasedonMiniNet)
17
Features
● GUI and experimental framework provided to configure topologies and experiments
● Mini-NDN v0.3.0 released with cluster edition to improve scalability
Mini-NDN (100
nodes)
50 nodes
50 nodes
50 nodes
Need for Mini-NDN● Shared emulation environment (ex: Emulab)
○ Problems with many users, long wait time● Simulation environments (ex: ndnSIM)
○ Real world applications may need to be modified○ NFD version may not be the very latest commit on Github○ Cannot interact directly in real time (visualization is
possible)● Introducing Mini-NDN, Mininet based network emulator
RunsactualinstancesofNFD,NLSR
Medium-scaleevaluations
• Easytoconfigurenetworkemulation
• Runsanyrealapplication• Numberofemulatednodes∝CPUpower
• Clustereditioncanbeusedtoscaleemulations
http://minindn.memphis.edu/

ndnSIM:NDNSimulationFramework(BasedonNS-3)
18
ndnSIM Utilities
NS-3
NFD ndn-cxx
NDN Packet Encoding
Content StorePIT FIB Forwarding
Strategy
Face
LinkService
ndnSIM CoreNDN Protocol
Stack
Application LinkService
Network Device
Transport
ndnSIM-SpecificApplications
Transport
ndnSIM-specific ndn-cxx Face
Packet Signing
MechanismsSecurity
Mechanisms
Real-WorldApplications
ndnSIM Helpers
Global Router
Plug-N-Play Simulation Scenarios
ND
N
Sim
ulat
ion
Laye
rN
DN
Pr
otot
ypes
Modules Models VisualizerNetDeviceNodeApplication ChannelPacket
FullyintegratedwithNDNprototypeimplementations:NFD&ndn-cxx
Largescaleevaluations
• Provideinteroperabilitybetweensimulationandprototyping
• Enableatwo-wayofexperimentationandevaluation
• Enablehigh-fidelityNDNsimulations
• 1500+nodeswithWiFi channelsintheevaluationofNDNforvehicularnetworking
https://ndnsim.net/