2.3 覆盖网络的应用
基于覆盖网络的应用很多,典型的应用包括用于文件共享的对等网络(P2P);用于数据缓存且分布式共享的内容分发网(CDN);用于改善物理网络性能的覆盖路由,增强QoS满足用户的特殊需求;改善物理网络多播应用性能的覆盖网多播;以及近几年迅猛发展的覆盖网络技术在SDN和云计算数据中心中的应用。这些应用可以归纳如下。
2.3.1 P2P网络
P2P在思想上可以说是互联网思想/精神/哲学非常集中的体现、共同的参与、透明的开放、平等的分享、基于P2P技术的应用有很多,包括文件分享、即时通信、协同处理、流媒体通信等。这种新的传播技术打破了传统的C/S架构,逐步地去中心化、扁平化。P2P文件分享的应用(BTs/eMules等)是P2P技术最集中的体现,P2P文件分享网络的发展大致有以下几个阶段:包含tracker服务器的网络、无任何服务器的纯DHT网络、混合型P2P网络。
DHT全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法,每一份资源都由一组关键字进行标识。系统对其中的每一个关键字进行Hash,根据Hash的结果决定此关键字对应的那条信息(即资源索引中的一项)由哪个用户负责储存。用户搜索的时候,用同样的算法计算每个关键字的Hash,从而获得该关键字对应的信息存储位置,并迅速定位资源。这样也可以有效地避免因“中央集权式”的服务器(如tracker)的单一故障带来的整个网络瘫痪。实现DHT的技术/算法有很多种,常用的有Chord、Pastry、Kademlia等。其中,通过节点值获取每个节点与下一个邻近节点之间的距离,从而获得每个节点所需负责的值区间,此过程类似于建立路由表的机制。
2.3.2 内容分发网
内容分发网络CDN最开始是为提高Web内容的访问速度而提出的,随着互联网技术的发展,又开始支持流媒体内容(如视频)的分发。一般CDN体系结构包括中心和边缘两部分:中心主要包括原始服务器(Origin server)和内容分发系统(Content distributor),负责全局网络的负载均衡;边缘指的是部署在互联网边缘的代理服务器(Surrogate server),分布在不同的网络区域。原始服务器用来存储最初的内容,例如图片、视频、Web页面等。内容分发系统用来将原始服务器的内容分发到代理服务器中。代理服务器用来缓存分发的内容[188]。图2-2给出了一个世界范围内的CDN网络分布图。内容分发网络的基本原理是将原始服务器中的内容分发到代理服务器中,用户从距离最近的代理服务器中获取内容。代理服务器分布式部署在互联网边缘,用户就近访问这些代理服务器极大地提高了访问速度,同时也避免了访问瓶颈问题。另外,网络流量被分散到互联网的边缘区域,有效解决网络拥塞,最大限度地减轻了骨干网络的流量。
图2-2 CDN网络分布
内容分发网络是一种覆盖网络,代理服务器节点之间通过虚拟链路形成覆盖网络。内容分发网是为缩短用户与内容服务器之间的距离,缓减网络拥塞而被研究和部署的。内容服务器节点负责缓存用户频繁访问且感兴趣的数据,接受用户的请求并向用户发送数据。为了使内容服务器与提出请求的用户节点之间的距离最近,CDN采用重定向机制,大大提高了网络的访问速度,减少了网络的整体流量,缓减了拥塞程度。例如,当Web用户点击一个内容分发服务的URL时,内容分发网实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应的时间等信息,将用户的请求重定向到离用户最近的内容服务器。此外,CDN还采取多点备份的机制提高可靠性。目前,CDN已经得到广泛的应用,如Akamai[26]、Netli[27]、Accelia[28]、EdgeStream[29]、Globule[30]、CoDeeN[31]等。
2.3.3 应用层多播
多播是一种一对多或多对多的数据通信模式。随着互联网的进一步普及,多媒体应用日益旺盛,特别是大规模数据分发,例如,视频点播、电视/电话会议、网络聊天室、大规模网络游戏等。IP多播是为适应这些需求而被提出的,是对互联网的“单播、尽力而为”模型的重要扩充。IP多播的主要功能在路由器上实现,通过在路由器之间建立多播树且合理地进行组成员管理,来减少带宽浪费和降低服务器的负担。然而,当多播数目增大时,路由器中的路由表急剧膨胀,增大了路由器的负担。其次,由于互联网的层次化布局,ISP之间的商业利益关系,目前IP多播只能应用在局部范围内,即AS内部或一个ISP内部得到部署。覆盖网多播作为一种替代的方法近年来得到广泛应用[32][33][34][35][36]。覆盖网多播建立在应用层,而非网络层,如图2-3所示。
图2-3 覆盖多播路由示意图
覆盖网多播中,在参与多播的终端节点之间建立多播分发树,在分发树的覆盖节点之间建立跳到跳(hop-by-hop)单播隧道完成数据分发。在覆盖网多播中,多播成员管理以及数据的复制与转发都是由覆盖网节点(终端主机或服务器)完成,下层物理网络只需提供基本的端到端的单播传输服务,即保证每条覆盖链路所对应的一条下层物理路径的通信即可,保持了互联网原有的简单、不可靠、单播的转发模型。因此,覆盖网多播具有的优势如下。
(1)可部署性:覆盖网多播不需要改变现有IP网络的基础设施,在物理网络仅保持原有单播通信功能。即使跨越不同的ISP进行多播通信,仅需要在应用层通过隧道机制实现,便于大规模部署。
(2)可扩展性:与IP多播中路由器需要维护多播组的状态不同,在覆盖网多播中,数据的复制、转发、组成员管理和状态维护在终端节点完成,保持了IP层结构简单,传输快速的特点,使网络能够支持大量的多播组。
(3)灵活性:可以根据用户的需求定制服务,建立相应覆盖网多播拓扑,保障QoS需求,实现安全、计费等服务,灵活性好。
覆盖网多播的缺点:由于采用单播方式进行数据分发,存在一定的冗余数据;端系统的稳定与否直接影响多播的可靠性;终端节点的性能(CPU和带宽)差异可能导致延迟、转发速率等性能的下降。
2.3.4 增强服务质量(QoS)
现有的IP网络体系结构采用“漏斗”式模型,使业务与承载分离,提供“尽力而为”服务。这一模型对互联网的蓬勃发展起到了积极作用,但在这个体系结构中,服务质量(QoS)难以得到有效保障。随着互联网的发展,多种新型业务对QoS提出了新的要求,尤其是多媒体传输业务对时延、带宽和可靠性的要求越来越高。为此,科研人员对IP网络采取了一系列补充措施,如综合服务(Integrated Service, IntServ)、区分服务(Different Service, DiffServ)以及多协议标签交换(Multiple Protocol Label Switching, MPLS)。这些措施需要改造现有互联网中的路由器,使其支持这些策略,增加了复杂度。从目前的运行状况看,出现了较大的部署困难。另一方面,域间路由协议BGP设计的先天性不足[37],导致BGP选择的跨域路径无论在延迟上还是吞吐率上都不是最优的;而且,一旦出现链路故障,往往需要花费几十秒甚至数几分钟的路由汇聚时间。此外,ISP之间的商业利益关系致使BGP无法完全按照最短路径策略来选择路由,容易引发路由膨胀现象[38]。
覆盖网络弥补了互联网这一缺陷,通过在IP网络上构建服务覆盖网络(Service Overlay Network, SON)的方式确保服务质量。服务覆盖网络是指为用户提供QoS保障的覆盖网络。通常情况下,服务覆盖网络的功能由提供QoS的服务器(固定节点)组成的相对固定的虚拟网络来实现[39][40],或根据用户的具体需求在覆盖节点上提供再配置功能,优化服务覆盖网络,使其代价最小[41]。例如,OverQoS[42]应用前向纠错(Forward Error Correction, FEC)和自动重传请求(Automatic Repeat reQuirement, ARQ)技术确保覆盖网络节点在转发数据过程中的服务质量。此外,在确保QoS的同时,为了提高SON的可扩展性,服务覆盖网络采用层次聚类机制构建其网络拓扑[25]。
另一方面,覆盖网络可以实现物理链路故障的快速恢复,降低端到端的时延,减少丢包率,为用户提供可靠性保障。研究表明,在跨域路由的情况下,存在30%左右的替代路径优于默认的IP路径[43]。本文中的“默认的IP路径”是指在物理网络中经路由算法所确定的端到端的IP路径。为了利用这一有益的互联网络特性,路由覆盖网被用来解决链路失效故障,避免因BGP收敛慢而引起的数据丢失。在路由覆盖网络中,在源和目的节点之间加入一个或多个覆盖网节点,构建一跳或多跳覆盖网路由路径。如何避免与失效的物理链路重叠是构建覆盖网路径的关键,通常在两个覆盖网节点之间进行积极探测,选择一条代价最小且能绕开失效链路的覆盖网路径[44]。在这方面,具有代表性的研究成果是RON[23]和SOSR[24]。RON是一个全网状拓扑覆盖网络,选择覆盖路由时,探测覆盖网节点,选择一个满足时延最小的节点作为中继节点构成一跳覆盖网络路径。由于采用全网状拓扑结构,RON具有可扩展差的缺点。不同于RON, SOSR并非提前建立备份的覆盖网络拓扑,是一种提供快速路由恢复的一跳覆盖网络路由机制。当默认的IP路径出现故障时,源节点随机选取k个覆盖网节点进行探测,选择时延最小的一个建立一跳覆盖网路径。当进行大规模数据传输时,可能在中继节点出现拥塞,这也是SOSR需要克服的问题。
2.3.5 云计算数据中心网
作为云计算的基石,虚拟化技术在最近几年取得了突飞猛进的发展。尤其是计算资源和存储资源的虚拟化技术日益成熟,虚拟计算负载的高密度增长,以及虚拟机在不同物理机之间的快速部署和动态迁移,在一定程度上对现有网络提出了新的挑战。具体表现如下。
(1)二层网络边界限制:虚拟机迁移前后要求其IP地址、MAC地址等参数保持不变,这增加了接入交换机MAC地址学习的难度,并对缓存空间提出了很高的要求;另一方面,虚拟机需要在不同子网间迁移,而传统的VLAN技术只能在同一子网内运行。
(2)VLAN数量不足:VLAN帧头内仅定义了12位二进制标签位,一共可表示4096个VLAN,扣除预留的VLAN0和VLAN4096,实际上可分配的只有4094个。然而,云计算数据中心部署了大量虚拟机,4094个VLAN可能不能满足大规模数据中心的需求。
(3)不能适应大规模租户部署:云计算数据中心内承载了不同租户的业务,租户与租户之间要求进行安全隔离,传统的VLAN技术无法做到这一点。如果启用三层网关以及地址翻译等策略,会增加额外的运维成本和复杂度。此外,如果在大规模数据中心内部署VLAN技术,会使广播风暴在整个数据中心内泛滥,消耗大量带宽。
利用覆盖网络技术,可以解决上述问题,实现传统网络向网络虚拟化的深度延伸,实现真正的云网融合,从而构建新架构下的数据中心网络。如图2-4所示,服务器的网络操作系统内虚拟交换机上支持了基于IP的二层Overlay技术,虚拟机的二层访问直接构建在Overlay之上,物理网不再感知虚拟机的诸多特性,形成了跨数据中心的覆盖网络。
图2-4 数据中心间的覆盖网络示意图
具体地讲,数据中心的覆盖网络是应用覆盖网络技术,将二层报文封装在IP报文内(即MAC-in-IP),通过隧道机制实现跨数据中心的“大二层”通信。目前实现这一功能的协议有VXLAN、NVGRE和STT,其中最成熟的是VXLAN。VXLAN(Virtual eXtensible Local Network)是由全球最大网络设备公司Cisco、最大的虚拟化软件公司VMware、最大的第三方网络设备芯片公司Broadcom、网络新秀公司ARISTA等联合向IETF(Internet Engineering Task Force)提出的一项草案。VXLAN运行在UDP上,采用24比特标识二层网络分段,称为VNI(VXLAN Network Identifier),类似于VLAN ID作用;利用叠加在三层网络之上的覆盖网络传递二层数据包,实现了可以跨越三层物理网络进行通信的二层逻辑网络,突破了传统二层网络中存在的物理位置受限、VLAN数据有限等阻碍,同时还使得网络支持服务的可移动性,大幅度降低管理成本和运营风险。
2.3.6 覆盖网络在SDN中的应用
近年来,随着SDN和虚拟化技术的发展,覆盖网络技术与SDN相互融合,相互借鉴。文献[45]将SDN和NFV(Network Functions Virtualization)的思想引入NGSON(Next Generation Service Overlay Network)[46]中,加强了NGSON的物理网络意识,提高服务组合和内容分发能力。覆盖网络思想也被应用到SDN中,形成SDN Overlay Network,用来解决互联网领域,尤其是网络虚拟化方面的一些重要问题[47][48]。例如,文献[49]设计并实现了一个试验平台Scotch,解决SDN中控制平面集中式控制导致的OpenFlow交换机与SDN Controller之间因突发流量可能产生的瓶颈问题。如图2-5所示,Scotcht构建vSwitch全网状覆盖网络,将vSwitch的控制平面与物理交换机的数据平面相结合,缓解物理交换机的压力,提高SDN网络的可扩展性,增强其处理突发流量的能力。
图2-5 Scotch覆盖网络结构示意图