一种适用于数据中心网络的应用层多播系统及方法与流程

文档序号:18629959发布日期:2019-09-06 23:29阅读:146来源:国知局
一种适用于数据中心网络的应用层多播系统及方法与流程

本发明属于数据中心网络领域,具体涉及一种适用于数据中心网络的应用层多播系统及方法。



背景技术:

高效的多播(即一对多通信或广播)支持在数据中心网络中非常重要。在当今的大数据系统中,越来越多的应用需要将大量数据广播到网络中的其它节点。这些应用程序包括:用于数据分发的发布订阅服务、web缓存更新、迭代优化算法的参数发布和收集以及hadoop中分段复制连接。因此,高效的多播算法可以显著提高应用程序的性能。

数据中心网络中多播的实现基本上都是基于overlay的。众所周知,由于网络管理的原因,数据中心的链路层和网络层多播通常被网络管理员禁用,所以本发明主要针对应用层多播算法。一个直观的选择是模仿类似bittorrent协议,它通过将数据拆分为数据块并执行块级调度来加速整个传播过程。不过这种方法严重增加了cpu“种子”的负载,而宝贵的cpu“种子”资源可以节省下来用于数据中心中更重要的计算。所以本发明将数据作为一个整体进行调度。



技术实现要素:

本发明针对现有技术中的不足,提供一种适用于数据中心网络的应用层多播系统及方法。本发明主要针对广泛存在于数据中心中的multicast通信模式,提出的应用层多播算法的调度目标是最小化平均多播完成时间(multicastcompletiontime,mcct)。本发明提出机架间优先传输(inter-rackfirstmulticast,irfm)多播算法,irfm“种子”算法充分利用了网络拓扑信息和数据中心网络带宽。通过分析算法,本发明给出了两种场景下算法最优参数建议。

为实现上述目的,本发明采用以下技术方案:

一种适用于数据中心网络的应用层多播系统,其特征在于,包括:多播主控制节点和从数据传输节点;每个从数据传输节点上都有一个多播代理模块,上层调用多播代理模块提供给应用程序的多播api,主机上的多播代理将多播请求发送到多播主控制节点上;

所述多播主控制节点上设有网络拓扑模块和多播调度模块,所述多播调度模块负责协调整个多播过程中的数据传输,基于网络拓扑模块已知的网络拓扑信息,多播调度模块首先指导多播源节点将数据发送到一个或多个目的节点,当某些目的节点接收到全部多播数据后,这些目的节点变为有多播数据的“种子”节点,然后多播调度模块指导所有的“种子”节点来代表多播源节点和多播源节点一起将数据传输给其他没有数据的多播目的节点;每次数据传输完成后,多播调度模块根据网络拓扑信息进行新一轮调度,直到所有的目的节点全部接收到数据。

为优化上述技术方案,采取的具体措施还包括:

进一步地,所述多播代理模块提供给应用程序的多播api为boolmulticast。

此外,本发明还提出了一种采用上述应用层多播系统的应用层多播方法,其特征在于,包括如下步骤:

第一步,多播源节点同时向m个机架内节点和n个其它机架节点传输数据;

第二步,当第一步数据传输完成,被传输数据的节点变成一个“种子”节点,该“种子”节点重复第一步的操作指导所有机架都至少有一份数据;

第三步,多播源节点和这些“种子”节点只向本机架内多播目的节点传输数据直到整个多播过程完成。

进一步地,当数据在向其他各个机架传播的过程中,实时监测源节点的上行链路带宽利用率,在上行链路利用率有空闲的情况下,多播源节点同时向机架内的其他目的节点传输数据以完全利用源节点的上行链路带宽。

进一步地,第一步中参数m、n的选择如下:

1)在理想场景下,网络中只有一个多播传输过程,该多播传输过程占有全部的网络资源,不存在其它的背景网络流量和其它多播传输过程干扰;最优参数选择为:m和n都为1;

2)在真实场景下,网络中存在一个或多个多播传输过程,并且网络中也存在其它背景网络流量;最优参数选择为:n等于所有多播目的节点所在的机架数量减1,m根据多播源节点上行链路带宽利用率自适应调整。

进一步地,参数m、n的选择过程如下:

