覆盖网络弹性路由与跨层优化
上QQ阅读APP看书,第一时间看更新

1.2 覆盖网络的本质

1.2.1 覆盖网络体系结构

覆盖网是构筑在已有的互联网基础之上,通过选择并合理连接节点构建一层新的网络,提供类似基础设施所提供的基础性服务,如路由、组播、内容分发等。覆盖网是一种逻辑网络,其节点由连接在互联网的部分终端节点或应用类服务器组成,具有数据转发、处理和存储等功能,节点间通过虚拟逻辑链路连接起来,一条覆盖网链路对应一条或多条物理链路。覆盖网络探测底层物理网络的链路状态信息,并根据自己的策略为覆盖网络中的数据流计算路由,然后将数据流的转发路径发送给底层物理网络,由底层物理网络按照指定的路径进行传输。覆盖网络上的路由是应用层的路由机制,独立于网络层的路由机制,比网络层路由反应快。例如,当底层物理网络路径出现故障时,可以通过覆盖网络快速找到替代路径,极大地减少了故障恢复的时间。

覆盖网络是一种面向服务的网络,由服务提供商们(Service Providers)根据用户的需求,在一个物理网络上创建多个独立的覆盖网络,定义各自的虚拟拓扑图,来完成一些特定应用或用户群体的特殊需求,如图1-5所示。覆盖网络克服了传统网络路由的功能局限性,帮助改进了现有互联网的路由性能,满足了新型业务的特定需求。例如,提供满足用户QoS需求的网络传输服务;实现快速故障恢复,帮助提高网络可靠性;以及提供网络内容分发和多播服务等。

图1-5 覆盖网络结构图

1.2.2 覆盖网络的缺陷

虽然覆盖网络可以帮助改进现有互联网的网络性能,但是也会带来一些新的问题,概括如下。

1.过度依赖终端节点

首先,虽然终端主机节点的性能和存储容量在不断提升,但它对数据包的处理和转发的能力低于路由器。已有的覆盖网研究成果在构建覆盖网拓扑时,其节点依赖于参与服务的终端主机节点。然而,大量研究表明,物理网络中的部分节点频繁出现在IP层最短路由路径中,对于最优路径的选择起着关键的作用[7][17]。如果在构建覆盖网络拓扑时,忽略这些节点,必然增加覆盖网络数据传输的时延。其次,终端节点的稳定性有别于路由器。完全由终端节点组成的覆盖网拓扑,探测节点间的连通性和维护拓扑的稳定性所付出的代价大幅度增加。

2.覆盖路由完全独立于IP路由,传输效率低下

由于在选择覆盖节点、构建覆盖网络拓扑时,没有充分考虑互联网基础设施的影响,仅根据覆盖网本身的路由算法,计算路由路径,可能导致较大的时延开销。互联网基础设施(Internet Infrastructure)通常指为了实现互联网应用所需的硬件和软件的集合,包括通信设备(终端主机、路由器和交换机等)和通信协议。另一方面,根据不同的终端用户的需求而建立起来的不同的覆盖网络,可能共享一条或多条物理链路。这些共享的物理链路一旦发生故障,将直接影响多个覆盖网络业务的正常运行。

3.过度依赖应用层实现

由于在同一物理网络上可以根据用户的不同需求,构建多个独立的覆盖网络,而大多数覆盖网络在构建之初,仅考虑服务于某个具体的业务需求,而忽略了通用性和重用性的重要性,在网络探测、拓扑维护和路由等方面出现了重复建设的现象,造成了带宽资源的严重浪费。例如,同一物理节点或同一条物理链路可能同时属于不同的覆盖网络,但由于各覆盖网络相互之间缺乏沟通机制,并不共享资源,因此被多次探测和维护,造成冗余数据,浪费了宝贵的带宽资源。另一方面,由于在构建覆盖网拓扑时,没有充分参考物理网络的结构特性,覆盖路由可能导致物理网络中部分节点或链路过载的现象,影响了网络的传输效率和吞吐量。

4.自私路由策略带来的冲突

服务提供商们为了提升服务的性能,在Internet上构建支持各种各样服务的覆盖网络,并根据服务具体的需求在应用层上实现覆盖路由。文献[58]指出覆盖路由的本质是一种自私路由,它在选择路由时,只考虑自身性能的最优化而不考虑对底层物理网络的影响,例如,总是选择最短路径,导致网络流量集中在少数热门链路上,造成网络的拥塞。同时,底层物理网络通常采用流量工程(Traffic Engineering, TE)技术来均衡网络的负载,将流量往网络边缘区域扩散,这样又会延长了覆盖网络流量的传输,影响了覆盖网络的性能。因此,覆盖网络路由带来的与物理网络之间无法避免的目标冲突,导致整个网络中经常出现覆盖路由和流量工程的交互,即覆盖路由的操作导致底层流量工程需要不断重新配置路由,而流量工程的路由重新配置又会导致覆盖路由的重新执行,并且如此反复下去,这样导致网络的性能和稳定性都受到了极大的影响。

图1-6说明了覆盖路由和流量工程之间的交互。从图中可以看出,覆盖路由的每一次操作将会给底层物理网络的流量工程带来新的物理流量需求,而流量工程的操作将会给覆盖路由带来新的覆盖链路性能(如时延)。

图1-6 覆盖路由与流量工程之间的交互[10]

另一方面,当多个覆盖网络被部署在同一物理网络之上时,它们的覆盖路径可能会重叠,因为它们共享相同的底层物理网络资源,因此可能会出现不同覆盖网络的覆盖路径同时使用同一条物理链路的情况。而覆盖网络之间不感知对方的存在,在执行最优路由时往往不考虑对其他覆盖网络性能的影响。例如,为了获得更少时延,向一条较短的共有链路上转移流量,使该共有链路出现拥塞,从而导致使用该链路的其他覆盖网络性能降低。覆盖网络的性能通常与传输覆盖流量的物理链路上的流量有关,物理链路上流量的变化会引起覆盖网络性能的改变。因此,覆盖路由固有的自私性和盲目性导致了覆盖网络之间也会存在冲突,而这种冲突也会导致覆盖网络之间需要不停地重新调整路由。因此,网络的性能和稳定性也会受到影响。

图1-7说明了覆盖路由之间的交互。从图中可以看出,覆盖路由之间的交互发生在覆盖路径重叠区,覆盖路由在覆盖路径重叠区的操作将会改变重叠区其他覆盖路由的性能。

图1-7 覆盖路由之间的交互