NDNLP: A Link Protocol for NDN by Junxiao Shi and Beichuan Zhang
NDN Technical Report NDN-0006, July 2012.
Current CCNx applications run on top of TCP/UDP/IP tunnels. It would be benecial to be able to run directly on Ethernet, e.g., without having to conjure IP addresses and without extra layer of processing.
There are two major issues, though, namely (1) messages larger than Ethernet MTU cannot be sent, and (2) packet losses may degrade application performance. In this work we propose a link protocol for delivering CCNx messages over a local one-hop link. This protocol, called NDNLP, denes a new message encapsulation and exchange protocol to provide the following two features:
Fragmentation and Reassembly
When a CCNx message is larger than the lower-layer’s MTU, NDNLP will fragment the message into multiple MTU-compliant packets at the sender, and reassembly the original message at the receiver.
Acknowledgement and Retransmission
The receiver acknowledges the receipt of packets in a summary bitmap, and the sender can retransmit any lost packets. NDNLP operates between the network layer (i.e., ccnd) and the link, which can be any lower-layer delivery service, including TCP tunnels, UDP tunnels, Ethernet links, and so on. Its two features are optional: they can be turned on or off depending on the capability of lower-layer delivery. For example, both should be turned off when using TCP tunnels, but when using Ethernet, fragmentation/reassembly must be turned on. We have made the initial design of NDNLP, implemented it on Linux with CCNx, and tested it on Ethernet links, and TCP/UDP tunnels. The rest of the paper will describe these in details.