CN104885420A - 使用单个共享缓存支持服务质量差异化 - Google Patents

使用单个共享缓存支持服务质量差异化 Download PDF

Info

Publication number
CN104885420A
CN104885420A CN201380068290.7A CN201380068290A CN104885420A CN 104885420 A CN104885420 A CN 104885420A CN 201380068290 A CN201380068290 A CN 201380068290A CN 104885420 A CN104885420 A CN 104885420A
Authority
CN
China
Prior art keywords
packet
buffer memory
multiple packet
classes
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380068290.7A
Other languages
English (en)
Other versions
CN104885420B (zh
Inventor
彼得·纽曼
弗朗西斯·马图斯
乔治斯·阿基斯
吴高林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN104885420A publication Critical patent/CN104885420A/zh
Application granted granted Critical
Publication of CN104885420B publication Critical patent/CN104885420B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/60Queue scheduling implementing hierarchical scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/623Weighted service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种示例性的方法、系统和开关元件被提供,并且可以提供被配置为接收多个数据分组的输出端口,所述多个数据分组的每一个为多种类别的一种。缓存可以与至少一个数据端口接口通信。基于测量策略,存储器管理单元可以被配置为使能或禁止所述多个数据分组的多种类别的传送;并且将所述多个数据分组放入缓存。

Description

使用单个共享缓存支持服务质量差异化
技术领域
本公开一般而言涉及网络通信领域,并且更特别地,涉及管理单个共享缓存中不同类别的服务。
背景技术
拥塞可以涉及堵塞网络路径的过多网络流量。拥塞的常见原因可以包括单个网络环节或者冲突域上的过多用户、来自于带宽密集的网络应用的高需求、访问因特网的用户的快速增长数量、个人计算机(PC)和服务器的增长的功率等。数据网络通常尝试对不同类型的流量提供不同类别的服务。例如,语音流量偏好低抖动,控制流量偏好低延迟,且尽力而为流量获得剩余的全部带宽。提供这一差异化服务的典型方式为,对每种类别的流量提供单独队列,并根据某种策略,从每一个队列调度流量从输出端口输出。这一策略通常将输出链接带宽的百分比分配至每一种类别,以在过载条件下被应用。达到高速运行的一个潜在难点发生在当分组退出网络设备时。在网络设备的输出端口排队等候的分组需要被成形和调度以用于传送。这一成形典型地在每一服务类别(CoS)的基础上执行。
附图简要说明
为了提供本公开和特征及它们的优势的更为完整的理解,对接下来的描述连同附图一并作出参考,其中,相同的标号代表类似的部分,其中:
图1为根据实施例的开关元件的示例性表述;
图2为根据实施例的输出端口的示例性表述;
图3为根据实施例的具有两个层次的调度策略的输出端口的简化表述;
图4为根据实施例的开关元件的示例性框图;
图5为根据实施例示出了用于管理开关元件中的多个数据分组的方法的简化流程图;
图6为根据实施例示出了用于管理缓存的方法的简化流程图;以及
图7为根据实施例示出了具有用于排空队列的二级调度策略的方法的简化流程图。
示例性实施例的详细描述
概述
图1为根据实施例的开关元件100的简化表述。开关元件100包括连接至交叉开关104的N个输入端口102-1…102-N。交换开关104转而将输入端口102-1…102-N的每一个连接至P个输出端口106-1…106-P,这里P可以等于N。在这一实施例中,N和P等于48,然而,在其它实施例中,N和P可以等于任何其它数字。交叉开关104可以包括确认反馈回路108。另外,每一个输出端口可以包括Xon/Xoff广播回路110。
开关元件可以具有多于一个输出端口和多于一个输入端口。端口通常被组织为每一个具体端口起既能输入又能输出的作用。然而,为了描述的目的,将输入端口和输出端口当作分开的实体是有用的,因为它们逻辑上分开且通常被实现为分开的实体。在任意输入端口接收的分组在该端口例如通过针对类型、源和目的地、端口号等检验头部信息且确定许多规则和处理中的哪些适用然后通过应用预定过程处理该分组而被预处理。一些分组可以为用于诸如视频流或网页的数据分组,例如,通过在被确定耦接至下一节点的任何输出端口将它们重发,这些分组可以被处理,其中分组通过该下一节点继续被传送直至最终目的地。其它分组可能被确定为来自于邻居路由器的查询,这些分组可以被转移至中央处理单元(CPU)以用于准备随后答复,并被返回给该邻居。
图2为根据实施例的输出端口200的简化表述。输出端口200可以为如图1中所示的任一个输出端口106-1…106-P的示例。输出端口200可以包括测量策略202、调度策略204、和队列206。在示例性实施例中,输出端口200可以从交叉开关接收数据分组。数据分组可以为单播可丢弃流量208、单播不可丢弃流量210、多播流量212、和/或一些其它类型的数据流量。另外,数据分组可以为不同类别的服务(CoS)。
单播流量208和210从单个源被发送至单个目的地。存在一个设备,传送指定用于一个接收方的消息。单播可丢弃流量208和单播不可丢弃流量210之间的区别为,单播不可丢弃流量210被认为丢弃是不符合需求的。多播流量212使单个设备能与多个目的地通信。例如,它允许类似于电话会议的通信。来自于任何地方的任何人可以加入该会议,且会议中的每个人听到发言者不得不说的话。发言者的消息不是被广播至任何地方,而是只被广播至电话会议本身中的那些人。
在一个或多个实施例中,并且特别地,关于单播可丢弃流量208,在进入缓存(未被示出)之前,数据分组可以被测量策略202管理。缓存可以被单播可丢弃流量208、单播不可丢弃流量210、和多播流量212共享。测量策略202可以为严格策略(strict policy)、加权轮叫调度(weighted round robin)、赤字加权轮叫调度(deficit weighted roundrobin,DWRR)、计数策略(counting policy)、策略组合、和/或一些其它类型的测量策略。不同的CoS可以具有被允许的不同需求以通过输出端口200。在一个示例中,相比另一类型的类别,语音连接可能需要更多的数据分组带宽。在这一示例中,测量策略202可以让用于语音连接的CoS具有比另一CoS更高的优先权。
另外,关于单播可丢弃流量208,Xon/Xoff信号216可以被发送至输入端口。通过向输入端口指示在开关元件的输入侧开始缓存单播可丢弃流量208,Xon/Xoff信号216可以能够在每一种类别基础上使能和禁止对输出端口200的访问。Xon/Xoff信号216可以使用例如如图1中所示的Xon/Xoff广播回路110。
测量策略202和Xon/Xoff信号216可以被一起使用以管理单播可丢弃流量的不同类别的流。例如,如果存在类别A、B和C,A具有B和C的两倍加权(当在测量策略202中使用权重时)。当流量进入输出端口200时,测量策略202可以保持对多少数据分组已进入缓存(未被示出)的追踪。在这一示例中,A被允许100单位,B和C被允许50单位。单位可以为一个数据分组或网络上任何其它类型的分隔数据的方法。测量策略200可以在分组进入缓存时,对它们计数。当任何类别开始达到它们的分配额时,Xon/Xoff信号216可以被发送至输入端口以开始缓存这些类别。当分配额被达到时(或者考虑到Xon/Xoff信号216的延迟,在这一时间之前),Xon/Xoff信号216可以被发送。
另外,当单播可丢弃流量208、单播不可丢弃流量210和多播流量212进入缓存时,指向缓存中的每一个数据分组的位置的地址(未被示出)的指针(未被示出)进入队列206(还被指代为列表)。指针可以被放入与如下数据分组的CoS相应的队列,指针指向这些数据分组的地址。调度策略204可以表达可以从缓存获取的单播可丢弃流量208、单播不可丢弃流量210、和多播流量212的流量类别之间的所需服务比例。调度策略204可以使用与测量策略202类似类型的加权系统。在这种方式下,对数据分组,需要从缓存以与它们被放入缓存的比例相同或大体上相同的比例获取,这保证缓存不会变满。多播流量212可以首先进入多播缓存220,且然后进入多播复制阶段222。在多播复制阶段222期间,多播流量被复制到其它输出端口。多播流量212还可以受消减阈值224的支配。
在操作方面,并且在特定的实施例中,开关元件的输出端口(还被称为多阶段开关构造)可以被实现为共享存储器开关。队列(还被称为输出队列)和存储器管理单元(还被称为输出调度器)可以位于此处。然而,单播流量可以被缓存于输入端口处的队列中,简单的Xon/Xoff控制信号将队列206连接至输入队列。开关元件可以同时发送非常多的流量至单个共享存储器阶段。由于Xon/Xoff广播回路110所引起的延迟,一旦Xoff信号被发布,可能需要拨出大量缓存以捕获传送中的分组。如果每一种类别的单播可丢弃流量208被实现为单独的缓存,则每一种类别将需要拨出大量的缓存以用于传送的吸收,因为传送中的单播分组可能属于任何流量类别。示例性实施例的一个或多个可以支持8个或更多的单播流量类别。一个或多个实施例提供了如下方案,其中单播流量类别共享单个缓存,但是服务类别差异化仍然能够被调度策略204应用。
在开关元件的输出端口,分组的单独队列(链接列表)如通常那样被实现,单播流量的每个类别一个队列。队列可以被赤字加权轮叫调度(DWRR)调度器服务,该调度器从用于从输出端口传送的队列选择分组。然而,在这一实施例中,单播分组被存储于不具有任何每种类别的边界线的单个共享缓存存储器中。
本公开的一个或多个实施例认识且考虑到在单个共享缓存下,以超过了被DWRR计划的流失率进入的单个类别的流量可能消耗整个缓存,且排除来自其它类别的流量。这使对其它类别的流量的服务保证无效。根据本公开的教导,在发布每种类别的Xon和Xoff信号的测量策略中,通过使用第二修改的赤字加权轮叫调度算法来控制对缓存的访问,系统可以维持服务保证。
赤字加权轮叫调度计费算法维持用于进入缓存的单播分组的流量类别简档(profile)向量。类别根据它们的计划权重被给予信用。当类别上的分组到达时,根据该分组的大小,这一类别的信用减少。当类别的信用耗尽时,这一类别被标记为“简档之外(out-of-profile)”。当具有在共享缓存中的分组的类别在简档之外时,通过将每一类别的信用增加它的计划权重,信用被刷新。任一类别能够保持的最大信用额具有上限。刷新操作可能需要被重复,直到至少一个具有队列中的分组的流量类别具有信用。具有信用的流量类别被标记为“简档之内(in-profile)”。
图3为根据实施例具有两个层次的调度策略的输出端口300的简化表述。输出端口300与如2中所示的输出端口200类似,除输出端口300包括两个层次的后队列调度以外。在示例性的实施例中,在每种类别基础上,调度策略302在单播流量304和多播流量306之间选择。调度策略303在流量的CoS之间选择。例如,调度策略303可以选择获取类别4的数据分组,同时调度策略302选择获取这一类别内部的单播流量304。
在操作方面,在特定的一个实施例中,需要使用两个调度策略(也被指代为二级DWRR算法)以排空队列308。在每一种类别内部,调度策略302分开地调度单播流量304和多播流量306。调度策略303调度每一种被组合的流量类别。流量的两种类型都具有超过最高的分配权重的信用限制,以考虑到在共享缓存中临时不具有分组的单播类别。
为了支持两个调度策略,被用于填充共享缓存的测量策略310可能需要被修改。被测量策略310使用的权重可以与被调度策略303使用以排空被组合的单播/多播类别的那些权重相同或大体上类似。因此,每种类别的DWRR信用适用于每一种类别中被组合的单播和多播流量。因此,系统还应当负责多播流量306。当多播分组出列以被传送时,根据该分组的大小,用于这一类别的测量策略310中的信用可以减少。然而,由于缺少该类别上的单播流量304,这将导致该类别的信用被降低至最大的负等级,这将禁止这一类别的单播流量304,直到多播负载被撤销。因此,为了避免这一单播停工,只有当存在存储于缓存中的这一类别的单播分组时,信用才在多播离开被减少。
图4为根据实施例的开关元件400的简化框图。开关元件400可以为如图1所示的开关元件100的一种实现方式。开关元件400可以包括数据分组402、存储器管理单元404、队列406、共享存储器缓存408、端口410、存储器元件412、和处理器414。
数据分组402可以为任何类型的数据,诸如例如视频流量、语音流量、控制流量、或一些其他类型的流量。数据分组402可以为任意数目的分组和分组大小。数据分组402可以包括类别416。类别416可以指定内容类型、服务计划、成员资格、格式、或简单描述数据的类型,诸如语音、视频、媒体、文本、控制、信令等。许多类别可以包括这些项目的一个或多个。
内存器管理单元(MMU)404可以为逻辑单元,该单元被配置为通过队列406、缓存408、和端口410控制和管理数据分组404。MMU 404可以被实现为软件逻辑单元和/或硬件逻辑单元。MMU 404可以包括不同的调度策略。例如,MMU 404可以包括测量策略418和调度策略420。在一个或多个实施例中,测量策略418和调度策略420可以对类别416利用大体上类似的加权方法。测量策略418和调度策略420的每一个分别包含权重422和424。权重422和424可以为为了确定去往和来自缓存408的传送比率而对类别416进行加权的不同加权单位。在一个或多个实施例中,MMU 404还可以包括第二调度策略,诸如图3所示的示例中。
队列406可以为用于数据分组402的不同类别416的队列。每一种类别可以具有一个队列。队列406可以包括指向用于数据分组402的每一个的地址的指针407。指针407可以根据类别,按照数据分组402被接收的顺序放置于队列406。缓存408可以为用于在数据分组402被发送到端口410之前缓存数据分组402的共享存储器位置。缓存408可以或可以不被实现为存储器元件412的一部分。端口410可以为输出端口。端口410可以为用于开关元件400内部的数据分组402的出口点。
关于与开关元件400相关的内部结构,存储器元件412可以被用于存储这里所描述的操作中使用的信息。MMU 404的每一个可以在任何适当的存储器元件(例如,随机访问存储器(RAM)、专用集成电路(ASIC)等)、软件、硬件、或任何其它适当组件、设备、元件、或适当的和基于特定需求的对象中保存信息。这里所讨论的存储器项目(例如存储器项目412)的任一个应当被解释为包含于广义的术语‘存储器元件’内部。被MMU 404使用、追踪、发送、或接收的信息可以被提供于任何数据库、寄存器、队列、表格、缓存器、控制列表、或其它存储器结构中,所有这些可以在任何适当的时间帧被引用。任何这样的存储器选项可以被包括于如这里所使用的广义的术语‘存储器元件’内。
在某些示例性实现方式中,这里所描述的功能可以被在一个或多个有形介质中编码的逻辑实现(例如,在ASIC中提供的嵌入式逻辑、数字信号处理器(DSP)指令、被处理器、或其它类似机器等执行的软件(可能包括目标代码和源代码)),该逻辑可以包括非易失性介质。在一些这样的实例中,存储器元件可以存储用于这里所描述的操作的数据。这包括能够存储软件、逻辑、代码或被执行以实现这里所描述的活动的处理器指令的存储器元件。
在一个示例性实现方式中,MMU 404可以包括软件模块(例如,调度策略418和420)以完成、或促进这里所描述的操作。在其它实施例中,这样的操作可以被在这些元件的外部实现的硬件实现,或者被包括于一些其它的网络设备中以完成所期望的功能。替代地,这些元件可以包括能够协同的软件(或交互软件)以完成如这里所描述的操作。在又另一些实施例中,这些设备的一个或所有可以包括任何适当的算法、硬件、软件、组件、模块、接口、或有利于其中操作的对象。
另外,MMU 404可以包括能够执行软件或算法以执行这里所讨论的活动的处理器414。处理器能够执行与数据相关的任何类型的指令以完成这里所详细描述的操作。在一个示例中,处理器能够将元件或物品(例如数据)从一种状态或事件转换为另一种状态或事件。在另一个示例中,这里所描述的活动可以通过固定的逻辑或可编程逻辑(例如,被处理器执行的软件/计算机指令)实现,且这里所定义的元件可以为某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、EPROM、EEPROM)或包括数字逻辑、软件、编码、电子指令的ASIC、或它们的任何适当组合。这些可能的处理元件、模块、和这里所描述的机器的任一个应当被解释为包含于广义的术语“处理器”内部。
图5为根据实施例描述了用于管理开关元件中的多个数据分组的方法的简化流程图。当输出端口接收多个数据分组时,流程可以开始于502。该多个数据分组的每一个可以为多种数据类别中的一种。在504,基于测量策略,存储器管理单元可以使能和禁止该多个数据分组的多种类别的传送。存储器管理单元可以向输入端口发送信号,指示缓存或不缓存不同类别的数据。被存储器管理单元使用的测量策略确定在输入端口上哪些类别被缓存或者不被缓存。测量策略可以使用与多种类别相关的多个权重。另外,该多个权重可以基于赤字加权轮叫调度系统。进一步地,用于赤字加权轮叫调度系统中的多种类别的最大信用可以大于多个权重的最大权重。
在506,多个数据分组被放入缓存。在一个或多个实施例中,该多个数据分组为单播可丢弃流量。另外,在一个或多个实施例中,缓存还被单播不可丢弃流量和多播流量共享。在508,根据调度策略,存储器管理单元可以从缓存获取该多个数据分组。调度策略可以具有与多种数据类别相关的多个权重。该多个权重可以基于赤字加权轮叫调度系统。多种类别的最大信用可以大于多个权重的最大权重。在510,存储器管理单元可以向开关元件的输出端口发送该多个数据分组。即使上述的许多元件位于输出端口内,在510,该多个数据分组也可以被发送至输出端口的出口。
图6为根据实施例描述用于管理缓存的方法的简化流程图。当存储器管理单元使能类别时,流程可以开始于602。多个数据分组的每一个可以为多种数据类别的一种。当类别被使能时,缓存从这些类别接收数据分组。在604,存储器管理单元确定缓存是否超过COS-LOW阈值。如果阈值未被超过,则这些类别维持被使能。换言之,这些类别维持被使能直到COS-LOW阈值被超过。如果该阈值被超过,则在606,存储器管理单元根据测量系统使能/禁止这些类别。存储器管理单元可以向多个输入端口发送信号。该信号可以向该多个输入端口指示使能或禁止一种类别的服务,直到另外通知。
在608,存储器管理单元确定缓存是否低于ON(开启)阈值。如果缓存低于ON阈值,那么在602,类别被使能。如果缓存不低于阈值,那么在610,存储器管理单元确定缓存是否高于OFF(关闭)阈值。如果缓存不高于OFF阈值,则流程返回至608。如果缓存高于该阈值,则在612,存储器管理单元禁止这些类别。
在614,存储器管理单元确定缓存是否低于COS-HI阈值。如果缓存不低于该阈值,那么在612,类别维持被禁止。如果缓存低于该阈值,那么存储器管理单元根据加权系统使能这些类别。该加权系统可以为诸如这里所描述的那些调度策略。
在操作方面,在特定的一个实施例中,共享缓存具有四个阈值:OFF、COS-HI、ON和COS-LOW。这些阈值还可以分别被称为Xoff+、Xoff-、Xon+、Xon-。共享缓存可以处于三种状态中的一种:xOffState、xCosState和xOnState。在xOffState中,流量类别被禁止。在xCosState流量中,如果类别在简档之内,则它们被使能,如果在简档之外,则它们被禁止。在xOnState中,流量类别被使能。流量类别可以通过发送用于这一类别的Xoff信号被使能以及通过发送用于这一类别的Xon信号被禁止。可以假定在合理的时间延迟后,信号的发送停止或重启在指示的流量类别上的流量。
空的缓存开始于xOnState中,流量类别被使能。当占用的缓存超过COS-LOW阈值时,它进入xCosState,且Xoff信号被发送以用于任何简档之外的类别。如果占用的缓存超过了OFF阈值,则缓存进入xOffState,且Xoff信号被发送以用于当前在简档之内的那些类别。当缓存的占用低于COS-HI阈值时,缓存进入xCosState,且Xon信号被发送以用于当前在简档之内的那些类别。如果缓存占用低于ON阈值,则缓存进入xOnState,且Xon信号被发送以用于当前在简档之外的那些类别。同样,在从xCosState到xOnState转变时,赤字加权轮叫调度计费算法的信用被刷新,直到不管流量类别在缓存中是否拥有流量流量类别都具有信用为止。
在饱和状态下,缓存占用在OFF阈值和COS-HI阈值之间振荡。当缓存占用增长时,对缓存的访问按流量类别被通过赤字加权轮叫调度计费算法控制,该算法发布每一种类别的Xon/Xoff信号。当缓存占用下降时,对这些类别的访问被禁止,直到COS-HI阈值被超过。
在这一实施例中,存在两种运行的赤字加权轮叫调度计费算法。一种算法运行于测量策略中,它控制共享缓存的到达,另一种算法运行于调度策略中,控制分组从共享缓存的离开。然而,在两种策略中,每一种类别的权重可能需要一致或大体类似。控制到达的测量策略以上被描述,且不同于当前工业中使用的DWRR算法。控制离开的调度策略同样不同于工业上使用的典型算法。
工业上所使用的典型DWRR算法假定,如果在队列中不存在给定类别的分组,那么这一类别是不活跃的,且它的被分配带宽被在队列中具有分组的类别之间共享。因为控制回路隐含的延迟,该架构不能保证活跃的类别在队列中将总是具有分组。为了处理这一问题,系统可以提高类别能够积累的最大信用。一般地,在DWRR算法中,类别能够聚集的最大信用与它被分配的权重相等。这一限制被提高到高于被分配的权重的最高值,并且可能是这一值的几倍。这允许流量类别在它暂时在队列中没有流量的情况下聚集一些信用并且当流量到达时消耗它所聚集的信用。
图7为根据实施例示出了具有用于排空队列的二级调度策略的方法的简化流程图。当存储器管理单元根据第一和第二调度策略从缓存获取多个数据分组时,流程可以在702开始。多个数据分组的每一个可以为多种数据类别的一种。第一调度策略在单播流量和多播流量之间选择,且第二调度策略在多种类别之间选择。
根据形成混合列表的类别,存储器管理单元可以将单播流量和多播流量混合。换言之,相同类别的单播流量和多播流量被聚集在一起。混合列表可以通过类别分组。另外,可以根据第二调度策略,存储器管理单元从缓存获取多个数据分组。第一和第二调度策略可以具有与多种数据类别相关的多个权重。该多个权重基于赤字加权轮叫调度系统。多种数据类别的最大信用可以超过该多个权重的最大权重。第一调度策略中的权重可以不同于第二调度策略。
在704,存储器管理单元可以向开关元件的输出端口的出口点发送多个数据分组。即使上面提到的许多元件位于输出端口内,在708,多个数据分组也可以被发送至输出端口的出口。
注意到在某些示例性实现中,如这里所描述的数据分组的管理可以被在一个或多个有形的非易失性介质中编码的逻辑(例如,在专用集成电路(ASIC)中提供的嵌入式逻辑、数字信号处理器(DSP)指令、被处理器、或其它类似机器等执行的软件(可能包括目标代码和源代码))实现。在一些这样的实例中,存储器元件可以存储用于这里所描述的操作的数据。这包括能够存储软件、逻辑、编码、或被执行以实现本说明书中所描述的活动的处理器指令。处理器能够执行与数据相关的任何类型的指令以完成本说明书这里所详细描述的操作。在一个示例中,处理器可以将元件或物品(例如数据)从一种状态或事件转换为另一种状态或事件。在另一个示例中,这里所描述的活动可以和固定的逻辑或可编程逻辑(例如,被处理器执行的软件/计算机指令)实现,且这里所标识的元件可以为某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA))或包括数字逻辑、软件、编码、电子指令的ASIC、或它们的任何适当组合。
如本说明书这里所使用的,术语“开关元件”意指包含任何类型的基础结构,该结构包括开关、云架构组件、虚拟设备、路由器、收发器、电缆系统、网关、桥、负载均衡器、防火墙、内联服务节点、代理、服务器、处理器、模块、或任何其它适当的设备、组件、元件、专有器具、或可操作以交换网络环境中的信息的对象。这些开关元件可以包括任何适当的硬件、软件、组件、模块、接口、或促进它们的操作的对象。这可以包括适当的算法和允许数据或信息的有效交换的通信协议。
在示例性实现方式中,这里所描述的活动的至少一些部分可以实现于例如开关元件100的任何部分的软件中。在一些实施例中,这些特征的一个或多个可以实现于在开关元件100外部提供的硬件中,或以任何适当的方式合并以完成所需功能。开关元件100可以包括能够协同的软件(或交互软件)以完成这里所描述的操作。在又另一些实施例中,这些元件可以包括任何适当的算法、硬件、软件、组件、模块、接口、或促进它们的操作的对象。
进一步地,这里所描述和示出的开关元件100(和/或它们的相关结构)还可以包括用于接收、传送、和/或在网络环境中以其他方式传递数据或信息的适当接口。另外,与各个节点相关的一些处理器和存储器元件可以被移除,或以其他方式被合并,以致单个处理器和单个存储器元件负责某些活动。在一般意义上,附图中所描述的布置可以在它们的表述中更为逻辑化,而物理架构可包括这些元件的各种置换、组合和/或混合。有必要注意到无数种可能的设计配置可以用于完成这里所描述的操作性目标。相应的,相关的基础结构具有各种各样的替代布置、设计选择、设备可能性、硬件配置、软件实现、设备选项等。
在一个示例性实现方式中,如图1-7中所描述的开关元件可以包括软件以完成这里所描述的功能。如图1-7中所描述的开关元件可以包括用于存储被用于完成如这里所讨论的活动的信息的存储器元件。另外,图1-7中所描述的开关元件可以包括处理器,该处理器能够执行软件或算法以执行如这一说明书所公开的操作。这些设备可以进一步在任何适当的存储器元件(随机访问存储器(RAM)、ASIC等)、软件、硬件、或任何其它适当的组件、设备、元件、或适当且基于特定需求的对象中保持信息。这里所讨论的任何存储器项(例如数据库、表、树、缓存等)应当被解释为包含于广义的术语“存储器元件”内。类似的,任何可能的处理元件、模块、和这一说明书中所描述的机器应当被解释为包含于广义的术语“处理器”内。
注意到通过以上所提供的示例,以及这里所提供的大量其它示例,交互可以根据两个、三个、或四个元件而被描述。然而,这只是为了清楚和示例的目的而被描述。在某些情形下,通过仅参考有限数目的元件,描述给定集合的流程的一项或多项功能可能是更容易的。应当理解,图1-7(和其教导)所描述的开关元件是很容易扩展的,且能够容纳大量的组件,以及更复杂/精细的布置和配置。相应的,所提供的示例不应当对图1-7中所描述的开关元件限制范围或禁止广义的教导,如可能应用于各种各样的其它体系。
还值得注意的是,前述的流程图中的步骤仅示出了一些可能的情景和被开关元件执行或在其内部执行的模式。一些这样的步骤可以在适当的地方被删除或移除,或这些步骤可以被相当地修改或改变而不脱离本公开的范围。另外,多个这种操作已被描述为与一个或多个另外的操作同时、或并行执行。然而,这些操作的时序可以被相当地改变。为了示例和讨论的目的,前述的操作性流程已被提供。开关元件提供了实质上的灵活性,其中,任何适当的布置、时间-事件记录、配置和时序机制可以被提供,而不脱离本公开的教导。
对本领域的技术人员而言,大量的其它改变、替代、变形、变更和修改可以被确定,且本公开意图将所有这样的改变、替代、变形、变更和修改包含于附加的权利要求的范围之内。为了协助美国专利商标局(USPTO)和另外本专利所公布的任何专利的任何读者理解这里所附加的权利要求,申请人希望提申请人:(a)不打算任何附加的权利要求因为它在申请日已经存在而援引美国法典第35卷第112节第6款,除非词“用于……的装置”或“用于……的步骤”具体用于特定的权利要求中;(b)不打算通过本说明书的任何陈述以任何不以别的方式反映于附加的权利要求中的方式限制本公开。

