命名数据网络研究综述

2022-11-08 12:42马红桥杨文忠康鹏阳健康刘元山周越
计算机应用 2022年10期
关键词:数据包路由名称

马红桥,杨文忠*,康鹏,阳健康,刘元山,周越

(1.新疆大学 信息科学与工程学院,乌鲁木齐 830046;2.新疆多语种信息技术重点实验室(新疆大学),乌鲁木齐 830046;3.新疆多语种信息技术研究中心(新疆大学),乌鲁木齐 830046;4.32161部队,库尔勒 新疆 841000)

0 引言

20 世纪60 年代至70 年代,电话是唯一成功有效且实现全球规模通信的实例[1],在这一时段互联网的核心思想也开始逐步发展。首先是使用分组数据包而不是电路进行通信的理论可行性分析,该分析奠定了分组交换的基础,并成为研究人员迈向计算机网络的重要一步,之后“阿帕网/美国高等研究计划署网络”(Advanced Research Projects Agency Network,ARPANET)[2]计划的制定与发布,迈出了计算机互通关键的一步。阿帕网于1967 年被首次提出,是互联网最早的前身,由美国国防高等计划署开发,于1972 年在国际计算机通信会议(International Computer Communication Conference,ICCC)上被成功演示,由此成为第一个可以实际运行数据包的交换网络。同年,基于ARPANET 的热门应用程序电子邮件问世,从此最初的简单通信发展为大规模应用的互联网(internet),ARPANET 经历了关键性思想技术的突破,即开放式网络体系思想。基于此思想研究人员开发出了具有划时代意义的传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP),并最终由国际标准化组织(International Organization for Standardization,ISO)确立了国际标准化体系架构,即开放式系统互连(Open System Interconnection,OSI)基本参考模型[3],自此internet 的发展开始进入快车道。

然而无论是ARPANET 还是最初的internet,限于时代社会需求的原因,其解决的问题是两个实体间点对点对话的电话问题[1]。即在internet 发展初期,其只需满足通信连接的需求,即其主要的目的是实现资源共享。因为当时需要网络连接来共享稀有且昂贵的资源,如外围设备、大型计算机等,所以internet 在后续发展中成为一种以主机为中心的分组数据包网络,在通信过程中内容消费者(网络用户)和内容数据源(服务器)具有各自对应的IP 地址,通过IP 预先建立的通信信道进行数据交互(和电话交换网络使用相同的通信模型)。因此当前的internet 通信强烈依赖于IP 地址即主机,然而经过多年的演化发展,互联网用户对internet 的需求已经发生了巨大的变化并面临了诸多新挑战。

首先是随着以内容为中心(如视频播放平台、资源下载平台及社交网络等)应用程序的不断发展,彻底改变了internet 的使用模式。大量的互联网用户都只关心其访问的特定内容数据而忽略其来源地址;因此,依赖IP 地址的数据检索模式正在失去其重要性[4],转而形成以内容为中心的新型数据检索模式。

其次互联网用户量的极速攀升(截至2021 年1月,据统计约有46.48 亿人使用互联网,占世界人口的一半以上(59.5%)[5])以及数字编码技术的发展,使得越来越多的内容可以以数字方式分发,造成了海量的数据分发和大量数据资源的复制需求,而传统internet 不支持本机多播的转发模式无疑给网络带宽提出很高的要求。

此外互联网的普及同样也使得基于PC 的计算方式正在向基于移动的计算方向倾斜(据统计占世界人口一半以上的互联网用户中,有92.6%约43.2 亿人通过移动设备访问互联网[6])。由于移动设备可以轻松切换网络,更改其IP 地址,从而引入了基于间歇性、概率机会性连接的新通信需求,然而当前internet 在高速移动的实际应用环境下中并不能很好地实现无间断无缝连接及无感通信的高要求[7],使得移动环境下的互联网体验感下降。

以上需求及挑战促使研究人员不得不对当前互联网体系结构进行被动的根本性改变,进而构建发展出新型简洁的未来互联网体系架构。由此提出了信息中心网络(Information Centric Networking,ICN)[7-8],并吸引了众多的研究学者对其进行研究。ICN 是将网络中的一切看作是信息,将信息作为核心而非主机,由此可以将其看作是一个数据内容互联的网络,其中信息是由唯一的数据名称进行标识。所以在ICN中,通信端点只能通过发送指定内容名称的请求获取对应的内容数据,而不是发送指定内容的位置进行数据请求,此外ICN 可以利用网内存储和本机多播及移动通信的特性来提供更高效、更健壮的网络。

网络的架构设计决定了其转发机制,因而面对上述互联网挑战中新数据检索模式的转变,即打破原有的以主机为中心的通信模式,实现从以主机为中心到以内容为中心的模式转变是ICN 构建的首要原则,开创性的研究包括文献[9-12]。这种通信模式的转变基于一个基本的假设,即内容数据泛在于整个网络,而并非只存在于某几个内容托管服务器中。因而在整个数据通信过程中,内容数据的处理需相对独立于其在网络中所处的位置[13]。由此提出ICN 的关键组件命名数据对象(Named Data Object,NDO)[14-15],定义所有以名称进行标识的数据对象(如文档、媒体文件等),将内容数据与其网络位置隔离。

需要明确的是ICN 指的是网络范式而不是特定技术,即可以有多种技术来实现[16]。自ICN 思想提出以来,已发展出面向数据的网络体系架构(Data-Oriented Network Architecture,DONA)[17]、内容中心网络(Content-Centric Networking,CCN)[18]、发布/订阅式互联网路由范例(Publish-Subscribe Internet Routing Paradigm/Publish Subscribe Internet Technology,PSIRP/PURSUIT)[19-21]、信息网络(Network of Information,NetInf)[22-23]等四个代表性项目,这些项目也代表了正在积极发展的四种方法。其中借鉴CCN 思想的命名数据网络(Named Data Networking,NDN)[1,24]已逐渐成为ICN的主流,并已成为构建未来新型互联网体系结构最具希望的候选者[7],且已被引入为互联网新型的网络通信范式[25]。本文将首先概述NDN 的工作原理,并通过介绍NDN 在近年发展中的众多应用让研究人员能更清晰地认识NDN 的原理及概念属性;此外本文首次总结分析了NDN 对前沿区块链技术的支持与影响。

