NDN Protocol 设计原则

​通应用:NDN 应该是所有应用程序和网络环境的通用网络协议

以数据为中心和数据不变性:NDN通过"兴趣包数据包"获取所得的信息,从而需要保证请求数据名字的唯一性和不变的数据名字

直接保护数据安全:安全性应该是数据包的属性,无论数据是处于运动还是静止状态,安全性都应该保持不变

分层命名:数据包命名应该带有分层结构,以实现多路径分解并提供结构化的上下文

网络内命名发现:数据消费者应该能够使用不完整的名称来检索所需要的数据包

逐跳流量平衡:在每个链路上,一个兴趣包最多带回来一个数据包

注释:

【1】通用性:NDN应该是所有应用程序和网络环境的通用网络协议。NDN应该支持的应用程序和网络环境包括但不限于:

1 当前基于基础架构通信(Web,Youtube,实时会议等)

2 具有或者不具有基础架构的临时性(IOT应用程序、无线网状网络、车对车的网络、车对车对基础网络的联网等)

3 DTN式的通信网络、间歇性和破坏性链路上的通信,使用单向链路的应用程序(例如卫星)

因此 NDN协议和NDN数据包应该支持广泛的应用,从受约束的(IOT)环境到基于大数据科学的应用。

NDN 数据包格式应该是灵活的且可扩展的

NDN 协议和数据包格式应该支持协议的进化:数据包头部中没有固定部分或者固定长度字段

核心网络协议操作不应该依赖于时钟同步

【2】以数据为中心和数据不变性:NDN保证数据命名的唯一性,从而保证NDN协议通过兴趣包获取唯一的且不变的数据

NDN协议和NDN数据包格式应该仅仅包括跟数据直接相关的元素,即在所有通信环境中普遍需要、并且有意义的元素。特定环境中所需要的元素应该转到网络适配层

数据的不变性可以可以简化在分布式系统中的协调性,从而大大降低系统复杂度,尽管协议中数据包是不可变的,但是应用程序可以通过创建不变数据包的版本号来改变通信的内容

【3】直接保护数据的安全:安全性应该是数据包的属性,无论数据是处于运动还是静止状态,安全性都应该保持不变

直接保护数据的安全和数据唯一命名消除了在通信端点之间建立直接管道的需求,并允许异步生成和使用命名和受保护的数据,比如:使用网络内缓存和托管缓存仓库等

数据消费者应该能够验证单个数据包的安全。理想情况下,每个数据包应该可以独立验证。作为工程上的优化,数据包可以在其他上下文中也可以验证,前提是可以从数据包本身(其名字和签名字段中的信息)推断出上下文

【4】分层命名:数据包应该携带分层名称,已实现多路径分解并提供结构化的上下文。

命名层次结构提供了实现和实施各种安全模型的上下文,即对哪些密钥可以签名、哪些数据给出了结构化的限制

如果应用程序需要,分层命名允许扁平化的命名模型

【5】网络内命名发现:数据消费者应该能够使用不完整的名称来检索所需要的数据包,数据消费者可能不知道数据在全网的的完整名字,以为名字的某些部分无法预先猜测、计算或者推断。在收到初始数据后,命名约定规则可以帮助其确定完整的数据名字。

大多数兴趣包将带有完整的数据名字

网络内命名发现可以用来命名网络的启动

【6】逐跳网络流量平衡:每个数据链路上,一个兴趣包最多带回来一个数据包。

逐跳网络流量平衡是的每个路由节点可以控制其链路上的负载。通过决定链路发送兴趣包,路由器为返回的数据分配带宽。通过限制发送的兴趣包数量,网络中的每个路由器和客户端节点控制它接收多少数据。

你可能感兴趣的:(NDN Protocol 设计原则)