Claims (20)

1.一种用于管理多个数据分组的方法,包括:
接收所述多个数据分组,其中所述多个数据分组的至少一些数据分组分别属于多种类别中的一种类别;
基于测量策略,使能和禁止所述多个数据分组的一部分的传送;以及
将所述多个数据分组的所述部分放入缓存。
2.如权利要求1所述的方法,进一步包括:
将多个指针映射至所述多个数据分组;以及
将所述多个指针放到多个队列中,其中所述多个队列的每一个队列被分配给所述多种类别的每一种类别。
3.如权利要求2所述的方法,进一步包括:
根据调度策略,从所述缓存获取所述多个数据分组的所述部分;以及
将所述多个数据分组的所述部分传递至开关元件的输出端口的出口。
4.如权利要求2所述的方法,进一步包括:
根据所述多个队列中的所述多个指针的顺序,获取所述多个数据分组的所述部分。
5.如权利要求3所述的方法,其中所述测量策略和所述调度策略各自具有与所述多种类别相关的多个权重。
6.如权利要求5所述的方法,其中所述多个权重基于赤字加权轮叫调度系统。
7.如权利要求5所述的方法,其中用于所述多种类别的最大信用大于所述多个权重的最大权重。
8.如权利要求1所述的方法,其中所述测量策略具有ON阈值、LOW阈值、和HI阈值,并且其中使能和禁止进一步包括:
响应于所述缓存低于所述ON阈值,使能所述多种类别中的类别的传送;
响应于所述缓存高于所述LOW阈值,根据使用多个权重的测量策略,使能和禁止所述多个数据分组的多种类别的传送。
9.如权利要求1所述的方法,其中所述测量策略具有ON阈值、LOW阈值、HI阈值、和OFF阈值,其中使能和禁止进一步包括:
响应于所述缓存高于所述OFF阈值,禁止所述多个数据分组的类别的传送;
响应于所述缓存低于所述HI阈值,根据使用多个权重的测量策略,使能和禁止所述多个数据分组的多种类别的传送。
10.如权利要求1所述的方法,其中所述多个数据分组包含单播流量或多播流量。
11.如权利要求10所述的方法,进一步包括:
根据第一调度策略和第二调度策略,从所述缓存获取所述多个数据分组的所述部分,其中所述第一调度策略在单播流量和多播流量之间选择,并且其中所述第二调度策略在所述多种类别之间选择。
12.一种用于网络通信的系统,包括:
输出端口;
缓存,被配置为与至少一个数据端口接口通信;以及
存储器管理单元,其中所述系统被配置为:
接收所述多个数据分组,其中所述多个数据分组的至少一些数据分组分别属于多种类别中的一种类别;
基于测量策略,使能和禁止所述多个数据分组的一部分的传送;以及
将所述多个数据分组的所述部分放入缓存。
13.如权利要求12所述的系统,所述系统进一步被配置为:
将多个指针映射至所述多个数据分组;以及
将所述多个指针放到多个队列中,其中所述多个队列的每一个队列被分配给所述多种类别的每一种类别。
14.如权利要求13所述的系统,所述系统进一步被配置为:
根据调度策略,从所述缓存获取所述多个数据分组的所述部分;以及
将所述多个数据分组的所述部分传递至开关元件的输出端口的出口。
15.如权利要求13所述的系统,所述系统进一步被配置为:
根据所述多个队列中的所述多个指针的顺序,获取所述多个数据分组的所述部分。
16.一种计算机程序产品,包括用于管理多个数据分组的在非易失性介质上编码的逻辑,所述逻辑包括指令以用于:
接收所述多个数据分组,其中所述多个数据分组的至少一些数据分组分别属于多种类别中的一种类别;
基于测量策略,使能和禁止所述多个数据分组的一部分的传送;以及
将所述多个数据分组的所述部分放入缓存。
17.如权利要求16所述的非易失性介质,所述逻辑进一步包括指令以用于:
将多个指针映射至所述多个数据分组;以及
将所述多个指针放到多个队列中,其中所述多个队列的每一个队列被分配给所述多种类别的每一种类别。
18.如权利要求17所述的非易失性介质,所述逻辑进一步包括指令以用于:
根据调度策略,从所述缓存获取所述多个数据分组的所述部分;以及
将所述多个数据分组的所述部分传递至开关元件的输出端口的出口。
19.如权利要求17所述的非易失性介质,所述逻辑进一步包括指令以用于:
根据所述多个队列中的所述多个指针的顺序,获取所述多个数据分组的所述部分。
20.如权利要求18所述的非易失性介质,其中所述测量策略和所述调度策略各自具有与所述多种类别相关的多个权重。
CN201380068290.7A 2012-12-27 2013-11-18 用于管理多个数据分组的方法、系统和介质 Active CN104885420B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/728,866 US9106574B2 (en) 2012-12-27 2012-12-27 Supporting quality of service differentiation using a single shared buffer
US13/728,866 2012-12-27
PCT/US2013/070529 WO2014105287A2 (en) 2012-12-27 2013-11-18 Supporting quality of service differentiation using a single shared buffer

