Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 1 | NFD version 0.1.0 |
| 2 | ----------------- |
| 3 | |
| 4 | Release date: May 7, 2014 |
| 5 | |
| 6 | This is an incomplete list of features that are implemented in NFD version 0.1.0. |
| 7 | |
| 8 | - **Packet Format** |
| 9 | |
Davide Pesavento | bf4c131 | 2023-02-23 20:32:01 -0500 | [diff] [blame^] | 10 | + `NDN-TLV <https://docs.named-data.net/NDN-packet-spec/0.1/>`__ |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 11 | + LocalControlHeader, to allow apps to set outgoing face and learn incoming face |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 12 | |
| 13 | - **Faces** |
| 14 | |
| 15 | + Unix stream socket |
| 16 | + UDP unicast |
| 17 | + UDP multicast |
| 18 | + TCP |
| 19 | + Ethernet, currently without fragmentation. |
| 20 | |
| 21 | .. note:: |
| 22 | Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible |
| 23 | buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04). |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 24 | Refer to :issue:`1551` for more details and implementation progress. |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 25 | |
| 26 | - **Management** |
| 27 | |
| 28 | + Use of signed Interests as commands, with authentication and authorization. |
| 29 | + Face management |
| 30 | + FIB management |
| 31 | + Per-namespace strategy selection |
| 32 | + NFD status publishing |
| 33 | + Notification to authorized apps of internal events, including Face creation and destruction. |
| 34 | |
| 35 | - **Tables and forwarding pipelines** support most Interest/Data processing, including |
| 36 | selectors. |
| 37 | |
| 38 | - **RIB Management** that runs as a separate process, ``nrd``. It supports basic prefix |
| 39 | registration by applications, but no flags yet. |
| 40 | |
| 41 | - **Strategies** |
| 42 | |
| 43 | + ``broadcast`` |
| 44 | + ``best-route`` |
| 45 | + ``ncc``: based on ccnx 0.7 for experimentation |
| 46 | + ``client-control``: authorized application can directly control Interest forwarding |
| 47 | |
| 48 | - **Name-based scoping** |
| 49 | |
| 50 | + ``/localhost``: communication only within localhost using "local" Faces |
| 51 | (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests |
| 52 | and Data packets |
| 53 | + ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face |
| 54 | in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face) |
| 55 | |
| 56 | - **Support configuration file**, which is in the Boost INFO format. |
| 57 | |
| 58 | - **Applications** |
| 59 | |
| 60 | + Tools to discover hubs on NDN testbed. |
| 61 | + peek/poke and traffic generators for testing and debugging. |
| 62 | + ``nfdc``, a command-line tool to configure NFD. |
| 63 | + ``nfd-status``, a command-line tool to query NFD status. |
| 64 | + ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP. |
| 65 | |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 66 | Planned Functions and Features for Next Releases |
| 67 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 68 | |
| 69 | - NACK |
| 70 | A packet sent back by a producer or a router to signal the unavailability of a requested |
| 71 | Data packet. The protocol specification for NACK is in progress. |
| 72 | |
| 73 | - New strategies |
| 74 | Additional strategies, including self-learning that populates the FIB by observing |
| 75 | Interest and Data exchange. |
| 76 | |
| 77 | - Hop-by-hop Interest limit mechanism |
| 78 | For congestion control |
| 79 | |
| 80 | - Face enhancements |
| 81 | Add faces for new underlying protocols such as WiFi direct. |
| 82 | Introduce the concept of "permanent faces" that can survive socket errors. |
| 83 | Design a new hop-by-hop header that supports fragmentation, reliability improvement, etc. |
| 84 | |
| 85 | - Tables |
| 86 | Experiment and evaluate different data structures and algorithms. |
| 87 | |
| 88 | - RIB management |
| 89 | Move to more scalable data structures and support all flags in prefix registrations. |
| 90 | |
| 91 | - Tunnel management |
| 92 | For hub nodes to authenticate incoming tunnel requests and maintain the tunnels. |
| 93 | |
| 94 | - Extensible name-based scoping |
| 95 | Configurable organization-based scoping |