当前位置: 首页 > news >正文

命名数据网络 | 兴趣包(Interest Packet)

命名数据网络 | 兴趣包(Interest Packet)

  • 命名数据网络 | 兴趣包(Interest Packet)
    • Name
    • CanBePrefix
    • MustBeFresh
    • ForwardingHint
    • Nonce
    • InterestLifetime
    • HopLimit
    • ApplicationParameters
    • InterestSignature

命名数据网络 | 兴趣包(Interest Packet)

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

NDN 的 Interest 包是 TLV,定义如下:

Interest = INTEREST-TYPE TLV-LENGTHName[CanBePrefix][MustBeFresh][ForwardingHint][Nonce][InterestLifetime][HopLimit][ApplicationParameters [InterestSignature]]

Name 是 Interest 包中唯一必需的元素。

当 Interest 包通过网络链接传输时,需要 Nonce,也就是说,如果缺少的话,兼容的转发器必须用 Nonce 元素来补充 Interest 包。

CanBePrefix、MustBeFresh、InterestLifetime 和 ForwardingHint 是可选元素,用于指导 Interest 包匹配或转发。

Interest 包还可以包含一个可选的 ApplicationParameters 元素。

如果一个 Interest 包含 InterestSignature,它被认为是一个已签名的 Interest 包。详情请参阅 Signed Interest section 。

根据 TLV 可演化性指南 的建议,未被识别的非关键 TLV 元素可能出现在 Interest 包中。但是,它们不能出现在 Name 元素之前。

Name

有关详细信息,请参见:Name。

可以放在 Interest 包中的 Name 元素被进一步限制为至少有一个 Name 组件。

包含名称 TLV 但没有名称组件的 Interest 包必须被丢弃。

CanBePrefix

CanBePrefix = CAN-BE-PREFIX-TYPETLV-LENGTH ; == 0

当 Interest 包中出现 CanBePrefix 元素时,Interest 包中的 Name 元素是所请求数据包的前缀、确切名称或全名。

当 CanBePrefix 元素不存在时,Name 元素是数据包的确切名称或全名:

  • 如果 Name 的最后一个组件的类型是 ImplicitSha256DigestComponent,那么Interest只能匹配到一个全名包含隐式摘要组件的数据包;

  • 如果最后一个组件有任何其他类型,如果 Interest 包的 Name 元素中的所有名称组件都等于 Data 的 Name 元素中的组件,则 Interest 包与 Data 包匹配,而不考虑隐式摘要组件。

MustBeFresh

MustBeFresh = MUST-BE-FRESH-TYPETLV-LENGTH ; == 0

MustBeFresh 元素的存在与否表明内容存储是否可以用陈旧的数据满足 Interest 包。

有关更多信息,请参阅:FreshnessPeriod。

ForwardingHint

ForwardingHint = FORWARDING-HINT-TYPE TLV-LENGTH 1*Name

ForwardingHint 元素包含一个名称列表(“委托”)。转发提示的存在意味着可以通过转发列出的名称所指向的路径上的 Interest 包来检索数据。

使用 ForwardingHint 的 Interest 包的转发逻辑的细节将在一个单独的文档中定义。

Nonce

Nonce = NONCE-TYPETLV-LENGTH ; == 44OCTET

Nonce 携带一个随机生成的 4 字节长的字节串。

Name 和 Nonce 的组合应该唯一地标识一个 Interest 包。

这用于检测循环 Interest 包。

InterestLifetime

InterestLifetime = INTEREST-LIFETIME-TYPE TLV-LENGTH NonNegativeInteger

InterestLifetime 表示 Interest 包超时前剩余的(近似)时间。该值为毫秒数。超时时间是相对于当前节点上 Interest 包的到达时间的。

转发 Interest 包的节点可能会减少生存期,以考虑转发前在节点上花费的时间,但不是必须这样做。建议仅针对相对较大的延迟(以秒为单位)进行这些调整。

是应用程序设置了 InterestLifetime 的值。如果省略了 InterestLifetime 元素,则使用默认值 4000(即 4 秒)。缺失的元素可以在转发之前添加。

HopLimit

HopLimit = HOP-LIMIT-TYPETLV-LENGTH ; == 1OCTET

可选的 HopLimit 元素表示允许转发的跳数。该值被编码为 1 字节的无符号整数值,范围为 [0, 255]。

如果 HopLimit 元素存在:

  • 如果 HopLimit 值大于等于 1,则接收报文,并将编码值减 1。
  • 如果 HopLimit 值变为 0,则节点可以在本地满足此 Interest 包(缓存或绑定到本地面的应用程序),但不能将兴趣转发到任何非本地节点。
  • 如果 HopLimit 为 0,则节点必须丢弃该报文。

如果当前 Interest 包没有 HopLimit 元素:

  • 节点应该接受数据包;
  • 如果需要,节点可以向 Interest 包增加 HopLimit 元素。

ApplicationParameters

ApplicationParameters = APPLICATION-PARAMETERS-TYPE TLV-LENGTH *OCTET

ApplicationParameters 元素可以携带任何参数化 data 请求的任意数据。

Interest 包的名称必须包含一个兴趣参数摘要组件,以确保参数化的 Interest 包的唯一性和完整性。

参见 参数摘要组件 了解更多细节。

InterestSignature

参见 Interest Signature.。

相关文章:

  • 温州哪里可以做企业网站双11各大电商平台销售数据
  • 交易所网站开发实战google关键词工具
  • 做调查的网站有哪些怎么做电商生意
  • 100款免费软件网站大全营销型网站有哪些功能
  • 网站建设与维护试卷分析域名注册流程和费用
  • 门户网站营销怎么做seo运营是什么意思
  • GitLab 18.1 正式发布Maven 虚拟仓库、密码泄露检测等功能,可升级体验!
  • 广州华锐互动:技术与创意双驱动的 VR 先锋​
  • Claude 3.7 的 token 预算机制详解:可控深度的混合推理范式
  • HDFS(Hadoop分布式文件系统)总结
  • 【缓存技术】深入分析如果使用好缓存及注意事项
  • 基于SpringBoot和Leaflet的区域冲突可视化-以伊以冲突为例
  • 6.26_JAVA_微服务_Elasticsearch
  • CRON表达式编辑器与定时任务实现技术文档
  • Linux 统一方式安装多版本 JDK 指南
  • LINUX 626 DNS报错
  • 【工具推荐】WaybackLister——发现潜在目录列表
  • JavaEE:分布式session
  • 2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(五)
  • centos 7 安装NVIDIA Container Toolkit
  • 【unity游戏开发——网络】计算机网络中的三种数据管理模型(分散式、集中式、分布式)和三大通信模型(C/S、B/S、P2P)
  • 环境太多?不好管理怎么办?TakMll 工具帮你快速切换和管理多语言、多版本情况下的版本切换。
  • Tailwind CSS 重用样式
  • 内测分发平台是否支持应用的微服务化部署
  • Spring Boot使用Redis常用场景
  • 代码随想录|图论|04广度优先搜索理论基础