Lixia Zhang kc claffy Patrick Crowley
AlexanderAfanasyev CAIDA Washington University
Jeffrey Burke UC, San Diego St. Louis
Van Jacobson
UCLA
ChristosPapadopoulos Lan Wang Beichuan Zhang
Colorado State Univ. Univ. of Memphis Univ. of Arizona
命名数据网络(NDN)是被美国国家科学基金会资助的五个未来因特网体系结构项目之一。NDN由一个早期的项目起源,内容中心网络(CCN),Van Jacobson在2006年首次提出。NDN项目研究Jacobson提出的从今天的以主机为中心的网络体系结构(IP)到以数据为中心的网络体系结构(NDN)的革新。这概念上的简单转换对我们怎样设计、开发、部署、使用网络和应用程序有深远影响。我们描述这个新的体系结构的动机和愿景和其基本的组件和操作。我们也提供了一个对当前设计的描述,开发状态和研究挑战。更多关于项目的信息,包括原型实现、发布、年度报告可以访问named-data.net网站。
今天因特网的沙漏体系结构以通用的网络层为中心(例如IP),网络层实现了全球互联的最小必需功能。细腰结构通过上层和下层技术的独立革新使得因特网普及率能够迅速增长。然而,IP被设计来创建一个通信网络,包只在通信端节点被命名。在电子商务、数字媒体、社交网络、智能手机应用程序方面的持续增长导致了对于分布式网络的使用占据统治地位。分布式网络比通信网络更加普遍,通过点对点通信协议解决分布式问题是复杂和易出错的。
命名数据网络(NDN)项目提出了一个IP体系结构的革新,保留了细腰角色,以便包可以命名对象而不是通信端节点(如图1)。更特别地,NDN改变了网络服务的语义,从传送包到特定目的地址到从特定名字获取数据。NDN包中名字可以命名任何对象——一个端节点、电影或书中的数据块、打开灯的命令等。这个概念上的简单改变允许NDN网络使用几乎所有因特网经过测试的工程化的特性来解决更广阔范围的问题,不仅仅包括端到端通信,而且包括内容分发和控制问题。基于对当前因特网体系结构的优势和限制的30年的使用经验,新体系结构的设计在构建时即考虑了安全(通过所有命名数据上的签名)和网络流量的自动调节(通过兴趣包和数据包之间的流平衡)。该体系结构包括有助于用户选择和竞争的功能,比如多路径转发和网络内存储。
NDN是一个更普遍的网络研究方向,信息中心网络(ICN),的一个实例,在信息中心网络方向中,涌现出不同的体系结构设计。因特网研究任务组(IRTF)在2012年建立了一个ICN研究工作组。本文提供了一个当前NDN体系结构研究项目状态的简要的(必然不完整的)介绍,包括第六届NSF基金在12个学校的主要投资方和来自学术和工业研究团体越来越浓厚的兴趣。一个更加完整的最近活动的描述可以访问第三次年度项目报告和NDN网站(named-data.net)。
NDN中的通信由接收者(例如数据消费者)通过交换两种类型的包驱动,兴趣包和数据包。两种类型的包承载了标识数据片的名字,该数据片可以在包中传输。消费者把期望数据片的名字放进兴趣包,并将其发送到整个网络。路由器使用该名字向数据生产者转发兴趣包。一旦兴趣包到达拥有请求数据的节点,节点将返回包含名字和内容的数据包,伴随被生产者密钥绑定了名字和内容的签名。数据包沿着兴趣包到达的相反路径返回请求的消费者。
为了实现兴趣包和数据包转发功能,每个NDN路由器维护三个数据结构:待定兴趣表(PIT),转发信息表(FIB)和内容缓存(CS)(见图3),和转发策略模块(没有显示在图中),以决定是否、何时、何地转发每个兴趣包。PIT存储了路由器转发但还没有被满足的所有兴趣包。每个PIT条目记录了兴趣包中承载的数据名,以及进接口和出接口。当兴趣包到达,NDN路由器首先检查内容缓存是否有匹配数据,如果存在匹配数据,路由器在兴趣包到来的接口上返回数据包。否则,路由器在PIT中查询名字,如果匹配的条目存在,该条目简单地记录了兴趣包进接口。如果不存在匹配的PIT条目,路由器将基于FIB中的信息和路由器中的自适应转发策略向数据生产者转发兴趣包。当路由器从多个下游节点收到相同名字的兴趣包,它仅仅向数据生产者上游转发第一个兴趣包。FIB自身由基于名字前缀的路由协议填充,每个前缀拥有多个出接口。
转发策略可能在某种特定情形下决定扔掉兴趣包,例如,如果所有的上游链路都是拥塞的,或者兴趣包被用作DoS攻击的一部分。对每个兴趣包,转发策略从FIB中获取最长前缀匹配条目,并决定何时何地转发兴趣包。内容缓存是路由器接收到的数据包的临时缓存。因为NDN数据包是位置独立的,它可以被缓存来满足未来的兴趣包。
当数据包到达时,NDN路由器找到匹配的PIT条目并向PIT条目中列出的所有的下游接口转发数据。然后路由器移除PIT条目并在内容缓存中缓存数据包。数据包总是沿着兴趣包到达的相反路径传送,并且不存在包丢失情况,在每条链路上,一个兴趣包将返回一个数据包,提供流平衡机制。为了获取大的由多个包组成的内容对象,兴趣包在控制流量方面提供了一个与今天因特网的TCP ACK相似的角色:被数据消费者控制的细粒度的反馈环路(见2.1节)。兴趣包和数据包都不携带任何主机或接口地址;路由器基于包中携带的名字向数据提供者转发兴趣包,并基于兴趣包在每跳建立起来的PIT状态信息向消费者转发数据包。该兴趣包/数据包交换的对称性减少了逐跳控制环路(不要与对称路由或者路由混淆),并消除了在数据交付过程中源和目的节点任何概念上的需要,而不像在IP的端到端包交付模型中那样。
尽管路由器识别名字中组件之间的边界,他们不将意义归属到名字,例如,NDN名字对于网络是不透明的。这个设计决定允许每个应用程序选择适合他需要的命名方案,因此,命名能够随网络独立地进化。NDN设计假定层次化结构化的名字,例如,被UCLA生产的的视频可能拥有名字/ucla/videos/demo.mpg,‘/’以文本表示法描绘了名字组件,与URL相似。层次化结构允许应用程序表示数据元素的内容和关系。例如,例子中UCLA视频的第3段版本1可能命名为/ucla/videos/demo.mpg/1/3。层次化结构也允许名字汇聚,例如,/ucla能够与产生视频的自治系统通信。扁平名字可以作为特殊案例被兼容,这在本地环境可能是有用的,然而,层次化命名空间在扩展路由系统和提供必需的数据上下文环境方面是最基本的。(甚至提倡扁平路由确认,扁平名字通过引入层次是可扩展的。)
为了动态获取生成的数据,消费者必须能够为期望的数据片广义地构造名字,而不使用之前见到的名字或者数据。或者:(1)一个广义算法,允许生产者或者消费者到达相同的基于可用信息的的名字,或者(2)兴趣包选择器与最长前缀匹配连接,通过一个或更多的迭代器获取期望的数据。到目前为止,我们的经验建议,一个简单的选择器集合可以支持通过部分已知的名字获取数据。例如,消费者想要demo.mpg视频的第一个版本,他可能请求/ucla/videos/demo.mpg/1,包含兴趣包选择器“最左孩子”,并接收到一个数据包命名为/ucla/videos/demo.mpg/1/1,以响应第一个段。消费者可以使用由第一个数据包揭示的信息和发布应用程序的命名约定来请求后面的段。
可以被全球获取的数据包必须拥有全球唯一的名字,用作本地通信的名字仅需要本地路由(或本地广播)来寻找匹配的数据。单独的数据名字在多个范围和上下文中可能是有意义的,范围从“房间灯的开关”到“世界上所有国家的名字”。
命名空间管理不是NDN体系结构的一部分,就像地址空间管理不是IP体系结构的一部分一样。然而,命名是NDN应用程序设计的最重要部分。命名数据允许对内容分发、多播、移动性和延迟容忍网络等功能的支持。
允许应用程序开发者和用户设计他们自己的命名空间作为数据交换,这有几个好处:增加应用程序数据和其在网络中的使用之间的映射的紧密性;减少次要符号的需求(保持记录将应用程序配置映射到网络配置);并将抽象可用的范围扩展到开发者。
我们通过实验学习到应用程序应该怎样选择名字,使得该名字可以促进应用程序开发和网络交付。随着我们发展和改善命名的原则和指导方针,我们将其转换到名字约定,并用系统库实现他们来简化未来的应用程序开发(见文献[19],是一个使用当前代码库[22]的例子)。幸运地,名字对网络的不透明性允许体系结构开发与对命名结构和应用程序开发研究的并行开展。
对比TCP/IP,将安全的责任留给端节点,NDN自身即可保证数据的安全,通过需要数据生产者对每个数据包签名。发布者的签名确保数据的完整性,并可以知道数据的起源,允许消费者对数据的信任能够从数据怎么得到和从哪得到被解耦。它也支持细粒度的信任,允许消费者推测是否公钥拥有者是特定环境中特定数据片的一个可以接受的发布者。第二个主要的研究关键是设计和开发管理用户信任的可用机制。我们使用一个层次化信任模型做了实验,在该模型中密钥命名空间授权使用密钥(一个数据包携带一个公钥实际上是一个证书,因此被第三方签名)来签名特定数据,网络信任允许确保通信安全而不需要预同意信任锚点。
NDN的数据中心安全在内容访问控制和基础设施安全方面有天然的应用。应用程序通过加密和分发(数据加密)密钥作为加密的NDN数据,可以控制对数据的访问,将数据安全周长限制到单个应用程序环境中。需要对网络路由和控制消息的签名(像任何其他的NDN数据)提供了针对,例如欺骗和篡改的安全路由协议的现实基础。NDN对多路径转发的使用和自适应转发策略模块,缓解了前缀劫持攻击,因为路由器可以检测到被劫持后的异常现象,并通过替代路径获取数据。由于NDN包引用内容而不是设备,恶意地对准一个特定设备更加棘手,尽管针对其他NDN特定的攻击,例如,兴趣包洪泛拒绝服务攻击DoS缓解机制是需要的。
NDN基于名字路由和转发包,这将消除三个由IP体系结构中的地址引起的问题:地址空间耗尽,NAT转换和地址管理。由于命名空间没有边界,不存在地址耗尽问题。由于NDN没有地址,无论公有的还是私有的,因此不存在NAT转换问题。最后,地址分配和管理不再需要在本地网络中。
NDN可以使用传统路由算法,比如链路状态路由算法和距离矢量算法。代替宣告IP前缀,NDN路由器宣告名字前缀,该前缀覆盖该路由器愿意服务的数据。路由协议在网络内传播这些宣告,告知每个路由器他自己FIB的构造。传统路由协议,比如OSPF和BGP,能够被自适应来路由名字前缀,通过将名字看作一个不透明组件序列,并对兴趣包中的名字针对FIB表做出基于组件的最长前缀匹配。
每个路由器中的PIT表支持跨越NDN数据面板的转发,记录每个待定兴趣包和进接口,并在接收到匹配数据包或超时发生后移除兴趣包。这每跳每包状态与IP的无状态数据面板不同。基于FIB中的信息和性能测量,每个路由器中的自适应转发策略模块做出了精明的决策:那个兴趣包转发到哪个接口,PIT中允许存在多少未满足的兴趣包,不同兴趣包的相对优先级,负载均衡的兴趣包在多个接口之间转发,选择替代路径来避免检测失败。如果路由器决定兴趣包不能被满足,例如,上游链路损坏,FIB表中没有转发条目,或者极端拥塞发生,路由器可以发送一个NACK包到他传输兴趣包的下游邻居。这样的NACK可能触发接收路由器转发兴趣包到其他接口来探索替代路径。PIT状态允许路由器识别并丢弃发生环路的包,允许他们自由地使用多条向着相同数据生产者的路径。
PIT状态服务其他的有价值的目的。首先,由于PIT记录了相同数据名的兴趣包到达的接口集,PIT自然支持多播数据交付。第二,由于每个兴趣包获取最多一个数据包,路由器能够通过控制待定兴趣包的数量控制流量负载来获得流平衡。第三,PIT条目的数量是路由器负载的指示器;对PIT大小的约束限制了DDoS攻击的效果。最后,PIT条目超时提供了相对容易的攻击检测,每个PIT条目中到达的接口信息能够支持推回方案。
因为每个NDN数据包携带一个名字和签名,因此它是有意义的,独立于谁请求的和从哪里获取的。因此,路由器可以在内容缓存中缓存接收到的数据包,并使用其满足未来的请求。内容缓存与在IP路由器中的缓冲区内存类似,但是IP路由器在将包转发到目的地后不能重新使用包,而NDN路由器可以。NDN按照数据获取同等地对待存储和网络信道。对于静态文件,NDN获得几乎最佳的数据交付。甚至在多播情况下,动态内容能够从缓存中获益(例如,实时电话会议)或者包丢失后的重传。
除内容缓存之外,体系结构现在支持一个更加持续的大容量的网络内存储,叫做仓库(缩写为Repo)。这种类型的存储能够支持与今天的内容分发网络(CDNs)相似的服务,不是必须设计它以使用创造性的协议技巧作为应用层覆盖(例如,DNS操作)来使得他们工作。
缓存命名的数据增加了不同于IP的对于隐私的担心。在IP中,我们可以检查包头部,可能是有效负载,来得知谁正在消费数据。在NDN网络中命名和缓存数据可能帮助观察什么数据被请求,但是没有目的地址很难确认谁正在请求他(除非我们直接连接到与请求主机相同的子网)。因此NDN提供了一个与当前IP网络根本上不同的隐私保护排序。
一些研究者特别强调网络内缓存作为ICN体系结构的基本获得物。尽管NDN相较于TCP/IP能够支持更多强大的CDN体系结构,NDN也提供许多其他的功能(数据安全,流平衡,独立带来大量利润的状态数据面板),这些功能拥有更多有意义的重要的优势。
NDN体系结构没有一个单独的传输层,他移动今天的传输层协议的功能(多路分解、可靠交付和拥塞控制)到应用层,支持库和转发面板的策略模块。传输层信息,比如端口和序列号不是必需的。所有需要传送的信息都在数据包名字中。例如,名字/ucla/videos/demo.mpg/1/3指定了向哪里转发兴趣包(名字/ucla/),哪个应用程序应该接收它们(/video/),任何应用程序指定的信息(版本1段3)。
当应用程序需要可靠交付,应用程序自身或者它的支持库将监视显著的兴趣包的状态,并当需要时重传它们,例如超时之后。NDN的流平衡需求,节点通过在每一跳限制待定兴趣包的数量控制它们自己流量负载的能力,能够在整个网络内提供高效的拥塞控制。如果拥塞损失发生,由于重传兴趣包可以被缓存的数据包在包丢失之前满足,缓存缓解了该影响。因此,NDN可以避免这种发生在今天的因特网中的拥塞崩溃,当包靠近目的地时丢失,从源主机发出的不断的重传,这将消耗许多带宽。
NDN协议规范需要两种基本包类型的标准格式(兴趣包和数据包),并描述了网络层支持的功能,例如新的细腰。构建一个可操作的NDN网络也需要软件库来支持命名、高性能转发和路由、转发策略和信任管理。与IP的支持组件相似(地址分配、路由协议、DNS),这些库不是核心体系结构一部分,但本质上是支持它的,所有的涉及令人可怕的研究挑战。这一部分描述了项目的应用程序驱动,设计和开发体系结构的实验性方法,包括阐明他的性能的例子和开放的研究挑战。
该项目的方法是在NDN上设计并构建各种各样的应用程序来驱动体系结构和其支持模块的开发和部署,以测试原型实现,鼓励社团使用,实验,并对设计做反馈。应用程序驱动的开发也允许验证和确认NDN的性能和功能优势,比如怎样依据名字路由促进有效编写复杂的分布式应用程序,通过减少复杂性、错误机会、设计和部署的时间和代价。对NDN许多年的设计和开发原型应用程序揭示了映射到体系结构的重要功能的应用程序研究的5个关键区域:(1)命名空间(2)可信模型(3)网络内存储(4)数据同步(5)集结,发现和引导指令。这些挑战产生于应用程序内部和多个应用程序之间。命名空间设计必须也意识到特定应用程序对数据分发的需求和与信任相关的信息的组织之间的相互影响,以及那些强加的有效路由/转发。相似的挑战存在于名字发现,引导程序和移动性的支持。这对应用程序开发的承诺在项目早期被支付:它打开了每节点仓库持续存储的意料之外的重要性,作为应用程序的通常构造块来同步。早期应用程序的一些例子显示了NDN的优势和挑战。
视频流:第一批NDN应用程序之一是一个具有视频功能的视频流应用程序,演示了基于NDN媒体分发的实际优势,该媒体分发实质上支持缓存和多播。NDNVideo流通过NDN直播或预先记录高清视频,并通过UDP和以太网传输被测试和演示。在绝大多数最近的直播演示中,亚马逊Web服务和NDN测试床的1000个客户从单独的NDNVideo发布者消费视频,在中间节点拥有仅仅单纯功能的NDN转发者。NDNVideo应用程序不需要在发布者和消费者之间直接通信,允许发布者独立的可扩展性,通过NDN在网络内部存储的使用。应用程序执行运行中的内容装配或者视频段的选择,例如,帧层的随机访问需求,通过命名空间设计被直接支持。
实时会议:ChronoChat多用户文本聊天应用程序提供了一个平台来探索支持点对点聊天服务的数据同步技术(例如,没有中心服务器)。ChronoChat激发了没有层次化信任模型实验的积极性(见3.3节),并为基于加密访问控制开发了支持库。结合开发ChronoChat的经验,NDNVideo和基于NDN语音会议的早期工作,对于ndnrtc来说是鼓舞人心的开发,视频会议应用程序合并了WebRTC代码库。这个工具将允许对特定NDN拥塞控制、速率自适应、实时通信同步播放方法的调查研究。
构造自动化系统:企业构造自动化管理系统(BAS/BMS)对于NDN研究是一个理想的驱动,由于命名空间和信任模型的仔细设计可以支持感知器的认证控制。一个最大的NDN应用程序研究努力到目前为止已经与UCLA设施管理进行了合作,用超过150K个点的感知和控制操作网络,并已经促进了专用的工业标准的电力需求模拟系统的安装和可以访问来自NDN研究已存在系统的数据。BAS/BMS应用程序形成了与多媒体应用程序不同的数据命名和信任的需求。例如,当前的基于NDN的BMS设计在三个命名空间发布了数据:一个作为应用程序数据访问,遵循物理构造系统配置,另一个作为设备发现和引导程序,还有一个密钥的信任管理命名空间,体现了机构角色和委托人的关系。另一个挑战是探索命名空间和存储设计怎样从许多异构感知器和其他设备支持数据聚合和数据挖掘。
车辆网络:车辆网络是另一个NDN体系结构可以提供优势的领域,允许基于位置的内容获取和新的信任模型以支持ad-hoc和机会通信。车辆应用程序的实验也导致了对NDN协议栈自身的更新,包括对其他媒体的支持(例如,3G/LTE,DSRC/WAVE,WiFi,WiMAX)和网络层对于数据骡的支持,车辆NDN节点缓存通过广播信道听到的数据包,该信道在PIT中没有匹配的待定兴趣包,以便之后向其他车辆提供它们或者将它们传给基础设施。
其他应用程序:可以访问的NDN软件平台允许学生和其他人探索基于NDN的分布式文件系统,多用户游戏和网络管理工具。在接下来的几年里,工作将持续在上面的应用程序,和对于气候模型和移动健康环境的新的探索,以作为NDN体系结构研究和开发的驱动。
新的体系结构组件:同步。作为尝试构造鲁棒的高效的和可信的分布式的(例如无服务器的)点对点NDN应用程序的直接结果,体系结构现在支持一个新的构造块,叫做同步。使用NDN基本的兴趣包-数据包交换通信模块,同步使用命名规范来允许同步数据集多方。通过单独交换计算的数据摘要,每个通信方很快并且可靠地知道新的或丢失的数据,然后可以通过NDN的内嵌多播交付高效地获取数据。
NDN转发面板造成了两个主要的挑战:转发策略和可扩展的转发。并行地,项目组开发了基于NDN的路由协议原型来支持近期的和中期的对于测试床的使用,同时也检查了更多激进的路由方向,这些方向可以在NDN自适应转发面板上进行。在几个例子中,路由协议设计揭示了在当前软件库中丢失的特性。
转发策略设计:每个节点的转发策略模块是NDN弹性和效率关键。尽管NDN多路径性能高效使用,一个自适应的转发策略可以沿着最佳执行路径向消费者发送兴趣包,避免拥塞和失败,路径之间的负载均衡,对比如前缀劫持和DDoS的攻击的检测和反应。但是转发策略设计是一个新的研究领域,对于在不同的环境和设备中怎样设计简单的高效的策略存在许多开放问题。
转发引擎设计:转发引擎必须支持线速的操作,包括快速表查询可变长度的名字,存储几百万到几十亿名字的高效数据结构,和快速包处理。项目组成员提出了一个高度可扩展的转发结构和引擎。模拟实验原型支持几百万FIB条目,而存储空间少于10MB,而FIB查询速度只是微秒级。此外,来自思科和阿尔卡特朗讯公司的工业组开发了可实行的原型路由器。
路由协议设计:第一个NDN路由协议,意图实现在测试床上基于名字转发的快速原型,而更多大胆的路由研究也同时在进行,这个路由协议是扩展的OSPF(OSPFN),该协议定义了一种新类型的不透明链路状态通告来携带名字前缀并计算基于名字的FIB。但这个简单的对基于IP的路由协议的改进增加了NDN的负担,而该负担是应该被避免的,包括管理GRE隧道,管理IP地址,支持多跳转发,由于OSPF仅支持单路径和等代价的多路径转发。当前的NDN路由协议是基于NDN的链路状态路由(NLSR),该协议使用名字来标识网络、路由器、处理器、数据和密钥。NLSR可以使用任何底层通信信道(例如,以太网、IP隧道、TCP/UDP隧道)来交换路由消息。特别地,路由器使用兴趣包来获取数据包中携带的路由更新,该路由更新被数据生产者路由器签名以允许核实验证。更重要的是,NLSR在每个路由器中创造了基于名字的多路径FIB以支持NDN的转发面板。
设计NLSR协议需要考虑与任何其他NDN应用程序相同的维度:(a)怎样命名路由器、链路、路由更新等;(b)怎样分发密钥和怎样从这些密钥中获取信任;(c)路由更新传播,需要拉而不是(OSPF的)推来更新;(d)怎样为每个名字前缀生产并排序多个下一跳,以促进NDN的多路径转发。
探索新路由范式:今天的IP路由体系结构需要拓扑和策略信息的传播,路由计算,有时额外的收敛时间作为路由器检测和路由失败。在NDN中,转发面板自身执行快速错误检测和恢复,减少路由的角色来引导转发并传播长期的拓扑和策略信息。这一解耦允许了对更多激进的可扩展的路由方法的研究,而这些方法在IP网络中是不可能的。例如,NLSR通过在链路状态通告中传播双曲坐标支持一种双曲路由类型。因特网拓扑在自治系统级是自由可扩展的强烈分簇的小世界,这与底层拓扑潜在的空间高效性的双曲几何有深刻连接。假定路由拓扑和名字空间存在双曲结构,我们可以使用每个名字前缀的双曲坐标和邻居坐标,运用贪婪转发方法来计算下一跳,每个路由器转发兴趣包到它的更靠近目的地的邻居路由器。比较NDN的双曲路由的性能和链路状态路由协议是一直在进行中的。其他可能的路由方法,例如小世界方法,伪梯度算法和传染病算法,在NDN中值得探索。
为了验证一个数据包的签名,应用程序可以获取合适的密钥,由包中的密钥位置域标识,就像任何其他的内容。但是信任管理,例如,怎样决定特定应用程序中特定包的特定密钥的真实性,是一个主要的研究挑战。与实验方法相同,NDN信任管理研究由应用程序开发和使用驱动:首先解决特定问题,然后标识通用模式。
例如,NLSR的安全需求需要一个简单的层次信任模型的开发,在该模型中,密钥用名字发布,该名字反应了他们之间的信任关系。根密钥由网络域管理者拥有,根密钥下面是站点密钥,每个站点密钥由单独的站点管理者拥有,由根密钥签名,并在下一层发布。每个站点密钥签名了站点的操作密钥,这反过来签名了路由器密钥,这反过来签名了路由器上的NLSR进程密钥。最后,NLSR密钥签名了由NLSR生成的路由数据。在这个信任模型中,命名空间匹配信任代理的层次,例如,(概念地)/root/site/operator/router/process。在层次中用一个特别的名字发布密钥授权他们签名特定的数据包并限制他们的范围。其他应用程序真实世界信任趋向于遵从一个层次化的模式,比如在我们构建的管理系统(BMS)中,可能使用两个单独的层次构建操作者和应用程序数据,来促进谁可以访问什么数据的好的控制。更灵活和有表现力的信任关系,比如我们的聊天程序,激发了信任网络模型实验的积极性。一个当前的聊天室参与者可以通过签名新来者的密钥向其他人介绍一个新来者。未来的应用程序将实现一个交叉验证模型(SDSI),这将提供更多的验证的冗余,允许数据和密钥名字是独立的,这将更容易适应许多真实世界信任关系。
新的体系结构的成功需要广阔的社团参与和摄取。NDN已经加快了发展,学术界和工业界都参与进来。但是以物质刺激鼓励增量部署需要证明NDN可以解决真实世界问题,而这些问题基于TCP/IP的解决方案或者存在问题,或者根本不存在。NDN项目组也维持一个NDN协议栈的开源实现,一个模拟器,一个测试床,来促进测试和广泛的社团参与。
像IP,NDN是一个全球覆盖网:NDN可以运行在任何可以转发数据报(以太网、WiFi、蓝牙、蜂窝网络、IP、TCP等)的东西上,任何东西也可以运行在NDN上,包括IP。不是试图替换或者改变已经部署的IP基础设施,NDN可以简单地运行在IP基础设施之上。NDN也可以利用因特网的测试好的工程解决方案,该方案已经花费了几十年来改进,比如会议,政策,命名和路由的管理实践。因此,NDN在内容分发上的优势,应用程序友好的通讯和命名,鲁棒性的安全,移动性的支持和广播可以被增量实现,并毫不费力。
对企业应用程序(例如,自动建筑控制),基于NDN的解决方案可以通过本地部署带来立即价值。宽领域应用程序,比如无服务器聊天室可以在IP隧道上操作。随着基于NDN应用程序被部署,我们想象NDN节点群岛正在形成,使用一个综合解决方案来在非NDN云上通过隧道互联。一旦NDN应用程序得到广泛接受,NDN路由器的ISP部署将为自己和他们的客户提升性能和效率,提供一个基础设施增长的自然动机。IP体系结构在它自己的部署历史中提供相似的覆盖网功能和增长的有利刺激。
开源软件支持:自由的可用软件库和工具对NDN体系结构的可扩展的首次展示是必不可少的。NDN项目最初使用PARC的开源包CCNx作为它的代码库。为了提供一个研究的敏捷开发平台,在2013年,NDN项目组开发了一个CCNx版本,在2014年早期实现了一个新的NDN转发程序,NFD,从零开始。NFD支持新开发的NDN包格式,设计具有模块性和可扩展性,以促进多种多样的实验。NDN平台软件版本包括关键组件的支持包,以构造和测试NDN网络和应用程序。假如NDN支持更受欢迎的容易使用的语言,比如Python和Javascript,将更多地促进社团中的开发活动。项目组计划继续开发开发和支持NDN的代码库,包括在浏览器内支持web形式的通过NDN的内容发布,帮助NDN项目组和更广泛的团体编写创新的实验性的NDN应用程序。
项目组也维护一个开源的基于NS-3的模拟器,ndnSIM,该模拟器提供了一个通用平台来帮助研究者评估大型网络中的NDN系统性能。ndnSIM邮件列表在ndnSIM使用和开发方面进行了活跃的讨论,从来自12个国家的100个成员。
可操作的NDN测试床:对我们网络研究和开发实验方法关系重大的是大规模测试床,来评估应用程序和核心体系结构组件。在我们项目的第一年,NDN项目组在华盛顿大学建立和装配了一个本地测试床,可编程路由器和广阔范围的覆盖网测试床连接所有的参与到NSF基金NDN项目的研究机构。本地测试床支持NDN原型实现的基线评估,广阔范围的测试床支持NDN组件的测试,包括视频流、会议工具和路由协议。监控脚本和虚拟化工具促进了测试床的管理。NDN项目组鼓励研究者创建他们自己的测试床,也接受来自连接到NDN项目测试床的外部站点的请求。
Ververidis等人提出了许多现存的ICN项目的综述并在社团内开展了几场意义重大的辩论,与可扩展的信任管理和命名自身的策略显著相关。
像其他的ICN设计,NDN通过使用加密获得数据真实性,机密性和完整性。密钥用于将名字和数据通过签名绑定,并通过加密保护数据(或名字)。因为这些密钥是自命名的数据,所有NDN体系结构的特征可以被用来处理密钥管理的共同挑战,比如分发和撤回;这是一个研究的活跃领域。高性能加密算法的开发和集成也是必不可少的。然而,最重要的挑战是鲁棒性和可用的信任管理,允许内容消费者在特定环境中决定可接受的签名密钥。
进一步,绝大多数提出的ICN体系结构依赖自证明的名字,允许任何节点在匹配内容的包中核实该名字。然而,自证明名字需要每个应用程序决定是否内容是期望的,哪个名字创建了额外的安全风险,如果使用了与应用程序名的次要绑定。NDN提供了一个不同的方法,直接从应用程序提取每个包的数据名字,然后安全地将这些名字绑定到内容。命名空间设计因此是一个研究的关键领域,因为他将应用程序数据、通信和存储模型的考量与NDN中名字的路由和安全含义结合起来。除了可扩展的基于名字的转发之外,一个重要的NDN研究的挑战是为当前期望的应用程序体系结构开发和评估命名空间和相关的协议设计,并找到可以被应用到公共用例的可重用方法。
最后,通过与社会科学家的合作,我们探索NDN的社会影响,特别是对比今天的TCP/IP体系结构的四个方面:对语义分类、出处、发布和分散式通信的支持。我们相信这些特征将增加自由语音、安全、隐私和匿名的机会,而提高了有关数据保留和内容规则的新的挑战。
NDN研究的应用程序驱动的实验方法允许进步,并提供了NDN最初愿景的新的深度。但项目组只知道关于命名空间结构和遍历的研究的表面,以及信任模型和管理机制、可扩展的转发和路由、转发策略设计、分布式数据同步、集合、发现和引导指令。我们为试点的NDN应用程序集演示了一个合理的命名方法和一个对于剩余挑战的清晰图像。我们实现了一个支持传统的链路状态NDN路由协议和双曲路由。我们为Sync速写了一个初始化设计方法,一种新类型的支持跨集合的数据同步的传输。Sync填充了NDN网络层的简单的兴趣包-数据包交换和分布式应用的需要之间的沟壑,以同步数据集。
幸运的是,其他与NDN紧密联合的研究成果在全世界范围内都在处理之中,像被越来越多的学术工作室和会议活动建议的那样。NDN项目组采取了行动,这些行动有希望促进更多的社团参与到项目的下一个阶段。特别地,NDN网站发布了常规软件的更新、测试床文档、技术和年度报告、FAQ和博文,把公众的对NDN感兴趣的邮件列表归档,以便于感兴趣用户对于技术的讨论。
[1] NS-3-based NDN simulator.http://ndnsim.net.
[2] A. Ghodsi, T. Koponen, J.Rajahalme, P. Sarolahti, and S. Shenker. Naming in content-oriented architectures.In ACM SIGCOMM Workshop on Information-Centric Networking (ICN), 2011.
[3] M. Abadi. On SDSI'slinked local name spaces. Journal of Computer Security, 6(1-2):3{21, Oct. 1998.
[4] A. Afanasyev, P.Mahadevan, I. Moiseenko, E. Uzun, and L. Zhang. Interest ooding attack and countermeasuresin Named Data Networking. In Proc. of IFIP Networking, May 2013.
[5] C. Bian, Z. Zhu, A.Afanasyev, E. Uzun, and L. Zhang. Deploying key management on NDN testbed.Technical Report NDN-0009, Rev.2, Feb 2013.
[6] M. Bogu~n_a, F.Papadopoulos, and D. Krioukov. Sustaining the Internet with Hyperbolic Mapping.Nature Comms, 1:62, 2010.
[7] J. Burke, P. Gasti, N.Nathan, and G. Tsudik. Securing instrumented environments over Content-CentricNetworking: the case of lighting control. In IEEE INFOCOM 2013 NOMEN Workshop,Apr. 2013.
[8] CCNx. Ccnx software. http://www.ccnx.org.
[9] P. Crowley. Named DataNetworking (Demo). In China-America Frontiers of Engineering Symposium, Frontiersof Engineering, 2013.
[10] S. K. Fayazbakhsh, Y.Lin, A. Tootoonchian, A. Ghodsi, T. Koponen, B. Maggs, K. Ng, V. Sekar, and S.Shenker. Less pain, most of the gain: Incrementally deployable ICN. SIGCOMMComput. Commun. Rev., 43(4), Aug. 2013.
[11] G. Grassi, D. Pesavento,G. Pau, R. Vuyyuru, R. Wakikawa, and L. Zhang. VANET via Named Data Networking.In IEEE INFOCOM NOMEN Workshop, Apr. 2014.
[12] T. R. G. Green and M.Petre. Usability analysis of visual programming environments: a \Cognitive dimensions"framework. Journal of Visual Languages and Computing, 7(2), 1996.
[13] J. Y. Halpern and R. vander Meyden. A logic for SDSI's linked local name spaces. In IEEE Computer SecurityFoundations Workshop, 1999.
[14] A. Hoque, S. O. Amin, A.Alyyan, B. Zhang, L. Zhang, and L. Wang. Named-data link state routing protocol.In ACM SIGCOMM ICN Workshop, 2013.
[15] V. Jacobson, , D. K.Smetters, J. D. Thornton, M. F. Plass, N. H. Briggs, and R. L. Braynard. Networkingnamed content. In CoNEXT, 2009.
[16] D. Krioukov, F.Papadopoulos, M. Kitsak, A. Vahdat, and M. Bogu~n_a. Hyperbolic geometry ofcomplex networks. Physical Review E, 82:036106, 2010.
[17] D. Kulinski and J.Burke. NDN Video: Live and Prerecorded Streaming over NDN. Technical Report NDN-0007,Sept 2012.
[18] P. Mahadevan, D.Krioukov, M. Fomenkov, B. Hu_aker, X. Dimitropoulos, kc cla_y, and A. Vahdat.The Internet AS-level topology: Three data sources and one de_nitive metric. ComputCommun Rev, 36(1), 2006.
[19] I. Moiseenko and L.Zhang. Consumer-Producer API for NDN. Technical Report NDN-0017, Feb 2014.
[20] NDN Team. Named DataNetworking (NDN) Project 2012 - 2013 Annual Report, Sept 2013.
[21] NDN team. NDN ForwardingDaemon, 2014. http://named-data.net/doc/NFD/current/.
[22] NDN team. NDN Platform,2014. http://named-data.net/codebase/platform/.
[23] W. Shang, Q. Ding, A.Marianantoni, J. Burke, and L. Zhang. Securing building management systems usingnamed data networking. IEEE Network Special Issue on Information-CentricNetworking, Apr 2014.
[24] W. Shang, J. Thompson,M. Cherkaoui, J. Burke, and L. Zhang. NDN.JS: A JavaScript Client Library for NamedData Networking. In IEEE INFOCOM 2013 NOMEN Workshop, Apr 2013.
[25] K. Shilton, J. Burke, kccla_y, C. Duan, and L. Zhang. A World on NDN: A_ordances and Implications of NDN.Technical Report NDN-0018, April 2014.
[26] W. So, A. Narayanan, andD. Oran. Named data networking on a router: Fast and DoS-resistant forwardingwith hash tables. In ACM/IEEE Symposium on Architectures for Networking and CommunicationsSystems (ANCS), Oct 2013.
[27] M. Varvello, D. Perino,and J. Esteban. Caesar: A content router for high speed forwarding. In ACM SIGCOMMWorkshop on ICN, 2012.
[28] L. Wang, A. K. M. M.Hoque, C. Yi, A. Alyyan, and B. Zhang. OSPFN: An OSPF-based routing protocol forNDN. Technical Report NDN-0003, July 2012.
[29] G. Xylomenos, C.Ververidis, V. Siris, N. Fotiou, C. Tsilopoulos, X. Vasilakos, K. Katsaros, andG. Polyzos. A survey of information-centric networking research. IEEECommunications Surveys Tutorials, 2013.
[30] C. Yi, J. Abraham, A.Afanasyev, L. Wang, B. Zhang, and L. Zhang. On the role of routing in NamedData Networking. Technical Report NDN-0016, Dec 2013.
[31] C. Yi, A. Afanasyev, I.Moiseenko, L. Wang, B. Zhang, and L. Zhang. A case for stateful forwardingplane. Computer Communications: ICN Special Issue, 36(7):779{791, April 2013.
[32] C. Yi, A. Afanasyev, L.Wang, B. Zhang, and L. Zhang. Adaptive Forwarding in Named Data Networking. ACMSIGCOMM CCR, 42(3), 2012.
[33] H. Yuan and P. Crowley.Scalable pending interest table design: From principles to practice. IEEE INFOCOM,2014.
[34] H. Yuan, T. Song, and P.Crowley. Scalable NDN forwarding: Concepts, issues and principles. In ICCCN,2012.
[35] Z. Zhu and A. Afanasyev.Let's ChronoSync: Decentralized dataset state synchronization in NDN. In ICNP,2013.
[36] Z. Zhu, C. Bian, A.Afanasyev, V. Jacobson, and L. Zhang. Chronos: Serverless multi-user chat over NDN.Technical Report NDN-0008, October 2012.
[37] Z. Zhu, J. Burke, L.Zhang, P. Gasti, Y. Lu, and V. Jacobson. A new approach to securing audio conferencetools. In Asian Internet Engineering Conference, AINTEC, 2011.