blob: 37f14127320a3fa1a834e45003cf8f9528ee9aa0 [file] [log] [blame] [view]
Alexander Afanasyeva1417002014-01-21 20:29:55 -08001NFD - Named Data Networking Forwarding Daemon
Beichuan Zhang55b8ed42014-04-26 22:25:44 -07002=============================================
Alexander Afanasyeva1417002014-01-21 20:29:55 -08003
Alexander Afanasyev0c3e93d2014-05-12 15:49:56 -07004NFD overview, release notes for the released versions, getting started tutorial, and other
5additional documentation are available online on
6[NFD's homepage](http://named-data.net/doc/NFD/).
7
8## Overview
9
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070010NFD is a network forwarder that implements and evolves together with the Named Data
11Networking (NDN) [protocol](http://named-data.net/doc/ndn-tlv/). After the initial
12release, NFD will become a core component of the
13[NDN Platform](http://named-data.net/codebase/platform/) and will follow the same release
14cycle.
Alexander Afanasyeva1417002014-01-21 20:29:55 -080015
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070016NFD is an open and free software package licensed under GPL 3.0 license and is the
17centerpiece of our committement to making NDN's core technology open and free to all
18Internet users and developers. For more information about the licensing details and
19limitation, refer to
20[`COPYING.md`](https://github.com/named-data/NFD/blob/master/COPYING.md).
Steve DiBenedetto1a3c6732014-03-13 06:44:05 -060021
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070022NFD is developed by a community effort. Although the first release was mostly done by the
23members of [NSF-sponsored NDN project team](http://named-data.net/project/participants/),
24it already contains significant contributions from people outside the project team (for
25more details, refer to [`AUTHORS.md`](https://github.com/named-data/NFD/blob/master/AUTHORS.md)).
26We strongly encourage participation from all interested parties, since broader community
27support is key for NDN to succeed as a new Internet architecture. Bug reports and
28feedback are highly appreciated and can be made through
Alexander Afanasyev284257b2014-04-11 14:16:51 -070029[Redmine site](http://redmine.named-data.net/projects/nfd) and the
30[ndn-interest mailing list](http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest).
Steve DiBenedetto1a3c6732014-03-13 06:44:05 -060031
Beichuan Zhang55b8ed42014-04-26 22:25:44 -070032The main design goal of NFD is to support diverse experimentation of NDN technology. The
33design emphasizes *modularity* and *extensibility* to allow easy experiments with new
34protocol features, algorithms, new applications. We have not fully optimized the code for
35performance. The intention is that performance optimizations are one type of experiments
36that developers can conduct by trying out different data structures and different
37algorithms; over time, better implementations may emerge within the same design framework.
38
39NFD will keep evolving in three aspects: improvement of the modularity framework, keeping
40up with the NDN protocol spec, and addition of other new features. We hope to keep the
41modular framework stable and lean, allowing researchers to implement and experiment
42with various features, some of which may eventually work into the protocol spec.
43
44The design and development of NFD benefited from our earlier experience with
45[CCNx](http://www.ccnx.org) software package. However, NFD is not in any part derived from
46CCNx codebase and does not maintain compatibility with CCNx.
Alexander Afanasyevc1d6a6b2014-04-08 18:04:57 -070047
Alexander Afanasyev0c3e93d2014-05-12 15:49:56 -070048Binary release
49--------------
Steve DiBenedetto1a3c6732014-03-13 06:44:05 -060050
Alexander Afanasyev0c3e93d2014-05-12 15:49:56 -070051As of release 0.1.0, we are providing NFD binaries for the supported platforms, which are
52the preferred installation method of NFD:
Steve DiBenedetto1a3c6732014-03-13 06:44:05 -060053
Alexander Afanasyev0c3e93d2014-05-12 15:49:56 -070054- [Ubuntu 12.04, 13.10, and 14.04](http://named-data.net/doc/NFD/current/FAQ.html#how-to-start-using-ndn-ppa-repository-on-ubuntu-linux)
55
56- [OSX 10.8, 10.9 with MacPorts](http://named-data.net/doc/NFD/current/FAQ.html#how-to-start-using-ndn-macports-repository-on-osx)
57
58Next releases would include support for other platforms. Please send us feedback on the
59platforms you're using, so we can prioritize our goals. We would also appreciate if
60someone can provide help with packaging the current NFD release for other platforms.
61
62Besides simplicity of installation, the binary release includes automatic initial
63configuration and platform-specific tools to automatically start NFD and related daemons.
64In particular, on OSX NFD is controlled using
65[launchd](https://github.com/named-data/NFD/tree/master/contrib/osx-launchd) and on Ubuntu
66using [upstart](https://github.com/named-data/NFD/tree/master/contrib/upstart) mechanisms.
67In both cases, `nfd-start` and `nfd-stop` scripts are convenience wrappers for launchd and
68upstart.
69
70Source releases
71---------------
72
73The source code and source-code installation instructions are always available on NFD's homepage:
74
75- [Getting Started with NFD](http://named-data.net/doc/NFD/current/getting-started.html)
76- [Github NFD repository](https://github.com/named-data/NFD)
77
78Additional information
79----------------------
80
81- [NFD Wiki](http://redmine.named-data.net/projects/nfd/wiki/)
82- Feature requests and bug reports are welcome on our
83 [NDN Redmine](http://redmine.named-data.net/projects/nfd)
84
85Besides officially supported platforms, NFD is known to work on: Fedora 20, CentOS 6,
86Raspberry Pi, OpenWRT, FreeBSD 10.0, and several other platforms. We are soliciting help
87with documenting common problems / pitfalls in installing/using NFD on different platforms
88on [NFD WiKi](http://redmine.named-data.net/projects/nfd/wiki/Wiki#Installation-experiences-for-selected-platforms).