Reflexive Forwarding in Named Data Networking
Current Information-Centric Networking protocols such as CCNx and NDN have a wide range of useful applications in content retrieval and other scenarios that depend only on a robust two-way exchange in the form of a request and response (represented by an Interest-Data exchange in the case of the two protocols noted above). A number of important applications however, require placing large amounts of data in the Interest message, and/or more than one two-way handshake.
While these can be accomplished using independent Interest-Data exchanges by reversing the roles of consumer and producer, such approaches can be both clumsy for applications and problematic from a state management, congestion control, or security standpoint. Reflexive Forwarding is a proposed extension to the CCNx and NDN protocol architectures that eliminates the problems inherent in using independent Interest-Data exchanges for such applications.
The protocol is specified in draft-oran-icnrg-reflexive-forwarding and has been used in a few of our research projects such as:
- RICE: Remote Method Invocation in ICN (best paper award at ACM ICN-2018)
- Compute-First Networking (CFN): Distributed Computing Meets ICN
- RESTful ICN
- Delay-Tolerant LoRa ICN Networking
My student intern Xinchen Jin from ShanghaiTech has implemented the Reflexing Forwarding specification in NDN (with modifications to ndn-cxx and NFD) and set up a testbed in mini-NDN for experiments over multiple forwarders.