1)在理想场景下,不失一般性,假定传输的过程按轮进行;假设第一轮传播过程为多播源节点同时向k个其它机架进行数据传输;同时假定在没有网络竞争的条件下,两个节点之间数据传输时间为1个时间单位;由于没有背景网络流量干扰,同时向k个节点传输数据网络带宽将会被k条数据流平分,所以第一轮的传输时间为k;当第一轮数据传输完成,现在网络中一共有k+1个节点有需要多播的数据,即一个源节点和k个“种子”节点;在第二轮传输完成时,集群中有(k+1)2个节点有需要多播的数据;以此类推,如果将数据多播到m个不同的机架,则有

(k+1)t=m

其中,t代表了需要的总的数据传输的轮数;因此,为了将数据多播到集群中所有n个节点,需要的时间t为

t=logk+1n·k

从以上等式可知,由于集群中总的节点数n是一个常量,故多播完成时间t随着每一轮多播并发传输数k的增大而增大;由于算法的目标是最小化t,所以多播并发传输数k应为1;即当多播传输过程开始时,多播源节点首先向其它机架一个多播目的节点进行数据传输;当该轮数据传输完成后,这两个有多播数据的节点再同时向其它机架没有多播数据的目的节点进行新一轮传输;就这样以此类推,按照这个过程直到所有机架至少有一个目的节点都有多播数据所耗时最少;故当网络中没有背景流量时,最优参数选择为m和n都为1;

2)在真实场景下,假定网络中有背景流量,且网络背景流量和多播过程中数据流平分网络带宽;由于网络中背景流量和多播的数据流平分网络带宽,尽可能选择足够大的n以使多播传输获得足够多的带宽;所以n等于所有多播目的节点所在的机架数量减1,除了多播源节点所在的机架;

对于参数m的选择,采用启发式的方法;多播源节点和多播过程中的“种子”节点周期性地监控自己的上行链路带宽利用率,一旦发现由于机架间网络拥塞导致自己的上行链路带宽有空余,该节点就增加一条向本机架内的传输数据流。

本发明的有益效果是:本发明针对数据中心网络中应用层多播问题,提出了机架间传输优先的多播算法。相比于其它多播算法(例如:并行传输多播算法、顺序传输多播算法、随机传输多播算法等),本发明提出的多播算法比以上多播算法快3.7-11.2倍。

附图说明

图1是应用层多播系统架构图。

图2是数据中心网络拓扑图。

图3是机架间优先多播算法示意图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。

图1是应用层多播系统的系统架构图。为了管理和优化整个多播过程中的数据传输,本发明设计了如图1所示的多播系统。该系统的主要思想是将多播控制平面和数据平面分离,包含多播主控制节点和从数据传输节点。每个从节点上都有一个多播的代理模块。该代理模块提供给应用程序的多播api为boolmulticast(sourcenode,multicastgroup,data)。上层需要多播数据的应用程序只需要调用该api,然后该主机上的多播代理便会将多播请求发送到多播调度的主节点上。多播调度主节点上有两个模块:网络拓扑模块和多播调度模块。我们假定网络的拓扑信息已经事先知道,利用网络的拓扑信息,本发明提出的应用层多播算法可以高效调度整个多播过程中的数据传输。多播调度模块负责协调整个多播过程中的数据传输。基于网络拓扑模块已知的网络拓扑信息,多播调度模块首先指导多播源节点将数据发送到一个或多个目的节点。当某些目的节点接收到全部多播数据后,这些目的节点变为有多播数据的“种子”节点。然后多播调度模块指导所有的“种子”节点来代表多播源节点和多播源节点一起将数据传输给其它没有数据的多播目的节点。在每次数据传输完成后,多播调度模块会根据网络拓扑进行新一轮调度,直到所有的目的节点全部接收到数据。

图2是我们在实施过程中采用的数据中心网络拓扑图。本发明提出了机架间优先传输的多播算法(inter-rackfirstmulticast,irfm)。irfm利用了在不同机架的两个节点的数据传输时间远远大于在同一机架下的两个节点的数据传输时间这个事实。irfm算法的核心思想是首先将数据传输到目的节点所在的机架,以保证在最短的时间内,使每个目的节点所在的机架至少有一份数据。然后这些数据在机架内进行传输,这不仅增加了整个传输过程的并行度以大大减小多播任务完成时间,而且可以减缓机架之间的带宽压力以做更有价值的事。

由于机架间链路很可能成为网络传输的热点进而导致网络拥塞,所以在数据向各个机架传播的过程中,也必须充分利用正在上传数据的节点的上行链路的带宽。本发明采用了一个启发式方法来解决这个问题。当数据在向其它各个机架传播的过程中,会实时监测源节点的上行链路带宽利用率。在上行链路利用率有空闲的情况下,多播源节点可以同时向机架内的其它目的节点传输数据以完全利用源节点的上行链路带宽。

图3是机架间优先传输应用层多播算法示意图。

第一步,多播源节点同时向m个机架内节点(同一个机架内的深色节点)和n个其它机架节点(不同机架中的深色的节点)传输数据。

我们分别在两种场景下讨论机架间优先多播算法的参数m和n如何选择。

第一种场景为“理想场景”。在这种场景下,网络中只有一个多播传输过程,该多播过程占有全部的网络资源,不存在其它的背景网络流量和其它多播传输过程干扰。在理想场景下,机架间优先多播算法的最优参数选择为:m和n都为1。证明如下:

不失一般性,假定传输的过程按轮进行。假设第一轮传播过程为多播源节点同时向k个其它机架进行数据传输。同时假定在没有网络竞争的条件下,两个节点之间数据传输时间为1个时间单位。由于没有背景网络流量干扰,同时向k个节点传输数据网络带宽将会被k条数据流平分,所以第一轮的传输时间为k。当第一轮数据传输完成,现在网络中一共有k+1个节点有需要多播的数据,即一个源节点和k个“种子”节点。在第二轮传输完成时,集群中有(k+1)2个节点有需要多播的数据。以此类推,如果将数据多播到m个不同的机架,则有

(k+1)t=m

其中,t代表了需要的总的数据传输的轮数。因此,为了将数据多播到集群中所有n个节点,需要的时间t为

t=logk+1n·k

从以上等式中可以看出,由于集群中总的节点数n是一个常量,故多播完成时间(multicastcompletiontime,mcct)t随着每一轮多播并发传输数k的增大而增大。由于算法的目标是最小化t,所以多播并发传输数k应为1。即当多播传输过程开始时,多播源节点首先向其它机架一个多播目的节点进行数据传输。当该轮数据传输完成后,这两个有多播数据的节点再同时向其它机架没有多播数据的目的节点进行新一轮传输。就这样依次类推,按照这个过程直到所有机架至少有一个目的节点都有多播数据所耗时最少。以上分析也可以扩展到对机架内传输的分析上。综上,当网络中没有背景流量时,irfm“种子”算法的最优参数选择为m和n都为1。

第二种场景为“真实场景”。在这种场景下,网络中可以存在多个多播传输过程,并且网络中也存在其它背景网络流量。在真实场景下,irfm“种子”算法的最优参数选择为:n等于所有多播目的节点所在的机架数量减1(除多播源节点所在的机架),m根据多播源节点上行链路带宽利用率自适应调整。证明如下:

在真实场景下,假定网络中有背景流量,且网络背景流量和多播过程中数据流平分网络带宽。由于网络中背景流量和多播的数据流平分网络带宽,最自然的想法是尽可能选择足够大的n以使多播传输获得足够多的带宽。所以让n等于所有多播目的节点所在的机架数量减1(除了多播源节点所在的机架)。

对于参数m的选择,本发明采用启发式的方法。多播源节点和多播过程中的“种子”节点周期性地监控自己的上行链路带宽利用率。一旦发现由于机架间网络拥塞导致自己的上行链路带宽有空余,该节点就增加一条向本机架内的传输数据流。这有助于最大化有多播数据的“种子”节点的带宽利用率。

第二步:当第一步数据传输完成,被传输数据的节点变成一个“种子”节点,该“种子”节点重复第一步的操作直到所有机架都至少有一份数据。

第三步:多播源节点和这些“种子”节点只向本机架内多播目的节点传输数据直到整个多播过程完成。

本发明的工作主要受到数据中心网络中存在于大量应用中的多播过程的启发。本发明实现了应用层多播api。机架间优先传输的多播算法可以充分利用数据中心网络的带宽和拓扑信息。

实验证明本发明提出的多播算法irfm在数据中心网络中比其它多播算法快3.7-11.2倍。

需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1