1 NDN概要

作为未来互联网提议中的新型体系架构,NDN 通过内容数据名称而非IP 地址实现全球信息通信,信息包括各类文件、物理对象控制指令等,从而弥补或消除当前internet 架构所面临的问题及其自身的缺点。需要明确的是,弥补并不是从原有的基础架构上进行添加覆盖,而是以当前internet 的设计为基础,设计出包含缺失功能的新型体系架构。所以从技术角度考虑,NDN 和当前internet 有着相似性,但同时又有各自不同的特征点,因此本章将NDN 和当前internet 进行对比,对NDN 的原理进行阐述。

1.1 NDN架构设计

当前internet 设计成功的关键在于其沙漏型体系架构,设计思想集中在一个通用的网络层,为通信系统的端点实施最小而必要的连接功能。此外瘦腰特性使原有互联网设计更加强大,允许下层和上层不断革新变化去掉不必要的限制[26-27],所以这种瘦腰型网络体系架构推动了互联网的稳步发展。如图1 所示,NDN 沿用传统TCP/IP 网络架构的沙漏形状,将瘦腰作为其核心架构[28],这也是二者最相似的地方;此外NDN 同样执行数据报交换方式,并运行在可承载数据报的任何传输媒介上。

二者的区别在于NDN 架构内部新增加了安全层和策略层,并在瘦腰处利用内容数据检索模型代替了原有主机到主机的数据交付模型[29],这种新型通信方式将携带目的地址和源地址的IP 数据包改变为由名称标识的内容数据块。安全层实现面向中间节点的数字签名,可以为每一个内容数据包(Content packet)直接在网络层提供安全,这有别于当前TCP/IP 网络只是保证通信信道的安全。在安全层之上是支持基于命名数据的应用层,应用层可完成可靠性验证、面向用户的数字签名等功能,从而保证了网络中内容的安全性及完整性。策略层用于对每个传入的内容请求做出不同的转发决策,决定是否及何处转发每一个兴趣请求包(Interest Packet),如上游链路阻塞或是兴趣请求包被认为是拒绝服务(Denial of Service,DoS)攻击时将不被转发。此外NDN 并不建立维护单独的传输层,所有当前TCP/IP 网络传输层的功能都内置于NDN 的转发平面中[4],如网络流量的自我调节功能。策略层以下是支持传输的协议和底层的物理链路,最下层可以兼容TCP、用户数据报协议(User Datagram Protocol,UDP)、IP 及广播等机制,保证了对IP 网络的兼容性。

1.2 NDN与TCP/IP网络

NDN 的提出诞生了一些新名词,为更好地理解,表1 是在文献[30]的基础上将NDN 体系架构与大众熟知的TCP/IP体系架构的理论概念进行对比总结,并包含了二者间的名词变化。

表1 传统TCP/IP网络与NDN架构的对比Tab.1 Architecture comparison between traditional TCP/IP network and NDN

如表1 所示,NDN 的一大革新在于将传统TCP/IP 网络中由内容生产者驱动数据消费的服务模式,转变为基于发布(生产者)/订阅(消费者)的接收端驱动模式(本质上为支持内容名称检索的请求/响应模型),使得NDN 成为类似“推/拉”形式的通信模型,即在此模型中,任何对某一特定内容感兴趣的消费者节点都可以通过发送包含该内容数据名称(Content Name)的兴趣请求包拉取网络中对应内容名称的内容数据(Content Data)。因为数据泛在于整个网络,所以NDN 基于“拉”的服务模式使得数据访问范围不再仅仅局限于服务器所存储的内容数据,提高了数据的共享率;此外在数据通信过程中将不再包含目的地址和源地址,所以拉取过程中消费者节点无需知道数据源在何处,这一变化相较于IP数据包中明确包含收发双方地址的形式,NDN 通信模式将更安全,即使网络攻击者通过扫描工具获取到通信数据包也没有意义,因为在通信过程中,知道通信者是谁更有价值。同时通信系统中将不再需要域名系统(Domain Name System,DNS)的域名解析服务,简化了整个通信系统。另一变化在与NDN 内在支持本机多播,提升了内容分发的效率,非常应和未来互联网发展的需求。内在固有的安全性,同样是NDN 成为未来新型互联网体系架构候选者的关键因素,通过对内容数据包签名的方式,保证了每一个数据包的安全性,无需顾及主机的身份(受信或不受信),只需对数据包进行安全和完整性认证。

在名词概念方面,NDN 新提出Face 概念。Face 是对传输接口的一种抽象,可以是与其他网络节点的一条连接,也可以是通过进程间通信方式与本地应用程序建立好的连接。对Face 进行配置,可以实现多种传输模式,如可以通过一个网卡在本机广播数据包,也可以利用底层传输层中点对点地址或构建好的隧道(如TCP 隧道)接收或发送数据包。由于NDN 所有的数据包都必须通过Face 发送或接收,所以可以将Face 简单理解为传统IP 网络的通信端口[27]。

1.3 NDN通信原理

如图2 所示,NDN 的通信可以分为兴趣请求包发出和内容数据包传回两个过程,并且整个NDN 通信过程中都是基于这2 种网络数据包粒度运行。此外每个NDN 节点在本地维护更新以下3 个信息表:

1)内容缓存库(Content Store,CS)。对接收到的内容数据短时间缓存,以响应(也称作被满足)后续到达的相同内容数据的兴趣请求包,因此兴趣请求包可以被内容生产者和NDN 中间节点的内容缓存满足,即在NDN 中数据宿主可以为内容生产者或是多个NDN 中间节点,相较于传统的TCP/IP 网络单一的服务器数据宿主,NDN 的数据共享更加高效,并且中间节点的内容缓存使得兴趣请求包可以快速地被响应,一定程度上对网络带宽进行了优化,同时缩短了通信时延,进而支持用户的高速移动性[31],有效提升了内容分发的效率。

