无分组重排序的动态负载均衡.pdf

上传人:b*** 文档编号:472743 上传时间:2018-02-18 格式:PDF 页数:14 大小:1.68MB
返回 下载 相关 举报
摘要
申请专利号:

CN201280067657.9

申请日:

2012.12.20

公开号:

CN104067578A

公开日:

2014.09.24

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 12/803申请日:20121220|||公开

IPC分类号:

H04L12/803

主分类号:

H04L12/803

申请人:

思科技术公司

发明人:

佐治·托马斯·麦卡图帕拉班; 纳仁德·因笃里; 尤达亚玛卡尔·斯瑞尼瓦桑

地址:

美国加利福尼亚州

优先权:

2012.01.23 US 13/355,968

专利代理机构:

北京东方亿思知识产权代理有限责任公司 11258

代理人:

李晓冬

PDF下载: PDF下载
内容摘要

分组流被动态映射到资源队列。分组流在网络设备处被接收以在网络中从该网络设备进行路由。每个流包括要从源发送至连接的分组。为队列分配表存储数据,该队列分配表维护所接收的流的分组被指派给的多个桶,并且表明为各个桶分配多个资源队列中的哪个资源队列。对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。

权利要求书

1.  一种方法,包括:
在网络设备处接收分组流以在网络中从所述网络设备进行路由,每个流包括要从源发送至连接的分组;
为队列分配表存储数据,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;
对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且
为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。

2.
  如权利要求1所述的方法,其中,为队列分配表存储数据还包括为分组被指派给的每个桶存储标识为该桶分配的资源队列的队列标识符。

3.
  如权利要求2所述的方法,还包括确定针对分组从所计算的哈希函数得出的桶是否已经被指派给多个资源队列中的一个资源队列,如果是,那么将该分组指派给该桶,并且增大对该桶的负载的度量,并且当确定针对分组从所计算的哈希函数得出的桶是尚未为其分配了资源队列的桶时,还包括为该桶分配资源队列,并且为该桶更新所述队列分配表中的条目,所述条目包括该桶被指派给的资源队列的队列标识符。

4.
  如权利要求1所述的方法,还包括确定多个资源队列中每个资源队列的容量,其中,分配包括按各个资源队列的相对容量的顺序将新的桶分配给来自资源队列的轮循列表中的资源队列。

5.
  如权利要求4所述的方法,其中,周期地执行确定容量。

6.
  如权利要求1所述的方法,还包括周期地确定多个桶上的负载,其中,为队列分配表存储数据包括存储对多个桶中的每个桶上的负载的度量。

7.
  如权利要求6所述的方法,还包括当桶被确定对于至少预确定的时间段没有负载时,从所述队列分配表删除对于该桶的条目,以便当分组后续地被指派给该桶时,该桶可以被移到不同的资源队列。

8.
  如权利要求6所述的方法,还包括确定何时桶上的负载超过预确定的阈值达预确定的时间段。

9.
  如权利要求8所述的方法,还包括创建一个或多个保持队列,为负载超过预确定的阈值达预确定的时间段的桶分配不同的资源队列,将该桶中的分组指向所述保持队列中的一个保持队列达时延时间段,并且当所述时延时间段到期时,将该保持队列中的分组指向与之前为该桶分配的资源队列不同的资源队列。

10.
  如权利要求1所述的方法,还包括基于分组的目的地,确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给同样的桶。

11.
  如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与端口通道的成员相关联。

12.
  如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与多个处理核中的核相关联。

13.
  如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与网络中多个链路中的链路相关联。

14.
  编码有包括计算机可执行指令的软件的一个或多个计算机可读存储介质,并且当所述软件被运行时可操作来:
在网络设备处接收分组流以在网络中从所述网络设备进行路由,每个流包括要从源发送至连接的分组;
为队列分配表存储数据,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;
对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且
为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。

15.
  如权利要求14所述的计算机可读存储介质,其中,可操作来存储的指令包括可操作来为分组被指派给的每个桶存储标识为该桶分配的资源 队列的队列标识符的指令。

16.
  如权利要求14所述的计算机可读存储介质,还包括可操作来确定多个资源队列中的每个资源队列的容量的指令,其中,可操作来分配的指令包括可操作来按各个资源队列的相对容量的顺序将新的桶分配给来自资源队列的轮循列表中的资源队列的指令。

17.
  如权利要求14所述的计算机可读存储介质,还包括可操作来周期地确定多个桶上的负载的指令,其中,可操作来存储的指令包括可操作来存储对多个桶中每个桶上的负载的度量的指令。

18.
  如权利要求14所述的计算机可读存储介质,还包括可操作来基于分组的目的地确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给同样的桶的指令。

19.
  一种装置,包括:
网络接口单元,被配置来使能通过网络进行通信;
存储器;
处理器,耦合到所述网络接口单元和所述存储器,其中,所述处理器被配置来:
接收要在网络中进行路由的分组流,每个流包括从源到连接的分组;
为队列分配表将数据存储在所述存储器中,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;
对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且
为多个资源队列存储数据;以及
为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。

20.
  如权利要求19所述的装置,其中,所述处理器还被配置来周期地 确定多个桶上的负载,并且在所述队列分配表中存储对多个桶中的每个桶上的负载的度量。

21.
  如权利要求20所述的装置,其中,所述处理器还被配置来当桶被确定对于至少预确定的时间段没有负载时,从所述队列分配表删除对于该桶的条目,以便当分组后续地被指派给该桶时,该桶可以被移到不同的资源队列。

22.
  如权利要求21所述的装置,其中,所述处理器还被配置来确定何时桶上的负载超过预确定的阈值达预确定的时间段。

