命名数据网技术的应用
2019-03-20顾艳春杨吉渊
顾艳春,杨吉渊
(佛山科学技术学院电子与信息工程学院,广东佛山528000)
1 命名数据网简介
当前互联网的基础是TCP/IP协议,而TCP/IP协议以IP为中心,面向端到端连接,难以满足日渐增长的以内容为中心的需求[1]。为此,人们提出了若干以内容为中心的未来网络架构,其中又以命名数据网(Named Data Networking,NDN)[2]及其前身内容中心网(Content Centric Networking,CCN)[1]和后继者信息中心网(Information Centric Networking,ICN)[3]为主要代表。最初,Jocobson 等[1]提出 CCN 架构,将网络架构由IP为中心转变为以内容为中心;后来,Zhang等[2]得到美国国家自然科学基金资助,以NDN为题开展相关研究工作并取得大量成果;目前,未来互联网领域研究的主要对象为ICN,NDN作为ICN的一个范例[3]。本文以NDN为例,介绍其基本概念和主要特点。
1.1 命名数据网的基本概念
NDN中有两类角色,分别为消费者 (Consumer)和生产者(Producer);有两类包,分别为 Interest包和 Data 包;内容(Content)均由名字(Name)作为标识。消费者若要请求某内容,则产生带有相应名字的Interest包,通过网络转发,到达存有此内容的结点,此结点收到Interest包后,沿着此Interest包的反向路径返回携带相应名字的Data包。因此,NDN采用的是接收者驱动即拉(Pull)机制。Interest包和Data包的结构如图1所示[2]。
图1 Interest包和Data包结构图
与传统IP网络不同的是,NDN中间结点即路由器支持缓存(Cache),每个结点都维护三个模块,分别是内容存储 (Content Store,CS)、待定Interest表 (Pending Interest Table,PIT)、转发信息库(Forwarding Information Base,FIB)。收到Interest包后,路由器首先检查CS中是否缓存了相应内容,如果有则直接回复Data包,如果没有则查找PIT,如果PIT已有相应条目,则只记录收到Interest包的接口而不转发,如果没有则依照FIB和转发策略转发,并增加相应的PIT条目,或是根据相关信息丢弃Interest包。收到Data包后,路由器根据PIT中相应条目的信息转发,由于此内容请求已经满足,转发后路由器将删除PIT相应条目,并依据缓存策略和相关替换机制决定CS中存储的内容。显然,名字在NDN转发过程中占据着核心地位,通常有层次化和扁平化两种命名方式,而转发则基于最长名字前缀匹配[2]。
1.2 命名数据网的主要特点
NDN主要有如下特点:
(1)以内容为中心的去中心化架构。Interest包和Data包的结构意味着网内的所有动作均以其名字为中心,因而不再需要建立类似于传统IP网络中端到端的连接,也无需采用集中式架构。
(2)以数据为中心的安全性。每个Data包都有签名,从而在包这一层次确保了数据的安全性[2],应用通过加密和分发密钥来控制其他结点对内容的访问权限。
(3)支持网内存储和Interest包聚合。NDN路由器的CS能够存储内容,一旦中间结点能满足Interest包的请求,则无需进一步转发即可直接返回相应的Data包;Interest包聚合机制使中间结点在相应情况下无需重复转发相同的内容,这降低了网内流量,减轻了内容生产者的负担,增强了网络性能。
(4)支持新的路由协议。NDN支持自适应转发面,支持多路径转发和快速故障恢复[4],路由协议的作用是传递初始拓扑、策略信息及其长期变化,计算路由表[5],因此可采用若干新的路由协议,如双曲路由,取得较好效果的同时减少其开销[6]。
2 命名数据网技术的应用
NDN相比基于IP的传统网络有很多优点,人们提出了基于NDN的诸多应用,可分为语音与视频、即时通讯与文件共享、物联网、大数据和其他等类别,以下分别进行介绍。
2.1 语音与视频
语音和视频应用都以内容为中心,但传统方案集中式的特点使得可扩展性、健壮性等成为此类应用所面临的较大挑战。NDN能较好地解决语音和视频应用的需求,同时具备较好的可扩展性和健壮性,而且还具备很强的安全性[7]。
在语音应用方面,Jacobson等[7]首先提出NDN前身CCN上的一种典型应用,在CCN上部署VoIP服务,以作为基于内容的网络提供互联网应用的范例;将现有的VoIP架构映射到CCN,同时维持安全性、互操作性和性能;映射技术并非VoIP所特有的,而是可应用于任何对话性互联网协议的一般性转换。将VoIP部署于CCN而非传统网络有显著的优点:天然支持多点路由;对内容的权限管理十分简便;若干高级服务易于部署等。通过这个例子,Jacobson等探索了CCN相比传统会话性协议而言更加关注内容这一重要特性。Zhu等[8]设计了音频会议工具(Audio Conference Tool,ACT),ACT与现有的音频会议服务最大的区别在于其并非集中式服务而是通过命名数据的方式,发现会议以及演讲者,并从演讲者直接获取语音数据。得益于NDN的去中心化特点,ACT相对于传统的集中式系统在可扩展性、健壮性和移动性等方面都有很大优势。他们还为ACT设计了安全机制,以抵御一般性威胁。ACT的安全性要求主要有三个方面:数据真实性、参与控制和匿名。因此,ACT需要一套信任管理机制,明确会议组织者和参与者的职责,才能确保满足上述要求[9]。
在视频应用方面,Kulinski等[10]提出基于NDN的视频和音频流解决方案NDNVideo,充分利用NDN的优势即网络本身能够缓存经常请求的数据,避免了多台主机请求相同的视频时,视频服务器需要发送重复的数据包,从而减少了服务器上的负载。NDNVideo采用层次化命名方式,支持多种视频编码格式,需满足如下需求:面向多个消费者分发音频/视频流;基于视频帧在时间轴上的位置,提供对视频流简单、低延迟的随机访问方法;同步多个消费者的播放;消费者无需建立会话和协商;即时归档直播流;在数据包中提供内容验证和来源信息。Gusev等[11]则开发了由接收者驱动的实时流数据(Real-time Streaming Data,RTSD)应用,用于视频会议系统和位置追踪系统,同样要求最小化数据检索的延迟,还要及时适应可用带宽。RTSD的设计方案包括了命名空间的定义、最小化延迟、缓冲区大小的管理、丢包的恢复、最大化带宽和控制拥塞情况下的自适应检索等部分,具有无需生产者和消费者协调配合而运行、通过前向纠错和重传以减轻丢包、基于端到端测量以控制拥塞和调整速率等特点。
2.2 即时通讯与文件共享
在即时通讯方面,传统应用都是基于C/S模式,Wang等[12]以一个即时通讯的应用库为案例,研究其在NDN中的部署,提出NDNPurple设计方案,特别强调其无需服务器这一特点,而这类无服务器的模板也可以方便移植到别的应用中去。此方案需要解决以下三方面的问题:命名约定,即如何为数据分配独一无二的名字;名字发现,这与命名约定机制也有关,在没有服务器的情况下如何实现;会员管理,在没有服务器的情况下,如何管理加入和离开聊天室的会员。在命名方面,NDNPurple也采用层次化命名的方式,按照以下格式为内容数据命名:协议:/聊天室ID/用户ID/序列号。而在名字发现方面,NDNPurple预设了用于用户查询的命名空间,当前用户可向其他广播含有自己ID的Interest包;会员管理也可与名字发现机制相结合,每个用户都维护一个可用用户表,辅以超时计时器,从而实现性能和开销的平衡。Zhu等[13]设计了一个基于NDN的多用户聊天应用Chronos,同样具备无服务器和分布式特点;聊天室的每个客户端都将数据的名字集合哈希到加密摘要中,并与其他客户端交换;在稳定状态下,每个客户端都有相同的摘要,而一旦产生新数据,摘要会发生变化,此时需要通知其他客户端;客户端在聊天室的状态则需要依赖心跳包维持。同时,应用还需考虑在大规模网络中及面向大量用户的情况,也需考虑数据加密和安全问题。基于Chronos的工作,为了更好地支持如即时通讯、文件共享等应用,Zhu等[14]还进一步提出了ChronoSync协议,用于同步数据集;ChronoSync使用合适的命名规则,以加密摘要的形式总结数据集的状态,并进行分布式数据交换和同步。基于ChronoSync的应用有两个核心模块:ChronoSync模块同步数据集的状态;应用逻辑模块响应数据集的状态变化。命名规则也分别针对应用数据名和同步数据名这两种类型,前者直接指向具体的内容生产者,而后者以广播的方式面向所有参与者。
文件共享也是目前互联网中的重要应用,但是此类应用需要大量的服务器和随时随地的网络连接。Jacboson等[15]设计了一个基于新的信息路由模型的文件共享系统,不需要服务器,能提供高效、可扩展、分布式、安全、健壮的服务。此系统需要前缀-保管者映射表和保管者-端点映射表,前缀到保管者的绑定是相互独立的,每个保管者都会为它负责的每条前缀发布一个条目;每个保管者也会发布端点列表,列出当前可用的所有通信端点,显然保管者是前缀和通信端点的媒介。系统的路由数据收集基于Sync协议,Sync也基于Interest包通告,只传递状态不同的数据,能尽量快且节省流量地在全网同步路由信息。Fu等[16]提出了高性能可扩展的数据同步协议iSync,使用两级可逆布隆过滤器,第一级标识过时的集合,第二级发现远程集合中存在而本地没有的标识。基于ChronoSync,Afanasyev等[17]提出了完全分布式的文件共享应用ChronoShare,无论网络情况如何,用户都可以在设备间无缝共享文件。ChronoShare将用户对文件的操作视为动作流,每个动作指定被修改的文件以及如何修改;ChronoShare有文件、动作和动作相关信息等三类数据,对应不同的命名方案。多数协议或应用只支持完全数据同步,为有效地处理不同类型的数据同步,Zhang等[18]提出PSync,使用名字来携带生产者最新的命名空间信息和每个消费者的订阅信息,允许生产者为所有消费者保持单一状态,使消费者能与任何有同样数据的生产者同步。PSync使用Sync Interest包和Sync Reply包,消费者发送Sync Interest包给生产者以获取最新的数据,Sync Interest包中包含消费者的订阅列表,生产者收到后回复Sync Reply包,包含订阅数据流中最新数据名字的列表,然后消费者根据相关信息发送Interest包以获取相应数据。Mastorakis等[19]则提出了基于NDN的点到点文件共享应用nTorrent,将BitTorrent服务从IP网络中移植到NDN中,充分利用NDN的优点,获取最近的可用数据,支持多路径和快速故障响应,也能实现数据包级别的真实性检查。当然,为了解决前缀引起的路由可扩展性问题,nTorrent引入SNAMP[20]和NDNS[21]机制,SNAMP维护数据前缀和全局可路由名字前缀的映射,每个生产者的映射发布在NDNS,消费者检索即可。
2.3 物联网
物联网及其代表性技术车联网的应用已逐渐成为现实,然而基于传统网络的物联网同样是集中式工作方式,实现安全、实时的信息共享难度很大。Wang等[22]探索了NDN应用于车联网的场景,最大的挑战之一在于命名方案的设计,他们提出将名字分为交通、地理位置、时间戳、数据类型、随机数等五部分,交通作为应用标识,地理位置包括道路标识、方向、段编号等,时间戳表示时间范围,数据类型表示数据的意义,随机数则由生产者生成以区分不同的生产者产生的数据[23]。Wang等还开发了简单的交通信息传播应用,基于数据名字中携带的地理位置信息进行智能随机调度以最大限度地减少冲突;为加速数据传播,通过数据骡主动推送数据,当然这与原始NDN中基于拉的数据检索方式有所不同。Grassi等[24]考虑车联网中连接的临时性、间歇性和物理传输数据的能力,提出V-NDN框架,汽车可以作为数据消费者、生产者、转发者以及无连接时搬运数据的数据骡;结合汽车的特点,与其他的物联网设备不同,此时无需考虑计算或存储的容量以及设备供电问题。通过V-NDN,本地产生的只在本地有意义的数据,例如交通信息不需要在被相邻结点使用前发送到远程服务器,这些数据也可以保留在本地,沿最短路径传递给消费者。
在物联网的应用方面,Burke等[25]先将NDN应用于楼宇灯光控制系统,满足控制器和照明装置间的低延时要求,设计命名方案,部署内容签名,通过授权策略控制对设备的访问,开发低功耗的安全机制。随后Shang等[26]提出了基于NDN的楼宇管理系统,传感器数据采集系统使用层次化的数据命名空间、密钥和访问控制列表,提供基于浏览器的数据可视化接口;系统包括三个实体,分别是端用户、传感器网关和管理应用,网关将存储器数据插入NDN仓库[27]。Shang等还在跨平台物联网操作系统RIOTOS上设计和部署了NDN协议栈,由于设备性能通常极为有限,他们针对性设计了包的编码和解码,简化了PIT、FIB和CS,还设计了轻量级逐跳2层碎片和重组机制,部署了一组应用接口。Shang等[28]设计了不依赖于云服务的物联网,使用模式化信任机制进行本地信任管理,将分布式同步机制用于本地会合点;应用仍然可以访问云服务,进行数据存档、复杂的数据分析等工作。最后,Shang等探讨了NDN应用于物联网的案例和前景,当前物联网应用的操作以数据获取和控制为中心,但通信技术的多样以及设备资源的限制使解决方案变得异常复杂,互联网应用中的安全技术也不太适合物联网,对本地通信的支持也有限;NDN的数据检索方式、以数据为中心的安全机制、基于名字的转发和网内存储等特点则十分切合物联网的需求;NDN应用于物联网需要考虑命名、引导和发现、信任机制、基于名字的访问控制、数据聚合、应用层发布和订阅、多方同步、与互联网的整合等方面[29]。
2.4 大数据
大数据技术在科研、应用等领域起着极为重要的作用,数据则占据着核心地位,对数据的存储、检索、共享和管理是需要解决的主要问题。Olschanowsky等[30]首先将NDN应用于气候建模,调查了一大类气候数据的命名方案,搭建了一个按名称发布,检索和发现气候数据的接口,编写翻译器将现有的数据集名字转换为与NDN兼容的名字,尽量不改变已有的工作流程[31]。Fan等提出了首个部署于NDN上的科学数据管理应用,包括用于查询和发现数据集的用户接口和已同步的名字目录联盟等两个组件,管理气候和高能物理数据,能进行一般性的管理操作,例如发布、搜索、检索和访问控制等;目录联盟主要是为了解决集中式目录面临大量查询和发布请求时可能出现瓶颈,它采用ChronoSync作为同步协议[31]。Zhang等[32]提出移动分布式健康应用NDNFit,为端用户提供跟踪应用,使用NDN通信,特别关注身体活动数据,用户锻炼时报告时间位置,识别并分类诸如步行、慢跑、跑步等活动的数据,在移动站点上向用户报告活动统计,提供身份管理、数据验证和访问控制功能。NDNFit使用一致的数据命名方案,直接在数据包级别实现对数据的认证和访问控制;定义了四个主要组件,分别是抓取应用、数据存储单元、数据处理单元和数据可视化单元,用于数据收集和发布、数据的长期存储、数据处理以及让用户能看到并与他们的个人健康数据进行交互。Gibbens等[33]在数据中心中首次应用了NDN技术,简化了Hadoop的部分代码,减少了Hadoop结点间的网络流量;开发了替代TCP/IP套接字的NDNSocket和NDNServerSocket,将远程过程调用映射到Interest和Data包,改变了Hadoop中基于推的网络模型而变为NDN中基于拉的网络模型,用NDN传输数据块,并增加了一个简单的传输层。
2.5 其他
NDN支持数据包级别的安全验证机制,人们也利用这一特点设计了相关应用。Dibenedetto等[34]提出了匿名插件工具ANDaNA,借用Tor的若干特性解决NDN面临的名字、内容、缓存和签名隐私等挑战,通过至少两个洋葱路由器的链路来传递消息,其中每个路由器删除一层加密并转发到下一跳,匿名路由器加入时公布其公钥和其他辅助信息,消费者检索匿名路由器列表和相应的公钥。Chowdhury等[35]提出了自动驾驶汽车间的安全信息共享方案,为检测虚假数据,提出了一种四级层次化信任模型和相关的车辆数据认证命名方案,四级分别为相关组织、制造商、汽车和数据;为解决车辆跟踪问题,使用化名方案并引入证书颁发代理以保护车辆身份。
在其他方面,Burke[36]讨论了NDN用于增强现实领域的可能性,浏览器须高效地根据观众情境和选择检索内容;提供透明的多接口接入和本地及全球网络接入,容忍网络服务中断;提供多层次内容和处理源;保证内容发布者和信任模型的多样性;与物联网环境整合。概念性系统包括以下组件:可导航的内容发布者、外部内容会合点和增强现实浏览器;浏览器要能够预读取内容,服务上下文发布者和消费者,并进行路径学习;还可使用移动边缘计算加速处理。Afanasyev等[20]先后提出了SNAMP和NDNS,使用映射和封装技术解决命名空间映射的可扩展性问题,在NDN中开发了类似域名系统的服务,以实现路由可扩展性、移动发布和证书提供。NDNS继承了DNS的一些基本概念和机制,是DNS从IP网络到NDN的移植,但也设计了专门的命名空间,提供了网络层上以数据为中心的安全性[21]。
3 总结与展望
本文介绍了NDN的基本概况和主要特点,并介绍了基于NDN的诸多应用,主要有语音与视频、即时通讯与文件共享、物联网、大数据和其他等类型。上述应用充分利用了NDN去中心化、安全性、网内存储、转发机制等特点,取得了较好效果。
未来,我们还需进一步考虑NDN应用所涉及的命名空间、信任模型、网内存储、数据同步等机制,取得性能和开销的平衡,尽量减少其复杂程度。另外,NDN的特点非常适合内容分发场景,相关应用应当成为探索的主要方向。