FlowDCN:软件定义数据中心网络中的流量调度


摘要

软件定义网络(SDN)通过可编程性和解耦层为网络提供智能。如果流量在软件定义的数据中心网络中频繁变化,则需要动态流量调度。本文通过考虑数据中心网络基于主机和基于链路的容量,对现有的数据中心网络动态流调度算法进行了改进。该算法在pod 4(16台主机作为服务器)的FAT树拓扑上实现,并将所获得的网络性能与现有的使用RYU控制器的动态流调度进行了比较。与Hedera相比,该算法在不饱和和饱和热点流量下分别提高了19.33%和5%的平均吞吐量。此外,该算法对不饱和和饱和热点流量的带宽利用率分别达到75%和70%以上,高于现有的动态流量调度算法。

一、前言

软件定义网络(SDN)是一种新兴的网络架构,其中网络控制平面与数据平面解耦,并且网络可以通过控制平面直接编程。此外,SDN提供了虚拟的集中控制和移动性,而传统网络提供了对网络和静态网络配置的手动控制。另一方面,SDN提供了具有跨层信息的动态全局控制。SDN层通过接口连接,并且每一层都具有特定的功能。如图1(a)所示,SDN架构[1]有3个不同的平面,如数据平面、控制平面和管理平面。在图1(b)中,各层被划分为不同的子层,每个平面都与南向界面和北向界面等界面相连。系统设计架构分为硬件、网络操作系统(NOS)和网络应用程序,如图1(c)所示。SDN的概念是通过虚拟集中的方式访问网络基础设施并管理数据平面中的转发设备。SDN使用基于OpenFlow[2]、[3]、[4]的交换机,这些交换机可由控制器编程,控制器将处理所有网络管理任务,如流量管理、路由路径和负载平衡。

现在,任何网络都有动态需求,在不降低网络性能的情况下处理这些需求是一个巨大的研究挑战。动态需求产生新的动态流量,在网络中提供连续的流量。网络流量影响网络的当前状态和网络性能。流量工程[5]是一个网络术语,包括流量管理、容错、拓扑更新和流量分析。因此,SDN是一种在不降低网络性能的情况下管理动态流量的解决方案,并且易于管理和维护网络,因为基于SDN的网络是可编程的,由控制器管理。
在这里插入图片描述
在数据中心网络(DCN)中,数据的快速增长和可扩展性是管理的挑战性任务。DCN有三种不同的拓扑结构,如三层结构、DCell和FAT树拓扑。三层架构是DCN中常见的架构,其中有三层不同的交换机可用,如核心、边缘和接入交换机服务器通过接入层交换机连接。三层体系结构的局限性在于可扩展性、容错性和横截面带宽。另一个DCN拓扑是DCell,其中单个服务器与所有其他服务器连接。DCell的限制是横截面带宽和网络延迟。与上述拓扑(如三层架构和DCell[6])相比,具有N个pod(其中N是核心交换机的数量)的FAT树拓扑提供了更好的网络性能,如高吞吐量和低延迟。

软件定义网络(SDN)通过DCN中的可编程性(即控制器)提供智能以管理网络。在这项拟议的工作中,使用了带有pod 4的DCN,它提供了组织良好的网络拓扑(如图2所示),具有16个主机和20种不同类型的交换机,如4个核心交换机、8个聚合交换机和8个边缘交换机。在传统的DCN拓扑中,流管理是一项复杂的任务,但SDN控制器的集中性使得处理DCN的路由和流管理变得容易。

此外,本文的第二节简要介绍了SDN中客户端-服务器架构和DCN拓扑的流调度和负载平衡。第三节提供了流量调度的拟议工作。第四节给出了实验结果,并与现有算法进行了比较。第五节对论文进行了总结和展望。

二、相关工作

根据需求和应用,每个网络都有特定的拓扑结构。在客户端-服务器体系结构中,专用主机可用作服务器,其余主机在该网络中用作客户端。客户端-服务器体系结构的限制是,当每个服务器的处理能力无法处理多个客户端的请求时,网络中的流量就会增加。在分布式拓扑中,资源分布在不同的网络环境中,但实际上它们是相互连接的。然而,分布式拓扑的限制在安装、系统管理和网络延迟方面是复杂的。基于FAT树的数据中心网络(DCN)[6]克服了客户端-服务器架构的限制,因为在DCN中,每个主机既是客户端又是服务器,而且它还克服了分布式拓扑的限制,这是因为FAT树拓扑最大限度地减少了网络延迟。本节是关于客户端-服务器体系结构和使用SDN的DCN拓扑中的网络性能的文献综述。

