NFD version 0.1.0¶
Release date: May 7, 2014
This is an incomplete list of features that are implemented in NFD version 0.1.0.
Packet Format
- NDN-TLV
- LocalControlHeader, to allow apps to set outgoing face and learn incoming face.
Faces
Unix stream socket
UDP unicast
UDP multicast
TCP
Ethernet, currently without fragmentation.
Note
Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04). Refer to Issue 1551 for more detail and implementation progress.
Management
- Use of signed Interests as commands, with authentication and authorization.
- Face management
- FIB management
- Per-namespace strategy selection
- NFD status publishing
- Notification to authorized apps of internal events, including Face creation and destruction.
Tables and forwarding pipelines support most Interest/Data processing, including selectors.
RIB Management that runs as a separate process,
nrd
. It supports basic prefix registration by applications, but no flags yet.Strategies
broadcast
best-route
ncc
: based on ccnx 0.7 for experimentationclient-control
: authorized application can directly control Interest forwarding
Name-based scoping
/localhost
: communication only within localhost using “local” Faces (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests and Data packets/localhop
: one-hop communication (e.g., if at least one incoming or outgoing Face in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face)
Support configuration file, which is in the Boost INFO format.
Applications
- Tools to discover hubs on NDN testbed.
- peek/poke and traffic generators for testing and debugging.
nfdc
, a command-line tool to configure NFD.nfd-status
, a command-line tool to query NFD status.nfd-status-http-server
, which reads the NFD status and publishes over HTTP.
Planned Functions and Features for Next Releases¶
- NACK
- A packet sent back by a producer or a router to signal the unavailability of a requested Data packet. The protocol specification for NACK is in progress.
- New strategies
- Additional strategies, including self-learning that populates the FIB by observing Interest and Data exchange.
- Hop-by-hop Interest limit mechanism
- For congestion control
- Face enhancements
- Add faces for new underlying protocols such as WiFi direct. Introduce the concept of “permanent faces” that can survive socket errors. Design a new hop-by-hop header that supports fragmentation, reliability improvement, etc.
- Tables
- Experiment and evaluate different data structures and algorithms.
- RIB management
- Move to more scalable data structures and support all flags in prefix registrations.
- Tunnel management
- For hub nodes to authenticate incoming tunnel requests and maintain the tunnels.
- Extensible name-based scoping
- Configurable organization-based scoping