Ashlesh Gawande | 6c86e30 | 2019-09-17 22:27:05 -0500 | [diff] [blame^] | 1 | FAQ |
| 2 | ========= |
| 3 | |
| 4 | * ``How does Mini-NDN work?`` |
| 5 | |
| 6 | Mini-NDN's principles of operation most heavily rely on the underlying Mininet code it relies on. |
| 7 | Mininet uses a combination of limited containerization via network namespaces (which give processes |
| 8 | isolated interfaces and routing tables) and emulated ethernet connections via veth connections. |
| 9 | In practical terms, Mini-NDN ensures that processes running on distinct nodes will run seperately |
| 10 | and without interfering with each other. |
| 11 | |
| 12 | * ``How does Mini-NDN apply link loss/delay/etc.?`` |
| 13 | |
| 14 | Mini-NDN relies on Mininet's code, which in turn uses the Linux tc utility on a stations' virtualized |
| 15 | interfaces to apply configurations known as qdiscs to these links. Note that these will only be applied |
| 16 | on egress packets from a station where it's applied. |
| 17 | For 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 | |
| 21 | Mini-NDN is easier and faster to use because, rather than serving as a mathematical model of a network, |
| 22 | 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. |
| 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 | +--------------------------------+-----------------------------------------------------------+-----------------------------------------+ |