2)待转发兴趣请求表(Pending Interest Table,PIT)。存储所有未被满足的兴趣请求包,也即等待被响应后传回对应内容数据包的兴趣请求包,是NDN 独有的。PIT 记录条目中包含前缀,Face列表两个表项,前缀即兴趣请求包中的内容名称前缀,Face 列表为当前兴趣请求包传入的Face 标识号。若多个消费者同时请求同一内容数据时,名称前缀对应的Face 列表中会有多个不同的标识号值,这是对兴趣请求包按名称前缀对其汇聚的结果。当兴趣请求包被满足传回内容数据包后,Face 标识号会成为内容数据包传出的Face标识号,之后内容数据包将会根据Face 列表项的Face 标识号同时多路径的转发,不论Face 列表中存有多少个Face,这一转发机制使得NDN 天然支持多播。

3)转发信息表(Forwarding Information Base,FIB)。类似于TCP/IP 网络中的路由信息表,不同的是FIB 中是对内容名称的路由转发信息,而非数值型的IP 地址,即FIB 存储每个可达节点名称前缀的下一跳和其他相关信息。其通过NDN路由节点间交换路由更新信息,并选择最佳路由构成。

如图2 所示,兴趣请求包和内容数据包都包含由应用程序定义的用于标识内容数据的名称,而并不包含收发节点的任何位置信息,因而可以使用独立于网络位置的名称来检索内容数据[32]。其中兴趣请求包中包含一个Nonce 字段,该字段是一个随机数,可以使PIT 检测到任何循环即重复的兴趣请求包并将其丢弃;此外还拥有Selector 字段,用作内容匹配(2.1 节介绍)。而内容数据包中拥有一个与内容数据名称绑定的签名字段(Signature),签名是在内容数据包生成之时就由生产者完成,用于无论以何种方式或是在何地请求内容数据时,保证内容数据的完整性、原始身份验证等数据安全,签名信息字段(Signed Info)用作与内容相关的附加信息的可选部分[29]。图2 中内容仓库类似于CS 也是网内存储结构,但内容仓库是一种支持更持久、更大容量的网内存储结构。

1.4 NDN路由转发

NDN 数据包的路由和转发都是根据名称进行的,同时NDN 运行路由协议来宣告数据名称的可达性,这和IP 网络使用路由协议宣告IP 地址的可达性是一样的,具体的路由协议在2.2 节介绍。图3 为NDN 中2 种数据包的路由转发流程。当NDN 中间节点收到兴趣请求包后,将根据兴趣请求包中的内容名称依次查询CS、PIT、FIB。

兴趣请求包到达后,首先以精准匹配方式查询CS,如果CS 中包含所请求的内容数据包,则直接向兴趣请求包的来源接口传回CS 中对应的缓存内容,并丢弃这个已被满足的兴趣请求包;否则在PIT 中继续查询。如果PIT 中存在匹配的内容条目,说明之前已经收到过同样的兴趣请求包,正在等待被满足,则需要把该兴趣请求包的传入接口添加到PIT对应的Face 请求列表中,等待被满足响应,同时丢弃该兴趣请求包;否则在FIB 中继续查询。在查询FIB 前需在PIT 中新增一条记录,记录兴趣请求包中的内容名称和该兴趣请求包传入的Face 标识号。如果在FIB 中查询到对应的内容名称条目,则表明该兴趣请求包是第一次被接收到,这时将根据FIB 对应表目的Face 列表转发该兴趣请求包。若上述3个信息表中都没有对应命中项,则说明该节点无法处理该兴趣请求包,于是将其丢弃。

相比之下内容数据包的路由处理则相对简单地多,其传输路径即为兴趣请求包的传输路径,只是二者的方向相反。由于兴趣请求包中Nonce 字段的设计,加之兴趣请求包唯一对应于内容数据包,这种反向通信的方式使得NDN 通信传输中永远不会出现环路。此外内容数据包返回时携带由生产者的签名信息,保证了数据的完整性,相较于IP 网络保护通信信道的方式,NDN 保护通信数据包的方式直接从根本上解决数据通信的安全问题。

2 NDN要素

NDN 通过基于名称的数据检索通信模式改变了传统的IP 通信网络,以高效的数据分发效率及其他优势来应对互联网发展过程中出现的诸多挑战和需求。本章将对NDN 架构的关键要素进行详细阐述。

2.1 命名

NDN 以不同的通信范式使得网络只关注“是什么”(数据)而非“在哪里”(地址),因此在NDN 中数据是第一位的,即以名称标识的内容为中心;所以在NDN 体系结构的所有层级中都是基于命名机制后得到的名称进行处理(如路由、数据检索、安全保证等),并为网络用户提供服务,自然数据如何命名是NDN 发展中研究的重点。

然而NDN 的数据命名并不是普通意义的在众多数据中标明出确定唯一的数据,而是具有如下特性:1)通过名称,通信系统可扩展且自适应性地检索内容数据,提高数据分发效率,以应对未来互连网海量数据分发;2)内容名称可以持久地标识一个内容数据,不会出现名称碰撞;3)在应用层用户可直接接触名称,以方便数据的检索,因此命名后的名称应具备人类可读性。

基于上述特性,NDN 采用了类似于统一资源定位器(Uniform Resource Locator,URL)的具有人类可读、可聚合及层次化性质的命名机制,聚合使得路由器的工作负担减轻。图4 为新疆大学招生宣传片的层级名称表示。其中“/”表示名称组成部分的分隔边界,仅仅用于分隔名称不同的作用域,以此达到人类可读性的目的,并不是名称的组成部分。

如图4 的整个内容名称可以分为两大类,由三部分组成:第一部分“/xju.edu.cn”为发布内容数据的自治域系统,是全球可路由的名称前缀,因此可以作为路由聚合的根;第二部分“/videos/recruit.mpg”为其来源组织结构中的名称;第三部分为标准的命名规范,标明内容的版本信息和分段信息。其中:“_v<timestamp>”为文件的版本时间信息,因为数据包一经发布将不被修改,只能新发布一个数据包,自然需要一个新的名称标识,避免名称碰撞进而区分不同的内容;“_s3”为分段信息,类似IP 数据包的分段,以适应硬件处理能力,同时也可提高数据分发效率,如2021 年新疆大学招生宣传片的第二部分名称可以表示为“/xju.edu.cn/videos/recruit.mpg/2021/2”,最终接收端将根据分段序号对文件进行合并。需要明确的是名称规范是面向应用程序的,所以每个应用程序可以选择满足自身需求的命名规范,因而会导致不同的应用程序有不同的命名规范,由此对数据检索带来新的挑战。

