重叠网,英文名称是:Overlay Network,顾名思义是一种网络。重叠网是一种运行在一个或多个已存在网络之上的网络,提供特定的附加功能。其将一在一个或多个方面改变下层网络的性能/功能/特性。
简介
重叠网( OverlayNetwork),顾名思义是一种网络,因此它首先具有网络的基本特征,例如它应当由若干节点共同构成,并且为节点定义了编址、规定了节点间数据传递的
路由。而具体到重叠网,我们可以找到很多大同小异的定义。例如, “重叠网是一种运行在一个或多个已存在网络之上的网络, 提供特定的附加功能。其将在一个或多个方面改变下层网络的性能/功能/特性 ”。还有更为简单的定义:“重叠网就是Internet 上覆盖的逻辑网络, 它位于网络层之上,应用 /业务层之下; 其上的节点( Node) 就是 Internet 的主机或者服务器, 节点间的数据传送通过Internet 路径;其拥有自己的编址空间和虚拟
路由算法。”
架构
重叠网是一个位于一个或多个已存在的网络之上的虚拟网络,即在 IPv4 底层网络的基础上通过节点之间单播机制将主机两两相连,形成一个虚拟、独立的网络,就好像在原有的网络上叠加了一层新的网络 。可以认为 Internet 就是一种重叠网,因为Internet 是建立在各类局域网(如以太网)之上 , 给所有的包增加互联网协议头,用以连接各个局域网中的主机,形成一层新的网络。如图1就是一个重叠网的概念示意图 。图1中IPv4 基础网络的七个节点中的两个子集,通过节点之间的单播连接,形成了具有星形拓扑和环形拓扑的两个虚拟重叠网。
组成
重叠网的组成主要有三个部分:主机(Host)、路由器(Router)和隧道(Tunnel)。隧道是基于底层网络的路径 ,也是重叠网的逻辑链路。每条链路由底层网络的若干个单跳(Hop)组成 。重叠网链路的特征参数如时延、带宽和丢包率等也是底层网络链路的集合。单个的网络组成元件(路由器或主机)可以同时参与多个重叠网,也可以同时参与一个重叠网的多条链路 。
部署和配置
一个重叠网是一个位于一个或者多个已存在的网络之上的独立的虚拟网络。它实际上是一种按重叠网协议而构成的一系列Overlay 套接字 。
重叠网协议首先将成员组织成一个有效的重叠网
拓扑,然后根据具体应用需求在此拓扑上发布数据。重叠网协议由用户根据应用定义, 处于用户空间, 位于TCP/IP 协议栈之上。重叠网协议一般被设计成一个纯软件实现的中间件,使用底层
IP 网络提供的服务,并且向上层的应用系统提供应用API 接口。这样的话,只要在想要参与多方通信的主机上安装根据特定应用而设计的重叠网中间件软件,就能在搭建的重叠网上实现特定的应用。
特点
重叠网就是在现有的
IPv4 网络的基础之上通过节点之间的单播连接将主机两两相连,形成一个虚拟的网络,就好像在原有网络上叠加了一层新的网络。这很容易根据应用特殊需求来确定重叠网的拓扑结构和协议。不论具体拓扑结构和协议如何,重叠网都应该具有一些共同性质,主要有以下几点:
1、确保节点能获取数据
2、查询时间可以证明是有限的
3、自动负载平衡
4、自我组织
重叠网的优点是显而易见的。第一,重叠网的部署不必改变现有的网络层,它的属性是可以变化的,具有很强的灵活性 。利用重叠网可以部署许多应用,如:移动通信、路由、QoS、组播等。第二,重叠网易于部署和扩展,它不需要路由器的支持,同时具有独特的应用型架构。
重叠网的主要缺点是重叠网的节点并不总是处于最佳位置,而不处于最佳位置的节点会对重叠网性能产生负面影响。
地位和作用
重叠网的出现引起的这些
互联网架构上的变化,都可以看作是互联网自身的技术演变。实际上,互联网从诞生到现在的30年间,其原始的设计架构和基本设计理念随着互联网应用范围的扩张、应用环境的变迁等一直在不断地遭到各种问题( 地址短缺、服务质量、网络信息安全等) 的挑战。业界对于互联网技术革新的呼声越来越高,也出现了很多对未来互联网的技术演进思路。重叠网就是其中重要的一种思路。
互联网采用“覆盖( Overlay) ”的方法设计了路由器网络,覆盖在各种需要互联的异构网络之上,因此其本身是一种重叠网( OverlayNetwork) 。在现有体系架构的基础上,可以仍然遵循重叠网的思想,在互联网承载层之上、应用层之下增加一个垫层,系统性地在这个垫层中实现承载层中个性化和应用层中共性化的功能,在尊重互联网现实存量的基础上让互联网更加健康地持续发展。
重叠网技术的基本思路是在互联网承载层之上、应用层之下增加一个“垫层”,为上层业务和应用提供有针对性的服务。这种方式不必改变目前已经广泛应用的
IP承载网技术,不抑制用户创新,只对已有的应用和业务进行适当控制,是对现有互联网体系架构的“系统性”修补。重叠网技术可以最大程度地降低由现实存量网络所造成的承载层问题的解决难度,充分兼容现实存量网络和设备,提高方案可行性并减小实施成本。