23.
  如权利要求22所述的装置,其中,所述处理器还被配置来生成一个或多个保持队列,为负载超过预确定的阈值达预确定的时间段的桶分配不同的资源队列,将该桶中的分组指向所述保持队列中的一个保持队列达时延时间段,当所述时延时间段到期时,将该保持队列中的分组指向与之前为该桶分配的资源队列不同的资源队列。

24.
  如权利要求19所述的装置,其中,所述处理器还被配置来基于分组的目的地确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给同样的桶。

说明书

无分组重排序的动态负载均衡
技术领域
本公开涉及分组排队以便分组被递送至诸如端口通道的成员、端口、链路、线程或核之类的资源。
背景技术
网络设备中的容量缩放涉及在多个路径或多个资源(例如,网络链路、交换机端口、交换结构、处理核、或线程等)间分布网络流量。维持分组排序约束了流量分布的方式,经常导致链路或其他资源的不均匀的负载分布和次优利用。随着对诸如端口通道和多核中央处理单元之类的聚合链路的使用的不断增长,存在改善流量分布尤其是提供动态流量分布的空间。
附图说明
图1是被配置来将分组流动态地映射到资源的诸如路由器或交换机之类的网络设备的框图。
图2是图示地描绘了本申请所描述的用于将分组流动态地映射到资源队列的技术的示意图。
图3是示出了用于将分组流动态地映射到资源队列的队列分配表中的示例条目的示意图。
图4是描绘了将流中的分组指派给桶(bucket)的操作的流程图。
图5是描绘了在将分组流动态地映射到资源队列期间周期性地执行的操作的流程图。
图6是描绘了用于后台轮询例程(polling routine)对不使用的桶解除分配的操作的流程图。
图7是描绘了用于确定每个资源队列的容量并创建/更新用于选择资源 队列的轮叫(robin)列表的操作的流程图。
图8是描绘了用于对熟知的粗流(thick flow)进行专门处理的操作的流程图。
图9是描绘了用于将分组流动态地映射到资源队列的整体操作的流程图。
发明内容
概要
分组流被动态映射到资源队列。分组流在网络设备处被接收以在网络中从该网络设备进行路由。每个流包括要从源发送至连接的分组。为队列分配表存储数据,该队列分配表维护要被指派所接收的流的分组的多个桶,并且表明为各个桶分配多个资源队列中的哪个资源队列。对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。
具体实施方式
示例实施例
首先参照图1,图1示出了示例网络设备10的框图。如本申请所描述的,网络设备10被配置来对分组流执行不会丢失分组的排序的动态负载均衡。网络设备10可以是聚合交换机、数据中心交换机、边缘交换机、和路由器(集成服务、载体服务等)。网络设备10具有用于分组转发或分组处理目的的多个资源12(1)-12(N)。资源12(1)-12(N)的示例有端口、端口通道的成员、链路、多核中央处理单元(CPU)的核、处理线程等。可以经由资源12(1)-12(N)中的任意资源在网络设备10处接收分组,并且然后将这些分组从网络设备10经由资源12(1)-12(N)中的任意资源从网络设备10进行路由。
网络设备10还包括分组路由单元14。分组路由单元14可以由一个或多个建立有(固定的或可编程的)数字逻辑(例如,硬件或固件)的固定 的或可编程的专用集成电路(ASIC)来配备,以针对进出分组流执行分组路由操作和相关分组处理操作。具有耦合于分组路由单元14的处理器16。处理器16是诸如微处理器或微控制器之类的可编程处理设备,用作网络设备10的控制器。处理器16被耦合于存储器18。存储器18用来存储由处理器16运行的工作数据和指令。为此,该存储器可以存储用于动态负载均衡处理逻辑20的指令。
存储器18可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪速存储器设备、电学或光学或其他实体的/有形的存储器存储设备。因而,通常,存储器18可以包括一个或多个采用包括计算机可执行指令的软件进行编码的有形的(非暂时性的)计算机可读存储介质(例如,存储器设备),并且当软件被(处理器16)运行时,处理器16可结合动态负载均衡处理逻辑20进行操作以执行本申请所描述的操作。当处理器运行动态负载均衡处理逻辑20时,处理器执行本申请所描述的操作。作为替代,分组路由单元14可以通过合适的数字逻辑进行配置来执行本申请所描述的动态负载均衡处理逻辑20的操作。图1示出了网络设备10通过分组路由单元14或处理器16的操作动态地映射到资源12(1)-12(N)的分组流30。
当前的分组排队技术使用静态哈希方案来将分组进行分类并分发到不同队列。这种方案具有不能基于负载来分发分组的缺点。
本申请所描述的动态负载均衡分组排队技术实现了不会引起分组重排序并且不会过于复杂的动态负载分布。这些技术对于分组转发线程的负载分布是有用的,也可以用于任何网络分组分发特征或功能,比如,端口通道。
现在参照图2,总体描述了动态负载均衡处理的操作。图2图示地描绘了多个资源队列,每个资源队列与资源12(1)-12(N)中相应的资源相关联。在图2的示例中,N=4,针对资源12(1)-12(4)。因此,资源队列以标号22(1)-22(4)示出。资源队列实质上是存储指向分组的指针的缓冲器或存储位置。这些分组本身可以被存储在与资源队列分开的存储器的区域中。按照本申请所描述的动态负载分发/均衡技术的一部分,为 资源队列的分配创建了动态映射表,而不是静态的哈希。该映射表在本申请中称为队列分配表(QAT),并在以标号24示出。QAT24和多个资源队列被存储器18中的存储位置所包含。
QAT24维护多个“桶”(存储位置),这多个桶以标号26示出,所接收的流的分组被指派给这多个桶。当分组流被指派给一个桶时,这些资源队列中的一个资源队列被分配给这个桶,并且QAT24还存储表明多个资源队列(例如,资源队列22(1)-22(4))中的哪个资源队列被分配给这个桶的数据。基于哈希函数,流的分组被指派给特定桶。也就是说,对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。例如,从分组的头部中的4元组信息(源地址、目的地址、校验和等)计算哈希函数。
当分组流被指派给桶时,为该桶分配资源队列。多于一个的桶(因此,多于一个的分组流)可以被指派给一个特定的资源队列。例如,图2示出了标记有数字“1”的五个不同的桶(因此,5个不同的分组流)被指派给资源队列22(1)作为资源12(1)。类似地,标记有数字“2”的四个不同的桶(因此,四个不同的分组流)被指派给资源队列22(2)作为资源12(2)。标记有数字“3”的四个不同的桶(因此,四个不同的分组流)被指派给资源队列22(3),以及标记有数字“4”的六个不同的桶(因此,六个不同的分组流)被指派给资源队列22(4)。图2中示出的没有标记的桶是还没有被分配给流的桶。
现在参照图3。图3示出了QAT24中的条目的数据结构的示例。首先,所有的桶被置为队列标识符(qid)=INVALID_QUE_ID并且负载计数器(Lcount)=0。当分组到来时,基于分组头部字段(例如,诸如传输控制协议[TCP]4元组的4元组)来确定其哈希桶(流的该分组被指派给多个桶中的这个桶)。如果该桶具有有效的队列条目(即,该桶已经被指派给特定队列),那么该分组被指向这个队列,并且负载增加。如果该桶不具有有效的队列条目,那么分配队列,并且该桶的条目通过qid进行更新。因此,QAT24中的每个条目包括针对qid、load和aging的32位整数(unit32)字段。
对于描绘通过动态负载均衡处理逻辑20和网络设备的其他能力的运行在网络设备中执行操作的多个流程图的说明,现在参照图4-8。对于这些图的说明,还要参照图2。
图4示出了分组到来/接收时执行的操作的流程图。在100处,基于分组的头部中的信息(例如,TCP4元组),为该分组计算哈希桶标识符(ID),从而确定将该分组分配给哪个桶(比如,图2中所示的多个桶26中的一个桶)。在110处,估计该桶(从100处的哈希计算确定)的qid来确定其是否有效,即,该桶是已经被指派给资源队列的桶还是未分配的桶(当前没有被指派给资源队列)。qid无效的桶是当前没有被指派给资源队列的桶。
如果在110处确定该桶的qid不是无效的,那么在120处,负载计数器Bucket.Lcount增加,并且该分组被移到该桶中。换句话说,该桶已经在使用,并且流的分组已经被分配给该桶。当前的分组是已经被分配给该桶的流的另一个分组。
如果在110处确定该桶的qid是无效的,那么在130处,(基于上述提到并在下面进行更加详细描述的轮循(round robin)选择)该桶被指派给资源队列。此外,QAT被更新来反映该桶向资源队列的指派,该桶的负载计数器Bucket.Lcount被置为1,并且该分组被移到该桶中。
图5示出了定期/周期性地(比如,定时器到期时)执行的操作。在140处,执行操作来对空闲的桶解除分配。桶解除分配过程140的详情结合图6进行描述。在150处,执行操作来计算资源队列上的负载。在160处,执行操作来创建/更新用于为桶选择资源队列的轮循列表。轮循列表创建/更新过程下文结合图7来描述。
转到图6,现描述桶解除分配过程140。该流程图用于被调用来针对最后间隔确定每个桶上的负载的后台定时器处理程序。在142处,对于QAT中的每个条目,为该桶读取当前间隔的负载值(NL)(NL=Bucket.Lcount值)。读取负载值之后,Bucket.Lcount被重置为0,因此,其可以为下一个间隔累积计数。在144处,确定NL是否等于0。当确定NL不等于0时,那么在146处,资源队列特定负载测量量RLoad[Rindex] 使用NL的值进行更新,RLoad[Rindex]=RLoad[Rindex]+NL,其中Rindex是与特定资源队列相对应的索引值。例如,Rindex=1指的是资源队列1,等等。当确定NL等于0时,那么在148处,对于该桶,qid值被置为INVALID(无效)。因此,图6描绘了检查桶上没有负载达预定的时间段(例如,两个连续的轮询周期,或一些其他充足的时间段)的后台轮询例程。当这种情况发生时,将针对该桶的相应的条目从QAT中移除。这允许在下一次该桶中有流量时选择最合适的队列。此外,当流量在流桶上停止时,将该流/桶移到不同的队列是安全的。
参照图7描述对资源负载/分配更新过程150和轮循列表创建/更新过程160的操作。资源负载/分配更新过程150涉及基于每个队列的可用容量来确定队列分配。基于前一间隔中队列上的总负载,周期性的后台轮询例程计算每个队列的可用容量。基于该容量,创建qid的轮循列表。该列表对于每个队列具有多个条目,这些条目的数目与该队列的当前容量成比例。一旦该列表由轮询例程建立,选择来自该轮循列表的下一个条目。
具体地,参照图7,在152处,从资源队列的负载RLoad(Rindex)根据计算Cap[Rindex]=Cap[Rindex]-RLoad(Rindex)来计算该资源队列的容量(由Cap[Rindex]来表示)。对所有的资源队列(即,Rindex=1至资源队列的数目(NumRes))执行操作152。在154处,将资源队列的容量进行分类(从最大到最低),并且计算所有这些资源队列的总容量,Tcap=Rindex=1至NumRes的所有这些资源队列的容量的和。
在162处,由轮循列表的尺寸(RRsize)、资源队列的容量Cap[Rindex]以及这些资源队列的总容量Tcap根据计算{RRsize xCap[Rindex]}/Tcap来为每个资源队列计算轮循计数(RRcount)。
然后,在164处,对于轮循列表中的每个条目RRentry,执行下面的操作。如果RRcount[Rindex]大于0,那么将资源队列Rindex的RRList条目设置为等于Rindex,并且减小RRcount[Rindex]。如果RRcount[Rindex]等于0,那么Rindex被设置为等于列表中的下一个资源队列Next[Rindex]。
概括地说,轮循列表RRList可以被认为是简单的数组。该数组的内容 标识将要被指派给桶的资源队列。该数组由在每次分配和环绕(wrap)之后增大的整数来索引,从而实现对于资源队列分配的轮循性质。该方法允许为新创建的分组流选择最佳资源队列。一旦为给定的分组流选择了队列,最好为该流的终生维护该分配。下文还将描述动态移动流的方案,如果流量负载这样规定。
只要流是相对短期的(例如,少于30秒),本申请目前所描述的技术能很好地工作,这是大多数时间的情形。这些技术将比静态哈希执行得更好,因为这些技术不完全依赖哈希函数的效用。
然而,有可能流保持持久并引起对负载分发的破坏。在该情形中,可能需要将一些桶移动到不同的资源队列。如果由一个或多个标记为持久的桶所消耗的百分比容量(基于这些桶保持激活多久)超过预设的阈值(例如,65%),那么触发这种桶移动机制。
确保次序一致性要求在已在运输中的分组在队列重新指派应用之前已被处理。在分组转发线程的情形中,这涉及结束对已在队列中的分组的调换。
在端口通道链路的情形中,这涉及到将已在队列中的分组传送出去并等待与这些分组的运送(transit)时间相对应的固定的时延。直到该处理时延到期,属于正被重新指派的桶的新的分组被容纳到保持队列中。时延到期时,保持队列被指派给正确的资源队列(链路或线程),并且该队列被正常处理。
该方案使用了一些附加队列(虚拟链路),这些附加队列被创建来允许移动持久的粗流。对于诸如分组转发线程之类的使用情形,这很容易实现。对于端口通道实现,可能涉及到来自传送驱动器的支持。
因此,处理持久的粗流的一种方式是创建一个或多个“保持”队列(暂时队列),为负载超过预确定的阈值达预确定的时间段的桶来分配不同的资源队列,将该桶中的分组指向这些保持队列中的一个保持队列达时延时间段,并且在时延时间段到期时,保持队列中的分组被指向与之前分配给该桶的资源队列不同的资源队列。
该动态分配方案依赖于进行哈希来将流捆绑/指派到可管理数目的桶 中。该哈希方案可以被操纵来确保熟知的“粗”流不被放入相同的一个桶或多个桶中,放入相同的桶将使特定的桶过载。所谓粗流的示例是具有大量持久的流量并且被发送到已知的用于这样的粗流的端口,例如,虚拟机迁移(比如,Vmotion)流量。
图8示出了描绘对熟知的粗流的特殊处理进行处理有用的操作的流程图。在对分组进行哈希计算来确定其桶标识符(图4中的操作100处)之后,在170处,检查该分组的头部来确定该分组的头部中的源地址、目的地址或其他参数是否表明该分组与熟知的粗流相关联。如果在170处确定该分组与熟知的粗流相关联,那么在172处,不是将该分组指派给由哈希计算得出的桶,而是为其分配从桶的预留范围中的桶标识符。因此,有多个被预留用于在处理熟知的粗流以避免将其全部指派给相同的桶中使用的桶。另一方面,如果在170处确定该分组不与熟知的粗流相关联,那么在174处,将该分组指派给基于哈希计算的桶,例如,Bucket ID=Hash(分组头部)。
概括地说,图8的过程涉及基于分组的目的地来确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给相同的桶。
图9是描绘了本申请所描述的动态映射技术的整体操作流程的流程图。在200处,在网络设备处接收分组流以将其在网络中从该网络设备处进行路由。每个流包括要从源发送至连接的分组。在210处,为队列分配表存储数据,该队列分配表维护多个桶,所接收的流的分组被指派给这多个桶,并且该队列分配表表明为各个桶分配多个资源队列中的哪个资源队列。在220处,对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,该分组被指派多个桶中的一个桶。在230处,为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。因此,为在230处执行该操作,对于这些多个资源队列,将数据存储在网络设备的存储器中。
如上面所解释的,对于分组被指派给的每个桶,队列分配表还存储标识为该桶分配的资源队列的队列标识符。而且,确定对于分组从所计算的 哈希函数得出的桶是否已经被指派给多个资源队列中的一个资源队列,如果是,那么该分组被指派给该桶,并且对于该桶,负载的度量增加。当确定对于分组从所计算的哈希函数得出的桶是尚未为其分配了资源队列的桶时,针对该桶的资源队列被分配,并且在队列分配表中的对于该桶的条目被更新,包括对于该桶被指派给的资源队列的队列标识符。
本申请描述的动态映射方案有效地解决了短期流的负载均衡,而不会增加复杂度。熟知的粗流可以通过在哈希方案中增加特殊的处理来解决。持久流可以通过增加一些附加的复杂度来解决。不像本质上按照与负载相反来分发流的静态哈希方案那样,该动态分配方法允许分发实际的负载。通过仅当桶空闲时移动流,确保了分组顺序维持。
上述旨在仅通过示例的方式描述。