数据的检索可以通过确定的名称进行检索,即事先知道所需数据的准确名称标识,这使得内容消费者与内容生产者需在数据的命名规范上保持一致。另一种是动态检索,无需事先知道所需数据的名称,所以内容消费者不得不为所需数据构造名称。

名称构造方法有两种:一种方式是通过确定性算法,让内容消费者和内容生产者基于可用于双方的数据得出相同的名称;另外一种是使用部分名称来检索数据,即可以认为NDN 的兴趣请求中包含的内容名称可以匹配以该名称为前缀的任何内容。在实际应用中可以利用兴趣选择器(图2 兴趣请求包中的Selector)经过一次或多次迭代,用最长前缀匹配部分已知的名称来完成数据检索。

如图5 所示,层次化命名使得内容表现出完整的顺序。该顺序可以反映在内容树中,因此检索内容数据等同于遍历内容树;而顺序及树的特性,使得可以通过已知的信息处理后续问题,由此根据兴趣选择器标签,就可以以已知的相对内容名称检索到期望的内容数据。如想要检索新疆大学最新的宣传视频,内容消费者可以发送名为“/xju.edu.cn/videos/recruit.mpg”和“RightmostChild”选择器标签的兴趣请求。根据图5,内容消费者将接收到名为“/xju.edu.cn/videos/recruit.mpg/_v2021/_s1”的数据包,然后可以根据接收到的第一个数据包揭露的信息,以及用户与内容生产者之间达成的命名规范指定分段信息,进而请求后续的内容数据[1,7]。

2.2 路由转发机制

NDN 的路由层和转发层是相互隔离的,路由层决定了路由的可达性,转发层则根据其数据包传输状态来决定路由的优先级和使用情况。如1.3 节对NDN 通信原理的阐述,图2中FIB 为NDN 的路由信息表。FIB 和IP 网络中的路由表类似,用于保存全网的路由信息,因此TCP/IP 中传统的路由协议(开放式最短路径优先(Open Shortest Path First,OSPF)和边界网关协议(Border Gateway Protocol,BGP)等)经轻微调整(将IP 转换为内容名称)后同样适用于NDN[1],并且都是以最长前缀的匹配方式进行名称匹配。

FIB 与IP 网络路由表相比,除1.3 节所述各自面向的对象不同外,IP 网络的路由表通常包含单个最优的下一跳地址且只有下一跳的信息;因此数据包到每一个目的地址的路径只有一条,当遇到网络拥塞或阻断的时候,数据包的传输只能被阻塞或中断。但FIB 包含的是一张多接口即多路径的优先级排序表,因为内容数据是泛在的,所以内容源地址不是唯一的。排序表是从路由和数据转发平面获得的综合消息,用于支持自适应的转发决定。因此通过有效利用NDN的多路径功能,并由自适应转发策略,兴趣请求包可以沿着性能最佳的路径转发,从而避免拥塞和丢包,平衡路径上的流量负载[33-34]。

第一个NDN 路由协议是命名数据OSPF(OSPF for Named-data,OSPFN)[35],使用不透明的 链路状态信息(Opaque Link State Advertisement,OLSA),以承载命名前缀并计算基于内容名称的FIB。OSPFN 由于不能支持动态多路径转发,并且没有建立认证路由数据的机制,现在已被命名数据链路状态路由协议(Named-Data Link State Routing protocol,NLSR)[36]所取代,其使用名称来鉴别路由器和链路。具体来说,路由器使用兴趣请求包获取携带路由更新信息的数据包,这些更新信息由源路由器签名,保证路由信息的真实性[37];此外NLSR 可以使用任何基础通信通道(例如以太网、IP 隧道)来交换路由消息。相较于OSPFN,NLSR 除了通过签名建立数据的认证机制外,还在每个路由器中创建基于名称的多路径FIB,以支持NDN 的转发平面。

而NDN 的自适应转发策略是在兴趣请求包到达后为以下问题做出明智的决策:哪一个兴趣请求包应该转发到哪一个接口;允许有多少未得到回应的请求包记录停留在表项中;怎样在多个接口转发请求包的情况下实现负载均衡;以及如何在多个可选路径中选择路径以避免请求失败等[26]。即根据转发策略,兴趣请求包可能会转发给排序表中性能最好的一个接口,也可能转发给排序表中的所有接口,请求访问多个内容源,如果多个内容数据返回,除了第一个到达的数据包外其他数据包将被丢弃。

2.3 缓存机制

由于NDN 数据包独立于数据来源及去向位置信息,因此NDN 路由器可以对内容数据缓存。NDN 路由器缓存也被称作网内存储,内容缓存机制在一定程度上提升了NDN 的内容分发效率。对网络而言,内容缓存减少了对网络带宽的占用,面对当下大数据环境中海量数据分发的增长趋势无疑是一个很好的解决方案;对于用户而言,网内存储降低了用户获取资源所需的时间,极大提升了用户的互联网体验感;对于网络服务提供商而言,内容缓存减轻了资源发布服务器的负载,可将精力集中在其他网络服务方面。

传统IP 网络的缓存主要包括Web 缓存[38]、内容分发网络(Content Delivery Network,CDN)[39]、对等网络(Peer-to-Peer,P2P)[40]等,在一定程度上节约了带宽资源,提升了网络的整体性能;但是IP 网络缓存可扩展性差,且不能保证安全性。如在P2P 网络中,内容请求被解析出大量的潜在内容源,即对等点[26]。

NDN 的内容缓存主要通过CS 来实现,相当于IP 路由器的缓存存储器,但是IP 路由器缓存不能重用,只用于数据的可靠交付,在通信完成后缓存将被删除。相比之下,CS 中的缓存数据是长时间可重用的,这使得后续同一内容数据的请求能快速地被满足,将大幅度缩减用户的资源检索时延,从而支持用户的移动通信,即用户发生位移后可以迅速地被最近的CS 满足。在数据包丢失重传情形下同样缩短了数据包重传的时延,同时缓存重用通过相同内容的多个副本避免了单点故障。此外,无论是请求包亦或是内容数据包,都不包含节点的任何信息,因此数据包窃听者只知道有些人请求某些数据,但不会知道是谁发起的,可以消除用户对于内容缓存形成的安全顾虑。

鉴于通信设施缓存不能无限大,因此缓存的数据量有一定的上限限制,所以如何对缓存的内容合理地取舍,即缓存替换策略,一直是学术界研究的焦点。缓存替换策略主要是通过时间和访问频次两个方面对当前收到的内容是否缓存进行考量。

最近最少使用(Least Recently Used,LRU)算法和最不经常使用(Least Frequently Used,LFU)算法是被广泛使用的两种缓存替换策略。在NDN 中经典的替换算法LRU、LFU同样可以作为CS 缓存替换策略,但其不能随着互联网用户需求动态变化而改变,从而造成缓存能力的浪费。

2019 年文献[41]中提出了一种新的缓存替换策略——最不新鲜优先(Least Fresh First,LFF),该策略集成了缓存新鲜度要求,将最不新鲜的内容从内存中驱逐出去。经过实验对比,其显著提高了数据新鲜度,同时提高了服务器命中减少率、跳数减少率并降低了响应延迟。

通过以上分析,突出了NDN 与IP 网络的一个重要区别,即NDN 的缓存重用,这种重用机制的设计使得NDN 的数据分发效率比IP 网络更加优异,大量文献也将网内存储作为ICN 架构的基本优势[42]。

2.4 移动性

随着移动设备的急剧增加,使得IP 网络不得不面对在移动设备网络环境下形成的新挑战,即如何保证高速移动情形下的无缝连接,也即如何在通信节点位置发生变化的情况下将数据包无感地传送到移动用户节点[43]。

针对此问题,传统IP 网络采用补丁式的修补方法,即通过增加附加协议来完成,如移动IP(Mobile IP,MIP)[44]和主机身份协议(Host Identification Protocol,HIP)[45]。然而这些解决方案都规避了设计上的根本问题,只是依赖于拓扑信息和用于流量重定向的间接点[46],而且在高度动态的网络中,拓扑获取过程既昂贵又低效[47]。因而作为被提出的未来互联网新型体系架构,NDN 的设计从一开始就试图解决这种以位置为导向的依赖性,即通过NDO 消除位置依赖,此外如上述的网内存储、自适应路由和多路径转发特性,降低了请求包被满足及通信的时延。因此NDN 具备内在固有的移动性支持,更加符合未来互联网的发展。

由于数据包的转发激活方式差异,使得内容消费者和内容生产者有不同的移动性管理,分别为内容消费者的移动性和内容生产者的移动性。内容消费者的移动性是内容消费者在接收到内容数据之前就离开了原来的网络连接点,到达新的连接点后发起新的兴趣请求。由于在原连接点发送兴趣请求后返回的内容数据会被缓存在路由器之间,因此在到达新连接点后,新发起的兴趣请求会被路由器CS 快速满足。因此NDN 支持内容消费者的平滑切换,然而NDN 缺少对内容生产者移动性的支持。

内容生产者的移动性是指内容源移动切换后内容消费者当前的网络服务中断,因为移动切换导致NDN 路由节点路由表失效,内容源将不可被路由,自然兴趣请求包得不到满足。需要明确的是只有内容数据是第一次被内容消费者请求,在发生位移后其兴趣请求才不会被满足;否则兴趣请求包会被路由器CS 满足,再次从侧面说明了网内存储的益处。

借鉴IP 移动性支持的定位器/标识符拆分经验,NDN 可以通过映射技术解决内容源移动问题(如移动IP 通过家乡代理作为稳定标识符,而外地代理作为移动后接入网络的定位器),其思想是为移动的内容生产者提供用户通信访问的当前位置。因为命名空间和内容生产者有关联,因此可以为每一个移动的内容生产者分配一个命名空间,该命名空间可以被认作是移动生产者的稳定标识符,即使内容生产者移动到新的网络也可以在此命名空间下发布新数据,忽略其位置信息;类似地,可以使用移动后接入的路由器名称前缀作为定位器。标识符和定位器之间的映射关系可以通过广播或中间节点提供。而NDN 天然支持广播且兴趣请求包相对较小,使得映射关系在NDN 中广播简单易实现。

2.5 安全性

安全问题一直是网络研究人员的热点问题,一定程度上影响着公共环境建设及经济的发展。传统的IP 网络是验证通信双方主机并保护通信信道以禁止中间人攻击的方式来提供安全性,如传输层安全(Transport Layer Security,TLS)协议,然而这种安全保证是后续以修补式的方式加入的,增加了通信系统的复杂性。相比之下NDN 的安全性是通过密钥保护技术,直接将内容数据的真实性和保密性与每一个数据包绑定在一起,无需考虑数据如何及从那里获取,从根源解决了数据通信的安全问题。

如图2 所示,每一个内容数据包都包含由内容生产者通过数字签名生成的签名字段(Signature),以此将内容名称、内容生产者和内容数据绑定在一起,通过该字段任何一个节点(包括路由器,路由器节点主要验证路由更新信息的数据包)都可对数据包验证其真实性[29],防止数据被篡改或伪造。其中Keylocator 为验证签名时所需的公用密钥的信息,可以是用于验证的公钥自身或是包含验证公钥的证书或是验证公钥的内容检索名称[48]。因为在NDN中,密钥是另一种命名的内容,因此和其他数据包一样,以公钥为内容的数据包也需要进行数字签名[26],如图6 所示。

密钥保护的本质是建立信任锚,安装信任锚后,用户可以沿证书链到信任锚以验证其他用户证书的方式来验证用户的签名。但NDN 并不是盲目信任大量的商业证书颁发机构或组织,而是通过类似于简单公钥基础结构/简单分布式安全基础结构(Simple Public Key Infrastructure/Simple Distributed Security Infrastructure,SPKI/SDSI)[49]模型的方法建立信任锚。该方法使每个认证的可信网络系统(本地组织、智能家庭)可以建立自己的信任锚,通过本地系统的设置,在该认证系统下的所有实体均可通过身份认证[50]。

