摘要:互联网端到端属性使得运行于主机端的应用层协议易于修改和部署,从而促进互联网通过新应用的竞争不断发展;但是涉及到网络核心层和网络设备(交换机、路由器等)的新协议则在实现和应用上十分困难,阻碍了互联网核心技术的演进。文章提出一种可演进的网络体系结构(EIA)。网络可以通过EIA提供的接口在主机和网络设备上添加新的模块来得到试验和实际部署。不同的用户可以任意选择不同的体系结构,同时用户可以是一种或多种网络体系结构的使用者。人们可以多样化竞争的方式推动互联网的演进。
关键字:网络虚拟化;网络体系结构;互联网演进
英文摘要:The end-to-end characteristics of networks enables easy modification and development of applications running on the host. Competition among these applications promotes the development of the Internet. However, new protocols related to core networking or network equipment (routers, switches etc.) are often hard to successfully implement. This paper proposes an Evolvable Internet Architecture (EIA). It proposes that new network architectures can plug themselves as new modules into EIA network equipment using the interfaces provided by EIA for experiment and actual development. Different users can independently select network architectures, and at the same time there may be one or more users of network architectures. This diversity and competitiveness promotes the evolution of the network.
英文关键字:network virtualization; network architecture; Internet evolution
基金项目:教育部高等学校博士学科点专项科研基金(200800030034)
互联网经过30多年的发展,已经成为与人们工作、生活息息相关、不可缺少的基础设施之一,互联网自身也获得空前的发展与繁荣。然而,互联网传输控制协议/网间协议(TCP/IP)式的体系结构从诞生之日起就存在天生的缺陷,如:尽力而为的转发策略不能提供用户需求的服务质量、网络管理难以部署、网络安全漏洞日益暴露、IP地址资源枯竭、接入设备的泛在移动性与异质性、大规模网络情况下路由的可扩展性等等。
对互联网TCP/IP体系结构的变革一直在进行,新的协议与算法不断提出。互联网端到端属性使得运行于主机端的应用层协议易于修改和部署,从而促进互联网通过新应用的竞争不断发展。但是,互联网端到端属性同时限制了互联网核心部分的革新能力。涉及网络核心部分和网络设备内核改变的新协议(如IPv6、集成业务、IP多播、差异化服务、安全路由协议等)需要部署者全局部署和网络设备统一修改,而这种修改对网络运营者和网络设备制造者缺乏激励机制,难以在现实网络中大规模部署;同时由于缺乏真实网络环境的充分测试,这些涉及网络核心层的新协议难以得到充分信任与支持,进一步阻碍了设备实现的成熟度和运营者的部署决策。这些都造成新协议没有得到大规模应用,互联网核心技术的演进陷于停滞。
针对现有TCP/IP体系结构的诸多缺陷,网络研究者们提出了一些全新的体系结构,如RBA[1]、RNA[2]、SILO[3]等。这些新体系结构解决了一些现有体系结构的问题。但是仅有一种固定的体系结构难以满足未来互联网的需求,这是因为:
(1)需要多种体系结构共存以解决网络多方面的问题。
(2)网络体系结构需要不断演进,包括:更新、补充及老化。
(3)实验流量需要在真实网络上运行,需要与用户流量共存。
基于以上分析,本文提出了一种支持多种体系结构并存的可演进的体系结构(EIA)。EIA是一个能够包容多个网络体系结构的结构,且支持网络体系结构数目的不断扩充。EIA如同一个“插座”,上面插着不同的体系结构,现有的TCP/IP协议栈也作为一个体系结构插在上面,EIA是这些体系结构的“基”。EIA上层的多种体系结构可以形成竞争关系去解决同一问题,类似于实时网络通信中Skype、QQ、MSN、Gtalk的关系,也可以形成互补的关系去解决不同的问题。不同的用户可以任意选择不同的体系结构,同时用户可以是一种或多种网络体系结构的使用者。
1 EIA网络体系结构
1.1 EIA的演进策略
当前互联网的演进方式主要分为两种:革命型和革新型。革命型的代表有网络革新的全球环境(GENI)、未来互联网设计项目(FIND)、未来互联网研究和实验(FIRE)等;革新式则是在现有的互联网上进行修补式的改进。
互联网采取革命式的演进需要重新构建试验网络,演进代价高,并且研究者对未来的预测有误差,只有不断改革才是可能的。因此EIA采用的是改革式的演进策略,在现有网络的基础上支持研究者实现和部署新协议的目的,进而推进互联网的长期演进。
EIA改革式的演进和目前改革式的演进方法又是不同的。目前的演进方法是在TCP/IP体系结构的基础上修补、发现问题、再修改,但是某次修补可能不容易“兼容”未来的继续修改。并且现有的演进可能引入短期收益而长期有破坏性如网络地址转换(NAT),或者局部收益对整体有破坏性。而EIA不是在现有的TCP/IP结构上做改进,其上层支持多种体系结构的并存,TCP/IP只是作为其中的一种体系结构。多种不同的体系结构之间通过竞争的方式使更适合需求的方案得以生存和发展。
1.2 EIA的目标
EIA的主要目标:(1)研究者可以在现实的网络设备上编程并试验其新的协议,实验流与正常流同时运行在实际网络上且之间互不影响;(2)EIA上层承载多种体系结构,作为容纳多种体系结构的特殊结构,EIA可以使能上层体系结构之间的竞争。EIA承载的不同体系结构之间可以形成竞争关系去解决同一问题,也可以形成互补关系去解决不同的问题,各种不同的体系结构在硬件资源方面共享。
现在已经提出很多不同的体系结构,每种结构均有不同的设计,哪种体系结构应该被选择,EIA可以通过竞争的方式使更适合需求的方案得以生存和改进。同时EIA作为一个可以包容网络结构的结构,做到能够承载上层的结构需要考虑很多问题:每种体系结构可能只覆盖整个Internet的一部分;终端用户也许只用到一种或几种上层的体系结构而不是所有,类似于部分互联网网民使用QQ、Gtalk,而不使用MSN进行实时通信。
1.3 EIA的组成
EIA包括两部分:主机对多体系结构的支持;网络设备(交换机或路由器)对多体系结构的支持。
1.4 EIA主机
1.4.1 基础模式
EIA主机多协议栈如图1所示,EIA模块位于链路层,是为支持上层多种体系结构而在现有网络上增加的一些函数接口。现有的主机要支持多体系结构并存,需要增加EIA模块。部分体系结构也可以不增加EIA函数,直接利用现有的函数接口来满足需求。
EIA 模块根据不同的体系结构代码,把数据包传递给上层不同的体系结构。已有的TCP/IP通信协议模型作为一个特殊的体系结构和其他新体系结构并存。
增加EIA模块后,链路层的工作方式为:当接收到一个数据包后,解帧并根据协议号上传到上层相应的协议栈;当接收到上层传递来的数据包后,根据上层协议的任务,把数据包转发到一个端口或调用相应的硬件资源做出处理动作。
和现有开放系统互连(OSI)模型的套接字相比,EIA模型把现有套接字接口往下移动从而建立在物理层上,不同的体系结构在链路层之上呈现为纵向、并行的方式。
1.4.2 高级模式
基础模型中,链路层主要提供解帧、封帧的操作。为了开发者易于开发新的体系结构,EIA高级模式把各新体系结构中的通用功能模块抽象出来,以可选项的形式提供给各个新体系结构的开发人员,如网络监管、QoS等功能就可以在此处开放给新体系结构的开发者。添加公用模块后的EIA示意图如图2所示。