NDN学习(1)

这是我在网上搜的一些资料,各家都有,有自己翻译的,有粘贴的别人的。

Named DataNamed Networking-命名数据网络

命名数据网络是美国国家科学基金会资助的未来互联网体系结构的五个研究项目之一。NDN起源于一个早期项目—CCN(Content-Centric Networking),最开始NDN是ICN的一个分支/实例,

研究NDN的目的?

当前互联网架构和它的使用是不匹配的。具体来说:现在我们所构建和使用的互联网应用程序和服务是建立在一个非常强大成熟的架构之上,但是这个架构不是为了这些程序和服务(电商、数字媒体、社交网络、智能手机应用,导致Internet主要被用作分配网络(distribution network))设计的。那我们可以设计一个支持这些程序和服务的架构。如果直接命名信息,可能会更加快捷地传输数据包。

 

是什么因素驱动着人们在这一领域研发投资?

  1. 研究人员不是唯一一个知道网络怎么被使用的
  2. 一直未解决的或者是没有很愉快解决的问题需要用另一种方法去解决,截然一新的架构
  3. 担心落后于别人

NDN和Ip的基本区别

  • 命名方面:ip地址和数据名字
  • 每个数据包都有签名
  • Ip发送数据包到目标地址,ndn用兴趣包来获取数据包(NDN uses Interest packets to fetch Data packets)
  • IP具有无状态数据平面(stateless data plane.),NDN具有有状态数据平面(stateful data plane )。连同转发策略,有状态数据平面为NDN网络提供了多种所需功能

NDN和IP的共性

  • IP层和NDN层都属于细腰层( the narrow waist)

"细腰"是一个比喻说法

NDN学习(1)_第1张图片

网络层只有IP这一个协议,所以很细,而上面的运输层应用层这些层的协议包罗万象,仅仅只能通过ip与下层通讯,下面的物理层也只能通过网络层与上边进行通讯。

NDN与之很像,中间只有content chunks内容块。

 

2、都是要发送数据包的

3、都遵从端到端的原则

