美文网首页
NDN中兴趣包和数据包的详细结构

NDN中兴趣包和数据包的详细结构

作者: 甸仔向前冲 | 来源:发表于2020-11-09 14:34 被阅读0次

标准(英文)参考

Interest Packet

https://named-data.net/doc/NDN-packet-spec/current/interest.html

Data Packet

https://named-data.net/doc/NDN-packet-spec/current/data.html

TLV-TYPE number assignments

https://named-data.net/doc/NDN-packet-spec/current/types.html

中文参考

关于兴趣包和数据包的结构大致如下图所示:


兴趣包和数据包的结构

兴趣包内:

Name:

限制获得的数据包是具体的哪一个

CanBePrefix:

当有这个属性的时候,传回来的数据包中的name可以和兴趣包中的name相同,也可以是以兴趣包中的name为前缀的name

MustBeFresh:

存在这个参数的时候,则节点不得返回“非新鲜”的数据包以响应此兴趣包。效果与“非新鲜”数据不存在的情况相同(即,兴趣可能与商店中的某些其他数据匹配,或者,如果失败,则转发到其他节点)。当具有正值的“非新鲜”数据包的精确副本FreshnessPeriod到达节点时,节点应该在指定的持续时间内将其重新标记为“新鲜”。

ForwardingHint:

ForwardingHint元素包含名称委托列表,每个委托意味着可以通过沿委托路径转发兴趣来检索所请求的数据分组。每个委托都还对应着一个相关的优先级priority,在link content里面会按照优先级,按照升序的方式去进行排列。(及从小到大)

Nonce:

Nonce携带一个随机生成的4个八位字节长字节串。Name和Nonce的组合应唯一标识Interest数据包。这用于检测循环兴趣包。

InterestLifeTime:

InterestLifetime表示兴趣包超时前的剩余(近似)时间。该值是毫秒数。超时是相对于当前节点的兴趣包的到达时间。转发兴趣包的节点可能会缩短生命周期以计算转发前在节点上花费的时间。如果InterestLifetime省略该元素,则使用默认值4秒(4000)。可以在转发之前添加缺少的元素。

Hoplimit:

可选HopLimit元素指示允许转发兴趣包的次数。该值被编码为0到255范围内的1字节无符号整数值。如果该HopLimit值大于或等于1,则节点应接受该数据包并将编码值减1。如果HopLimit值变为0,若节点可以在本地满足此兴趣包(缓存或绑定到本地面的应用程序),则可以依旧发送数据包回去,但不能将兴趣包转发;若本地不能满足,则只能将其丢弃。

ApplicationParameters[InterestSignature]:

ApplicationParameters元素可以携带任何参数化Data请求的任意数据。兴趣包的名称必须包含兴趣包中参数的摘要组件,以确保参数化兴趣的唯一性和完整性。

数据包内:

Name:

这里与上方兴趣包中的name为同一个类型的东西。

MetaInfo:

其中有三个组成部分

ContentType:

当ContentType为0的时候,数据类型为BLOB。是由数据名称标识的有效负载; 这是默认的ContentType
  当它为1的时候,数据类型为LinkObject,是一个授权列表。
  当为2的时候,数据类型为Key,为公钥。
  当为3的时候,数据类型为NACK,是应用程序级NACK

FreshnessPeriod:

可选项FreshnessPeriod指示节点在到达此数据包之后应等待多长时间,然后将其标记为“非新鲜”。编码值是毫秒数。请注意,“非新鲜”数据包的数据仍然是有效数据; 到期只意味着生产者可能产生了更新的数据。
  如果数据包携带的FreshnessPeriod大于零,则节点应该首先将其视为“新鲜”。数据包在节点中驻留了FreshnessPeriod几毫秒后,它将被标记为“非新鲜”。如果数据包中没有FreshnessPeriod或如果它FreshnessPeriod等于零,则必须立即标记为“非新鲜”。

FinalBlockID:

选的FinalBlockId标识片段序列中的最后一个块。它应该存在于FinalBlock本身中,并且还可以存在于其他片段中以向消费者提供结束的高级警告。此处的值应等于最后一个Block的最后一个显式名称组件。

Content:

Content元素可以携带任意字节序列。

参考

https://blog.csdn.net/qq_19408097/article/details/99325996
https://blog.csdn.net/qq_19408097/article/details/99959845

相关文章

  • NDN中兴趣包和数据包的详细结构

    标准(英文)参考 Interest Packet https://named-data.net/doc/NDN-p...

  • TCP 三次握手和四次挥手

    TCP 头部结构 数据包中的数据意义(常用) SequenceNumber 表示当前数据包的序列号,某一端自定义的...

  • skb结构和相关操作函数

    skb是linux kernel中收发数据包用到的控制结构体,有些字段指向分配的内存用于存放数据包,向协议栈传送时...

  • Pinpoint源码解析(五)

    本节主要分析Pinpoint中的数据包的结构,截图如下 可见,包都是由Packet Type + 数据内容(有的包...

  • Wireshark抓包工具的使用

    Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程各...

  • iOS结构体子节对齐问题

    最近做硬件交互时,出现一个问题,就是给硬件发送数据包(结构体)的时候,发现数据包的内容发生改变。在使用该结构体时已...

  • 使用wireshark学习网络协议

    早就听说了Wireshark是一个强大的网络数据包分析软件,可以详细的展示网络数据包的交换过程,是监控网络请求定位...

  • dns 数据包结构

  • HTTP(一)

    1. HTTP原理 http请求封装在应用层数据包中,再封装到tcp数据包中,再封装到ip数据包中,再封装到以太网...

  • c语言 关于0长度数组的使用

    0长度数组可用于通讯中做不定长数据包结构体的设计 思路这是一个简单的通讯包的结构体的设计,head 为固定字符,用...

网友评论

      本文标题:NDN中兴趣包和数据包的详细结构

      本文链接:https://www.haomeiwen.com/subject/vorlbktx.html