无分组重排序的动态负载均衡.pdf_第1页
第1页 / 共14页
无分组重排序的动态负载均衡.pdf_第2页
第2页 / 共14页
无分组重排序的动态负载均衡.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《无分组重排序的动态负载均衡.pdf》由会员分享,可在线阅读,更多相关《无分组重排序的动态负载均衡.pdf(14页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104067578A43申请公布日20140924CN104067578A21申请号201280067657922申请日2012122013/355,96820120123USH04L12/80320060171申请人思科技术公司地址美国加利福尼亚州72发明人佐治托马斯麦卡图帕拉班纳仁德因笃里尤达亚玛卡尔斯瑞尼瓦桑74专利代理机构北京东方亿思知识产权代理有限责任公司11258代理人李晓冬54发明名称无分组重排序的动态负载均衡57摘要分组流被动态映射到资源队列。分组流在网络设备处被接收以在网络中从该网络设备进行路由。每个流包括要从源发送至连接的分组。为队列分配表存储数据,该队列。

2、分配表维护所接收的流的分组被指派给的多个桶,并且表明为各个桶分配多个资源队列中的哪个资源队列。对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。30优先权数据85PCT国际申请进入国家阶段日2014072186PCT国际申请的申请数据PCT/US2012/0707562012122087PCT国际申请的公布数据WO2013/112250EN2013080151INTCL权利要求书3页说明书6页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书3。

3、页说明书6页附图4页10申请公布号CN104067578ACN104067578A1/3页21一种方法,包括在网络设备处接收分组流以在网络中从所述网络设备进行路由,每个流包括要从源发送至连接的分组;为队列分配表存储数据,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。2如权利要求1所述的方法,其中,为队列分配表存储数据还包括为分组被指派给的每个桶存储标。

4、识为该桶分配的资源队列的队列标识符。3如权利要求2所述的方法,还包括确定针对分组从所计算的哈希函数得出的桶是否已经被指派给多个资源队列中的一个资源队列,如果是,那么将该分组指派给该桶,并且增大对该桶的负载的度量,并且当确定针对分组从所计算的哈希函数得出的桶是尚未为其分配了资源队列的桶时,还包括为该桶分配资源队列,并且为该桶更新所述队列分配表中的条目,所述条目包括该桶被指派给的资源队列的队列标识符。4如权利要求1所述的方法,还包括确定多个资源队列中每个资源队列的容量,其中,分配包括按各个资源队列的相对容量的顺序将新的桶分配给来自资源队列的轮循列表中的资源队列。5如权利要求4所述的方法,其中,周期。

5、地执行确定容量。6如权利要求1所述的方法,还包括周期地确定多个桶上的负载,其中,为队列分配表存储数据包括存储对多个桶中的每个桶上的负载的度量。7如权利要求6所述的方法,还包括当桶被确定对于至少预确定的时间段没有负载时,从所述队列分配表删除对于该桶的条目,以便当分组后续地被指派给该桶时,该桶可以被移到不同的资源队列。8如权利要求6所述的方法,还包括确定何时桶上的负载超过预确定的阈值达预确定的时间段。9如权利要求8所述的方法,还包括创建一个或多个保持队列,为负载超过预确定的阈值达预确定的时间段的桶分配不同的资源队列,将该桶中的分组指向所述保持队列中的一个保持队列达时延时间段,并且当所述时延时间段到。

6、期时,将该保持队列中的分组指向与之前为该桶分配的资源队列不同的资源队列。10如权利要求1所述的方法,还包括基于分组的目的地,确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给同样的桶。11如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与端口通道的成员相关联。12如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与多个处理核中的核相关联。13如权利要求1所述的方法,其中,所述多个资源队列中的每个资源队列与网络中多权利要求书CN104067578A2/3页3个链路中的链路相关联。14编码有。

7、包括计算机可执行指令的软件的一个或多个计算机可读存储介质,并且当所述软件被运行时可操作来在网络设备处接收分组流以在网络中从所述网络设备进行路由,每个流包括要从源发送至连接的分组;为队列分配表存储数据,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。15如权利要求14所述的计算机可读存储介质,其中,可操作来存储的指令包括可操作来为分组被指派给的每个桶存储。

8、标识为该桶分配的资源队列的队列标识符的指令。16如权利要求14所述的计算机可读存储介质,还包括可操作来确定多个资源队列中的每个资源队列的容量的指令,其中,可操作来分配的指令包括可操作来按各个资源队列的相对容量的顺序将新的桶分配给来自资源队列的轮循列表中的资源队列的指令。17如权利要求14所述的计算机可读存储介质,还包括可操作来周期地确定多个桶上的负载的指令,其中,可操作来存储的指令包括可操作来存储对多个桶中每个桶上的负载的度量的指令。18如权利要求14所述的计算机可读存储介质,还包括可操作来基于分组的目的地确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶。

9、,以便将不多于预确定数目的相对高带宽流指派给同样的桶的指令。19一种装置,包括网络接口单元,被配置来使能通过网络进行通信;存储器;处理器,耦合到所述网络接口单元和所述存储器,其中,所述处理器被配置来接收要在网络中进行路由的分组流,每个流包括从源到连接的分组;为队列分配表将数据存储在所述存储器中,所述队列分配表维护所接收的流的分组被指派给的多个桶并表明为各个桶分配多个资源队列中的哪个资源队列;对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,将该分组指派给所述多个桶中的一个桶;并且为多个资源队列存储数据;以及为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列。

10、中的一个资源队列。20如权利要求19所述的装置,其中,所述处理器还被配置来周期地确定多个桶上的负载,并且在所述队列分配表中存储对多个桶中的每个桶上的负载的度量。21如权利要求20所述的装置,其中,所述处理器还被配置来当桶被确定对于至少预确定的时间段没有负载时,从所述队列分配表删除对于该桶的条目,以便当分组后续地被指派给该桶时,该桶可以被移到不同的资源队列。权利要求书CN104067578A3/3页422如权利要求21所述的装置,其中,所述处理器还被配置来确定何时桶上的负载超过预确定的阈值达预确定的时间段。23如权利要求22所述的装置,其中,所述处理器还被配置来生成一个或多个保持队列,为负载超过。

11、预确定的阈值达预确定的时间段的桶分配不同的资源队列,将该桶中的分组指向所述保持队列中的一个保持队列达时延时间段,当所述时延时间段到期时,将该保持队列中的分组指向与之前为该桶分配的资源队列不同的资源队列。24如权利要求19所述的装置,其中,所述处理器还被配置来基于分组的目的地确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给同样的桶。权利要求书CN104067578A1/6页5无分组重排序的动态负载均衡技术领域0001本公开涉及分组排队以便分组被递送至诸如端口通道的成员、端口、链路、线程或核之类的资源。背景技术00。

12、02网络设备中的容量缩放涉及在多个路径或多个资源例如,网络链路、交换机端口、交换结构、处理核、或线程等间分布网络流量。维持分组排序约束了流量分布的方式,经常导致链路或其他资源的不均匀的负载分布和次优利用。随着对诸如端口通道和多核中央处理单元之类的聚合链路的使用的不断增长,存在改善流量分布尤其是提供动态流量分布的空间。附图说明0003图1是被配置来将分组流动态地映射到资源的诸如路由器或交换机之类的网络设备的框图。0004图2是图示地描绘了本申请所描述的用于将分组流动态地映射到资源队列的技术的示意图。0005图3是示出了用于将分组流动态地映射到资源队列的队列分配表中的示例条目的示意图。0006图4。

13、是描绘了将流中的分组指派给桶BUCKET的操作的流程图。0007图5是描绘了在将分组流动态地映射到资源队列期间周期性地执行的操作的流程图。0008图6是描绘了用于后台轮询例程POLLINGROUTINE对不使用的桶解除分配的操作的流程图。0009图7是描绘了用于确定每个资源队列的容量并创建/更新用于选择资源队列的轮叫ROBIN列表的操作的流程图。0010图8是描绘了用于对熟知的粗流THICKFLOW进行专门处理的操作的流程图。0011图9是描绘了用于将分组流动态地映射到资源队列的整体操作的流程图。发明内容0012概要0013分组流被动态映射到资源队列。分组流在网络设备处被接收以在网络中从该网络。

14、设备进行路由。每个流包括要从源发送至连接的分组。为队列分配表存储数据,该队列分配表维护要被指派所接收的流的分组的多个桶,并且表明为各个桶分配多个资源队列中的哪个资源队列。对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。说明书CN104067578A2/6页6具体实施方式0014示例实施例0015首先参照图1,图1示出了示例网络设备10的框图。如本申请所描述的,网络设备10被配置来对分组流执行不会丢失分组的排序的动态负载均衡。网络设备10可以是聚合交换机、数据。

15、中心交换机、边缘交换机、和路由器集成服务、载体服务等。网络设备10具有用于分组转发或分组处理目的的多个资源12112N。资源12112N的示例有端口、端口通道的成员、链路、多核中央处理单元CPU的核、处理线程等。可以经由资源12112N中的任意资源在网络设备10处接收分组,并且然后将这些分组从网络设备10经由资源12112N中的任意资源从网络设备10进行路由。0016网络设备10还包括分组路由单元14。分组路由单元14可以由一个或多个建立有固定的或可编程的数字逻辑例如,硬件或固件的固定的或可编程的专用集成电路ASIC来配备,以针对进出分组流执行分组路由操作和相关分组处理操作。具有耦合于分组路由。

16、单元14的处理器16。处理器16是诸如微处理器或微控制器之类的可编程处理设备,用作网络设备10的控制器。处理器16被耦合于存储器18。存储器18用来存储由处理器16运行的工作数据和指令。为此,该存储器可以存储用于动态负载均衡处理逻辑20的指令。0017存储器18可以包括只读存储器ROM、随机存取存储器RAM、磁盘存储介质设备、光存储介质设备、闪速存储器设备、电学或光学或其他实体的/有形的存储器存储设备。因而,通常,存储器18可以包括一个或多个采用包括计算机可执行指令的软件进行编码的有形的非暂时性的计算机可读存储介质例如,存储器设备,并且当软件被处理器16运行时,处理器16可结合动态负载均衡处理。

17、逻辑20进行操作以执行本申请所描述的操作。当处理器运行动态负载均衡处理逻辑20时,处理器执行本申请所描述的操作。作为替代,分组路由单元14可以通过合适的数字逻辑进行配置来执行本申请所描述的动态负载均衡处理逻辑20的操作。图1示出了网络设备10通过分组路由单元14或处理器16的操作动态地映射到资源12112N的分组流30。0018当前的分组排队技术使用静态哈希方案来将分组进行分类并分发到不同队列。这种方案具有不能基于负载来分发分组的缺点。0019本申请所描述的动态负载均衡分组排队技术实现了不会引起分组重排序并且不会过于复杂的动态负载分布。这些技术对于分组转发线程的负载分布是有用的,也可以用于任何。

18、网络分组分发特征或功能,比如,端口通道。0020现在参照图2,总体描述了动态负载均衡处理的操作。图2图示地描绘了多个资源队列,每个资源队列与资源12112N中相应的资源相关联。在图2的示例中,N4,针对资源121124。因此,资源队列以标号221224示出。资源队列实质上是存储指向分组的指针的缓冲器或存储位置。这些分组本身可以被存储在与资源队列分开的存储器的区域中。按照本申请所描述的动态负载分发/均衡技术的一部分,为资源队列的分配创建了动态映射表,而不是静态的哈希。该映射表在本申请中称为队列分配表QAT,并在以标号24示出。QAT24和多个资源队列被存储器18中的存储位置所包含。0021QAT。

19、24维护多个“桶”存储位置,这多个桶以标号26示出,所接收的流的分组被说明书CN104067578A3/6页7指派给这多个桶。当分组流被指派给一个桶时,这些资源队列中的一个资源队列被分配给这个桶,并且QAT24还存储表明多个资源队列例如,资源队列221224中的哪个资源队列被分配给这个桶的数据。基于哈希函数,流的分组被指派给特定桶。也就是说,对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。例如,从分组的头部中的4元组信息源地址、目的地址、校验和等计算哈希函数。0022当分组流被指派给桶时,为该桶分配资源队列。多于一个的桶因此,多于一。

20、个的分组流可以被指派给一个特定的资源队列。例如,图2示出了标记有数字“1”的五个不同的桶因此,5个不同的分组流被指派给资源队列221作为资源121。类似地,标记有数字“2”的四个不同的桶因此,四个不同的分组流被指派给资源队列222作为资源122。标记有数字“3”的四个不同的桶因此,四个不同的分组流被指派给资源队列223,以及标记有数字“4”的六个不同的桶因此,六个不同的分组流被指派给资源队列224。图2中示出的没有标记的桶是还没有被分配给流的桶。0023现在参照图3。图3示出了QAT24中的条目的数据结构的示例。首先,所有的桶被置为队列标识符QIDINVALID_QUE_ID并且负载计数器LC。

21、OUNT0。当分组到来时,基于分组头部字段例如,诸如传输控制协议TCP4元组的4元组来确定其哈希桶流的该分组被指派给多个桶中的这个桶。如果该桶具有有效的队列条目即,该桶已经被指派给特定队列,那么该分组被指向这个队列,并且负载增加。如果该桶不具有有效的队列条目,那么分配队列,并且该桶的条目通过QID进行更新。因此,QAT24中的每个条目包括针对QID、LOAD和AGING的32位整数UNIT32字段。0024对于描绘通过动态负载均衡处理逻辑20和网络设备的其他能力的运行在网络设备中执行操作的多个流程图的说明,现在参照图48。对于这些图的说明,还要参照图2。0025图4示出了分组到来/接收时执行的。

22、操作的流程图。在100处,基于分组的头部中的信息例如,TCP4元组,为该分组计算哈希桶标识符ID,从而确定将该分组分配给哪个桶比如,图2中所示的多个桶26中的一个桶。在110处,估计该桶从100处的哈希计算确定的QID来确定其是否有效,即,该桶是已经被指派给资源队列的桶还是未分配的桶当前没有被指派给资源队列。QID无效的桶是当前没有被指派给资源队列的桶。0026如果在110处确定该桶的QID不是无效的,那么在120处,负载计数器BUCKETLCOUNT增加,并且该分组被移到该桶中。换句话说,该桶已经在使用,并且流的分组已经被分配给该桶。当前的分组是已经被分配给该桶的流的另一个分组。0027如果。

23、在110处确定该桶的QID是无效的,那么在130处,基于上述提到并在下面进行更加详细描述的轮循ROUNDROBIN选择该桶被指派给资源队列。此外,QAT被更新来反映该桶向资源队列的指派,该桶的负载计数器BUCKETLCOUNT被置为1,并且该分组被移到该桶中。0028图5示出了定期/周期性地比如,定时器到期时执行的操作。在140处,执行操作来对空闲的桶解除分配。桶解除分配过程140的详情结合图6进行描述。在150处,执行操作来计算资源队列上的负载。在160处,执行操作来创建/更新用于为桶选择资源队列的轮循列表。轮循列表创建/更新过程下文结合图7来描述。0029转到图6,现描述桶解除分配过程14。

24、0。该流程图用于被调用来针对最后间隔确定说明书CN104067578A4/6页8每个桶上的负载的后台定时器处理程序。在142处,对于QAT中的每个条目,为该桶读取当前间隔的负载值NLNLBUCKETLCOUNT值。读取负载值之后,BUCKETLCOUNT被重置为0,因此,其可以为下一个间隔累积计数。在144处,确定NL是否等于0。当确定NL不等于0时,那么在146处,资源队列特定负载测量量RLOADRINDEX使用NL的值进行更新,RLOADRINDEXRLOADRINDEXNL,其中RINDEX是与特定资源队列相对应的索引值。例如,RINDEX1指的是资源队列1,等等。当确定NL等于0时,那。

25、么在148处,对于该桶,QID值被置为INVALID无效。因此,图6描绘了检查桶上没有负载达预定的时间段例如,两个连续的轮询周期,或一些其他充足的时间段的后台轮询例程。当这种情况发生时,将针对该桶的相应的条目从QAT中移除。这允许在下一次该桶中有流量时选择最合适的队列。此外,当流量在流桶上停止时,将该流/桶移到不同的队列是安全的。0030参照图7描述对资源负载/分配更新过程150和轮循列表创建/更新过程160的操作。资源负载/分配更新过程150涉及基于每个队列的可用容量来确定队列分配。基于前一间隔中队列上的总负载,周期性的后台轮询例程计算每个队列的可用容量。基于该容量,创建QID的轮循列表。该。

26、列表对于每个队列具有多个条目,这些条目的数目与该队列的当前容量成比例。一旦该列表由轮询例程建立,选择来自该轮循列表的下一个条目。0031具体地,参照图7,在152处,从资源队列的负载RLOADRINDEX根据计算CAPRINDEXCAPRINDEXRLOADRINDEX来计算该资源队列的容量由CAPRINDEX来表示。对所有的资源队列即,RINDEX1至资源队列的数目NUMRES执行操作152。在154处,将资源队列的容量进行分类从最大到最低,并且计算所有这些资源队列的总容量,TCAPRINDEX1至NUMRES的所有这些资源队列的容量的和。0032在162处,由轮循列表的尺寸RRSIZE、资。

27、源队列的容量CAPRINDEX以及这些资源队列的总容量TCAP根据计算RRSIZEXCAPRINDEX/TCAP来为每个资源队列计算轮循计数RRCOUNT。0033然后,在164处,对于轮循列表中的每个条目RRENTRY,执行下面的操作。如果RRCOUNTRINDEX大于0,那么将资源队列RINDEX的RRLIST条目设置为等于RINDEX,并且减小RRCOUNTRINDEX。如果RRCOUNTRINDEX等于0,那么RINDEX被设置为等于列表中的下一个资源队列NEXTRINDEX。0034概括地说,轮循列表RRLIST可以被认为是简单的数组。该数组的内容标识将要被指派给桶的资源队列。该数组。

28、由在每次分配和环绕WRAP之后增大的整数来索引,从而实现对于资源队列分配的轮循性质。该方法允许为新创建的分组流选择最佳资源队列。一旦为给定的分组流选择了队列,最好为该流的终生维护该分配。下文还将描述动态移动流的方案,如果流量负载这样规定。0035只要流是相对短期的例如,少于30秒,本申请目前所描述的技术能很好地工作,这是大多数时间的情形。这些技术将比静态哈希执行得更好,因为这些技术不完全依赖哈希函数的效用。0036然而,有可能流保持持久并引起对负载分发的破坏。在该情形中,可能需要将一些桶移动到不同的资源队列。如果由一个或多个标记为持久的桶所消耗的百分比容量基于这些桶保持激活多久超过预设的阈值例。

29、如,65,那么触发这种桶移动机制。0037确保次序一致性要求在已在运输中的分组在队列重新指派应用之前已被处理。在说明书CN104067578A5/6页9分组转发线程的情形中,这涉及结束对已在队列中的分组的调换。0038在端口通道链路的情形中,这涉及到将已在队列中的分组传送出去并等待与这些分组的运送TRANSIT时间相对应的固定的时延。直到该处理时延到期,属于正被重新指派的桶的新的分组被容纳到保持队列中。时延到期时,保持队列被指派给正确的资源队列链路或线程,并且该队列被正常处理。0039该方案使用了一些附加队列虚拟链路,这些附加队列被创建来允许移动持久的粗流。对于诸如分组转发线程之类的使用情形,。

30、这很容易实现。对于端口通道实现,可能涉及到来自传送驱动器的支持。0040因此,处理持久的粗流的一种方式是创建一个或多个“保持”队列暂时队列,为负载超过预确定的阈值达预确定的时间段的桶来分配不同的资源队列,将该桶中的分组指向这些保持队列中的一个保持队列达时延时间段,并且在时延时间段到期时,保持队列中的分组被指向与之前分配给该桶的资源队列不同的资源队列。0041该动态分配方案依赖于进行哈希来将流捆绑/指派到可管理数目的桶中。该哈希方案可以被操纵来确保熟知的“粗”流不被放入相同的一个桶或多个桶中,放入相同的桶将使特定的桶过载。所谓粗流的示例是具有大量持久的流量并且被发送到已知的用于这样的粗流的端口,。

31、例如,虚拟机迁移比如,VMOTION流量。0042图8示出了描绘对熟知的粗流的特殊处理进行处理有用的操作的流程图。在对分组进行哈希计算来确定其桶标识符图4中的操作100处之后,在170处,检查该分组的头部来确定该分组的头部中的源地址、目的地址或其他参数是否表明该分组与熟知的粗流相关联。如果在170处确定该分组与熟知的粗流相关联,那么在172处,不是将该分组指派给由哈希计算得出的桶,而是为其分配从桶的预留范围中的桶标识符。因此,有多个被预留用于在处理熟知的粗流以避免将其全部指派给相同的桶中使用的桶。另一方面,如果在170处确定该分组不与熟知的粗流相关联,那么在174处,将该分组指派给基于哈希计算。

32、的桶,例如,BUCKETIDHASH分组头部。0043概括地说,图8的过程涉及基于分组的目的地来确定流中的分组是否与相对高带宽流相关联,并且将相对高带宽流的分组指派给一个或多个预留的桶,以便将不多于预确定数目的相对高带宽流指派给相同的桶。0044图9是描绘了本申请所描述的动态映射技术的整体操作流程的流程图。在200处,在网络设备处接收分组流以将其在网络中从该网络设备处进行路由。每个流包括要从源发送至连接的分组。在210处,为队列分配表存储数据,该队列分配表维护多个桶,所接收的流的分组被指派给这多个桶,并且该队列分配表表明为各个桶分配多个资源队列中的哪个资源队列。在220处,对于流中的每个分组,。

33、从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函数,该分组被指派多个桶中的一个桶。在230处,为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。因此,为在230处执行该操作,对于这些多个资源队列,将数据存储在网络设备的存储器中。0045如上面所解释的,对于分组被指派给的每个桶,队列分配表还存储标识为该桶分配的资源队列的队列标识符。而且,确定对于分组从所计算的哈希函数得出的桶是否已经被指派给多个资源队列中的一个资源队列,如果是,那么该分组被指派给该桶,并且对于该桶,负载的度量增加。当确定对于分组从所计算的哈希函数得出的桶是尚未为其分配了资说明书CN1040675。

34、78A6/6页10源队列的桶时,针对该桶的资源队列被分配,并且在队列分配表中的对于该桶的条目被更新,包括对于该桶被指派给的资源队列的队列标识符。0046本申请描述的动态映射方案有效地解决了短期流的负载均衡,而不会增加复杂度。熟知的粗流可以通过在哈希方案中增加特殊的处理来解决。持久流可以通过增加一些附加的复杂度来解决。不像本质上按照与负载相反来分发流的静态哈希方案那样,该动态分配方法允许分发实际的负载。通过仅当桶空闲时移动流,确保了分组顺序维持。0047上述旨在仅通过示例的方式描述。说明书CN104067578A101/4页11图1说明书附图CN104067578A112/4页12图2图3图4说明书附图CN104067578A123/4页13图5图6图7说明书附图CN104067578A134/4页14图8图9说明书附图CN104067578A14。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1