DCN中基于包散射的异构流隔离方法与流程

文档序号:11236686阅读:513来源:国知局
DCN中基于包散射的异构流隔离方法与流程

本发明涉及数据中心网络中(dcn,datacenternetwork)一种基于包散射的异构流隔离方法。



背景技术:

近年来,数据中心己成为政府、企业和单位信息化建设的重要组成部分,用于提供各类分布式应用计算和存储等服务。数据中心通常包含大量的以某种架构形式存在的服务器组成,用来处理不同的在线业务,如网页搜索、云存储等。通过建立数据中心,一方面这些组织可以对各种计算资源进行动态分配,另一方面利用大型的数据中心可以获得规模经济效应。因此,越来越多的应用与服务被迁移到数据中心中,同时用户对应用性能的要求越来越高,使得数据中心处理数据的计算能力需愈来愈高速。

数据中心网络流量通常可分为两种:一种是体积较大、生命周期较长的长流,通常也叫大象流,比如数据备份、虚拟机迁移等数据流量,它们要求较高的带宽来保证网络吞吐率;另一种是体积极小但延时敏感的短流,也叫老鼠流,例如搜索、查询的请求与响应,它们也需要足够的网络资源来降低完成时间。虽然数据中心网络具有高带宽低延时的特性,但在数据中心中异构流之间的资源竞争和冲突很频繁。体积庞大且生命周期持久的长流总是占用交换机缓冲区,容易产生线端阻塞,使得短流经历严重的排队延时。这些排队延时使得短流的完成时间急剧增加甚至无法在其发送延时上界内完成,严重影响应用性能。短流总是因为长流消耗了交换机可用缓存而经历长延时才能完成,虽然降低交换机缓冲区占用率能提高短流性能,却又会降低长流的吞吐量。特别是长流遭遇高突发的短流时,容易缓冲区溢出产生丢包,导致降低发送速率甚至可能引起超时,这些都造成了应用的吞吐量下降。异构流混合会使得网络吞吐量、短流延时和整体性能下降,进而影响用户体验。

现代数据中心大多是多根树型拓扑型的架构,依赖于等价多路径来传输数据流,而达到负载均衡的效果。ecmp路由协议,利用包的五元组信息将同一条流的数据包哈希到同一条路径上,不同流被哈希到其他等价路径上传输,实现了负载均衡,而多条长流哈希到同一条路径上容易造成热点问题,所带来的拖尾时延会严重影响尾部其他流的完成时间,直接地恶化了用户体验。rps方法[1],将数据流的每个包随机分配到任意一条可用的等价多路径上传输,它不需要改变终端主机,也很容易在现代交换机上实现。但是同一条路径上的不同流之间的包会相互影响,资源竞争严重,这既影响长流的吞吐率,也加大了短流的延时。freeway方法[2],将长短流隔离在不同的路径上进行传输,在保证99%的短流的发送延时上界前提下,将剩余路径全部用于传输长流。其中,短流采用传统的ecmp调度,而长流则使用中心调度的方式进行传输。该方法有效地避免了长短流之间资源的竞争问题,但以流为单位的调度方式不够灵活,不能充分利用网络带宽。

因此,力求让数据中心异构流之间互利共存,并能有效地降低数据流的完成时间,是一个亟待解决的问题。



技术实现要素:

本发明所解决的技术问题是,针对上述数据中心网络拥塞控制无法有效地解决异构流之间相互碰撞问题,本发明提供了一种dcn中基于包散射的异构流隔离方法,使得不同类别的流在互斥的路径上传输,避免异构流的资源竞争和冲突。

本发明的技术方案包括以下步骤:

一种dcn中基于包散射的异构流隔离方法,其特征在于,包括以下步骤:

步骤一:初始化;

步骤二:交换机接收分组,判断其所属流是长流还是短流;根据流类别和短流的传输状态,即t时间内交换机是否接收了短流分组,来选择合适的端口发送当前分组;

步骤三:交换机根据t时间内的统计信息,更新流表;并返回步骤二。

所述步骤一包括:初始化流表中流长度f为0,流类别标志为null;设置流长度阈值f0;总路径数为maxslot=交换机出口数n,分配给长流的路径数为m=0;定时器时钟t设置为两主机间的传播延时;流转发标志changepath=1(changepath用于标志短流的传输状态,即t时间内交换机是否接收了短流分组以决定长流分组的转发路径,changepath=1表示t时间内交换机接收了短流分组,则交换机在所有出端口,即第1号至第maxslot号出端口中随机选择一个出端口发送当前长流分组;changepath=0表示t时间内交换机没有接收到短流分组,则交换机在部分出端口,即第1号至第m号出端口中随机选择一个出端口发送当前长流分组);初始化满足所有短流发送延时上界的因子a。