Publications (2)

Publication Number Publication Date
CN104885420A true CN104885420A (zh) 2015-09-02
CN104885420B CN104885420B (zh) 2018-08-28

Family

ID=49725356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380068290.7A Active CN104885420B (zh) 2012-12-27 2013-11-18 用于管理多个数据分组的方法、系统和介质

Country Status (4)

Country Link
US (1) US9106574B2 (zh)
EP (1) EP2939380B1 (zh)
CN (1) CN104885420B (zh)
WO (1) WO2014105287A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113904997A (zh) * 2021-10-21 2022-01-07 烽火通信科技股份有限公司 交换芯片接收端多优先级业务缓存和调度的方法及装置

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880696B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US9106574B2 (en) 2012-12-27 2015-08-11 Cisco Technology, Inc. Supporting quality of service differentiation using a single shared buffer
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US20150085647A1 (en) * 2013-08-12 2015-03-26 Nec Laboratories America, Inc. Eliminating External Buffer for Hitless Protection by Using Channelized Flow Control
US9864606B2 (en) 2013-09-05 2018-01-09 F5 Networks, Inc. Methods for configurable hardware logic device reloading and devices thereof
EP3016333B1 (en) * 2014-10-31 2017-12-06 F5 Networks, Inc Handling high throughput and low latency network data packets in a traffic management device
US10050896B2 (en) * 2014-11-14 2018-08-14 Cavium, Inc. Management of an over-subscribed shared buffer
DE102016202331A1 (de) * 2016-02-16 2017-08-17 Siemens Aktiengesellschaft Netzknoteneinrichtung und Verfahren zur Vermittlung von Daten
US10439952B1 (en) 2016-07-07 2019-10-08 Cisco Technology, Inc. Providing source fairness on congested queues using random noise
US9965211B2 (en) 2016-09-08 2018-05-08 Cisco Technology, Inc. Dynamic packet buffers with consolidation of low utilized memory banks
WO2018178906A1 (en) * 2017-03-28 2018-10-04 Marvell World Trade Ltd. Flexible processor of a port extender device
US11855898B1 (en) 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
US11537716B1 (en) 2018-11-13 2022-12-27 F5, Inc. Methods for detecting changes to a firmware and devices thereof
US11343358B2 (en) 2019-01-29 2022-05-24 Marvell Israel (M.I.S.L) Ltd. Flexible header alteration in network devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1989738A (zh) * 2004-08-05 2007-06-27 思科技术公司 最低保证调度速率的传播
US7826469B1 (en) * 2009-03-09 2010-11-02 Juniper Networks, Inc. Memory utilization in a priority queuing system of a network device
WO2011085934A1 (en) * 2010-01-18 2011-07-21 Xelerated Ab A packet buffer comprising a data section and a data description section
CN102577244A (zh) * 2009-11-18 2012-07-11 思科技术公司 在通信网络中的拥塞期间对网络流的保护

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8724208D0 (en) 1987-10-15 1987-11-18 Newman P Self-routing switching element
US6463484B1 (en) * 1999-07-09 2002-10-08 C-Sierra, Inc. Egress port scheduling using memory efficient request storage
US6763394B2 (en) 2001-08-22 2004-07-13 Pluris, Inc. Virtual egress packet classification at ingress
US7586909B1 (en) * 2002-03-06 2009-09-08 Agere Systems Inc. Striping algorithm for switching fabric
US20070070895A1 (en) * 2005-09-26 2007-03-29 Paolo Narvaez Scaleable channel scheduler system and method
US7970963B2 (en) * 2009-06-29 2011-06-28 Oracle America, Inc. Efficient buffer management in a multi-threaded network interface
US9106574B2 (en) 2012-12-27 2015-08-11 Cisco Technology, Inc. Supporting quality of service differentiation using a single shared buffer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1989738A (zh) * 2004-08-05 2007-06-27 思科技术公司 最低保证调度速率的传播
US7826469B1 (en) * 2009-03-09 2010-11-02 Juniper Networks, Inc. Memory utilization in a priority queuing system of a network device
CN102577244A (zh) * 2009-11-18 2012-07-11 思科技术公司 在通信网络中的拥塞期间对网络流的保护
WO2011085934A1 (en) * 2010-01-18 2011-07-21 Xelerated Ab A packet buffer comprising a data section and a data description section

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113904997A (zh) * 2021-10-21 2022-01-07 烽火通信科技股份有限公司 交换芯片接收端多优先级业务缓存和调度的方法及装置
CN113904997B (zh) * 2021-10-21 2024-02-23 烽火通信科技股份有限公司 交换芯片接收端多优先级业务缓存和调度的方法及装置

