How does Mini-NDN work?
Mini-NDN’s principles of operation most heavily rely on the underlying Mininet code it relies on. Mininet uses a combination of limited containerization via network namespaces (which give processes isolated interfaces and routing tables) and emulated ethernet connections via veth connections. In practical terms, Mini-NDN ensures that processes running on distinct nodes will run seperately and without interfering with each other.
How does Mini-NDN apply link loss/delay/etc.?
Mini-NDN relies on Mininet’s code, which in turn uses the Linux tc utility on a stations’ virtualized interfaces to apply configurations known as qdiscs to these links. Note that these will only be applied on egress packets from a station where it’s applied. For more information on qdiscs and tc, view the information here.
Why use Mini-NDN rather than a simulator such as ndnSIM?
Mini-NDN is easier and faster to use because, rather than serving as a mathematical model of a network, it is instead running real NDN code on a real Linux kernel. This also means it’s quite useful for testing code changes, as it can more accurately test the interaction of software componenents.
|Library/Forwarder/Applications||Use system binaries (free to use any compatible versions)||Integrated (fixed release version)|
|Application language||C++ (ndn-cxx), CCL (ndn-cpp, PyNDN, ndn-js, jNDN)||C++ (ndn-cxx)|
|Simulation size||Medium - Large (cluster edition in development)||Large (can be parallelized using MPI)|
|Simulation time||Real time||Quick (depending on size/memory)|
|Porting real applications||Drop in||Changes required|
|Interactivity||Can interact directly with NFD, NLSR or Apps||Can show stats while running|
|Logs||May need to manually setup to collect||Available with tracer|
|Post processing scripts||Not available, users need to write their own||Available to use to process the logs|
|Other||Not yet supported (Wifi in development)||WiFi, LTE, etc available from ns-3|