特约通讯员 许廷涛
MobilityFirst(“移动优先”)项目启动于2010年9月,属于美国国家科学基金会FIA(未来互联网架构)计划的一部分,旨在直接应对大规模无线接入和移动设备使用的挑战,同时为新兴的移动互联网应用提供新的组播、选播、多路径方案,以及新型的情境感知服务。
MobilityFirst项目成立的前提是,移动平台和应用程序在逐渐取代自互联网诞生以来便占主导地位的固定主机或服务器。互联网正在接近一个历史性的拐点,而互联网的转变孕育出了一个独特的机会——在移动设备、应用程序中设计出下一代互联网。随之而来的服务、诚信和管理的变革便是新架构的主要驱动力。
新架构在设计上的主要目标是:在符合动态主机和网络的规范的基础上提高移动性;在考虑无线媒体的内在特性的基础上保证稳健性;通过加强移动网络和有线基础设施的隐私安全性来保证可靠性;具有如支持灵活的上下文感知的移动网络服务、可发展的网络服务等易用性特征;具有可管理性和经济可行性。此外,该项目的设计也要考虑如无线频谱资源的稀缺性等技术性因素,利用摩尔定律来继续改进移动和传感设备在计算和能源约束上存在的问题。
为实现以上设计目标,需要使用以下协议组件:
(1)彻底分离的标识符与网络位置
MobilityFirst彻底地分离了三样东西:可读的名称、全局唯一的标识符以及网络位置信息。名称认证服务(NCS)安全地把一个可读的名称绑定到一个全局唯一的标识符(GUID)。全球名称解析服务(GNRS)安全地把全局唯一标识符映射到一个网络地址(NA)。通过使全局唯一标识符成为一个加密的可验证的标识符(例如一个公钥),MobilityFirst提高了可信度;而通过彻底地分离网络地址信息和全局唯一标识符,MobilityFirst则能够实现大规模的无缝移动性。
(2)分散的名称认证服务(NCS)
MobilityFirst在名称认证方面分散信任,也就是说,不同的独立的名称认证服务组织可以验证一个可读的名称和关联的全局唯一标识符之间的绑定。可以想象的是,不同的组织可能会不同意一个名称相应的全局唯一标识符。终端用户可以选择信任某一个(或某些)名称验证服务,并且通过基于仲裁集的技术解决各个名称认证服务之间的不一致。
(3)大规模可扩展的全球名称解析服务(GNRS)
GNRS是MobilityFirst最核心的组件之一,主要负责支持大规模的无缝移动性。预想的规模是一天有100亿个移动设备通过大约100个网络,这相当于每秒1000万个更新。相比之下,域名服务器很大程度上依赖于缓存,并且承担大约几天内更新一条记录的开销。因此,设计一个大规模可扩展的分布式全球名称解析服务是MobilityFirst的一个关键挑战。
(4)广义存储感知路由
MobilityFirst在路由器中利用网络存储解决在现实世界的移动场景中不可避免会出现的无线接入网络带宽变化和偶尔断线的问题。在CNF(Cache-And-Forward Network Architecture,缓存转发网络架构)的早期研究工作表明了存储的好处并且概述了存储感知路由算法。该算法用于当作出转发决定的时候,计算长期和短期的路径质量指标。GSTAR(Generalized Storage-Aware Routing,广泛的存储感知路由)协议进一步集成延迟容忍网络(DTN)。该网络具备类似CNF的存储路由功能,能为大范围的无线接入方案提供一种无缝的解决方法。
(5)内容和情境感知服务
MobilityFirst架构中的网络层被设计成内容感知层,也就是说其积极地协助内容检索,而不是如当今互联网简单地提供一个原始数据包发送到指定的目的地。MobilityFirst通过分配全局唯一标识符给内容实现内容感知。这些全局唯一标识符是加密可验证的。比如说,内容的自验证哈希,允许一个接收器轻松地检查内容的完整性。MobilityFirst也把基本的服务和内容全局唯一标识符扩展应用到更灵活的设备组或用户组,例如公园的全部移动设备,或广场的全部出租车。
图1 MobilityFirst架构中的名称与地址分离
(6)计算与存储层
现有互联网的经验表明,设计的可扩展性是必不可少的。为此,MobilityFirst的路由器明确支持一个计算与存储层,能够快速地引进新的可能的特定方法和服务,同时将对现有用户性能的影响降到最低。
总的来说,MobilityFirst互联网架构主要由八大关键要素组成:第一,命名和寻址的分离,通过一个快速的全球动态名称解析服务得到实现;第二,高度的安全性,该架构的认证公钥网络地址支持高效的身份验证;第三,数据包传输过程中包含网内存储的广义延时容忍;第四,含公共密钥地址的固定标签网络路由;第五,基于分段路径而不是端到端路径的跳转传输协议;第六,一个具有可见性的分离网络管理平台;第七,为用户和地址数据而设的可选择的隐私保护功能;第八,文本和文本感知的网络服务;第九,一个集成算法和路由存储层,支持可编程性和增强性网络服务的发展。整个互联网架构在设计时,虽然具有一定的复杂性,但是也保证了可实施性,此外也具有一定的可扩展性。
通过上述的介绍,我们已经对MobilityFirst的架构有了初步的了解。MobilityFirst协议体系架构是在彻底分离网络地址和名称(或网络连接对象)的基础上实现的(如图1)。这是MobilityFirst架构的第一大特征。
图1中所示,通过特定的名称认证服务把可读的名称诸如“sensor@xyz”或者“John’slaptop”转换成一组对应于当前网络对象连接点的网络地址。该服务把可读的名称转换成一个全局唯一标识符,该标识符通常是设备、内容、传感器等网络附着对象的权威标识符。全局唯一标识符也是一个公钥,因此能为所有网络连接的设备和对象提供一个验证和信任管理的机制。
MobilityFirst框架也支持基于情境描述符的概念,把一个特殊的全局唯一标识符赋予给这个情境描述,然后进行命名,通过一个动态的组播组,为当前在该区域的所有移动设备服务。一旦一个全局唯一标识符被指定到一个网络对象,就会产生一个从全局唯一标识符到网络地址的映射。具体方法是分配路由网络地址到网络端口,并且通过使用全新的分布式网络服务——全球名称解析服务,来把全局唯一标识符绑定到网络端口上。全球名称解析服务通过提供移动设备的实时网络接入点来实现动态移动性,而不需要像手机IP一样通过现有网络协议来连接。网络地址有望慢慢逐步改变,并且可以使用第二个分布网络协议(类似于互联网上的边界网关协议)传播路由更新。
进入网络的数据包都有关于协议数据单元(PDU)的目的地和数据源的全局唯一标识符。还有,在数据包报头里设有一个服务标识符(SID),显示哪种服务类型(诸如单播,多播,选播,情境传送,内容查询等)是协议数据单元所需要的。在第一次接入路由器时,目的地GUID通过访问GNRS来分解,分解后的网络地址会被随意地附加在数据包报头的后面,从而使得随后的路由器有可能沿着路径单独地转发基于网络地址的协议数据单元。这被称为快速路径转发。通过查询GNRS,任何沿着路径的路由器都可以选择是否再次分解GUID。这就是所谓的慢速路径。它允许传输数据暂时断线后,重新绑定到一组新的网络地址上。GUID路由选项使得它可以实现“后期绑定”算法决定路由通过哪些网络端口可以被推迟,直到协议数据单元接近目的地。
另外,在MobilityFirst架构中,协议数据单元还可能是大单元(100MB~1GB),相当于一个音频文件或者视频文件的大小,并且这些都是从一个路由器到下一个作为连续的单元传输。
MobilityFirst架构的第二个特征是,在路由器中存在着网络存储。这使得在应对较差的链路通信质量或断线时能够使用存储感知协议,该协议选择把协议数据单元暂时存储在路由器中,而不是通过转发至目的地的方式。对比在TCP/IP协议中端到端的方法,一个可靠的逐跳传输协议是在路由器之间传递数据包的。
MobilityFirst架构的第三个特征是,服务具有灵活性,特别强调多播、选播、多路径、多链路作为路由协议的集成功能。这些已经提供的服务特性主要负责满足移动应用所更关心的情境(例如设备位置或功能),而不是其网络地址的需要。
MobilityFirs项目的研究是通过构建一系列的数据模型来测试的,包括关键协议组件的独立认证,例如命名服务、GDTN(全面延迟容忍网络)路由选择和固定标签域间路由选择;控制实验的小规模实验室架构模型;跨网络实验和概念验证演示的多站点、中等规模的系统原型(使用全球网络创新环境[GENI]的基础设施)。
MobilityFirst架构早期的概念原型是基于改进的具有全球名称解析服务和存储路由功能的Click模块化路由器组(Click是一种新的软件体系结构,它被用于建立灵活的和可配置的路由器)。
MobilityFirst协议栈中包含了一个由自麻省理工大学提出的基于“跳”协议的逐跳可靠链路协议。在Linux系统和安卓手机客户端上,GUID服务层也实现了与块传输(包含单播和多播)、选播和由新协议提供的内容查询服务相关联的服务接口。一个双路径的数据抽象可以通过以下方式实现:快速路径(如点击转发模块)和慢路径(用户层面服务如控制和管理)。
原型的实验测试与展示是在美国的堪萨斯州开展的,构建了包含7组可编程路由器的两大边缘网络,覆盖了整个美国地区,设有许多的WIMAX基站和WiFi接入点供移动终端进行访问。该网络拓扑结构如图2所示。
图2 GENI概念验证的实验配置
图3 GENI实验中的内容传送应用
网络中GENI节点的物理拓扑结构应用不同组合的OpenFlow交换机和各地的ProtoGENI节点,配置包含了一个在路由器节点之间的RTT(Round-trip Time,往返时间)延迟,辅之以各种链路速度和接入网络技术。在考虑的方案中,有两个分别归属于BBN和Rutgers网络的移动设备,一个作为内容服务器,另一个作为客户端。GSTAR协议提供这样一个功能:利用内网存储和多宿主(利用了有效的WiMAX和WiFi接口),以逐级跳转的方式,有效地把内容从服务器传送到客户端中。
图3展示了GENI实验中带唯一GUID标签的内容传送方案,从客户端传送一个“get(GUID)”查询请求。内容传送操作包括了GNRS解决方案,接着是在逐级跳转基础上的整个协议数据单元(媒体文件)的GSTAR选择。实验还表明这样一个事实,GSTAR协议能够处理边缘网络带宽的变化和通常发生在WiMAX和WiFi网络边缘的偶然断线。特别是,路由器节点会存储传送的那段信息,直到信道条件充分改善,再沿着路径重新推送信息。该协议还能够自动选择一个或两个多宿主路径,以满足所需的服务和政策目标。
目前,MobilityFirst协议栈的概念验证模型已成功在GENI实验测试平台上开发,这是迄今为止最令人鼓舞的成果。项目的进一步工作将包括域间路由方面、设计内容和情境感知服务、管理平台功能和计算层服务。