Also Published As

Publication number Publication date
US9106574B2 (en) 2015-08-11
WO2014105287A2 (en) 2014-07-03
EP2939380A2 (en) 2015-11-04
US20140185442A1 (en) 2014-07-03
WO2014105287A3 (en) 2014-08-21
EP2939380B1 (en) 2018-10-10
CN104885420B (zh) 2018-08-28

Similar Documents

Publication Publication Date Title
CN104885420A (zh) 使用单个共享缓存支持服务质量差异化
CN100420241C (zh) 实现信息交换的系统及方法和调度算法
US6359861B1 (en) Method for scheduling transmissions in a buffered switch
US8339949B2 (en) Priority-aware hierarchical communication traffic scheduling
CN110493145A (zh) 一种缓存方法及装置
CN1989738A (zh) 最低保证调度速率的传播
KR20060064627A (ko) 네트워크 스위치에서의 대역폭 보장 및 과부하 보호 방법및 장치
CN102111327B (zh) 信元调度方法和系统
CN104219167A (zh) 网络资源调度方法和服务器
CN105700940B (zh) 一种调度器及调度器的动态复用方法
CN102780630B (zh) 一种基于FPGA队列实现QoS队列的方法和设备
CN100466593C (zh) 一种支持多业务的综合队列调度的实现方法
Bonald et al. On the stability of flow-aware CSMA
Liu et al. Spatial–temporal routing for supporting end-to-end hard deadlines in multi-hop networks
CN104022965B (zh) 一种报文出队调度的方法和设备
CN101557346B (zh) 轮询式分组排队输出调度方法及分组交换节点
CN103780507B (zh) 缓存资源的管理方法及装置
Cano-Cano et al. QoS provision in hierarchical and non-hierarchical switch architectures
Huang et al. Hirail: Core-Agnostic Deterministic Networks for Long-Distance Time-Sensitive IIoT Applications
He et al. ShuttleBus: Dense Packet Assembling with QUIC Stream Multiplexing for Massive IoT
Lenzini et al. Eligibility-based round robin for fair and efficient packet scheduling in wormhole switching networks
CN110430146A (zh) 基于CrossBar交换的信元重组方法及交换结构
Pan et al. CQPPS: A scalable multi‐path switch fabric without back pressure
Xu et al. Delay-Constrainted Optimal Traffic Allocation in Heterogeneous Wireless Networks for Smart Grid.
CN103731359A (zh) 基于光纤延时线的fifo共享缓存路由器及其工作方法

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant