智慧服务云网络
上QQ阅读APP看书,第一时间看更新

1.5 智慧服务云上网的数据传输

1.5.1 多路径路由及转发技术

现代数据中心网络的新型拓扑结构(如VL2、DCell等)链路密集、 路径冗余度高,并且提供节点之间的多条路径连接。通过在多条不同的路径之间分配和平衡流量,可以减少网络拥塞、提高网络资源利用率。传统的 L2/L3/L4技术已不能满足网络的发展需要,多路径技术逐渐成为人们关注和研究的热点。

在多路径路由协议的应用上,如思科公司的 EIGRP(Enhanced Interior Gateway Routing Protocol,加强型内部网关路由协议)等协议具有等价负载均衡能力。在多路径路由的理论研究上,主要的模型有拥塞最小[39]、 最大流[40]、 延迟最小[41]、 路径不相交[42,43]等。无论是实际应用的,还是理论研究的多路径路由算法,都存在诸多缺陷,比如在实际网络运行中,非等价路径和等价路径往往是交融的,这就使得现有资源利用率较低;至于理论研究中的一些算法[39-43],由于网络状态的动态变化而很难测量到实际网络运行的情况,对于路径不相交模型尽管避免了环路,但存在部分路径遗漏的问题。

在多路径转发协议的应用上,致力于实现二层多路径的标准化组织主要有 IETF和IEEE,其标准分别是TRILL(Transparent Interconnection of Lots of Links,多链接透明互联)和SPB(Shortest Path Bridging,最短路径连接),二者的目的都是简化网络拓扑,在数据中心网络的边缘和核心之间形成网状网,都采用IS-IS作为路由协议。思科公司在TRILL的制定过程中还发布了FabricPath技术,可以将其看作“增强版的TRILL”,不再需要运行生成树协议(Spanning Tree Protocol,STP),没有链路被阻断,支撑了服务器之间迅猛增加的横向流量。同时,FabricPath 能够实现类似三层的路由功能,支持二层网络的平滑扩展。这种方法由于缺乏路径负载信息和流量矩阵信息,可能导致局部拥塞,或者仍需要集中的控制,难以适用于大规模数据中心网络。

1.5.2 新型传输控制协议

数据中心之间的互联网络具有流量大、突发性强、周期性强等特点,需要网络具备多路径转发与负载均衡、网络带宽按需提供、集中管理和全局控制的能力。传统的TCP协议主要针对Internet而设计,不能充分利用数据中心网络特性,直接运用于数据中心网络时面临功能和性能等方面的不足,使得新型的数据中心网络传输控制协议成为新的研究热点。当前的研究主要集中在拥塞控制机制和软超时保证两个方面。总体而言,单纯的拥塞控制机制虽然能够提高网络吞吐率,但由于对软超时不敏感,可能导致部分流因未得到及时传输而软超时,最终影响到应用的性能;而软超时敏感的传输控制机制虽能够根据超时时限和网络拥塞程度进行流的优先调度,但目前的研究仍都需要上层应用显式地提供超时信息,这容易导致带宽资源被恶意抢占,且许多技术都需要修改网络中间设备,这增加了部署难度。

与互联网为所有应用提供公共的传输协议不同,云计算数据中心往往运行不同的典型应用或者采用特定的拓扑结构,因此为不同的数据中心应用或者特定结构提出不同的定制传输协议也是近年来的研究热点,比较有代表性的协议是D3[44]和DCTCP[45] (Data Center TCP,数据中心传播控制协议)。其中D3针对实时应用,通过分析数据流的传输数据大小和完成时间需求,为每个流显式分配传输速率。当网络资源紧张时,主动断开某些无法按时完成传输的数据流,从而保证更多的数据流能按时完成传输,增加数据中心的吞吐率。

1.5.3 多路径传输控制技术

现有 TCP 协议的单路径传输特性和数据中心网络结构的多路径支持之间并不适应。基于此,文献[46]通过理论分析认为数据中心网络应由 TCP 自然演进到 MPTCP (Multipath TCP,多路径TCP)[47,48]。MPTCP会在同一对源端和目的端之间建立多个连接,源端将数据拆分成若干部分,使用不同的连接同时进行数据传输。MPTCP 在连接建立阶段,要求服务器端向客户端返回服务器端所有的地址信息,用于客户端建立连接。

数据中心内部多个子流共享复用链路资源,各个子流维护自己的序列号和拥塞窗口,同样采用AIMD机制维护拥塞窗口,但各个子流的拥塞窗口增加与所有子流拥塞窗口的总和有关[48],从而能够保证将拥塞链路的流量往拥塞程度较轻的链路上转移。MPTCP通过联合拥塞控制来解决TCP公平性问题,从而均衡各子流的数据传输[49]。联合拥塞控制在均衡数据流量时未考虑分组丢失率对吞吐量的影响,在分组丢失率较大的网络环境中不能有效地均衡流量。在并行数据传输中由于各条路径的参数不同,不合理的路径选择会影响其传输性能[50],但传统的静态路径选择方法会减少传输路径的数量,降低并行数据传输的顽健性。针对联合拥塞控制未考虑分组丢失率对吞吐量的影响,以及传统静态路径选择方法降低并行数据传输顽健性的问题,文献[51]提出了一种基于马尔科夫决策过程的 MPTCP 动态路径选择方法。该方法依据各路径窗口大小动态地选择路径,在数据发送时根据最优策略选用不同的路径进行传输,综合考虑了往返时延和分组丢失率对吞吐量的影响,可以更加有效地均衡和切换流量[52]