进一步地,所述流长度阈值f0设置为200,单位为包。

进一步地,所述满足所有短流发送延时上界的因子a设置为0.3。

所述步骤二中:交换机在收到tcp分组时,在流表中查询该分组所属流的流长度,更新该流的大小f=f+1;若流表中不存在该流,在流表中新添加一条流信息,并使得该流的流长度f=1。将f与阈值f0进行比较以判定流类别,若f≤f0,将该流判定为短流;若f>f0,则将其判定为长流。当某条流的流类别从短流变成长流时,分配给长流的路径数m=m+1,直至m大小为

在当前分组所属流为短流时,交换机在第m+1号至第maxslot号出端口中随机选择一个出端口发送该分组;在当前分组所属流为长流时,交换机判断changepath的值是否为1,若changepath=1,交换机则在第1号至第maxslot号出端口中随机选择一个出端口发送该分组;否则交换机在第1号至第m号出端口中随机选择一个出端口发送该分组。

所述步骤三具体为:交换机以设定的定时器时钟t为时间粒度,统计流表中流信息;若t时间内有短流分组进入交换机,则设置changepath=0,否则设置流转发标志changepath=1。根据交换机收到的fin包,删除流表中已结束流的信息;将分配给长流的路径数m=m-已结束的长流数,接收下一个分组。

有益效果:交换机在接收到ip分组时,会根据流长度阈值判定该分组所属流的流类别,再根据流类别和短流的传输状态为当前分组选择相应的转发路径。此时,使得不同类别的流在互斥的路径上传输,解决了异构流之间相互碰撞的问题,从而降低时延敏感的短流的平均完成时间,同时最大化吞吐率敏感的长流的吞吐量,以提升用户体验。

附图说明

图1为本发明的流程图。

图2为数据中心异构流碰撞示意图。

图3为交换机出端口数为40时,tcp流在不同协议和方法下随着长流并发数目变化的性能示意图,其中,3(a)为50条短流的平均完成时间随长流并发数目增长的变化示意图,3(b)为各方法中长流使用交换机出端口数量的情况示意图,3(c)为在apps和rps方法下长流乱序导致的重传数量情况示意图,3(d)为长流吞吐量随长流并发数目增长的变化示意图。本发明命名apps。

图4为交换机出端口数为40时,保持短流和长流数目的比例不变,tcp流在不同协议和方法下随着服务器数目变化的性能示意图,其中,4(a)为短流的平均完成时间随服务器数目增长的变化示意图,4(b)为长流吞吐量随服务器数目增长的变化示意图。

图5为50条短流和5条长流在不同协议和方法下随着交换机出端口数目变化的性能示意图,其中,5(a)为短流的平均完成时间随交换机出端口数目增长的变化示意图,5(b)为长流吞吐量随交换机出端口数目增长的变化示意图。

具体实施方式

下面结合附图对本发明作进一步的说明。

参见图1,图1为本发明的流程图。过程如下:

步骤一:初始化流表中流长度f为0,流类别标志为null;设置阈值f0=200,单位为包;总路径数为maxslot=交换机出口数n,分配给长流的路径数为m=0;定时器时钟t设置为两主机间的传播延时;流转发标志changepath=1(changepath用于标志短流的传输状态,即t时间内交换机是否接收了短流分组以决定长流分组的转发路径,changepath=1表示t时间内交换机接收了短流分组,则交换机在所有出端口,即第1号至第maxslot号出端口中随机选择一个出端口发送当前长流分组;changepath=0表示t时间内交换机没有接收到短流分组,则交换机在部分出端口,即第1号至第m号出端口中随机选择一个出端口发送当前长流分组);a为满足所有短流发送延时上界的因子,将其大小设置为0.3。

步骤二:交换机在收到tcp分组时,在流表中查询该分组所属流的信息,更新该流的流长度f=f+1。若流表中不存在该流,在流表中新添加一条流信息,并使得该流的流长度f=1。将f与流长度阈值f0进行比较以判定流类别,若f≤f0,将该流判定为短流;若f>f0,则将其判定为长流。当某条数据流的流类别从短流变成长流时,分配给长流的路径数m=m+1,直至m大小为

在当前分组所属流为短流时,交换机在第m+1号至第maxslot号出端口中随机选择一个出端口发送该分组。在当前分组所属流为长流时,交换机判断changepath的值是否为1,若changepath=1,交换机则在第1号至第maxslot号出端口中随机选择一个出端口发送该分组;否则交换机在第1号至第m号出端口中随机选择一个出端口发送该分组。

步骤三:交换机以设定的定时器时钟t为时间粒度,统计流表中流信息;若t时间内有短流分组进入交换机,则设置changepath=0,否则设置流转发标志changepath=1。根据交换机收到的fin包,删除流表中已结束流的信息;将分配给长流的路径数m=m-已结束的长流数,接收下一个分组。