客户端-服务器体系结构:如果网络基础结构仅限于服务器和客户端,则该拓扑结构被视为客户端-服务器架构。基于客户端-服务器架构,提出了随机动态负载平衡方法[7],以平衡不同服务器的流量负载。这种方法提供了负载平衡,以最大限度地提高服务器在网络中的使用率。Round Robin算法[8]为流量管理和负载平衡提供了更好的性能。与随机策略[7]相比,循环算法[8]通过流量负载的均匀分布提高了性能。传统的Dijkstra负载平衡算法只考虑节点权重(主机负载),其中基于节点权重(在主机上的负载)和边缘权重(在链路上的负荷)的Extended Dijkstra’s负载平衡算法[9]被认为是提高网络性能的输入。与传统的Dijkstra算法相比,在Abelian拓扑结构上使用客户端-服务器架构实现的扩展Dijkstra的负载平衡算法[9]最大限度地减少了端到端延迟。类似地,LBBSRT[10]基于两个参数(如服务器响应时间和用户请求)提供负载平衡。与Round Robin算法[8]和随机方法[7]相比,LBBSRT[10]降低了网络成本,在最短的响应时间内提供了对用户请求的访问,并更好地利用了资源。

上述现有工作是基于应用程序需求或特定的客户端-服务器体系结构,而文献调查中所做的工作最适合特定的客户端/服务器体系结构。

DCN拓扑:正如在客户端-服务器体系结构中所讨论的,现有的工作是基于客户端请求和服务器响应时间的。在DCN拓扑中,集中式控制器可用于处理客户端请求。这些动态请求可能会造成交通堵塞。因此,流管理和负载平衡是提高DCN拓扑性能的重要任务。为DCN提出了动态负载平衡[11],最大化了吞吐量并最小化了延迟。针对DCN拓扑提出了DLPO算法[12],与动态算法[11]相比,该算法提高了性能。所提出的算法使用带宽和当前链路负载以及带宽利用率参数作为结果测量参数来实现。LABERIO[13]提出了单跳和多跳,其中单跳只考虑单路径,多跳考虑多跳进行传输。该算法将当前网络状态和跳数作为输入。与循环[8]方法相比,LABERIO[13]方法提高了网络吞吐量并最小化了传输时间。类似地,动态负载平衡(DLB)路由算法[14]提出了用于处理动态流量的动态负载平衡方法。与静态负载均衡相比,该算法提高了性能,并将UDP数据包延迟和带宽比参数作为结果测量参数。在文献中,与LABERIO[13]相比,动态负载平衡(DLB)路由算法[14]在FAT树拓扑中的吞吐量提高了18.9%。

****Hedera**提出了基于优先级的需求估计、全局第一拟合算法和模拟退火的动态流量管理。在Hedera[15]中,模拟退火方法在主机数量较少的情况下表现更好。Hedera[15]在网络有限的流上实现,其中网络使用分配的带宽进行流管理和路径选择。然而,没有考虑基于主机访问限制和处理能力的主机受限流。在Hedera[15]中,如果带宽和流量负载都很高,那么流量管理本质上是复杂的。

可以观察到,所有的流量管理和负载平衡算法都考虑了网络链路容量,而网络中的流量则基于dynam的链路容量和节点容量

三、主要内容

针对基于SDN的DCN FAT树拓扑,提出了一种先进的动态流调度算法(算法1),以最大限度地利用基础设施,提高网络性能。本节提出了一种具有系统架构的流量管理算法。

A.系统架构

系统架构由两个模块组成:

网络监控:任何网络都需要持续监控,以检查每个设备的状态以及网络架构中的架构变化。此模块可发现交换机、节点(主机)、端口、流表条目的可用性以及拓扑中每个节点的当前负载。

网络监控模块将通过检查主机上的点击次数(HH)和交换机上的点击数量(SH)来更新交换机和主机的当前负载、可用性。
S M = ( S F / S T ) ∗ 100 H M = ( H F / H T ) ∗ 100 \begin{gather*} {S_M} = ({S_F}/{S_T}) * 100\tag{1} \\ {H_M} = ({H_F}/{H_T}) * 100\tag{2}\end{gather*} SM=(SF/ST)100HM=(HF/HT)100(1)(2)
等式1中开关的最大容量(SM)的值。这里,SF是空闲交换机的数量;ST是开关的总数。类似地,主机的最大容量(HM)在等式2中计算。这里,HF是空闲主机的数量,HT是主机的总数。如图1所示,使用了带有pod 4的胖树拓扑,因此交换机总数(ST)为20,主机总数(HT)为16。

流分配:网络监控模块在将新流分配到特定路径后提供有关拓扑的当前状态的信息。该模块根据先前流分配路径的状态以及特定交换机和主机的阈值来选择路径。

在流量分配步骤中,采用流量受限和主机受限相结合的方法来减少网络中的拥塞。所提出的算法在FAT树拓扑中是有效的,而Hedera[15]在不适应所有流方面有局限性。主机访问限制和处理能力由特定交换机和主机的阈值决定。

如上所述,所提出的系统具有两个步骤,这提供了一种有效的方式来处理热点业务,并通过应用主机容量参数来优化FAT树拓扑来增强现有系统。

B.建议的算法

所提出的算法基于当前网络状态和网络监控模块提供的信息来工作。每当新的业务负载或流量到达控制器时,所提出的算法都能有效地处理它。
在这里插入图片描述
所提出的算法调用allocate()过程进行流管理,在此之前,系统检查每个节点(交换机和主机)的当前负载,并计算每个节点(SM和HM)的阈值。表I显示了算法的输入,其中SM和HM使用等式1和等式2计算,而HCS、HCL、SCS、SCL、HF、HT、SF、ST由网络监控模块提供。当新的流IL到达allocate()过程时,启动流分配并设置主机命中HH,交换机命中SH计数器的值为0。网络监控模块提供开关电流状态和电流负载,以比较开关的阈值,如果电流负载小于阈值,则会选择该开关。对于主机选择过程的相同场景,如果当前负载小于阈值,则新流IL将被分配给当前主机负载HL。此过程将继续选择不同的流分配路径,每次将新流分配给主机时,都会将新流条目添加到流表中。
在这里插入图片描述
假设当前负载超过交换机的最大容量(SM)值,则算法将选择具有较低当前负载的新交换机。例如(如图3所示),如果控制器先前决定了第一传输路径h1-A-B-C-D-E-h16。下一次,对于从h1到h16的相同流量,将检测交换机的当前负载。如果链路带宽可用,但特定交换机的当前负载值大于交换机的最大容量(SM)值,则该特定交换机将被忽略,并且将选择具有新路径的新交换机,例如新路径将是h1-A-X-Y-Z-E-h16。另一方面,基于Hedera[15]的方法在网络中传输路径数量较少的情况下提供相同的路径,并创建用于流调度的传输路径模式。因此,所提出的方法的优点是通过使用不同的路径来有效地利用基础设施进行频繁传输。此外,所提出的算法没有生成基于循环的重复路径。
在这里插入图片描述

四、实验与性能评估

本节是关于拟议系统的实施以及与现有工作的比较结果分析。本节分为两个小节:实验设置和性能评估。

A.实验设置

为了在热点交通中提供高效的流量管理系统,我们在一个基于仿真的系统中实现了所提出的算法。利用RYU[16]SDN控制器在Ubuntu 16.04 LTS操作系统环境中对所提出的系统进行了仿真。基于python语言的Mininet[17]模拟器提供了不同的SDN拓扑。流量生成工具,即iperf[18],用于分析网络流量。RYU是基于OpenFlow[2][3][4]的控制器,提供基于python语言的应用程序开发。Minnet和RYU控制器在不同的终端中执行,并通过本地IP地址连接,以提供Mininet和RYU控制器之间的接口。

B.绩效评估

本节评估了使用SDN的FAT树DCN拓扑的性能,其中包括网络性能参数,如网络吞吐量和带宽利用率。

所提出的算法在上述场景中被模拟长达120秒。从仿真结果中可以观察到,使用所提出的流量分配算法,网络性能提高到仿真时间的40秒,之后系统达到饱和。从实验结果可以看出,与Dijkstra算法和Hedera[15]相比,该算法克服了交通负载调节问题,并在热点交通方面给出了改进的结果。基于两个参数对结果进行比较,这两个参数例如关于不同模拟时间间隔的平均带宽利用率和平均吞吐量。
在这里插入图片描述
在图4中,对于TCP数据传输,将平均带宽利用率与现有算法Hedera[15]和Dijkstra算法进行了比较。从图4中可以看出,随着网络流量的增加,带宽利用率正在下降,但与现有算法相比,带宽利用度更高。在所提出的算法中,平均带宽利用率高于总分配带宽的70%。与Hedera[15]和Dijkstra算法相比,所提出的算法提供了更好的带宽利用率,例如在低流量下分别提高了8%和12%。在不饱和流量中,拓扑中的自由节点数量更多,并且有可用的替代路径。因此,与Dijkstra算法和Hedera[15]相比,带宽利用率较高。然而,在60秒的传输时间后,即饱和网络,拓扑中的自由节点数量较少,因此所提出的算法中实现的带宽利用率正在下降,但与Hedera[15]不相上下。
在这里插入图片描述
如图5所示,与Hedera[15]相比,对于不饱和和饱和流量,所提出的算法分别将平均吞吐量提高了约20%和5%。类似地,与Dijkstra算法相比,所提出的算法在不饱和和饱和流量的情况下分别将平均吞吐量提高了25%和15%以上。所提出的系统是基于主机和基于网络相结合的方法。可以观察到,吞吐量在模拟时间的60秒内不断增加,但当系统达到饱和时,吞吐量是稳定的。然而,与Hedera[15]相比,在网络饱和的情况下,仍然提出的系统在具有高吞吐量的热点流量模式下提供了高效和改进的结果。

结论

所提出的算法是将主机受限流和链路受限流相结合的方法,以提高DCN中的性能。结果表明,该算法比Hedera[15]和Dijkstra算法更有效。基于所提出的算法,对于不饱和流量具有较高的吞吐量,并且在系统饱和时具有稳定的吞吐量。因此,如果流量负载是鼠标流,那么与大象流相比,系统的性能更好。未来,深度学习方法可以通过给出智能路由算法来改进SDN中的流量管理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值