掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及一种面向数据中心的网络交换设备缓存管理方法及装置。

背景技术

现在各种应用程序部署在数据中心并共享相同的网络基础设施。这些应用程序可以分为两类:吞吐量要求高的应用程序,例如数据挖掘和存储,以及延迟敏感的应用程序,例如网页搜索和缓存追随。吞吐量饥渴的应用程序会产生长流,这些流总是试图填满交换机的缓冲区以实现更高的链路利用率,从而引入大队列。而短流来自延迟敏感的应用程序,它们需要交换机缓冲区中的小队列来实现低延迟通信。由于现代数据中心网络面临着大量对延迟敏感的短流和少量需要较大带宽的长流并存的情况。因此,这两种流在数据中心网络中共享相同的瓶颈链路,表现出不同甚至是相反的网络性能。

调整网络中交换机的缓冲机制可以解决这个矛盾。然而,大多数基于交换机的方案通常采用先进先出的排队机制,并没有考虑数据中心网络的特征ON/OFF流量模式。在ON/OFF流量模式中,短流以瞬态和突发方式(即ON时段)周期性地开始传输,并在相对较长的持续时间(即OFF时段)停止传输。由于数据中心网络的流量呈现高并发、高突发性,当短流转为ON时段时,大量短流会同时到达交换机,最终导致缓冲区的大量消耗甚至缓冲区溢出。当短流转为OFF时段时,长流总是试图通过增加传输速率或拥塞窗口来寻求更高的可用带宽,从而导致交换机上出现大队列。因此,当短流转向在ON时段发送数据时,会出现一个严重的问题。这个问题是短流中的大量数据包在很短的时间内注入网络,竞争剩余的少量缓冲区,而大部分缓冲区已经被长流占用。这导致短流的网络性能出现恶化,最终导致大量丢包、大量重传,甚至频繁超时。

发明内容

为解决上述问题,提供一种面向数据中心的网络交换设备缓存管理方法及装置,本发明采用了如下技术方案:

本发明提供了一种面向数据中心的网络交换设备缓存管理方法,其特征在于,包括以下步骤:步骤S1,网络交换设备设置两个共享缓存队列,分别为待发送报文的缓存队列和长流报文的缓存队列,以及阈值K;步骤S2,网络交换设备在收到新报文A后,根据将新报文A与已占用的缓存B之和跟总缓存C进行比较,若A+B≤C,则判断为未溢出,执行步骤S3;若A+B>C,则判断为溢出,执行步骤S4;步骤S3,根据解析新报文A头部的服务类型字段或已发送数据量判断新报文A的类型,若新报文A为短流报文,将新报文A放入待发送报文的缓存队列的队尾,并执行步骤S6;若新报文A为长流报文,将新报文A放入长流报文的缓存队列的队尾,并执行步骤S6;步骤S4,根据解析新报文A头部的服务类型字段或已发送数据量判断新报文的类型;若新报文A为长流报文,丢弃新报文A;若新报文A为短流报文,则执行步骤S5;步骤S5,检查长流报文的缓存队列是否为空,若非空,则将长流报文的缓存队列的队尾报文丢弃,并将新报文A放入待发送报文的缓存队列的队尾,并执行步骤S6;若空,则丢弃新报文A;步骤S6,判断待发送报文的缓存队列的大小是否小于阈值K,若待发送报文的缓存队列大于等于K,则执行步骤S8,;若待发送报文的缓存队列小于K,则执行步骤S7;步骤S7,将长流报文的缓存队列从队头取出若干个报文,并将取出的报文填充到待发送报文的缓存队列,填充后的待发送报文的缓存队列不大于K,再执行步骤S8;步骤S8,将待发送报文的缓存队列的所有报文取出并依次转发。

本发明提供的一种面向数据中心的网络交换设备缓存管理方法,还可以具有这样的技术特征,其中,网络交换设备包括网络交换设备包括交换机和路由器。

本发明提供的一种面向数据中心的网络交换设备缓存管理方法,还可以具有这样的技术特征,其中,总缓存等于待发送报文的缓存队列与长流报文的缓存队列之和,阈值K根据实际需要设定,当K值设置越大,相应的短流的平均流完成时间缩短。

本发明提供的一种面向数据中心的网络交换设备缓存管理装置,其特征在于,包括:设置队列模块,网络交换设备设置两个共享缓存队列分别为待发送报文的缓存队列和长流报文的缓存队列,以及阈值K;判断溢出模块,网络交换设备在收到新报文A后,根据将新报文A与已占用的缓存B之和跟总缓存C进行比较,若A+B≤C,则判断为未溢出,运行未溢出模块;若A+B>C,则判断为溢出,运行溢出模块;未溢出模块,根据解析新报文头部的服务类型字段或已发送数据量判断新报文的类型,若新报文A为短流报文,将新报文A放入待发送报文的缓存队列的队尾;若新报文A为长流报文,将新报文A放入长流报文的缓存队列的队尾;溢出模块,根据解析新报文头部的服务类型字段或已发送数据量判断新报文的类型;若新报文A为长流报文,丢弃新报文A;若新报文A为短流报文,则运行短流报文模块;短流报文模块,检查长流报文的缓存队列是否为空,若非空,则将长流报文的缓存队列的队尾报文丢弃,并将新报文A放入待发送报文的缓存队列的队尾;若空,则丢弃新报文A;阈值判断模块,判断待发送报文的缓存队列的大小是否小于阈值K,若待发送报文的缓存队列大于等于K,则执行步骤运行缓存转发模块;若待发送报文的缓存队列小于K,则运行缓存填充模块;缓存填充模块,将长流报文的缓存队列从队头取出若干个报文,并将取出的报文填充到待发送报文的缓存队列,填充后的待发送报文的缓存队列不大于K,再运行缓存转发模块;缓存转发模块,将待发送报文的缓存队列的所有报文取出并依次转发。

发明作用与效果

根据本发明的一种面向数据中心的网络交换设备缓存管理方法及装置,首先,通过设置两个共享缓存队列,通过判断溢出模块判断是否溢出,并根据是否溢出,将新报文放入对应的处理模块。在交换机或者路由器的缓存不足的时候,新来的短流报文会抢占已经进入长流报文缓存队列队尾的数据报文,以此保证短流的低延迟性,从而权衡数据中心网络中长流高带宽和短流低延迟,保证短流的低延迟和长流对较大带宽的需求。

其次,本发明设置了阈值K,当待发送报文缓存队列中待发送报文数量小于阈值K时,网络交换设备会从长流报文的缓存队列队尾取出适量的长流报文填充到待发送报文缓存队列的队尾,最多填充到阈值K,因此可以增加长流的高带宽。

附图说明

图1是本发明实施例中的一种面向数据中心的网络交换设备缓存管理方法流程图;

图2是本发明实施例中的测试床拓扑图;

图3是本发明实施例中的模拟测试拓扑图;

图4是本发明实施例中的四种队列管理方法的四个性能指标比较示意图;

图5是本发明实施例中的在不同的拥塞控制协议下的四种队列管理方法平均完成时间比较示意图;

图6是本发明实施例中的在模拟实验测试环境下四种不同队列管理方法在不同数据中心应用模式下的测试结果示意图;

图7是本发明实施例中的一种面向数据中心的网络交换设备缓存管理装置结构示意图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下结合实施例及附图对本发明的一种面向数据中心的网络交换设备缓存管理方法及装置作具体阐述。

<实施例>

图1是一种面向数据中心的网络交换设备缓存管理方法流程图。

如图1所示,本实施例中的一种面向数据中心的网络交换设备缓存管理方法,又称为“可插入队列管理方法(Cutin Queue)”。

步骤S1,交换机或者路由器根据不同环境下需求设置阈值K,初始化之后分为分为两个流程模块,分别是接受转发模块和发送模块,并且该两个模块是并行执行。设置阈值K为20。

步骤S2,当交换机或者路由器收到新进报文时,判断加入该报文后当前交换机/路由器的总缓存是否会溢出。若当前交换机/路由器的总缓存未溢出,则执行步骤S3。若当前交换机/路由器的总缓存溢出,执行步骤S4。

本实施例中总缓存大小设置为250个报文大小,无队列时的往返延时为100微秒,报文大小为1.5KB。

步骤S3,根据解析新报文A头部的服务类型字段或已发送数据量判断新报文A的类型,若新报文A为短流报文,将新报文A放入待发送报文的缓存队列的队尾,并执行步骤S6;若新报文A为长流报文,将新报文A放入长流报文的缓存队列的队尾,并执行步骤S6。

步骤S4,根据解析新报文A头部的服务类型字段或已发送数据量判断新报文的类型;若新报文A为长流报文,丢弃新报文A;若新报文A为短流报文,则执行步骤S5。

步骤S5,检查长流报文的缓存队列是否为空,若非空,则将长流报文的缓存队列的队尾报文丢弃,并将新报文A放入待发送报文的缓存队列的队尾,并执行步骤S6;若空,则丢弃新报文A。

步骤S6,判断待发送报文的缓存队列的大小是否小于阈值K,若待发送报文的缓存队列大于等于K,则执行步骤S8,;若待发送报文的缓存队列小于K,则执行步骤S7。

步骤S7,将长流报文的缓存队列从队头取出若干个报文,并将取出的报文填充到待发送报文的缓存队列,填充后的待发送报文的缓存队列不大于所设阈值K=20,再执行步骤S8。

步骤S8,将待发送报文的缓存队列的所有报文取出并依次转发。