为更好地理解NDN 的信任模型,以简单的博客网站的命名空间和认证路径[26]实例进行说明,如图7[26]所示。

管理员安装网站软件时,安装程序会生成一个密钥作为信任网站的根密钥。在后续安装过程中,会产生一个初始管理员的密钥,初始管理员通过对其他管理员的密钥进行数字签名的方式来授权一些管理权限给其他管理者。同样地,任何管理员都可以通过对博客作者的密钥以数字签名的方式在系统中添加作者,作者在博客网站上发表的文章都要使用该作者的私人密钥进行数字签名。当读者想要获取一篇文章时,他可以通过数据包中的Keylocator 字段迭代地获得文章作者的公钥、管理者的公钥,以及发表文章的博客网站的公钥。读者可以利用获得的公钥对数据包中的数字签名进行验证,以此方式来判断文章的真实性[26]。

3 NDN应用

基于第2 章的分析,NDN 可以很好地满足未来互联网发展的应用需求,并可以有效地解决传统IP 网络的缺陷,因此学术界和产业界均认为其具有重要的应用场景。鉴于IP 网络的巨大成功,直接用NDN 取代IP 会面临诸多商业因素阻扰[27],因此发展业界的重点主要在利用NDN 构建“边缘类”的网络,即接近用户的网络部分。显然网络实例的构建是为利用NDN 特有的优点解决现有IP 网络在应用过程中呈现的缺陷。因而为使研究人员更好地理解NDN,本章以三类(如图8 所示)已构建成功的网络实例从应用的角度进一步介绍NDN 的功能优势。

3.1 NDN在物联网的应用

物联网(Internet of Things,IoT)是指物物相连的互联网。其愿景是通过互联网技术将人类生活中现存的物理对象连接在一起,从而可以通过互联网上的应用程序随时随地安全地访问任何资源[51]。基于这些物理对象(特别是传感器物体),用户可感知周围的环境条件并收集环境数据,之后在对其进行处理后可以绘制有关环境的详细信息[52],以此打造更加便利的生活方式。

近年来伴随无线通信技术的进步、低成本高性能微小型传感器和执行器设备的普及,跨域的物联网应用浪潮愈加迅猛,据估计物联网设备有可能将从2020 年的87.4 亿台增加到2030 年的超过254 亿台[53]。

然而物联网愿景中的全球化实现将面临2 个基本的挑战:一是如何使得不同类型且众多的物联网功能设备进行通信;二是一旦实现通信连接,如何一致、安全地传达承载有事物信息的数据[54]。

作为已取得巨大成功的传统IP 网络,以其部署物联网具有多方面的优势,如它是一个定义明确的开放标准,可以实现不同域中实体之间的通信兼容性;但传统IP 网络固有的内在缺陷,并不能很好地解决上述挑战,如它是通过主机方式的认证来保证安全性,并非是从最根本的通信数据角度保证安全性;并且在大规模部署基于IP 的物联网时面临众多困难[55]。这主要是IP 网络趋向于解决设备与设备间的连接问题,而并不关心其资源限制(如内存大小、计算能力、通信带宽等)[56],同时这些受限设备被屏蔽在应用程序网关之后[57],要想获取有关事物本身的数据,必须通过特定的子网、接口、设备间的映射完成,并且数据访问的安全性完全依赖于映射的可靠性,这在物联网的部署及应用中增加了传感器数据、控制命令和配置操作等简单通信的复杂性和脆弱性。此外,物联网设备的独特属性使得IP 网络并不适宜物联网的大规模发展与应用。如体积小形成易携带的特点,使得物联网设备在许多情况下是移动的,因此存在随意移动的间歇性连接的需求,同时跨多个域的应用程序可能会请求相同的数据,而不考虑它们的来源。而如上文所述,NDN 可以很好地解决此类功能需求,由此NDN 非常适宜部署物联网生态系统。

NDN 部署物联网生态系统的适宜性主要体现在NDN 直接对内容命名并采用层次化的命名机制。在NDN 中一切都以一个语义上有意义的名称进行标识[58],使得名称可以显式表示设备的身份及功能,此外名称也可显式反映访问限制,如/xju/task/sensing/temperature/lab302,将温度数据来源限制在lab302 房间下,这极大地促进和方便了用户在物联网中的内容检索,同时有助于网络的设置和维护。此外对一切事物命名,可更好地实现物联网的全球化愿景,因为名称是无边界的,可以对全球化带来的无数端点设备进行唯一标识,无须面临地址空间耗竭问题。

NDN 支持网内存储,并且其网内存储与应用、用户无关,由此数据请求无需再传送至端点设备即可将内容数据提供给多个用户节点,有效降低了通信时延,为物联网设备的移动通信提供了支持,同时可有效增加端点物联网传感设备的休眠时间,间接延长其使用寿命。

NDN 的网络通信模型由消费者驱动,并以拉取式的方式通信,这种方式将时间和空间解耦,以获取指定名称的内容为目的,与设备的标识及地址无关,更加贴合上述物联网众多异构设备互连且处在任意位置的特殊性。

NDN 通过对数据签名和加密的方式保证网络安全。这种方式使得每一个数据都是一个自认证和自识别单元,用户通过对数据包的安全验证从根本上解决了数据通信的安全问题,降低了传统IP 网络部署物联网因维持加密连接造成的复杂性和额外开销。

