GENI的设计与分析
2012-05-11姜典言张丽茹
姜典言,张丽茹,李 艳
(中国电子科技集团公司第五十四研究所,河北石家庄050081)
0 引言
目前互联网存在先天性的设计缺陷,且这些缺陷无法通过局部修改来纠正,因此,下一代网络体系结构设计应运而生。2005年,美国国家科学基金会(NSF)设立了未来互联网网络设计(FIND)和GENI两项计划。其中,GENI是一套网络研究基础设施,主要用来支持网络科学和工程领域的试验性研究,目前正处在原型设计阶段。GENI能够支持很大范围的网络科学和工程试验项目[1],比如基于基础光纤设施和新的光交换机的新协议和数据分发技术、新的高速路由器、城域无线网、高端计算集群以及传感器网格等[2]。
1 GENI的总体设计
1.1 GENI的体系架构和网络拓扑结构
整个GENI的体系结构分为3个层次,为基础层、聚合层和分块应用层。图1给出了GENI平台的体系结构图,描述了3层之间关系。
在基础层,GENI提供了一套物理设施(如路由器、处理器、链路和无线设备),该层的设计是为了确保物理资源、布局和互联拓扑能支持GENI的研究目标。基础层也称为物理底层,部分设备对研究人员是不可见的。
图1 GENI体系架构
聚合层表示所有资源的整体,对研究人员是可见的,并可以对所有的资源统一进行操作。集合是可以接受和拒绝对它的调用操作,集合可以是物理位置(某个站点的所有组件)、集群(共享物理连接的组件)、配置文件(共享配置信息的组件),或者一个网络(实现骨干网或无线子网的一群组件)。
分块应用层是分布式网络的一个可编程元素。绑定到某个特定试验的资源是一个切片。每个切片为不同的研究人员提供服务。GENI包括用来将资源分配到切片的软件和资源中内嵌的切片,并能确保这些切片之间不会互相干扰。
图2描述了不同组件连接而成的GENI的物理层,物理层包括GENI网关、可编程核心节点、可编程边界簇、可编程边界节点、客户端、无线接入网络、传感器网络和自适应网络等。
图2 物理结构
GENI物理层是由诸多物理网络部件组成的集合体,其中包括动态光学平面、转发器、存储与处理器集群及无线子网。GENI的部件是可以编程的,可以进行嵌入式实验。
1.2 GENI中需要解决的问题
1.2.1 网络开放接口有限
GENI好处很多,但是要部署这样一个系统是一个太过昂贵的事情,利用现有互联网进行实验不仅满足真实网络的复杂度,而且实验效果更好。互联网最关键的节点就是交换设备,然而交换设备被几家巨头垄断,开放的接口十分有限,如何能有一套开放接口、支持控制的交换标准来满足实验要求?OpenFlow应运而生,它不需要生产商公布设备的内部工作原理,同时又不需要研究人员按照开发商的指定的规范去写控制软件[3]。OpenFlow技术在商业交换机的基础上添加流表、安全通道和OpenFlow协议来获得了OpenFlow交换机。这样,原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机和控制器来共同完成,从而实现了数据转发和路由控制的分离。
1.2.2 异构网络之间的底层资源如何共享
GENI的底层是各种异构网络,这些异构网络之间底层资源(如计算、缓存、带宽和网络拓扑等)需要共享。GENI采用了虚拟化技术来共享底层的资源。早期的虚拟化技术只关注在连接的虚拟节点或在物理节点之间部署虚拟链路,实现虚拟网的隔离。GENI不仅仅实现节点或链路的虚拟化,更关注通过有效的完整隔离实现服务器、交换机和网络管理平面的虚拟化。
林强信说,我们其实是一家人,所以我一直都在关注着景花厂,关注着阿花和你。我要没猜错的话,你们现在又有了难处,对吧?
(3)网络节点封闭,新的网络服务难以快速实现
网络已越来越需要为用户定制的网络服务来满足新的应用需求,但是由于网络节点的封闭特性,使得新的网络服务需要漫长的过程才能实现。GENI采用网络可编程技术为研究者提供良好的服务支持,不必为了增加网络业务控制功能而做大量的修改。
2 GENI关键技术
GENI采用OpenFlow技术思想完成数据转发层和控制层的分离,在网络中实现了软硬件的分离以及底层硬件的虚拟化,利用可编程技术和网管实现网络可管控性。
2.1 OpenFlow 技术
随着网络技术的不断成熟和发展,在现有的网络设备及协议基础之上,想要对已有网络进行创新性试验变得越来越困难。GENI参考利用OpenFlow技术在现有网络上进行试验而不影响正常的网络通信。
OpenFlow技术通过开放的流表支持研究者对网络处理行为进行控制。OpenFlow网络由Open-Flow交换机、FlowVisor和控制器组成[4]。OpenFlow交换机进行数据层的转发;FlowVisor是位于硬件结构和软件之间的网络虚拟层,可以对网络进行虚拟化;控制器实现控制层功能,可以通过事先规定好的接口操作来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的。
OpenFlow交换机由数据流表、安全通道和OpenFlow协议组成,图3给出了OpenFlow交换机的模型。网络中的路由和交换设备最核心的路由和交换信息都存放在“数据流表”里,每一条流表项就是一个转发规则。
图3 OpenFlow交换机模型
2.2 虚拟化技术
GENI借鉴PlantLab和其他类似的试验床,通过搭建一个开放、大规模、现实的实验设施,代表终端用户承载真实流量并连接现有互联网到外部站点[5]。GENI从空间和时间2个方面将资源以分片形式进行虚拟化,为不同网络实验者提供他们需要的网络资源,并提供网络资源的可操作性、可测性和安全性。
对底层硬件的虚拟化允许众多的研究人员共享一套资源,并且能通过一个单独的物理硬件综合出多种更高级功能的虚拟环境,来提高灵活性。
另外,虚拟化并不意味着每个分块都能公平地享有可用资源,因此就导致了不可预测的性能。一个准入控制机制能限制任一时间内活动分块个数,而且可以对某些分块做资源隔离。
在时间上分割资源,意味着资源不能维护一个真实的用户负载,因此限制了它对分布式研究的正确性。GENI资源的某些部分可以用这种方式共享,只要有充足的资源去支持分布式研究。即使引入虚拟化,也需要用一个准入控制机制,限制任意给定时间活动的分块个数,类似基于时间的资源分割。在空间上分割资源,意味着只有有限的研究者可以将给定的资源包含在分块中。
在OpenFlow交换机中,虚拟化软件运行在控制器和OpenFlow交换机之间,虚拟化软件可支持多个控制器的同时运行,不同用户的控制器可以在一个物理网络上定义各自的逻辑网络拓扑,再通过运行在各自控制器上的路由算法来控制数据报文在逻辑拓扑中的转发路径。虚拟化软件可以使用户之间相互隔离、互不影响。
2.3 可编程与网管技术
可编程技术主要利用在网络节点中提供标准的网络应用编程接口向研究者和网络业务供应者提供一个“开放”的网络控制机制。
在GENI中,转发层和控制层分离,使得网络具有更好的可编程基础,网络研究者可以进行实际网络中各种试验而不会干扰正常的网络业务。GENI可编程网络连接拓扑如图2所示,可编程边界节点通过GENI网络与可编程核心网相连。用户设备通过接入网连接到可编程无线节点,可编程无线节点进行帧格式转换。可编程边界簇通过GENI网关控制可编程核心网的接入。
GENI的网络管理技术采用分布管理,集中控制。网络管理采用运维控制和分片控制功能聚合的架构,这些聚合可以协同管理一套组件,图4给出管理体系示意图。实验人员需要使用研究者端口进行分片和控制试验,运维端口控制相应的子网管理聚合。
图4 GENI管理架构示意图
3 性能试验
GENI采用“螺旋式”开发过程,第一阶段关注大规模研究试验中的资源发现、调度和控制,以及评测GENI的容量。
GENI有试验性网络基础设施,允许研究人员对新互联网架构进行与当今互联网并行的大规模实验。目前,GENI正在对网络可编程进行测试,并对网络设备编程性能进行试验。2009年,GENI实现了新的原始的端到端工作模型的开发、整合和试运行。2010年,GENI把OpenFlow扩展安装到7所大学以及2个骨干研究网络中。文献[6]给出Open-Flow交换数据平面性能试验的结果,当OpenFlow交换机过载的数据包较小时,吞吐量性能会变得稍差。通过128K转发表项转发的64字节数据包吞吐量性能降低11%,96字节数据包吞吐量性能降低3.5%。通过128K转发表项转发的96字节数据包最差情况下,2层交换入负载性能降低不超过10%。试验证明,在Linux系统中OpenFlow设备提供很好的性能。
4 结束语
GENI使未来的互联网更加安全、可靠、可管理,是一种全新的网络架构。这里描述了GENI的体系结构和网络拓扑,并对其关键技术进行重点介绍,最后简要介绍了GENI相关的性能试验。GENI项目的发展遵循一种结构化的自适应螺旋式过程,包括规划、设计、实现、集成和应用,降低了技术风险。GENI是一个全球性的平台,采用支持联盟的设计,使得不同国家构建的类似平台能够连接在一起,让参与GENI的国家或机构在保持自治的前提下,充分分享它的资源。
[1]黄玉兰.信息网络对抗系统效能评估研究[J].无线电工程,2007,37(2):10-13.
[2]刘家俊,王琨,王长山.GENI的研究与设计[J].现代电信科技,2008(2):44-47.
[3]毕军,林萍萍,胡虹雨.一种可演进的互联网体系结构[J].中兴通讯技术,2010(2):6-10.
[4]BIANCO A,BIRKE R.OpenFlow Switching:Data Plane Performance[J].2010 IEEE International Conference on,2010(1):1550-3607.
[5]VORST Van Nathanael,ERAZO Miguel.PrimoGENI:Integrating Real-Time Network Simulation and Emulation in GENI[J].IEEE,2011(6):1-9.
[6]姜明,王保进,吴春明.网络虚拟化与虚拟网映射算法研究[J].电子学报,2011(39):1315-1320.