本实施例利用NS2.35网络仿真平台和真实的测试床进行的性能测试。NS网络模拟器是一种通用的多协议网络模拟软件,它是互联网上公开发布的(网址:http://www.isi.edu/nsnam/ns),目前已被网络研究者广泛使用。NS2.35是它的版本之一。

图2为本发明实施例中的测试床拓扑图,图3为本发明实施例中的模拟测试拓扑图。

如图2、图3所示,本实施例中分别采用图2的测试床测试环境和图3两种模拟测试的测试环境,测试本实施例中的队列管理方法的性能。在如图2所示的拓扑中,交换机出口链路带宽设置为10Gbps。所有机器运行了ubuntu 16.04操作系统。其中,一台主机负责接受,一台主机负责发送长流,其余的主机负责随机的发送短流。而在如图3所示的拓扑中,每台和主机相连的架顶交换机都连接到了图片上方的所有的网络交换设备。并且主机到网络交换设备的链路带宽为1Gbps,网络交换设备到核心网络交换设备的链路带宽为10Gbps。交换机的缓存大小设置为250个报文大小,无队列时的往返延时为100微秒,报文大小为1.5KB。

本实施例中对四种不同缓存管理方法进行比较。这四种缓存管理方法分别为:单一队列管理方法(S Queue),先进先出的缓存管理办法;优先级队列管理方法(P Queue)是不共享缓存的优先级双缓存队列缓存管理方法,并且双队列的大小是固定的,都设置为总缓存一半,短流报文放在优先级高的缓存队列,长流报文放在优先级低的缓存队列,短流报文转发完再发长流报文的策略;共享缓存优先级双队列管理方法(SP Queue)是可以共享缓存的优先级双缓存队列缓存管理方法,队列的大小是不固定的,可以共享缓存,以及本实施例中的可插入队列管理方法(Cutin Queue)。

本实施例使用了测试床环境来进行测试。在对本实施例中的可插入队列管理方法进行测试时,在如图2所示的拓扑中交换机加载了本发明的缓存队列管理方法。在该测试中,每个发送端利用iperf发包工具会同时发送多条流给接收端。

图4为本发明实施例中的四种队列管理方法的四个性能指标比较示意图。

如图4所示给出了本实施例的方法和其他方法在增大网络拓扑规模时的测试结果。在该测试中流大小和数量服从给定的分布。图4(a)部分为短流的平均排队延迟时间图,图4(b)部分为长流包的丢包率图,图4(c)部分为短流的平均流完成时间图,图4(d)部分为长流的平均吞吐量图。如图4(a)部分和(c)部分所示,无论是平均排队延迟、还是平均流完成时间,本实施例的可插入队列管理方法在网络流量负载越大时,相较与其他方法优势也愈加明显。对于长流,比较了他们的丢包率和平均吞吐率。如图4(b)部分和(d)部分给出了实验结果,本实施例的可插入队列管理方法在丢包率方面具有明显降低,并且保持较高的吞吐率。

图5为本发明实施例中的在不同的拥塞控制协议下的四种队列管理方法平均完成时间比较示意图。

如图5所示,四种队列管理方法在不同拥塞控制协议下,随着网络拓扑规模增大,平均完成时间不同。在该测试过程中,逐步增加每个发送端的并发流个数。图5统计了四种不同队列管理方法分别在Reno、Cubic、BBR和DCTCP四种不同拥塞控制协议下,短流的平均流完成时间。

由图5可见,可插入队列管理方法与其他三种队列管理方法相比较,平均流完成时间一直保持最小,并且随着网络规模的变大,平均流完成时间基本保持不变。本实施例中的可插入队列管理方法在不同网络拓扑规模模拟测试环境下,性能指标要明显优于其它三种方法。

2、模拟实验测试环境测试结果

为了全面了解本实施例中的可插入队列管理方法的高效性,进一步测试,四种队列管理方法在复杂拓扑结构情况下的性能指标:平均流完成时间和平均吞吐率。实验场景包括了如图3所示的增大Leaf-Spine拓扑规模和其他四种常见的数据中心应用模式。

图6为本发明实施例中的在模拟实验测试环境下四种不同队列管理方法在不同数据中心应用模式下的测试结果示意图。

如图6所示,无论是哪种应用模式,本实施例中的可插入队列管理方法相比于其他三种队列管理方法,都可以保持最低的平均流完成时间和较高的长流吞吐率。

图7为本发明实施例中的一种面向数据中心的网络交换设备缓存管理装置结构示意图。

如图7所示,本实施例还提供了一种面向数据中心的网络交换设备缓存管理装置10包括:设置队列模块11、判断溢出模块12、未溢出模块13、溢出模块14、短流报文模块15、阈值判断模块16、缓存填充模块17、缓存转发模块18以及控制上述各模块的主控制模块19。

该装置10可以通过相应的各个模块执行如上述步骤S1-S6的流程,并实现网络交换设备缓存管理。

实施例作用与效果

根据本实施例提供的一种面向数据中心的网络交换设备缓存管理方法及装置,首先,通过设置两个共享缓存队列,通过判断溢出模块判断是否溢出,并根据是否溢出,将新报文放入对应的处理模块。在交换机或者路由器的缓存不足的时候,新来的短流报文会占用已经进入长流报文缓存队列队尾的数据报文,以此保证短流的低延迟性,从而权衡数据中心网络中长流高带宽和短流低延迟,保证短流的低延迟和长流对较大带宽的需求。

其次,本实施例中设置了阈值K,当待发送报文缓存队列中待发送报文数量小于阈值K时,网络交换设备会从长流报文的缓存队列队尾取出适量的长流报文填充到待发送报文缓存队列的队尾,最多填充到阈值K,因此可以增加长流的高带宽。

最后,本实施例在测试床和模拟测试两种不同的测试环境下分别测试四种不同队列管理方法的性能指标。本实施例中的可插入队列管理方法不仅降低了短流的平均流完成时间,同时又增加长流的吞吐量。并且由于本实施例的所有组成部分都是模块化的,因此比较容易的组合到现有的网络中,保证了本实施例具有普及性。

上述实施例仅用于举例说明本发明的具体实施方式,而本发明不限于上述实施例的描述范围。

技术分类

06120115922471