Internet DRAFT - draft-stapp-icnrg-ndn-msg-comparison
draft-stapp-icnrg-ndn-msg-comparison
ICNRG M. Stapp
Internet-Draft Cisco Systems, Inc.
Intended status: Experimental January 8, 2015
Expires: July 12, 2015
NDN Message Format Comparison
draft-stapp-icnrg-ndn-msg-comparison-00
Abstract
Several on-the-wire formats have been proposed for Named-data
Networking (NDN) protocol messages. This memo compares the
properties of four of these proposals, attempting to provide a
framework for discussion and eventual consensus.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 12, 2015.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Stapp Expires July 12, 2015 [Page 1]
Internet-Draft NDN Message Format Comparison January 2015
This document may not be modified, and derivative works of it may not
be created, and it may not be published except as an Internet-Draft.
Table of Contents
1. Requirements Terminology . . . . . . . . . . . . . . . . . . 2
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Base TLV Encoding . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Discussion . . . . . . . . . . . . . . . . . . . . . . . 3
4. Message Header . . . . . . . . . . . . . . . . . . . . . . . 4
4.1. ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.2. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.3. PARC . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.4. NDN . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.5. Discussion . . . . . . . . . . . . . . . . . . . . . . . 6
5. Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.3. NDN . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.4. PARC . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.5. Discussion . . . . . . . . . . . . . . . . . . . . . . . 7
6. Selectors . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.1. Discussion . . . . . . . . . . . . . . . . . . . . . . . 8
7. Nack Message . . . . . . . . . . . . . . . . . . . . . . . . 8
7.1. Discussion . . . . . . . . . . . . . . . . . . . . . . . 8
8. Mutable Fields . . . . . . . . . . . . . . . . . . . . . . . 8
8.1. Discussion . . . . . . . . . . . . . . . . . . . . . . . 8
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
11. Security Considerations . . . . . . . . . . . . . . . . . . . 9
12. Normative References . . . . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Requirements Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
2. Introduction
Named-data Networking (NDN) [TODO cite Van], one of a family of
Information-centric Networking protocols, proposes the replacement of
IP's endpoint-to-endpoint communication model with one centered
around named objects. In NDN networks, a client issues an Interest
message that names an object. No destination address is present: the
network routes the Interest message based on the name itself. When a
device - a server, a cache engine, or a router with built-in storage
Stapp Expires July 12, 2015 [Page 2]
Internet-Draft NDN Message Format Comparison January 2015
- determines that it can satisfy the Interest, it replies with a Data
message containing some data and a cryptographic signature. No
source address is present in any message - the network maintains
sufficient state to route a Data message back to the client. This
model gives an NDN network a number of interesting properties, and
NDN approaches have attracted interest from the networking research
community in recent years.
This memo examines four message format and encoding proposals from
four different organizations: Alcatel/Lucent (ALU), Cisco, the NSF/
FIA NDN project team (NDN), and Xerox PARC. This memo's goal is to
summarize these proposals, and suggest some general questions as a
way of encouraging focussed discussion.
For reference, I've used the ALU slides presented at IETF89, draft-
stapp-ndn-messages-02, the NDN project website at http://www.named-
data.net, and the CCNX 1.0 project documents available at
http://www.ccnx.org. Any mis-representations are accidental.
3. Base TLV Encoding
All of the proposals define basic message encodings that use TLV
tuples.
ALU: T+L support for 1+1, 1+2, 2+1, 2+2; reserves first 2 MSB bits
of the T for discriminator, so that's really in bits: 6+8, 6+16,
14+8, 14+16.
Cisco: T+L fixed size 2+2 only.
NDN: T+L support for [1,3,5,9]+[1,3,5,9]; three reserved values in
the first octet of each T and L indicate size, so single-octet T
or L is limited to 252 values.
PARC: T+L fixed size: 2+2 only.
3.1. Discussion
Some discussion questions:
1. Is support for more than 16 bits for T or L important?
2. Is support for single-octet T or L important?
3. Is the complexity of variable-length encoding worthwhile?
4. What are the tradeoffs between variable-length encoding and
aliasing risk?
Stapp Expires July 12, 2015 [Page 3]
Internet-Draft NDN Message Format Comparison January 2015
5. Are there specialized environments with very limited message
sizes, or very limited processing capabilities, where an
extremely compact encoding may be useful? Do we have to _start_
there, or can we formulate that alternative when we understand
the environments better?
4. Message Header
The ALU and PARC message proposals include fixed-size headers for
each message. The proposals are distinct, though, with several
different properties. We try to summarize the proposals here.
4.1. ALU
ALU proposes an eight-octet fixed header for Interest messages and
for Data messages. The Name field follows the fixed header. A ttl
field is included for loop detection.
ALU Message header:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| msg | ttl | message-size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| flags | hdr len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Name |
. .
. .
. .
4.2. Cisco
Cisco proposes a fixed packet header used for all packet types. A
hop-by-hop options area follows the fixed-size area. The packet
carries a message TLV, then the Name TLV is the first child TLV in
the message. Any other TLVs follow the Name. The packet header
includes a hop limit for loop detection.
Stapp Expires July 12, 2015 [Page 4]
Internet-Draft NDN Message Format Comparison January 2015
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ver | pkt type | packet-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| hop lim | flags | err code/resv | hlen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop-by-hop TLVs |
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| msg type | msg len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Name |
. .
. .
. .
4.3. PARC
PARC proposes an eight-octet fixed header for all CCNX packets. PARC
also proposes a variable-length header-options area for hop-by-hop
options; the size of the header-options area is included in the
overall header length field. A CCNX message follows the header-
options area (if present). The first TLV within the message must be
the Name TLV.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ver | pkt type | packet-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| reserved | hdr len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop-by-hop TLVs |
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| msg type | msg len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Name |
. .
. .
. .
Stapp Expires July 12, 2015 [Page 5]
Internet-Draft NDN Message Format Comparison January 2015
4.4. NDN
NDN does not propose any fixed-size header. The entire NDN "packet"
(Interest or Data) is itself a single TLV. The Name TLV is always
the first child TLV within the overall packet TLV. The NDN proposal
requires a Nonce TLV in Interests.
4.5. Discussion
Some discussion questions:
1. What are the tradeoffs in using fixed message headers?
2. Is the Nonce valuable enough to be mandatory? And ... does it
even work?
3. If fixed headers are used, is it better to have a single
consistent header, or per-message-type headers?
4. If fixed headers are used, is it useful to include the
possibility of hop-by-hop options?
5. The PARC inner message proposal offers some interesting
properties: is this kind of 'encapsulation' something that should
be supported as part of the base definition?
5. Name
The message format proposals contain significant differences in their
encodings of Names.
5.1. ALU
The ALU proposal represents the entire Name as a single flat TLV.
There are no name-component separators of any kind within the actual
Name TLV. Optional additional TLVs are defined to hold offsets of
name-components within the actual Name. Another optional TLV is
defined to carry the offset of the segment value within the Name. A
node that needs to parse the Name must parse these additional TLVs.
The offset TLVs carry only offsets - there are no typed name
components. The offset TLVs are optional: if they are not present,
nodes cannot parse the Name components at all.
5.2. Cisco
The Cisco proposal encodes the Name as a TLV with typed child TLVs
for the name components. Cisco suggests a number of name-component
type codes, including segment number and version. The proposal
Stapp Expires July 12, 2015 [Page 6]
Internet-Draft NDN Message Format Comparison January 2015
reserves a range of name-component type code points for application-
specific use.
5.3. NDN
The NDN proposal encodes the Name as a TLV with generic NameComponent
child TLVs for the name components. NDN reserves several values
within a name component - within the value itself - as 'markers' that
identify certain important components. Marker values are reserved
for segment number, version, byte-offset, collection sequence number,
and timestamp.
5.4. PARC
The PARC proposal encodes the Name as a TLV with typed sub-TLVs for
the name components. PARC suggests a number of name-component type
codes, including serial number, timestamp, segment number, content
object hash. The proposal reserves a range of name-component type
code points for application-specific use.
5.5. Discussion
1. Can information about the boundaries of name components be
optional? What would the system look like if no name components
were present? For example, would there be aliasing problems in
FIB prefix-matching?
2. Is it useful to identify specific name component types? What
alternatives exist to provide commonly-used information such as
segment number?
3. Is it viable to depend on the data bytes within name components
to signal their purposes? Are there aliasing issues between
application-specific binary data and the use of 'marker' octets?
6. Selectors
PARC and NDN both include various 'selectors' for Interest messages.
Selectors are data that act as filters or query parameters that
affect the matching behavior at network nodes. An example might be
an Interest carrying a selector that specifies a specific producer
key identifier. Routers would be expected to filter potential
matches so that only cached content using the specified producer key
would be returned.
Stapp Expires July 12, 2015 [Page 7]
Internet-Draft NDN Message Format Comparison January 2015
6.1. Discussion
1. Would the presence of selectors introduce any packet encoding
issues? Is there any reason that selectors could not be
represented with TLVs, for example?
7. Nack Message
Several different groups have suggested adding a way to convey
network error information. Cisco and PARC propose adding a distinct,
new NACK packet type, rather than overloading one of the existing
message types. Example use-cases include congestion notification,
and 'no-route' notification.
7.1. Discussion
1. Are there any implications for packet encoding introduced by this
kind of messaging?
2. Is there any reason this kind of messaging would not be able to
use, or would be compromised in some way by, the kind of packet
encoding used for Interest and Content messages?
8. Mutable Fields
Another potential question concerns data that may be changed hop-by-
hop. A couple of examples might be a hop-count field, modified at
each hop, and a QOS specification field, which might be re-marked or
removed at an administrative boundary.
8.1. Discussion
1. Are there any implications for packet encoding introduced by
mutable fields? Is there a need for a special format of any kind
when this kind of data is present?
2. Is the 'header options' area a viable approach to this issue? Is
there an alternative?
9. Acknowledgements
TODO -- acknowledge some folks here...
10. IANA Considerations
All drafts must have an IANA section. This memo includes no requests
to IANA.
Stapp Expires July 12, 2015 [Page 8]
Internet-Draft NDN Message Format Comparison January 2015
11. Security Considerations
All drafts must have a security considerations section.
12. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
Author's Address
Mark Stapp
Cisco Systems, Inc.
55 Cambridge Pkwy.
Cambridge, MA 02142
USA
Phone: +1 978 936 0000
Email: mjs@cisco.com
Stapp Expires July 12, 2015 [Page 9]