因此通过上述分析,NDN 具备众多的天然优势,能够为物联网提供良好的支持。文献[59]中从NDN 体系架构的角度出发,分析研究了NDN 在物联网发展中具有的优势及当前的设计和部署工作。架构发展阶段,迫切需要的是在互联网上进行测试部署,这样的测试部署将证明NDN 在现实环境中的可行性及其对应用程序的好处,同时提供必要的数据来验证和评估现有的设计和实现[60]。基于此原则,文献[61]中提出了基于NDN 的楼宇自动化和管理系统的设计,并构建了实验床,为用户管理、设备配置、数据发布和访问控制提供了一个工作解决方案。文献[62]中开发了基于NDN 的智能家居照明原型,并针对基于IP 云的方法进行了基准测试。此外,文献[63]中提出了一种云辅助无线体域网(Wireless Body Area Network,WBAN),用于支持使用NDN 的医疗保健服务。文献[64]中为支持物联网的医疗保健提出了一个安全的NDN 框架解决传统IP 网络的限制。同样地,文献[65]中提出了一种基于NDN 的智能医疗保健物联网SmartHealth-NDNoT,用于远程监控和诊断患者的医疗保健和健康状况,作者还提出了命名规则来定位医疗健康服务。文献[66]中提出了基于单通道集群的以信息为中心的无线传感器网络(Wireless Sensor Network,WSN)的架构,用于满足基于集群的物联网背景的WSN 的要求。

3.2 NDN在车联网的应用

如3.1 节所述,物联网已成为一种突破性技术,给人类生活带来的巨大便利,近年来受到很多的关注与发展。它在智能交通领域演变而为的自组织车联网(Internet-of-Vehicles,IoV)也取得了一定的发展,并正在成为现实,这不免源于车联网对人类生活带来的各类便捷,图9 为车联网的应用场景概览图[67],包括获取交通、路况、车况、天气等众多便捷服务信息。

车联网同样秉持物物相连的理念,将车辆节点连接到配备高效且多传感器的平台、计算单元,或连接到基于IP 通信的其他智能事物。车辆自身也配备了广泛的传感器,并配备有一定计算和存储能力的设备,由此形成了在行驶过程中车与车(Vehicle to Vehicle,V2V)、车与基础设施(Vehicle to Infrastructure,V2I)及混合架构的网络部署[68]。在V2V中,车辆不需要任何固定基础设施的帮助,它们直接相互通信交换信息;而在V2I中,车辆与固定基础设施通信转发和检索信息,至于混合架构则是结合了V2V 和V2I 通信范式[69]。

鉴于IP 的成功,当前的车联网通信仍然是基于TCP/IP协议栈的点对点(P2P)通信模式,即依赖IP 地址将消息从源传播到目的地址;然而车联网应用大多是点对多点(Point to Multipoint,P2M)的通信模式,即一个车辆节点与所有相邻车辆广播共享消息,并且车辆是移动的实体。因此在车联网中,移动通信问题是其中的关键问题之一,因而V2V 应该是自主的且不依赖任何固定基础设施辅助来满足其应用要求的通信[70]。如果继续遵循传统的TCP/IP 协议栈,其暴露出的安全性、可扩展性和效率等缺点,在V2V 中都是继承的[71];而此类缺点,正是NDN 相较于IP 网络的发展优势,因此车联网是NDN 架构提供优势的另一个领域,通过内容检索和新的信任模型支持临时、安全、机会性通信[72]。

图10 为车联网的通信简易实例[4]。在车联网通信中只存在生产者、消费者和数据骡3 种类型的车辆,其中消费者和数据生产者类似于NDN 中同类身份节点;而数据骡是车联网中针对数据高效分发提出的新概念,是一种在远程位置之间携带有大容量存储设备的车辆,可以在远距离通信的节点间有效地创建数据通信链路,从而为远距离用户提供良好的通信服务。因此在NDN 车联网中,车辆除了作为生产者和消费者外,还可以作为数据骡子响应消费者的兴趣请求包,相当于移动的内容仓库节点(图2 中的内容仓库)。

数据骡车辆的内容数据由其自身的传感器数据和从其他车辆收集的数据共同组成。数据骡以定期发送兴趣包的方式收集可能对其他车辆有用的数据,同时其持续监听媒体数据并缓存。所以数据骡的目的是收集大量数据,用于满足其自身需求,或传输到另一个点进行重分配。此外数据骡的存在使得即使原始信息发布者离开系统(如到达目的地并关闭系统),它也能保持信息可用。在实际通信过程中由于无法预测其他车辆可能需要哪些信息,所以一辆优秀的数据骡车辆意味着应尽可能多地收集信息[73]。

迄今为止,研究人员已经提出了车联网与NDN 的集成解决方案,包括简洁的应用程序设计、高效的命名和缓存方案、优化的转发策略[74]。文献[73]中通过简单的案例展示了V2V 基于NDN 的通信过程,并勾勒出交通信息发布应用程序的数据命名设计。文献[75]中阐述了基于NDN 的车联网架构设计的细节和要求,并阐明了NDN 在车联网中的优势。文献[76]中开发出了基于NDN 的车辆连接应用程序的框架,以解决在设计可扩展和高效的车辆NDN 连接应用程序时形成的挑战。

3.3 NDN在特殊场景的应用

NDN 的另一优势应用场景为军事通信网络,军事通信网络即战术网络,是连接战场上的士兵和军事装备等与军事总部的自组织通信网络[4]。目前,大多数现代军事通信系统是依赖IP 提供网络功能的,依赖IP 的此类通信系统只有在相当稳定的、基于基础设施的环境下才可以提供良好的通信服务,在不稳定的通信场景下只能是通过复杂且通常是特定应用程序的扩展来解决[77]。然而不友好的通信环境(如高速移动、带宽受限、无基础通信设施等)是军事网络独特的属性,自然导致军事网络的性能变得异常糟糕;并且基于IP 网络构建的军事网络系统在实际应用中更是由于高速移动、不利的射频条件及对抗攻击,频繁导致网络中断、高延迟及链路间歇性不工作的状态[78],这在作战中肯定是不被允许的。

基于此前分析,NDN 有充分的优势理由,例如NDN 不依赖于类似IP 通信需长久稳定的连接而获取数据,而是独立于位置的发布/订阅方式获取,因而不需要密集的基础通信设施来构建健壮的通信网。同时在通信过程中消费者节点无论是处于静止不动,还是移动状态都只需发布兴趣请求包即可拉取所需的内容数据,网内存储使得物理位置即使发生较大移动后,或者数据包意外丢失后也可以快回地传回内容数据。此外PIT 管理发送和接收数据的所有接口,这种天然的多播机制进一步提升了通信性能。由此NDN 可以为特殊的军事通信网络提供弹性且优良的通信服务。

