Changes¶
Version 0.3¶
Rewrite TLV syntax specifications using IETF Augmented BNF (RFC 5234)
Require shortest encoding for TLV-TYPE and TLV-LENGTH numbers
Add
CertificatespecificationName
Lift restriction on name component types, allowing types in the range [1, 65535]
Correct definition of name URI encoding: disallow unescaped encoding of PLUS (
+) and allow TILDE (~)Add well-known special-use component types:
ParametersSha256DigestComponent(type 2)KeywordNameComponent(type 32)SegmentNameComponent(type 50)ByteOffsetNameComponent(type 52)VersionNameComponent(type 54)TimestampNameComponent(type 56)SequenceNumNameComponent(type 58)
Interest
Remove
SelectorselementAdd optional
CanBePrefixelement after NameMove optional
MustBeFreshelement afterCanBePrefixMove optional
ForwardingHintelement afterMustBeFresh(beforeNonce)Redefine the contents of the
ForwardingHint(remove numerical preference and nesting inside theDelegationTLV)Add optional
HopLimitelementAdd optional
ApplicationParameterselementDefine a new specification for Signed Interest using two new elements:
InterestSignatureInfoandInterestSignatureValue
Data
Make
MetaInfoandContentelements optionalChange semantics of omitted (or set to zero)
FreshnessPeriodelement: it cannot be used to satisfy Interests withMustBeFreshduring content store lookup
Signature
Require all compliant implementations to support the
SignatureSha256WithEcdsasignature type using NIST curve P-256Redefine the signed portion of Data packets to be more future-proof
Add
SignatureEd25519signature type
LinkObject
The content is now just a list of names (remove numerical preference)
Version 0.2.1¶
Add definition of Link Object
Interest
Add default of leftmost child if
ChildSelectorelement not presentAdd specification of
ForwardingHintelement
Data
Updated Content Store semantics for Data packets that do not carry
FreshnessPeriod.
Version 0.2¶
Name
Allow zero-length name component
Require implicit digest to be specified using
ImplicitSha256Digestname component
Interest
Delete deprecated
ScopeguiderRestrict Interest to have name with at least one name component
Data
Redirect
ContentTypenumber assignments to the wiki page
Signature
Add spec for
SignatureHmacWithSha256
TLV-TYPE
Reserve range [800, 1000] for link protocol
Version 0.1.1¶
Signature
New
SignatureSha256WithEcdsasignature type for Elliptic Curve Digital Signature Algorithm (ECDSA).KeyLocatorDigestrenamed toKeyDigest. The specification now explicitly allows KeyDigest to be a SHA256 of any type of the key.KeyLocatorelement is now defined to be optionally present in genericSignatureInfoelement.SignatureSha256WithRsaandSignatureSha256WithEcdsastill requireKeyLocatorto be always present.
Version 0.1¶
General
XML-based ccnb packet encoding is replaced by TLV encoding
Name
The name encoding is changed from binary XML to TLV format
The discussions on naming conventions and the use of special markers inside NameComponents are removed from packet specification, and will be covered by a separate technical document
Deprecated zero-length name component
Interest Packet
Nonceis changed from optional to requiredPublisherPublicKeyDigestis replaced byPublisherPublicKeyLocatorAnswerOriginKindis simplified from 4bits to a 1-bitMustBeFreshFaceIDhas been removedInterestLifetimechanges the unit to the number of millisecondsRemoved Bloom Filter from Exclude
Changed default semantics of staleness
Specifically, NDN-TLV Interest without any selectors will bring any data that matches the name, and only when
MustBeFreshselector is enabled it will try to honor freshness, specified in Data packets. With Binary XML encoded Interests, the default behavior was to bring “fresh” data and return “stale” data only whenAnswerOriginKindwas set to 3.Application developers must be aware of this change, reexamine the Interest expression code, and enable
MustBeFreshselector when necessary.
Data Packet
The structure of Data packet is changed:
Name,MetaInfo,Content,Signature{SignatureInfo, SignatureValue}
SignedInfois renamed toMetaInfoand its content is changedPublisherPublicKeyDigestandExtOptare removed.Timestampis removedKeyLocatoris moved to be inside theSignature(SignatureInfo) elementThree content types, ENCR, GONE, and NACK are removed
FreshnessSecondsis renamed toFreshnessPeriodand is expressed in units of milliseconds
Signature
Signatureis moved to the end of Data packet.KeyLocatoris moved to be a part of theSignatureInfoelement, if it is applicable for the specific signature type.The rationale for the move is to make Signature (sequence of
SignatureInfoandSignatureValueTLVs) self-contained and self-sufficient.Signature type (or signing method information) is expressed as an assigned integer value (with no assumed default), rather than OID.
Added support for hash-only “signature”
The current specification does not define Merkle Hash Tree Aggregated Signatures, but it is expected that such (or similar) signatures will be defined in future version of this specification