4、都用他们各自的命名空间进行数据传输,ip使用ip地址在ip节点之间传递,NDN使用应用程序名称空间在NDN节点之间传递数据报。(NDN uses the application name space to deliver datagrams between NDN nodes

 

关于命名:

NDN Project’s Executive Summary::NDN保留了因特网的沙漏结构,但是进一步发展了“the thin waist”来允许创建完全通用的分销网络。这种发展的核心要素是要消除数据包只能通过命名通信断点的限制“,就网络而言,NDN数据包的名字可以是任意东西,像端点、电影、书籍、命令等等。

现在的因特网已经拥有一个域名系统-DNS和完善的名称空间分配过程和管理机构,NDN可以利用现有的名称空间进行数据传输。

怎样确保命名的独一无二:只有用于全局检索数据时,我们才需要保证命名的全局唯一性。个别的数据名称在各种特定范围和上下文中是有意义的,如何在预期的范围内获取数据是一个新的研究领域。

 

架构概述

1封包类型

在NDN的通讯中是由接收端(例如:资料消费者)透过两种不同类型的封包来沟通,分别是兴趣封包和资料封包。

NDN学习(1)_第2张图片

兴趣封包:消费者将希望得到资料的名字放入兴趣封包中,并在网络上传送。路由器会依据该名字将兴趣封包转发给资料产生者。

资料封包:当兴趣封包抵达某一节点,而该节点有相符的资料时,该节点就会将其资料封包以相反路径回传给请求者,其中,资料封包内除了有名字和内容外,并在名字与内容外加上资料产生者的密钥当作签署资讯。

2路由器架构

为了实现兴趣封包和资料封包的转发功能,每个NDN路由器有三个数据结构和一个转发策略。

待定兴趣表:储存了路由器转发但还没有被满足的兴趣封包,每个PIT条目记录了兴趣封包中携带的资料名,以及封包进来和出去的界面。

*PIT(Pending Interest Table)待定请求表

NDN学习(1)_第3张图片

转发讯息表:FIB本身由名字前缀的路由协定填充,而且每个前缀可以有多个界面。

内容暂存:是用来暂存路由器收到的资料封包,因为NDN资料封包的来源及转发路径是独立的,它可以被暂存以满足未来的兴趣封包。

转发策略模组:是一系列用来转发封包的策略和规则。在特殊情况下可能会决定扔掉兴趣封包,例如:当所有上游连结发生拥塞或兴趣封包被当作DoS攻击的一部分。对于每个兴趣封包,转发策略是从FIB中取得最长的前缀相符的条目,并决定何时转发兴趣封包到何地。

当兴趣封包到达时,NDN路由器会先查询内容暂存中是否有符合的资料,如果有相符的资料的话,路由器会直接透过兴趣封包传来的界面回传资料封包,否则路由器会在PIT中查询兴趣封包的名字,如果有相同的条目在PIT中的话,路由器会在该PIT的条目中简单记录兴趣封包的来源界面,但如果在PIT中没有相同的条目的话,路由器将会基于FIB中的讯息和路由器的转发策略向资料生产者转发兴趣封包,当路由器收到很多来自下游节点中相同名字的兴趣封包时,它只会向上游的资料生产者转发第一个兴趣封包。

当资料封包到达时,NDN路由器会先查询相符的PIT条目并向列在PIT条目所有的下游界面转发资料,然后在PIT中移除该条目并将此资料暂存在内容暂存中,资料封包总是沿着兴趣封包的相反路径回传,而且不会遗失封包。在每条连结中,一个兴趣封包会返回一个资料封包,提供了流平衡的机制。为了取得包含多个封包的大物件,兴趣封包提供了一个类似TCP ACKs用来控制流量的角色:被资料消费者控制的细粒度的反馈回路。

兴趣封包和资料封包都不携带任何主机或界面位置,路由器是基于封包中携带的名字来转发兴趣封包给资料生产者,并基于兴趣包在每个节点所建立的PIT状态讯息向消费者转发资料封包。兴趣封包与资料封包交换的对称性减少了hop-by-hop的控制回路(不要与对称路由或路由搞混),并消除了在资料传输中任何需要来源与目的节点的概念,不像IP的端到端的封包传送方式。

NDN的路由器需要维护3个表:Content Store(CS)、Pending Interest Table(PIT)和Forwarding Information Base(FIB). 在NDN中,有两个重要的角色,消费者(Consumer)和生产者(Producer),前者是发送兴趣包(Interest Packets)的数据消费者,后者是提供数据包(Data Packets)的数据生产者。通信是有消费者通过发送兴趣包来驱动的,通信转发过程如下图所示,用户想要获取数据时,首先发出一个兴趣包(包含所需数据的名称),路由器接收到这个包后,首先在CS中查找是否有与当前名称匹配的内容,如果有,则直接将匹配的数据包返回给发起请求的节点;如果没有,路由器会在PIT中记录下当前名称对应的兴趣包是从哪个接口进入的,同时路由器在FIB表中查找与当前名称匹配的记录,以确定从哪些接口把这个兴趣包转发出去。当某个节点拥有与名称匹配的数据时,就返回数据包。这个包会沿着刚才兴趣包经过的路径返回,当路由器接收到数据包时,它会根据这个包的名称在PIT中查询匹配的记录,将这个包从所有匹配的接口发出。这样,所有之前请求过相同数据的节点都可以的到所需的数据,PIT中匹配的记录都将被删除。路由信息和用户请求过的内容都保存在路由器中,这种方式最大限度地挖掘了路由器的存储能力。如果链路发生故障,恢复后可以从中间节点的缓存中取得数据,而不需要路由到原始数据生产者,以减少延时和带宽消耗,提高内容分发的效率。 

NDN学习(1)_第4张图片

 

 

你可能感兴趣的:(NDN)