文献[79]中描述了NDN 数据同步协议,数据同步协议运行在NDN 上以支持多方的应用程序正常运行。作者通过军事通信网络的实例,以数据同步协议的角度对基于NDN的军事通信网络的通信原理进行了分析。文献[78]中提出了信息访问网关(Information Access Gateways,IAGs),作为一种支持以内容为中心的军事通信网络组件,可将非NDN应用程序兼容并集成到NDN中,以实现NDN 的应用泛化扩展。文献[80-81]中描述了NDN 应用在军事通信网络中的诸多优势及挑战,强化了NDN 可以为军事通信提供优良的通信服务,并且文献[80]中分析了如何将已在各种应用中取得成功的软件设计模式应用在战场场景中。

近年来区块链技术的研究形成了空前的热度,自2008年诞生以来,区块链技术以其不可篡改、可溯源及去中心化的特点,被众多用户称赞,现已被广泛应用于金融、物流等领域,并已开发出众多对应场景的应用程序。由此大胆预测,随着区块链技术的成熟,更多应用实践将会落地,特别是面向企业应用的场景。

同样地,基于IP 网络的巨大成功,当前区块链仍是部署在IP 网络上,但是弱连接和不正确的协议导致IP 网络中存在传播延迟,从而导致某些系统中的区块链分叉不可用[82]。此外传统的IP 网络并不提供对本机的多播支持,这直接导致区块链数据的传输开销增加,进而导致区块数据同步效率低下。由此研究人员为消除IP 网络对区块链发展带来的限制,被NDN 高效的数据分发所吸引,即NDN 可以很好地向单个消费者或一组消费者传播内容数据。如1.3 节所介绍的,PIT 汇聚管理所有发送或接收的接口,每个Face 都可以连接到更高级别的实体,例如应用程序、物理网络界面等,因此NDN 的天然多播通信有望改善区块链数据交付效率。

然而NDN 虽具有高效率的数据分发,但并不兼容区块链数据的交付。首要问题是区块链应用程序通常需要实时广播产生的交易和打包生成的区块,即区块链是完全基于泛洪,而非NDN 类似“拉/取”式的数据检索。因为区块数据的生成通常是动态的,其他节点通常无法预测数据何时生成,因此无法确定何时应该发出兴趣请求。基于此问题,文献[83]中在命名数据网络上设计了一个名为BlockNDN 的类比特币区块链系统,并提出了BlockNDN 区块数据同步及广播的命名规则,由此产生的设计最终提供了完全去中心化的系统,解决了IP 网络不支持本机多播造成的额外开销问题,并使系统架构更简单。文献[84]中提出了NDN 区块链(Blockchain over NDN,BoNDN),以实现基于NDN 的区块链应用程序,其依赖兴趣请求包的广播方式支持区块链交易的实时广播;此外提出了一种订阅-推送的方式来支持区块链区块的广播,每一个矿工执行订阅进程,一旦产生区块,矿工即会收到区块。

基于上述已有的解决方案,两种前沿技术可提供各自的优势,在性能方面互补融合进行极具现实意义的应用开发。如NDN 实现数据的高效检索与分发,区块链保证数据的安全及可溯源。基于这两项优势,基于NDN 的区块链技术在数据安全保护方面的研究正在吸引着众多研究人员,其现实应用价值也使其成为最具意义的一项研究。文献[85]中提出一种基于名称的分布式安全机制,用于ICN 中内容数据的安全分发,借助区块链以完全分布式的方式传播内容所有者的系统参数,在拥有系统参数后可以验证内容的数字签名,忽略内容提供端点的性质。文献[86]中提出了一种安全的基于区块链的访问控制框架(Secure Blockchain-based Access Control framework,SBAC)解决ICN 为内容提供多级安全性的挑战,从而为内容生产者提供安全的方式,对其内容进行共享、审计和撤销的功能,由此设计了一个基于匹配的访问控制模型实现分层访问,并通过其提出的基于区块链的访问令牌机制来抵抗单点故障并平衡隐私和审计。

因此借助NDN 的优势,在NDN 上实施区块链技术对现实应用非常有益,其不仅仅是对传统的在线应用程序同时也会对区块链社区的发展带来诸多益处。

4 结语

随着互联网的发展,传统的TCP/IP 网络面临着巨大的挑战,通过对其体系架构的分析,构建新型下一代互联网是最佳的解决方案。命名数据网络(NDN)以其独特的优势被认为是最具前景的下一代新型互联网体系架构,它能够有效满足传统IP 网络在互联网发展中形成的新应用需求,并解决IP 网络固有的限制。

在NDN中,内容消费者通过发送带有内容名称的兴趣请求包启动数据通信过程,由NDN 路由器节点依赖PIT 建立反向路径并实现兴趣请求聚合,同时依赖FIB 将兴趣请求发送给内容生产者,任何满足兴趣请求的内容生产者通过反向路径将承载需求数据的数据包传回消费者,其中任何NDN路由器都可将接收到的内容数据缓存到本地CS 中以供后续内容检索重用。

基于此通信机理,NDN 形成其独有的发展优势:首先,多个消费者可以使用请求聚合,即多个消费者可以以一个数据通信过程检索数据,这可以有效地缩短数据通信延迟并减少数据冗余;其次,消费者可以基于FIB 从任何最佳供应商处获取数据;最后,通过网内存储可以有效减少数据通信延迟。

因此根据上述分析,NDN 有足够的优势成为下一代新型互联网,同时借助其他高新技术(如区块链技术),可以得到相当可观的实际应用表现,但鉴于NDN 还是一个新兴的研究领域,它仍为当前和未来的研究人员提出了大量开放的研究性挑战,本文旨在作为参考资料,并成为感兴趣的研究人员进一步探索这个令人兴奋的新方向的起点。

猜你喜欢
数据包路由名称
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
数据通信中路由策略的匹配模式
OSPF外部路由引起的环路问题
路由重分发时需要考虑的问题
C#串口高效可靠的接收方案设计
沪港通一周成交概况
沪港通一周成交概况
沪港通一周成交概况
沪港通一周成交概况