一种快速简单的量化拥塞通告方法

文档序号:10555523阅读:266来源:国知局
一种快速简单的量化拥塞通告方法
【专利摘要】本专利公开了一种快速简单的量化拥塞通告方法。本方法由拥塞点和响应点协同完成。响应点(即源端)将发送速率初始化为链路速率,根据其所接收到的反馈包类型决定是否降速、重置发送速率,或者在没有收到反馈包时采用折半搜索算法调整发送速率。拥塞点(即交换机)初始化变量congested来标识交换机是否经历过拥塞,并根据队列长度、以及队列长度在一个采样周期内的变化量,采样生成反馈包发送给响应点。本专利简化并改进了IEEE 802.1Qau工作组制定的链路层拥塞控制标准协议量化拥塞通告(QCN),能够快速地获取空余的带宽,尤其适用于数据中心网络环境。
【专利说明】
一种快速简单的量化拥塞通告方法
技术领域
[0001] 本发明涉及链路层拥塞控制算法,特别涉及一种快速简单的量化拥塞通告方法。
【背景技术】
[0002] 现在的数据中心中部署了许多不同的在线应用服务提供给用户使用,比如搜索服 务、社交网络服务、游戏服务、文件传输与存储服务等等。这些不同的服务产生的流量类型 并不相同,这些不同的流量是由不同的网络承载传输的。比如TCP/IP流量运行于Ethernet 中,块存储网络流量运行于光纤通道中,高性能计算流量运行Infiniband网络中。这些不同 的组网技术使得数据中心的管理变得复杂,并且增加了数据中心的运营成本。为了处理这 些问题,IEEE 802.1数据中心桥接工作组设计了数据中心以太网(Data Center Ethernet, DCE),又叫增强型以太网(Enhanced Ethernet)。
[0003] DCE对传统的Ethernet的一个显著改进在于引进了链路层拥塞控制机制,从而为 Ethernet提供了低延迟和无丢包的特性。其中,IEEE 802. IQbb制定的基于优先级流控机制 (PFC)可以针对网络中的瞬时拥塞进行控制。它会发送Pause帧到上游设备让其停止发送数 据包,从而防止数据包淹没下游的设备缓存。而IEEE 802. IQau制定的量化拥塞通知(QCN) 被用于控制网络中的长时拥塞。QCN的主要思想是将交换机的缓存队列控制在一个较小目 标值附近,既提供了低延迟,又降低缓存溢出的概率,同时保证了高的链路利用率。
[0004] 虽然QCN亦即在2010年被批准为链路层拥塞控制的标准机制,但是我们发现QCN算 法存在可以进一步改进的地方。首先是QCN的折半搜索算法源自于BIC-TCP,然而QCN的拥塞 探测方法与BIC-TCP不同,这使得QCN有时无法折半搜索算法找到合适的发送速率。因此,除 了折半搜索之外,QCN额外添加了主动增长、超主动增长等补充机制,变得非常复杂。其次, QCN面对未知的网络环境时的采用了不同的速率设置方式。在初始发送数据时,QCN直接以 链路速率发送数据;而当网络环境变化时,QCN以当前发送速率为起点,逐步地探索带宽。如 果网络环境变化时当前发送速率很小,QCN可能会需要很长的时间来探测带宽,使得链路空 闲的时间较长。

【发明内容】