本发明利用ns2.35网络仿真平台来实现,并进行了性能测试。

图2为数据中心异构流碰撞示意图。

图3为以长流数量变化的实验,实验拓扑结构为三层leaf-spine结构,包括核心交换机层、tor交换机层和主机层。apps只在tor交换机上部署,每对主机之间至多发送一条流。每对主机端之间有40条通信路径,一条路径由4条链路和3个交换机构成,交换机缓存设置均为250个包。主机与tor交换机之间的链路速率均设置为2gbps,tor交换机与核心交换机之间的链路速率均设置为1gbps。包大小为1460bytes。rtomin参照目前主流的linux系统设置为200ms。传播延时rtt设置为0.0004s。本实验设置的发送延时上界为0.003s。

图3(a)是短流平均完成时间随长流并发数的变化情况,由图可知,随着长流并发数的增加,短流的平均完成时间在使用apps的方法时一直保持在最低。在ecmp下,随着长流的增加,愈来愈多的短流遭受丢包,严重影响其完成时间。在rps下,随着长流的增加,短流的分组经历更长的排队,导致其短流平均完成时间随之增加。在freeway下,只需保证短流在其发送延时上界内完成。

图3(b)为各方法中长流使用交换机出端口数量的情况。由图可知,在ecmp和freeway方法下,每条长流总是只能使用一个可用出端口;在rps方法下,长流总是使用所有的可用出端口;而apps能灵活地调整使用的可用端口数量,以降低短流的平均完成时间同时保证长流的吞吐率。

图3(c)为在apps和rps方法下长流乱序导致的重传数量情况。在apps方法下,由于长流在转换路径的过程中易受到因交换机各端口缓冲区剩余大小不均匀所带来的包乱序问题,当收到超过3次重复ack时,会遭受包重传与拥塞窗口降窗的风险。由图可知,随着长流并发数的增加,在apps方法下长流乱序导致的重传数量比rps少,这也是apps比rps吞吐率高的原因。

图3(d)是长流吞吐量随长流并发数的变化情况,由图可知,随着长流并发数的增加,在apps方法下,长流吞吐量一直保持在很高的水平。在ecmp和freeway下,每条长流总是只被哈希到一条路径上传输,无法充分利用各个路径的资源。在rps下,虽然充分利用了所有路径的资源,但由于随着长流的增加,包乱序的情况越严重,包乱序次数增加了10倍,影响了长流的吞吐量。

图4为以服务器数量变化的实验,实验设置与图3中的实验设置一致,发送短流的服务器与发送长流的服务器的数量的比例保持在9:1。图4(a)是短流平均完成时间随服务器数的变化情况,由图可知,随着服务器的增加,短流的平均完成时间在使用apps的方法时一直保持在最低。在ecmp下,随着服务器的增加,愈来愈多的短流遭受丢包甚至超时,在服务器数量达到70时,开始发生超时,极其严重地影响了其平均完成时间。在rps下,随着服务器的增加,短流与长流竞争交换机缓冲区愈来愈激烈,导致其短流平均完成时间随之增加。在freeway下,只需保证短流在其发送延时上界内完成。

图4(b)是长流吞吐量随长流并发数的变化情况,由图可知,随着服务器数的增加,在apps方法下,长流吞吐量一直保持在很高的水平。在ecmp和freeway下,每条长流总是只被哈希到一条路径上传输,无法充分利用各个路径的资源。在rps下,虽然充分利用了所有路径的资源,但由于随着服务器的增加,包乱序的情况越严重,影响了长流的吞吐量。

图5是以交换机出端口数变化的实验,除路径数目的设置外,其余的实验设置与图3中的实验设置的一致。图5(a)是短流平均完成时间随交换机出端口数的变化情况,由于数据总量不变,apps、rps、freeway在交换机出端口数为25时,短流的平均完成时间就已经收敛。而在ecmp下,随着路径数的增加,短流越分散,丢包的分组数减少,因此,其平均完成时间会随路径数的增加而降低。

图5(b)是长流吞吐量随交换机出口数的变化情况,由于数据总量不变,这几种方法的长流吞吐量没有变化。但因为apps的长短流之间没有资源竞争,并且充分利用了路径,所以apps一直保持最高的吞吐量。

参考文献

[1]dixita,prakashp,huyc,etal.ontheimpactofpacketsprayingindatacenternetworks[c].proceedingsofieeeinfocom,2013.2130-2138.

[2]wangw,suny,salamatiank,etal.adaptivepathisolationforelephantandmiceflowsbyexploitingpathdiversityindatacenters[j].ieeetransactionsonnetworkandservicemanagement,2016,13(1):5-18.

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