NDNLP TLV packet format¶
NDN packet format is shifting from CCNB to NDN-TLV.
In this format, every packet, and every field within a packet, is represented by a tuple of Type-Length-Value.
NDNLP: A Link Protocol for NDN provides two services to enable NDN communication directly on Ethernet:
- Fragmentation and Reassembly
- Acknowledgement and Retransmission
NDNLP is initially designed to work with CCNx, and therefore adopts a CCNB-based packet format.
Although it's possible to enclose NDN-TLV packets in CCNB-based NDNLP packets, this is awkward.
Therefore, a TLV-based packet format should be defined for NDNLP.
This document defines the TLV-based packet format for NDNLP.
In operation reality, acknowledgement and retransmission is rarely used. This version only defines packet type and fields necessary for fragmentation and reassembly.
Link Data Packet¶
A Link Data packet carries a NDN-TLV packet or a fragment of it as the payload.
It has the following format:
NdnlpData ::= NDNLP-DATA-TYPE TLV-LENGTH NdnlpSequence NdnlpFragIndex? NdnlpFragCount? NdnlpPayload
NdnlpSequence ::= NDNLP-SEQUENCE-TYPE TLV-LENGTH(=8) BYTE+
A sequence number for each packet.
This sequence number is unique for recent packets. It can wrap around ultimately.
NdnlpFragIndex ::= NDNLP-FRAG-INDEX-TYPE TLV-LENGTH nonNegativeNumber
The 0-based index of current fragment within the network layer packet.
Optional. Default to '0' if not present.
NdnlpFragCount ::= NDNLP-FRAG-COUNT-TYPE TLV-LENGTH nonNegativeNumber
Total number of fragments of the network layer packet.
Optional. Default to '1' if not present.
NdnlpPayload ::= NDNLP-PAYLOAD-TYPE TLV-LENGTH BYTE+
The payload, which is a fragment of network layer packet.
|Type||Assigned value||Assigned value (hex)|