[0005] 针对QCN机制的缺陷,本发明设计了一种快速简单的量化拥塞通告算法(FSQCN)。
[0006] 为了实现上述技术目的,本发明的技术方案是一种快速简单的量化拥塞通告方 法,包括拥塞点操作和响应点操作:
[0007] 拥塞点操作包含以下步骤:
[0008] 步骤一:初始化,并以预定频率采样通过的数据帧,然后执行步骤二;
[0009]步骤二:根据拥塞信息来选择发送拥塞反馈包或者速率重置包;当发送速率重置 包时,在发送的同时判断是否超时,如果是,则执行步骤三,否则持续发送速率重置包; [0010]步骤三:恢复初始状态,停止发送速率重置包,执行步骤一;
[0011]响应点操作包含以下步骤:
[0012] 步骤I:初始化发送速率为链路速率;
[0013] 步骤2:判断是否收到拥塞点发回的拥塞反馈包,如果是,则执行减速操作,然后执 行步骤4;否则,执行步骤3;
[0014] 步骤3:判断是否收到拥塞点发回的速率重置包,如果是,则根据是否恢复了目标 速率来决定是否将当前速率重置为链路速率,执行步骤1;否则,执行步骤4;
[0015]步骤4:使用折半搜索算法周期性增加发送速率。
[0016] 所述的方法,所述拥塞点的操作步骤一中,所述的初始化为将拥塞点处的拥塞标 志位congested初始化为0,即非拥塞状态。
[0017] 所述的方法,所述拥塞点的操作步骤二中,拥塞信息通过以下步骤得到:拥塞点每 发送150KB数据则计算一次反映网络拥塞程度的量F b及队列变化量Qdelta,并根据结果决定 是否发送拥塞反馈包;根据Fb、 C〇ngeSted及当前队列长度qt来决定是否发送速率重置包,表 示如下: 「如果& < .0, Qctezia .0,发送:拥塞反馈包,并设S '如'=/,
[0018] j L.如果F6 2 0,办幺2, conge对发送速率重置包
[0019]其中Fb = -(Q〇ff+w · (^:^),0過=91;-9()即队列长度相对于9()的偏移量,(^:^ = 91;-q〇id是队列长度在米样周期内的变化量,q〇id为上一次米样时的队列长度,qo为目标队列长 度,w为常数。
[0020] 所述的方法,所述拥塞点的操作步骤三中:拥塞点连续发送速率重置包,直至满足 预设的超时条件后,将congested位置0,并停止发送速率重置包。
[0021] 所述的方法,所述响应点的操作步骤2中:响应点在收到拥塞反馈包后,将当前速 率H呆存为目标速率u,目标速率u加上一个常数后变为新的目标速率u T,再采用如下乘性减 的方式进行减速:
[0022] r-r (I-GdFb)
[0023] 其中Gd为常数。
[0024] 所述的方法,所述响应点的操作步骤3中,响应点在收到拥塞点发送的速率重置包 时,如果当前发送速率恢复到目标速率,亦即r = uT,则将当前发送速率置为链路速率;如果 没有恢复到目标速率,则不进行任何操作。
[0025] 所述的方法,所述响应点的操作步骤4中,响应点按如下折半搜索算法周期性的调 整发送速率:
[0026]
[0027 ]其中β为常数,周期为发送150KB的数据的时间或15ms,如果r>u,则直接令r = UT。
[0028] 所述的方法,所述的拥塞点为交换机,响应点为能调节发送速率的源端。
[0029] 本发明的技术效果在于,本发明通过改进拥塞探测条件,确保折半搜索算法能够 找到恰当的发送速率,从而无需使用QCN中那些复杂的补充机制;并且在面临网络环境未知 状态时,显式的使用反馈信息指导源端重置发送速率,从而避免带宽的浪费,适用于流量突 发的数据中心网络环境。
[0030]下面结合附图对本发明作进一步的说明。
【附图说明】
[0031]图1为移除QCN补充机制后进行实验时的队列长度。
[0032 ]图2为当存在空余带宽时的队列变化情况。
[0033]图3为本发明的拥塞点操作流程图。
[0034] 图4为本发明的响应点操作流程图。
[0035] 图5为本发明的响应点的状态转换图。
[0036] 图6为本发明分段切换线的图形化示意图。
[0037]图7为本发明多对一的单跳测试环境拓扑图。
[0038] 图8为本发明只使用折半搜索算法的FSQCN的队列长度的测试效果图。
[0039] 图9为本发明当存在突发流时空余带宽获取情况的测试对比图。
[0040] 图10为本发明拥塞交换机变化时的多跳测试环境拓扑图。
[0041 ]图11为本发明拥塞交换机变化时队列长度变化情况的测试对比图。
【具体实施方式】
[0042] 为使本发明的目的、内容及优点更加清楚,下面结合附图对本发明的实施方式进 行具体的阐述。
[0043] 本发明所述的快速简单的量化拥塞通告方法是针对QCN的两个缺点的改进。首先, QCN不能通过折半搜索算法找到正好饱和瓶颈带宽的合适的发送速率,结果,QCN为折半搜 索算法增加了额外的补充机制(主动增加、超主动增加),使得QCN的设计变得复杂了。
[0044] 为了验证QCN不能通过折半搜索算法找到合适的发送速率,在模拟实验中将QCN的 补充机制如主动增加、超主动增加移除掉。模拟场景采用多对一的拓扑,一共12个发送端,1 个接收端,链路速率为IGbps,交换机缓存为120KB。测得的交换机的队长变化如图1所示,其 中qt为瞬时的队列长度,q〇为目标队列长度。可以看到队列减少到〇,这说明瓶颈链路没有得 到饱和。
[0045] 其次,QCN在面对未知的网络环境时的速率设置存在不一致的地方。在初始时,QCN 直接以链路速率发送数据,速率设置方式激进;而在探测带宽时,可能从一个较小的速率值 开始缓慢地增长,即采用了保守的速率设置方式,这可能会导致获取剩余带宽的速度不快, 造成链路空闲或利用率下降的时间较长。
[0046]同样地,为了验证QCN可能需要长的时间去获取剩余带宽,模拟实验采用了与图1 同样的网络配置。实验中,一共有50条流向1个接收端发送数据,其中38条流在0.5s时完成 数据的发送。从图2可以看到,当这些流停止后所释放的带宽QCN需要约IOOms的时间去获 取。这个数值与数据中心网络中通常的RTT相比是很长的时间。
[0047]本发明所述的快速简单的量化拥塞通告方法,以下简称FSQCN方法,处理了 QCN的 两个缺点。FSQCN通过采用分段的切换线使得通过折半搜索即可找到合适的发送速率,从而 简化了QCN的设计;另外,当发现网络存在剩余带宽时,FSQCN通过拥塞点显式地反馈速率重 置包,以快速地获取这些剩余带宽。
[0048]所述FSQCN方法,由拥塞点和响应点两个部分组成。其中,所述拥塞点为以太网中 产生拥塞的交换机;所述响应点为发送端。
[0049]图3为本发明的拥塞点操作流程图。其操作过程如下:
[0050 ]步骤一:拥塞点将拥塞标志位conge s ted初始化为0。
[00511 步骤二:拥塞点每发送150KB,记录队列长度相对于qo的偏移量为Qrffiqt-qo,以及 队列长度在采样周期内的变化量Qdelta = qt-q0ld。并计算一个反映网络拥塞程度的量?6 = _ (Qoff+w · Qdelta),其中qcad为上一次采样时的队列长度,qo为目标队列长度,qt为当前队列长 度,w为常数,本实施例中取2。
[0052] 如果Fb〈0且QdeitaX),则拥塞点首先将congested置1,再发送拥塞反馈包给响应点, 其中Fb被量化成6位并携带于拥塞反馈包中。
[0053] 步骤三:如果FbX), qt彡2 ,congested= 1,则拥塞点对每一个进入的包都生成一个 速率重置包发回到对应的响应点。如果拥塞点在连续地发送速率重置包的一段时间后,如 〇.5s,则恢复到初始的状态,即Congested = O,并不再发送速率重置包。
[0054] 图4为响应点操作流程图,具体如下:
[0055] 步骤1:响应点将流的发送速率置为链路速率。
[0056] 步骤2:响应点根据该拥塞反馈包中携带的信息,采用乘性减的方式降速。首先当 前的发送速率r保存为目标速率u;接着,采用如下公式降低发送速率:
[0057] r-r( 1-GdFb)
[0058] 其中Gd为常数,本实施例中取 128
[0059] 在降速后,如果响应点每发送150KB的数据或每隔15ms,而没有收到拥塞反馈包, 则采用折半搜索算法进行速率恢复,即
[0060]
[0061 ] 兵干uT = u+P,P73-个常数,取5Mbps。如果收到速率重置包,则直接忽略掉。如果 当前的发送速率满足r>u,则将当前速率直接设置为r = uT。
[0062] 步骤3:响应点在收到该速率重置包后,判断当前响应点所处的状态。如果r = uT, 则将当前速率r直接设置为链路速率。否则,继续采用折半搜索增加速率。
[0063]实际上,FSQCN的响应点可分为3个状态,如图5所示。在初始状态,响应点按步骤1 操作,如果此时收到拥塞反馈包,则进入恢复状态;在恢复状态,响应点按步骤2和步骤3中 的乘性减和折半搜索算法进行操作,直到恢复目标速率,之后进入目标状态;在目标状态, 如果收到速率重置包,则进入初始状态;如果收到拥塞反馈包,则进入恢复状态。
[0064]图6是拥塞点的操作图。FSQCN所设计的分段的切换线将由Qdelta和Qciff构成的区域 分成了二块。在切换线的上方,即速率降低区域。该区域Fb〈0且QciffX),拥塞点会生成拥塞反 馈包,并发回给响应点;而在切换线的下方区域,根据congested、队列长度是否小于等于2 个包,拥塞点会生成速率重置包。
[0065]图7是我们进行测试用的网络拓扑图之一。瓶颈链路带宽的速率为lGbps,交换机 的上行链路是lGbps,交换机的缓存是200Kbytes,链路的RTT是50微秒。所有流同时从客户 端开始发送到一个接收端。这个拓扑反映了数据中心中多对一的发送模式。本专利对QCN和 我们发明的FSQCN进行了性能比较,分别从折半搜索算法是否完全、对剩余带宽的折半速度 进行了比较。
[0066]图8是FSQCN去掉了其他机制而只使用折半搜索时的队列长度变化情况。初始时有 12个发送端向1个接收端发送数据。可以看到FSQCN很好地控制拥塞交换机的队列长度在了 目标值附近,这说明FSQCN只通过折半搜索便找到了适合的发送速率,使得链路得到了充分 利用。
[0067]图9中,初始时有50个发送端发送数据,其中有12条长流,剩余的38条流在0.5s时 停止发送数据。由于这些流的停止,一部分的瓶颈带宽空余出来。结果显示QCN花费约93ms 才能恢复到目标队长,这是因为QCN的发送速率的增加得慢。而FSQCN通过交换机显式反馈 速率重置包,只花费了约23ms就获取了剩余带宽。
[0068]图10是我们进行测试的第二种网络拓扑图。实验场景是在第1秒时,背景流是发送 端S2以IGbps的速率向接收端办发送的数据流。其中第0.5秒时,有8条突发流发送数据,它们 在0.6s停止。接着,在第2秒时,发送端S 2停止发送数据,发送端S3开始向接受端R3发送背景 流。同样地,在1.5秒时,有8条突发流发送数据,它们在1.6s停止。在这2秒的模拟实验中,发 送端S 1-直向接收端心发送数据。这样,在第1秒时,拥塞的交换机时ToR1,而在第2秒时,拥 塞的交换机变成了Aggi 了。
[0069]图11比较了 FSQCN和QCN在图10的网络拓扑图下拥塞交换机变化时的队列变化。可 以看到在第1秒和第2秒,FSQCN都比QCN更快地恢复到了目标队列速率。这是因为对于FSQCN 来说,当交换机发现带宽因流的离开而有空余时,立即发送速率重置包,结果FSQCN的源端 很快地占用掉这些空余的带宽;而QCN需要慢慢地探测,所以FSQCN比QCN获取带宽的速度 快。
【主权项】
1. 一种快速简单的量化拥塞通告方法,其特征在于,包括拥塞点操作和响应点操作: 拥塞点操作包含W下步骤: 步骤一:初始化,并W预定频率采样通过的数据帖,然后执行步骤二; 步骤二:根据拥塞信息来选择发送拥塞反馈包或者速率重置包;当发送速率重置包时, 在发送的同时判断是否超时,如果是,则执行步骤=,否则持续发送速率重置包; 步骤=:恢复初始状态,停止发送速率重置包,执行步骤一; 响应点操作包含W下步骤: 步骤1:初始化发送速率为链路速率; 步骤2:判断是否收到拥塞点发回的拥塞反馈包,如果是,则执行减速操作,然后执行步 骤4;否则,执行步骤3; 步骤3:判断是否收到拥塞点发回的速率重置包,如果是,则根据是否恢复了目标速率 来决定是否将当前速率重置为链路速率,执行步骤1;否则,执行步骤4; 步骤4:使用折半捜索算法周期性增加发送速率。2. 根据权利要求1所述的方法,其特征在于,所述拥塞点的操作步骤一中,所述的初始 化为将拥塞点处的拥塞标志位congested初始化为O,即非拥塞状态。3. 根据权利要求2所述的方法,其特征在于,所述拥塞点的操作步骤二中,拥塞信息通 过W下步骤得到:拥塞点每发送150KB数据则计算一次反映网络拥塞程度的量Fb及队列变 化量Qdeita,并根据结果决定是否发送拥塞反馈包;根据Fb、congested及当前队列长度qt来 决定芦术侣::单油恭击背向圭;了-其中Fb = -(Q〇ff+w ? Qdeita) ,Qoff = q广qo,即队列长度相对于qo的偏移量,Qdeita = Q广q〇id 是队列长度在采样周期内的变化量,quid为上一次采样时的队列长度,q日为目标队列长度,W 为常数。4. 根据权利要求2所述的方法,其特征在于,所述拥塞点的操作步骤=中:拥塞点连续 发送速率重置包,直至满足预设的超时条件后,将congested位置0,并停止发送速率重置 包。5. 根据权利要求3所述的方法,其特征在于,所述响应点的操作步骤帥:响应点在收到 拥塞反馈包后,将当前速率r保存为目标速率U,目标速率U加上一个常数后变为新的目标速 率UT,再采用如下乘性减的方式进行减速: r (I-GdFb) 其中Gd为常数。6. 根据权利要求5所述的方法,其特征在于,所述响应点的操作步骤3中,响应点在收到 拥塞点发送的速率重置包时,如果当前发送速率恢复到目标速率,亦即r = UT,则将当前发 送速率置为链路速率;如果没有恢复到目标速率,则不进行任何操作。7. 根据权利要求6所述的方法,其特征在于,所述响应点的操作步骤4中,响应点按如下 折半捜索算法周期性的调整发送速率:其中e为常数,周期为发送150KB的数据的时间或15ms,如果r〉u,则直接令r = UT。8.根据权利要求1-7任一所述的方法,其特征在于,所述的拥塞点为交换机,响应点为 能调节发送速率的源端。
【文档编号】H04L12/825GK105915464SQ201610454652
【公开日】2016年8月31日
【申请日】2016年6月21日
【发明人】蒋万春, 阮昌, 王建新
【申请人】中南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1