本书作者在早期的研究中曾提出过cmpSCTP多路径协议[53]、路径无缝切换[54]、基于N-Packets-Pair探测包结构多路径瓶颈测量方法[55]、流量汇聚[56]、多路径选择[57,58],以及避免数据分组乱序的分割调度算法OSIA[59]等一系列的多路径解决方案。基于这些多宿主的方案可以充分利用每条路径的资源,力图实现整体传输吞吐量的最大化。项目组还加入了叠加网络与多宿主的结合,增加了传输路径之间的差异性,并引入博弈论研究了不同路径资源提供[60],探索了普适计算环境下多路径传输[61]的基本理论。

1.5.4 软件定义多路径

传统网络的路由计算是网络节点以自己为中心计算到达目的地的一条路径,这种模式很难获得全网最优路由,只能进行局部最短路径计算;另一方面,网络拓扑的获取和维护依赖于分布式的网络拓扑传播机制(如OSPF、ISIS协议拓扑传递),更新速度缓慢。当网络拓扑发生变化,而新的拓扑还未更新到整网时,重新计算的路由仍然会按照过时的网络拓扑进行转发。针对SDN多路径路由的研究,上文提到的Hedera在为大象流预留路径时,采用ECMP(Equal-Cost Multipath Routing,等价的路径)方式的多条路径调度,提高数据分发传输速率。Andrew等人提出了DevoFlow[62]方案,根据概率分布将报文输出到特定端口中,快速重路由给交换机指定了一条到多条备用路径,通过安装不同优先级的流表来实现,从而在链路失效时立即转用备用路径。

针对SDN多路径传输的研究,研究人员已经探索了OpenFlow和MPTCP的初步结合。最早的工作由 Van Der Pol 等人[63]实现,他们完成了在 OpenFlow 网络中以MPTCP协议作为传输协议的流量工程试验,但他们的工作没有使用MPTCP的特性进行选路,仅使用ECMP和TRILL协议进行分配流量。随后,Sonkoly等人使用OpenFlow网络作为测试平台[64],利用OpenFlow网络拓扑发现能力为MPTCP的第一条子流选取出了最佳路径,并且严谨地论述了第一条子流的部署和提高网络性能之间的相关性。Michael Bredel等人对MPTCP在大二层OpenFlow网络的负载均衡进行了讨论[65],给定源节点和目的节点之间存在的链路不相关路径的一个集合,在这些路径上建立MPTCP连接,分析了发送数据时选取路径的不同算法的性能表现。SSW Lee等人在文献[66]中实现了基于 SDN 的大规模多租户数据中心网络,并提出了一种轻量级MPTCP子流路径提供机制,实验结果显示这种基于拥塞感知的路由机制比基于ECMP的性能有明显提升。文献[67]基于SDN智能路由实现了一个响应式(Responsive)的MPTCP系统,支持端系统根据网络状态进行动态流量调度。

1.5.5 资源联合优化

在大多数SDDC研究成果中,计算资源和网络资源仍是两个独立的调度对象。数据中心服务器的资源优化只是关注自身的软/硬件资源(如 CPU、内存、分布式计算模型等);而对数据中心网络而言,由于其共享的性质,网络中的流仍是公平竞争的。这样,互不相关的优化方案有可能对于整体性能的提升不起作用。近年来,针对数据汇聚、部署和调度问题已经出现了联合优化的探索。

在分布式计算应用中,对相同的数据执行汇聚操作能够减少网络中的传输流量。在SDDC网络中,借助服务器强大的计算能力及存储能力,可以实现对网络流量的深入分析处理和对数据流的网内存储、聚合等功能。Costa等人针对CamCube结构设计了一个类MapReduce的系统Camdoop[68],由每个发送节点传输的数据流各自沿着不相关的路由路径发送,类似于基于单播汇聚树传输的方法。Guo等人针对多对一汇聚传输提出了一个近似的优化算法[69],试图在每一层中寻找包含最少节点的服务器集合。

为提高数据密集型计算任务在云平台上的执行效率,有必要制定合理的数据部署策略。当前主流分布式数据管理系统(如GFS、Hadoop、Cassandra和Dynamo等)均采用一致性散列策略对数据进行划分,并基于散列结果对数据进行随机部署。该策略忽略了数据间的关联关系,导致大量不必要的数据传输任务。文献[70,71]提出针对科学计算任务的跨数据中心数据部署策略,采用聚类思想将关联紧密的数据划分到相同数据子集,并结合数据中心存储能力对其进行部署;但该策略忽略了数据中心带宽资源的差异,无法降低跨数据中心传输的时间开销。

针对数据中心大数据流量的调度问题,IBM沃森研究中心[72]将Hadoop作业调度和网络控制、拓扑和路由配置等综合考虑,在Hadoop运行时实时更改网络配置,以增加少量的配置开销带来巨大的性能提升。Jeongkeun Lee 等科研人员于2013年的SIGCOMM大会上提出了一个Atlas架构[73],SDN控制器可以根据数据流的应用类别信息来制定相应的转发决策,而不仅是根据数据分组的L2/L3/L4层信息,提高了SDN网络的智能能力。在2015年的SIGCOMM上还提出了PGA图[74]以表达网络策略与业务链(Service Chain),清楚地捕捉用户的内在需求和不确定因素,从而实现策略统一化与业务组合自动化。清华大学的李勇团队优化了虚拟机的迁移序列,并将带宽资源分配建模为混合整数规划问题求解[75]