无分组重排序的动态负载均衡制造技术

技术编号:10459585 阅读:152 留言:0更新日期:2014-09-24 14:56
分组流被动态映射到资源队列。分组流在网络设备处被接收以在网络中从该网络设备进行路由。每个流包括要从源发送至连接的分组。为队列分配表存储数据,该队列分配表维护所接收的流的分组被指派给的多个桶,并且表明为各个桶分配多个资源队列中的哪个资源队列。对于流中的每个分组,从分组的头部中的值计算哈希函数,并且基于所计算的哈希函数,该分组被指派给多个桶中的一个桶。为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队列。

【技术实现步骤摘要】
【国外来华专利技术】无分组重排序的动态负载均衡
本公开涉及分组排队以便分组被递送至诸如端口通道的成员、端口、链路、线程或 核之类的资源。
技术介绍
网络设备中的容量缩放涉及在多个路径或多个资源(例如,网络链路、交换机端 口、交换结构、处理核、或线程等)间分布网络流量。维持分组排序约束了流量分布的方式, 经常导致链路或其他资源的不均匀的负载分布和次优利用。随着对诸如端口通道和多核中 央处理单元之类的聚合链路的使用的不断增长,存在改善流量分布尤其是提供动态流量分 布的空间。 【附图说明】 图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元组)来确定其哈希桶 (流的该分组被指派给多个桶中的这个桶)。如果该桶具有有效的队列条目本文档来自技高网...
无分组重排序的动态负载均衡

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

【技术特征摘要】
【国外来华专利技术】2012.01.23 US 13/355,9681. 一种方法,包括: 在网络设备处接收分组流以在网络中从所述网络设备进行路由,每个流包括要从源发 送至连接的分组; 为队列分配表存储数据,所述队列分配表维护所接收的流的分组被指派给的多个桶并 表明为各个桶分配多个资源队列中的哪个资源队列; 对于流中的每个分组,从分组的头部中的值计算哈希函数,并且,基于所计算的哈希函 数,将该分组指派给所述多个桶中的一个桶;并且 为基于所计算的哈希函数被指派了分组的每个桶分配多个资源队列中的一个资源队 列。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. 编码有包括计算机可执行指令的软件的一个或多个计算机可读存储介质,并且当 所述软件被运行时可操作来: 在网络设备处接收分组流以在网络中从所述网络设备进行路由,每个流包括要从源发 送至连接的分组; 为队列分配表存储数据,所...

【专利技术属性】
技术研发人员:佐治·托马斯·麦卡图帕拉班纳仁德·因笃里尤达亚玛卡尔·斯瑞尼瓦桑
申请(专利权)人:思科技术公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1