命名数据网络 | NDN 包格式规范版本变更一览

命名数据网络 | NDN 包格式规范版本变更一览

参考文档:https://docs.named-data.net/NDN-packet-spec/current/changelog.html#

Version 0.3

  • 使用 IETF 增强的BNF重写 TLV 语法规范(RFC 5234)
  • TLV-TYPE 和 TLV-LENGTH 要求最短编码
  • 添加 Certificate 规范

Name

  • 解除对名称组件类型的限制,允许类型在 [1, 65535] 范围内

  • 正确定义名称 URI 编码:禁止PLUS(+)的未转义编码,允许TILDE (~)

  • 添加知名的特殊用途组件类型:

    • ParametersSha256DigestComponent(类型 2)
    • KeywordNameComponent(类型 32)
    • SegmentNameComponent(类型 50)
    • ByteOffsetNameComponent类型 52)
    • VersionNameComponent(类型 54)
    • TimestampNameComponent(类型 56)
    • SequenceNumNameComponent(类型 58)

Interest

  • 移除 Selectors 元素
  • 在 Name 之后添加可选的 CanBePrefix 元素
  • 将可选的 MustBeFresh 元素移动到 CanBePrefix 之后
  • 将可选的 ForwardingHint 元素移动到 MustBeFresh 之后(Nonce 之前)
  • 重新定义 ForwardingHint 的内容(删除 Delegation TLV 中的数字优先级和嵌套)
  • 添加可选的 HopLimit 元素
  • 添加可选的 ApplicationParameters 元素
  • 使用 InterestSignatureInfo 和 InterestSignatureValue 两个新元素,为已签名的 Interest 包定义一个新规范

Data

  • 使 MetaInfo 和 Content 元素变为可选的
  • 更改省略(或设置为零)的 FreshnessPeriod 元素的语义:在内容存储查找期间,它不能用于满足具有 MustBeFresh 的 Interest 包

Signature

  • 要求所有兼容的实现支持 SignatureSha256WithEcdsa 签名类型,使用 NIST 曲线 P-256
  • 重新定义数据包的签名部分,使其更具前瞻性
  • 增加签名类型 SignatureEd25519

LinkObject

  • 其内容现在只是一个名称列表(删除数字首选项)

Version 0.2.1

  • 添加链接对象(Link Object)的定义

Interest

  • 如果 ChildSelector 元素不存在,则添加最左边子元素的默认值
  • 添加 ForwardingHint 元素的规范

Data

  • 更新了不带 FreshnessPeriod 的数据包的 Content Store 语义。

Version 0.2

Name

  • 允许零长度的名称组件
  • 要求使用 ImplicitSha256Digest 名称组件指定隐式摘要

Interest

  • 删除已弃用的作用域指南
  • 将 Interest 包限制为其中具有至少一个名称组件的 Name 元素

Data

Signature

  • 增加 SignatureHmacWithSha256 规格

TLV-TYPE

  • 链路协议保留范围 [800, 1000]

Version 0.1.1

Signature

  • 增加了椭圆曲线数字签名算法(ECDSA)的签名类型 SignatureSha256WithEcdsa。
  • KeyLocatorDigest 重命名为 KeyDigest。该规范现在明确地允许 KeyDigest 是任何类型密钥的 SHA256。
  • KeyLocator 元素现在被定义为可选地出现在通用的 SignatureInfo 元素中。SignatureSha256WithRsa 和 SignatureSha256WithEcdsa 仍然需要 KeyLocator 始终存在。

Version 0.1

  • 基于 XML 的 ccnb 包编码被 TLV 编码取代

Name

  • 名称编码从二进制 XML 更改为 TLV 格式
  • 关于命名约定和在 NameComponents 中使用特殊标记的讨论已从包规范中删除,并将在单独的技术文档中进行介绍
  • 已弃用零长度名称组件

Interest Packet

  • Nonce 从可选更改为必需
  • PublisherPublicKeyDigest 被 PublisherPublicKeyLocator 取代
  • AnswerOriginKind 由 4 位简化为 1 位的 MustBeFresh
  • FaceID 已被删除
  • InterestLifetime 将单位改为毫秒数
  • 从排除中删除了布隆过滤器
  • 更改了默认的过时语义
    具体来说,没有任何选择器的 NDN-TLV Interest 包将带来任何与名称匹配的数据,并且只有当 MustBeFresh 选择器启用时,它才会尝试尊重数据包中指定的新鲜度。对于二进制 XML 编码的 Interest 包,默认行为是只有当 AnswerOriginKind 设置为 3 时才带来“新鲜”数据并返回“陈旧”数据。
    应用程序开发人员必须意识到这种变化,重新检查 Interest 包的表达式代码,并在必要时启用 MustBeFresh 选择器。

Data Packet

  • 数据包结构改变:Name、MetaInfo、Content、Signature{SignatureInfo、SignatureValue}
  • SignedInfo 重命名为 MetaInfo,并更改其内容
  • 删除 PublisherPublicKeyDigest 和 ExtOpt
  • 删除 Timestamp
  • KeyLocator 被移动到 Signature(SignatureInfo)元素中
  • 删除了三种内容类型:ENCR、GONE 和 NACK
  • FreshnessSeconds 重命名为 FreshnessPeriod,单位为毫秒

Signature

  • Signature 移动到“数据包”的末尾。
  • 如果 KeyLocator 适用于特定的签名类型,则将其移动到 SignatureInfo 元素的一部分。
    这样做的基本原理是使 Signature(SignatureInfo 和 SignatureValue TLV 的序列)自包含和自给自足。
  • 签名类型(或签名方法信息)表示为分配的整数值(没有默认值),而不是 OID。
  • 增加了对仅哈希“签名”的支持
  • 当前的规范没有定义 Merkle 哈希树聚合签名,但是期望在该规范的未来版本中定义这样的(或类似的)签名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值