blob: 991dd06f550791837b6eb996fb273aaca8fa5ef6 [file] [log] [blame]
Ashlesh Gawande6c86e302019-09-17 22:27:05 -05001FAQ
2=========
3
4* ``How does Mini-NDN work?``
5
6Mini-NDN's principles of operation most heavily rely on the underlying Mininet code it relies on.
7Mininet uses a combination of limited containerization via network namespaces (which give processes
8isolated interfaces and routing tables) and emulated ethernet connections via veth connections.
9In practical terms, Mini-NDN ensures that processes running on distinct nodes will run seperately
10and without interfering with each other.
11
12* ``How does Mini-NDN apply link loss/delay/etc.?``
13
14Mini-NDN relies on Mininet's code, which in turn uses the Linux tc utility on a stations' virtualized
15interfaces to apply configurations known as qdiscs to these links. Note that these will only be applied
16on egress packets from a station where it's applied.
17For more information on qdiscs and tc, view the information `here <http://wiki.linuxwall.info/doku.php/en%3aressources%3adossiers%3anetworking%3atraffic_control>`_.
18
19* ``Why use Mini-NDN rather than a simulator such as ndnSIM?``
20
21Mini-NDN is easier and faster to use because, rather than serving as a mathematical model of a network,
22it 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.
23
24+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
25| Criteria | Mini-NDN | ndnSIM |
26+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
27| Based On | Mininet | ns-3 |
28+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
29| Language | Python | C++ |
30+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
31| Library/Forwarder/Applications | Use system binaries (free to use any compatible versions) | Integrated (fixed release version) |
32+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
33| Application language | C++ (ndn-cxx), CCL (ndn-cpp, PyNDN, ndn-js, jNDN) | C++ (ndn-cxx) |
34+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
35| Simulation size | Medium - Large (cluster edition in development) | Large (can be parallelized using MPI) |
36+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
37| Simulation time | Real time | Quick (depending on size/memory) |
38+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
39| Porting real applications | Drop in | Changes required |
40+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
41| Interactivity | Can interact directly with NFD, NLSR or Apps | Can show stats while running |
42+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
43| Logs | May need to manually setup to collect | Available with tracer |
44+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
45| Post processing scripts | Not available, users need to write their own | Available to use to process the logs |
46+--------------------------------+-----------------------------------------------------------+-----------------------------------------+
47| Other | Not yet supported (Wifi in development) | WiFi, LTE, etc available from ns-3 |
48+--------------------------------+-----------------------------------------------------------+-----------------------------------------+