CN101297204B - 基于类的带宽划分 - Google Patents
基于类的带宽划分 Download PDFInfo
- Publication number
- CN101297204B CN101297204B CN200680039684XA CN200680039684A CN101297204B CN 101297204 B CN101297204 B CN 101297204B CN 200680039684X A CN200680039684X A CN 200680039684XA CN 200680039684 A CN200680039684 A CN 200680039684A CN 101297204 B CN101297204 B CN 101297204B
- Authority
- CN
- China
- Prior art keywords
- specific cluster
- arrival rate
- formation
- packets
- classes
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
Abstract
对变化的分组类的分组序列执行基于类的带宽划分,例如但不限于,基于对应于与分组相关联的分组类的概率来判断是否将该分组纳入队列,该概率基于测得的已到达流量和根据队列长度的公平份额。对每个分组执行数据路径处理,以判断是接纳该还是丢弃分组并且记录测得的接收流量。周期性地执行控制路径处理,以基于所确定的针对每个分组类的到达率和公平份额来更新这些概率。按照这种方式,对用于大量分组类的带宽进行划分需要相对少量的处理和资源。
Description
技术领域
本发明的一个实施例涉及通信和计算机系统,尤其涉及路由器、分组交换系统和其它设备。
背景技术
通信行业在快速地改变来适应新兴技术和不断增加的客户需求。这种对新应用以及现有应用的增强性能的客户需求在驱使通信网络和系统供应商采用具有更高速度和更大容量(例如,更大带宽)的网络和系统。在试图实现这些目标的过程中,许多通信供应商采用的普遍方法是使用分组交换技术。逐渐地,通过使用诸如因特网协议(IP)之类的各种分组技术,正在建立和扩展公共及私人通信网络。注意,除非明确说明,否则本文中描述和提及的任何内容都不被认为是本申请的现有技术。
解决该行业中所使用的公平带宽划分的问题的两种普通方法是分布式循环(Distributed Round Robin,DRR)和加权随机早期检测(WRED)。在2002年10月8日所公告的Lin等人的美国专利6,463,068中描述了WRED,该专利通过引用而被全部结合于此。
DRR将不同类的流量(traffic)存储到分离的队列中,并且按照循环方式来服务这些队列。DRR可以提供量子级别(quantum-level)的公平性;然而,其实施非常复杂,并且这样的实施方式不容易衡量,并且不容易扩展来服务其它资源(例如,扩展的队列数)。另一方面,WRED的实施非常简单,因为其将多个分组存储到单个FIFO缓冲器中。遗憾的是,其仅提供有限的公平性,并且很难设定WRED参数,这些参数不能自行调整来处理正在改变的流量条件。即使许多实施方式涉及对DRR的个体队列采用WRED,但由于WRED的令人不满意的性能,带宽划分的任务仍然主要由DRR来完成。
另一种近来开发的方法是近似公平丢弃(Approximate Fair Dropping,AFD),该方法在ACM SIGCOMM计算机通信评论第33卷、第2期(2003年4月)、第23-39页的Pan等人的“通过差分丢弃的近似公平性(Approximate Fairness through Differential Dropping)”中被描述,并且其通过引用而被全部结合于此。AFD对进入单个队列中的多个分组流提供公平的带宽分配,其中,虽然可以使用其它的对流的定义,但是流被定义为具有相同的源-目的地地址的分组流。AFD的分组丢弃决定基于这些分组流的分组到达的最近历史,并且AFD可以利用有限量的附加状态来接近最大最小公平性。
简言之,AFD的高级设计具有三要素:到达率估计、丢弃概率计算和公平份额(fair share)计算。对于到达率估计,AFD记录某个时间段内到达物理队列入口的所有分组。也就是说,对于每个分组流i,使mi作为流i的流量数量(例如,所有到达的分组数,而不是仅仅被接纳的分组数)。在判断特定分组是被丢弃还是被纳入队列时,AFD使用下面的式子来公平地接纳或丢弃流i正在到达的分组。找到di以使mi*(1-di)=mfair。换句话说,di=(1-mi/mfair);并且,如果di为正,则丢弃概率为di的输入分组;否则,将分组纳入队列。通过查看队列的大小来如下动态地估计公平份额:mfair=mfair-a1*(Qlen-Qref)+a2*(Qlen_old-Qref),其中,Qlen是实际队列长度(当前测量的);Qlen_old是实际队列长度(先前测量的);Qref是基准队列长度(由操作员设定);a1和a2是平均参数(设计参数)。注意,Qlen和Qlen_old 一起给出关于队列大小的第一时刻信息和第二时刻信息;也就是说,不仅给出队列的当前占有率为多少,而且给出其是向着目标占有率移动还是从目标占有率离开,这可帮助我们更精确地控制mfair。AFD为执行带宽划分提供了很好的理论基础;但是其没有提供易理解和实际可实施的方案。
发明内容
特别地,公开了用于基于类的带宽划分(例如但并不限于,基于与测得的到达率和根据队列长度的公平份额相关联的概率来判断是否将分组纳入队列)的方法、设备、数据结构、计算机可读介质、机构和装置。
根据本发明的一个方面,公开了一种设备,该设备包括:队列;用于处理多个分组中的每个特定分组,以基于多个概率中与多个分组类中的特定分组类对应的特定概率来判断是否将所述特定分组纳入所述队列、更新对与所述特定分组类对应的已到达流量的测量、响应于将所述特定分组纳入所述队列的判断而将所述特定分组纳入所述队列、并且响应于不将所述特定分组纳入所述队列的判断而丢弃所述特定分组的装置;其中,所述特定分组对应于所述特定分组类,所述多个分组中的每个分组对应于所述多个分组类中的一个分组类,并且所述多个分组类中的每个分组类与多个到达率中的一个到达率和多个公平份额中的一个公平份额相关联;以及用于响应于预定持续时间超过由所述用于处理多个分组中的每个特定分组以基于多个概率中与多个分组类中的特定分组类对应的特定概率来判断是否将所述特定分组纳入所述队列、更新对与所述特定分组类对应的已到达流量的测量、响应于将所述特定分组纳入所述队列的判断而将所述特定分组纳入所述队列、并且响应于不将所述特定分组纳入所述队列的判断而丢弃所述特定分组的装置对多个分组的处理时间,基于对已到达流量的所述测量来周期性地更新所述多个到达率、基于所述队列的长度来周期性地更新所述多个公平份额并基于所述多个到达率和所述多个公平份额来周期性地更新所述多个概率的装置。
一个实施例对分组序列中的每个特定分组进行处理,以(a)基于从相应的特定到达率和根据队列长度所识别的相应的公平份额确定的特定概率,判断是将该特定分组纳入队列还是丢弃该特定分组、(b)更新对与该特定分组相关联的特定分组类对应的已到达流量的测量、并且(c)响应于是接纳还是丢弃该特定分组的判断的结果而接纳或丢弃该特定分组。注意,该特定分组和特定到达率各自对应于特定类,多个分组类中的每个分组类与多个到达率中一个到达率和多个公平份额中的一个公平份额相关联,每个分组对应于一个分组类,并且每个到达率具有一个相应的概率。一个实施例在每个周期性的预定持续时间之后(例如,在设定时间之后,或者在对多于一个的预定数目的分组进行处理之后),基于对已到达流量的测量来周期性地更新每个分组类的到达率,并且基于当前队列长度来更 新公平份额。通常,这种周期性处理基于公平份额和到达率来更新概率,因此在对分组进行处理时不需要计算它们;尽管一个实施例在对特定分组进行处理时计算了该概率。
在一个实施例中,这种周期性处理包括识别状态是活跃还是不活跃;并且其中,所述处理每个特定分组的步骤包括:响应于状态是不活跃状态,接纳特定分组,而不管特定概率。在一个实施例中,识别状态是活跃还是不活跃的步骤包括识别队列长度小于或等于预定的队列长度阈值。在一个实施例中,识别状态是活跃还是不活跃包括识别多个分组的累积到达率小于或等于预定的累积到达率阈值的步骤。
在一个实施例中,处理每个特定分组的步骤包括:识别特定到达率是否等于或超过突发阈值,并且响应于特定到达率等于或超过突发阈值的识别,丢弃该特定分组。在一个实施例中,周期性处理包括估计每个分组类的输入率;并且其中,对每个特定分组的处理包括基于所估计的特定分组类的输入率而丢弃或接纳该特定分组。
附图说明
所附权利要求具体阐明了本发明的特征。根据下面结合附图的详细描述,可以最好地理解本发明及其优点,其中:
图1是在一个实施例中使用的基于类的带宽划分机构的框图;
图2是在一个实施例中使用的用于执行基于类的带宽划分的系统或部件的框图;
图3A是图示出在一个实施例中所执行的数据路径处理的图;
图3B是图示出在一个实施例中所执行的控制路径处理的图;
图4是在一个实施例中与WRED处理机构一起使用的基于类的带宽划分机构的框图;
图5A是图示出在执行WRED处理和基于类的带宽划分的一个实施例中所执行的数据路径处理的图;以及
图5B是图示出在执行WRED处理和基于类的带宽划分的一个实施例中所执行的控制路径处理的图。
具体实施方式
特别公开了用于基于类的带宽划分(例如但并不限于,基于与测得的到达率和根据队列长度的公平份额相关联的概率来确定是否将分组纳入队列)的方法、设备、数据结构、计算机可读介质、机构和装置。
注意,这里描述的实施例包括各种元素和限制,没有一个元素或限制被认为是关键性的元素和限制。每个权利要求以其整体说明本发明的一方面。此外,所描述的一些实施例可以包括但不限于特别是系统、网络、集成电路芯片、嵌入式处理器、ASIC、方法和包含指令的计算机可读介质。一个或多个系统、设备、部件等可以包括一个或多个实施例,这些实施例可以包括由相同或不同系统、设备、部件等执行的权利要求的一些元素或限制。下文中所描述的实施例体现了本发明的范围和精神之内的各个方面和配置,附图图示了示例性和非限定性的配置。注意,用于执行方法和处理框操作的计算机可读介质和装置被公开,并且符合本发明的扩展的范围和精神。
这里所使用的术语“分组”涉及所有类型的分组或者信息或数据的任何其它单位,包括但不限于固定长度单元和可变长度分组,固定长度单元和可变长度分组可以或者不可以被划分成更小的分组或单元。这里使用的术语“分组”还指的是分组本身或分组指示,例如但并不限于所有或部分分组或者分组头部、数据结构值、指针或索引、或者分组或与其相关联的信息的任何其它部分或直接或间接标识。例如,通常,路由器对分组(尤其是头部)的一个或多个域进行操作,因此分组的主体通常在分组头部被操作期间被存储在分离的存储器中,并且基于对分组(即,该示例中的分组头部)的处理结果,整个数据被被转发或者被丢弃等。此外,这些分组可以包含一种或多种类型的信息,包括但不限于语音、数据、视频和音频信息。术语“项”在此一般用于指分组或者信息或数据的任何其它单位或片段、设备、部件、元件或任何其它实体。短语“处理分组”和“分组处理”通常指的是基于分组内容(例如,分组头部或其它域)执行一些步骤或动作,这些步骤或动作可以包括或者可以不包括修改、存储、丢弃和/或 转发分组和/或相关数据。在此使用的术语或敬称(deference)“丢弃”分组或其变体(例如,丢弃分组、分组被丢弃等)用于表示对分组的物理丢弃、使分组被丢弃和/或标记或区分分组以便随后丢弃,或可能与“接纳”分组不同的处理(例如,通过后续处理而有较高概率被丢弃、早期拥塞通知标记等)。
这里所使用的术语“系统”一般用于描述任意数目的部件、元件、子系统、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机构,或其部件的组合。这里所使用的术语“计算机”一般用于描述任意数目的计算机,包括但不限于个人计算机、嵌入式处理元件和系统、控制逻辑、ASIC、芯片、工作站、主机架等等。这里所使用的术语“处理元件”一般用于描述任何类型的处理机构或设备,例如处理器、ASIC、现场可编程门阵列、计算机等等。这里所使用的术语“设备”一般用于描述任何类型的机构,包括计算机或系统或其部件。这里所使用的术语“任务”和“处理”一般用于描述任何类型的运行程序,包括但不限于计算机处理、任务、线程、执行应用程序、操作系统、用户处理、设备驱动器、本地代码、机器或其它语言等,并且可以是交互式和/或非交互式、本地和/或远程执行、在前台或后台执行、在用户和/或操作系统地址空间中执行、库和/或单独应用程序的例程(routine),并且不限于任何特定的存储器划分技术。在附图中示出的步骤、连接以及对信号和信息的处理包括但不限于任何框图和流程图以及消息顺序图,其通常可以按照相同或不同的串行或并行顺序和/或由不同部件和/或处理、线程等和/或通过不同连接来执行,并在其它实施例中与其它功能相结合,除非这会使实施例或者显示或隐含所需的顺序(例如,对于读取值、处理值的顺序——虽然一些相关处理可以在读取操作之前、与其同时和/或在其之后执行,但所述值必须是在对其进行处理之前被获得)失效。此外,这里所使用的术语“识别”一般用于描述用于直接或间接确定某事的任何方式或机制,其可以包括但不限于接收、从存储器中取回、确定、定义、计算、生成等等。
此外,这里所使用的术语“网络”和“通信机构”一般用于描述一个或多个网络、通信介质或通信系统,包括但不限于因特网、私人或公共电 话网、蜂窝网络、无线网络、卫星网络、电缆网、局域网、城域网和/或广域网、电缆、电连接、总线等以及内部通信机构,例如消息传递、进程间通信、共享存储器等。这里所使用的术语“消息”一般用于描述可以是或者不是但通常是通过一个或多个任意类型的通信机构传送的一段消息。
术语“存储机构”包括任何类型的存储器、存储设备或用于保持任何格式的指令或数据的其它机构。“计算机可读介质”是可扩展的术语,包括任何存储器、存储设备、存储机构和有形地体现计算机可执行指令的其它存储机构。术语“存储器”包括任何随机存取存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其它存储器部件或元件。术语“存储设备”包括任何固态存储介质、磁盘驱动器、磁盘、联网服务、磁带驱动器和其它存储设备。存储器和存储设备可以存储将由处理元件和/或控制逻辑执行的计算机可执行指令以及将由处理元件和/或控制逻辑操纵的数据。术语“数据结构”是可扩展的术语,其指的是任何数据元素、变量、数据结构、数据库和/或一个或多个组织方案,这些组织方案可应用于数据以辅助解释数据或对其执行操作,例如但不限于存储器位置或设备、集合、队列、树、堆、列表、所链接的列表、阵列、表、指针等。数据结构通常被保存在存储机构中。这里所使用的术语“指针”和“链接”通常用于表示某种用于参考或识别另一元素部件和其它实体的机构,并且这些可包括但不限于对存储器或其它存储机构或者其中的位置的参考、数据结构中的索引、值等。
这里所使用的术语“一个实施例”用于引用特定实施例,其中,每次对“一个实施例”的引用可以指不同的实施例,并且这里在描述相关联特征、元件和/或限制过程中对该术语的重复使用不会建立每个实施例必须包括的相关联特征、元件和/或限制的累积集合,尽管一个实施例通常可以包括所有这些特征、元件和/或限制。此外,短语“用于xxx的装置”通常包括具有用于执行xxx的计算机可执行指令的计算机可读介质。
此外,这里所使用的术语“第一”、“第二”等通常表示不同单元(例如,第一元件、第二元件)。这里对这些术语的使用不一定意味着一定顺序,这种顺序例如是一个单元或事件在另一个之前发生或到来,但是 却提供了用于区分特定元件的机制。此外,对名词的单数形式的使用并不是限制性的,其使用通常包括一个或多个特定事物,而非仅仅一个(例如,对词语“存储器”的使用通常指的是一个或多个存储器,而不必将其详述为“存储器或多个存储器”,或者“一个或多个存储器”或“至少一个存储器”等)。此外,短语“基于x”和“响应于x”用于表示从其得出或引起某事的最小的一组项x,其中“x”是可扩展的,并且不一定描述对其执行操作等的项的完全列表。此外,短语“耦合”用于表示两个元件或设备之间的某种级别的直接或间接连接,耦合设备或多个耦合设备改变或者不改变所耦合的信号或所传送的信息。术语“子集”用于表示具有一个集合的所有元素或少于所有元素的组。术语“子树”用于表示整个树或少于整个树。此外,术语“或者”在这里用于表示选择所连接的项中的一个或多个(包括全部)。
特别公开了用于基于类的带宽划分(例如但并不限于,基于与测得的到达率和根据队列长度的公平份额相关联的概率来确定是否将分组纳入队列)的方法、设备、数据结构、计算机可读介质、机构和装置。
一个实施例对分组序列中的每个特定分组进行处理,以(a)基于从相应的特定到达率和根据队列长度所识别的相应的公平份额确定的特定概率,判断是将该特定分组纳入队列还是丢弃该特定分组、(b)更新对与该特定分组相关联的特定分组类对应的已到达流量的测量、并且(c)响应于是接纳还是丢弃该特定分组的判断的结果而接纳或丢弃该特定分组。注意,该特定分组和特定到达率各自对应于特定类,多个分组类中的每个分组类与多个到达率中一个到达率和多个公平份额中的一个公平份额相关联,每个分组对应于一个分组类,并且每个到达率具有一个相应的概率。一个实施例在每个周期性的预定持续时间之后(例如,在设定时间之后,或者在对多于一个的预定数目的分组进行处理之后),基于对已到达流量的测量来周期性地更新每个分组类的到达率,并且基于当前队列长度来更新公平份额。通常,这种周期性处理基于公平份额和到达率来更新概率,因此在对分组进行处理时不需要计算它们;尽管一个实施例在对特定分组进行处理时计算了该概率。
在一个实施例中,这种周期性处理包括识别状态是活跃还是不活跃;并且其中,所述处理每个特定分组的步骤包括:响应于状态是不活跃状态,接纳特定分组,而不管特定概率。在一个实施例中,识别状态是活跃还是不活跃的步骤包括识别队列长度小于或等于预定的队列长度阈值。在一个实施例中,识别状态是活跃还是不活跃包括识别多个分组的累积到达率小于或等于预定的累积到达率阈值的步骤。
在一个实施例中,处理每个特定分组的步骤包括:识别特定到达率是否等于或超过突发阈值,并且响应于特定到达率等于或超过突发阈值的识别,丢弃该特定分组。在一个实施例中,周期性处理包括估计每个分组类的输入率(例如,通过将测得的到达率进行定时平均);并且其中,对每个特定分组的处理包括基于所估计的特定分组类的输入率而丢弃或接纳该特定分组。
一个用于划分带宽的实施例包括:用于处理多个分组中的每个特定分组,以基于多个概率中与多个分组类中的特定类对应的特定概率来判断是将所述特定分组纳入队列还是丢弃所述特定分组、更新对与所述特定分组类对应的已到达流量的测量、并且响应于是接纳还是丢弃所述特定分组的所述判断而接纳或丢弃所述特定分组的装置;其中,所述特定分组对应于所述特定分组类,所述多个分组中的每个分组对应于所述多个分组类中的一个类,并且所述多个类中的每个类与多个到达率中的一个到达率和多个公平份额中的一个公平份额相关联;以及用于在预定持续时间超过由所述用于处理每个特定分组的装置对多个分组的处理时间之后,基于对已到达流量的所述测量来周期性地更新所述到达率、基于所述队列的长度来周期性地更新所述公平份额并基于所述到达率和所述公平份额来周期性地更新所述概率的装置。在一个实施例中,所述用于处理每个特定分组的装置包括这样一种装置:该装置用于识别所述多个到达率中与所述特定分组类对应的特定到达率是否等于或超过突发阈值,并且响应于所述特定到达率等于或超过所述突发阈值的识别而丢弃所述特定分组。在一个实施例中,所述用于处理所述特定分组的装置包括这样一种装置:该装置用于对所述多个到达率中与所述特定分组类对应的特定到达率与突发率阈值进行比较, 以基于所述突发率阈值来识别是否应当丢弃所述特定分组,并且响应于基于所述突发率阈值而应当丢弃所述特定分组的识别,丢弃所述特定分组。在一个实施例中,所述用于周期性地更新所述多个到达率更新的装置包括用于估计所述多个类中的每个类的输入率的装置;并且其中,所述用于处理每个特定分组的装置包括用于基于所估计的所述特定类的输入率而丢弃或接纳所述特定分组的装置。
在一个实施例中,所述用于周期性地更新所述多个到达率更新的装置包括用于识别不活跃状态的装置;并且其中,所述用于处理每个特定分组的装置包括响应于所述不活跃状态来接纳所述特定分组而不管所述特定概率的装置。在一个实施例中,所述用于识别所述不活跃状态的装置包括用于识别所述队列的长度小于或等于预定的队列长度阈值的装置。在一个实施例中,所述用于识别所述不活跃状态的装置包括用于识别所述多个分组的累积到达率小于或等于预定的累积到达率阈值的装置。
一个用于划分带宽的实施例包括:数据路径处理机构,该数据路径处理机构被配置用于处理多个分组中的每个特定分组,以基于从多个到达率中的特定到达率和根据队列长度所识别的多个公平份额中的一个公平份额确定的特定概率来判断将所述特定分组纳入所述队列还是丢弃所述特定分组、更新对与多个分组类中的特定类对应的已到达流量的测量、并且响应于接纳还是丢弃所述特定分组的所述判断来接纳或丢弃所述特定分组;其中,所述特定分组和所述特定到达率各自对应于所述特定类;其中,所述多个类中的每个类与所述多个到达率中的一个到达率和所述多个公平份额中的一个公平份额相关联,多个分组中的每个分组对应于所述多个分组类中的一个类,并且所述多个到达率中的每个到达率具有相应的所述概率;和控制路径处理机构,该控制路径处理机构被配置用于在预定持续时间超过由所述数据路径处理机构对多个分组的处理时间之后,基于对已到达流量的所述测量来周期性地更新针对所述多个类中的每个类的所述多个到达率,并且基于所述队列的当前长度来周期性地更新所述多个公平份额。
在一个实施例中,所述控制路径处理机构被配置用于基于所述多个公平份额和所述多个到达率来周期性地更新所述多个概率。在一个实施例 中,所述数据路径处理机构被配置用于识别所述特定到达率是否等于或超过突发阈值,并且响应于所述特定到达率等于或超过所述突发阈值的识别,所述数据路径处理机构使得所述特定分组被丢弃。在一个实施例中,所述控制路径处理机构被配置用于估计所述多个类中的每个类的输入率;并且其中,所述数据路径处理机构被配置用于基于所估计的所述特定类的输入率而丢弃或者接纳所述特定分组。在一个实施例中,所述控制路径处理机构被配置用于识别是活跃还是不活跃状态;并且其中,所述数据路径处理机构被配置用于响应于所述不活跃状态来接纳所述特定分组,而不管所述特定概率。在一个实施例中,所述控制路径处理机构响应于所述队列的长度小于或者等于预定的队列长度阈值,识别所述不活跃状态。在一个实施例中,所述控制路径处理机构响应于所述多个分组的累积到达率小于或者等于预定的累积到达率阈值,识别所述不活跃状态。
一个用于划分带宽的实施例:处理多个分组中的每个特定分组,以基于从多个到达率中的特定到达率和根据队列长度所识别的多个公平份额中的特定公平份额确定的特定概率来判断是将所述特定分组纳入所述队列还是丢弃所述特定分组、更新对与多个分组类中的特定类对应的已到达流量的测量、并且响应于是接纳还是丢弃所述特定分组的所述判断而接纳或丢弃所述特定分组;其中,所述特定分组与所述特定到达率各自对应于所述特定类;其中,所述多个类中的每个类与所述多个到达率中的一个到达率和所述多个公平份额中的一个公平份额相关联,所述多个分组中的每个分组对应于所述多个分组类中的一个类,并且所述多个到达率中的每个到达率具有相应的所述概率;并且在预定持续时间之后的周期性处理,所述周期性处理包括基于对已到达流量的所述测量来更新针对所述多个类中的每个类的所述多个到达率,并且基于所述队列的当前长度来更新所述多个公平份额。
在一个实施例中,所述周期性处理基于所述多个公平份额和所述多个到达率来更新所述概率。在一个实施例中,所述周期性处理包括识别状态是活跃还是不活跃状态;并且其中,所述处理每个特定分组的步骤包括:响应于状态是不活跃状态来接纳所述特定分组,而不管所述特定概率。在 一个实施例中,所述识别状态是活跃还是不活跃状态的步骤包括识别所述队列的长度小于或等于预定的队列长度阈值。在一个实施例中,所述识别状态处于活跃还是不活跃状态的步骤包括识别所述多个分组的累积到达率小于或等于预定的累积到达率阈值。在一个实施例中,所述处理每个特定分组的步骤包括:识别所述特定到达率是否等于或超过突发预值,并且响应于所述特定到达率等于或超过所述突发阈值的所述识别而使得所述特定分组被丢弃。在一个实施例中,所述周期性处理包括估计所述多个类中的每个类的输入率;并且其中,所述处理每个特定分组的步骤包括基于所估计的所述特定类的输入率而丢弃或者接纳所述特定分组。
一个用于划分带宽的实施例:处理多个分组中的每个特定分组,以基于多个概率中与多个分组类中的特定类对应的特定概率来判断是将所述特定分组纳入队列还是丢弃所述特定分组、更新对与所述特定分组类对应的已到达流量的测量、并且响应于是接纳还是丢弃所述特定分组的所述判断而使得所述特定分组被相应地纳入所述队列或者被丢弃;其中,所述特定分组对应于所述特定分组类,所述多个分组中的每个分组对应于所述多个分组类中的一个类,并且所述多个类中的每个类与多个到达率中的一个到达率和多个公平份额中的一个公平份额相关联;并且在预定持续时间超过对多个所述特定分组的处理时间之后,基于对已到达流量的所述测量来周期性地更新所述到达率、基于所述队列的长度来周期性地更新所述公平份额并且基于所述到达率和所述公平分额来周期性地更新所述概率。
在一个实施例中,所述周期性地更新的步骤包括用于识别状态是活跃还是不活跃的步骤;并且其中,所述处理每个特定分组的步骤包括:响应于状态是不活跃状态,接纳所述特定分组,而不管所述特定概率。在一个实施例中,所述识别状态是活跃还是不活跃的步骤包括用于识别所述队列的长度小于或等于预定的队列长度阈值的步骤。在一个实施例中,所述识别状态是活跃还是不活跃的步骤包括用于识别所述多个分组的累积到达率小于或等于预定的累积到达率阈值的步骤。在一个实施例中,所述处理每个特定分组的步骤包括:用于识别所述特定到达率是否等于或超过突发阈值,并且响应于所述特定到达率等于或超过所述突发阈值的所述识别,使 得所述特定分组被丢弃的步骤。在一个实施例中,所述周期性地更新的步骤包括用于估计所述多个类中的每个类的输入率的步骤;并且其中,所述处理每个特定分组的步骤包括用于基于所估计的所述特定类的输入率而丢弃或接纳所述特定分组的步骤。
一个实施例包括在一个或多个有形介质中被编码以供执行并且在被执行时执行划分带宽操作和/或其他操作。在一个实施例中,这些操作包括:处理多个分组中的每个特定分组,以基于多个概率中与多个分组类中的特定类对应的特定概率来判断是将所述特定分组纳入队列还是丢弃所述特定分组、更新对与所述特定分组类对应的已到达流量的测量、并且响应于是接纳还是丢弃所述特定分组的所述判断而使得所述特定分组被相应地纳入所述队列或者被丢弃;其中,所述特定分组对应于所述特定分组类,所述多个分组中的每个分组对应于所述多个分组类中的一个类,并且所述多个类中的每个类与多个到达率中的一个到达率和多个公平份额中的一个公平份额相关联;以及在预定持续时间超过对多个所述特定分组的处理时间之后,基于对已到达流量的所述测量来周期性地更新所述到达率、基于所述队列的长度来周期性地更新所述公平份额并且基于所述到达率和所述公平分额来周期性地更新所述概率。
在一个实施例中,所述用于周期性处理的步骤包括用于识别状态是活跃还是不活跃的步骤;并且其中,所述用于处理每个特定分组的步骤包括响应于状态是不活跃状态来接纳所述特定分组而不管所述特定概率的步骤。在一个实施例中,所述用于识别状态是活跃还是不活跃的步骤包括用于识别所述队列的长度小于或等于预定的队列长度阈值的步骤。在一个实施例中,所述用于识别状态是活跃还是不活跃的步骤包括用于识别所述多个分组的累积到达率小于或等于预定的累积到达率阈值的步骤。在一个实施例中,所述用于周期性处理的步骤包括用于更新与所述多个到达率对应的所述多个概率的步骤。在一个实施例中,所述用于处理每个特定分组的步骤包括:用于识别所述特定到达率是否等于或超过突发阈值,并且响应于所述特定到达率等于或超过所述突发阈值的所述识别而使得所述特定分组被丢弃的步骤。在一个实施例中,所述用于周期性处理的步骤包括用于 估计所述多个类中的每个类的输入率的步骤;并且其中,所述用于处理每个特定分组的步骤包括用于基于所估计的所述特定类的输入率而丢弃或接纳所述特定分组的步骤。
图1是在一个实施例中使用的基于类的带宽划分机构100的框图。分组101中的一个分组被接收,并且被利用分类机构102、基于从所接收的分组中提取的一个或多个值(例如,质量控制参数、源地址、目的地地址等)而分类,以识别与所接收的分组相关联的相应类。如这里的描述,所接收的分组(或其指示)和与类中被识别的类对应的标识符(104)被具有存储功能的基于类的每个分组接纳机构(例如,数据路径处理机构)和周期性更新机构(例如,控制路径处理机构)105使用,以判断是将分组纳入(106)队列107还是丢弃所接收的分组。注意,队列107的长度108(例如,占有率)被用于周期性地更新一个或多个在识别是接纳还是丢弃分组过程中所使用的参数。然后,分组109被从队列107中取回,以用于系统所需要的进一步处理和/或转发。
图2是在一个实施例中使用的用于维持执行基于类的带宽划分的系统或部件200的框图。在一个实施例中,系统或部件200执行与这里所图示或以其它方式描述的流程图或伪代码(pseudo code)对应的一个或多个处理。
在一个实施例中,系统或部件200包括处理元件201、存储器202、存储设备203和接口204,接口204用于发送和接收分组和/或与外部设备(例如,一个或多个存储器和/或分类/查找机构)通信,处理元件201、存储器202、存储设备203和接口204通常通过一个或多个通信机构209而被通信耦合,通信路径通常被调整以满足应用需要。
部件200的各种实施例可以包括或多或少的元件。部件200的操作通常由处理元件201控制,处理元件201利用存储器202和存储设备203来执行一个或多个任务或处理。存储器202是一种计算机可读介质,并且通常包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其它存储器部件。存储器202通常存储将由处理元件201执行的计算机可执行指令和/或由处理元件201操纵的用于实施根据实施例的功能的 数据。存储设备203是另一种计算机可读介质,并且通常包括固态存储介质、磁盘驱动器、磁盘、联网服务、磁带驱动器和其它存储设备。存储设备203通常存储将由处理元件201执行的计算机可执行指令和/或由处理元件201操纵的用于实施根据实施例的功能的数据。
图3A是示出在一个实施例中执行的针对分组的数据路径处理300的示图。如果控制路径处理(图3B)所确定的当前状态为不活跃状态(301),则分组被自动接纳。否则,如果与分组对应的类的到达率大于或等于预定的突发阈值(302),则分组被丢弃。否则,基于与分组对应的类相关联的概率(由控制路径处理所确定),作出是丢弃还是接纳分组的判定(303),并且相应地使得分组被接纳或丢弃。如果基于突发阈值而未丢弃分组,则更新对相应分组类的已到达流量的测量。
图3B是示出在一个实施例中执行的控制路径处理320的示图。通常,该处理在预定持续时间之后(例如,在设定时间之后或者在对大于1的预定数目的分组进行处理之后)执行。在一个实施例中,每10毫秒或20毫秒执行一次该处理。
有两种情形需要自动确保基于类的带宽划分机构的状态(例如,活跃或不活跃)为不活跃状态:当队列长度落到预定阈值以下(例如,以确保在队列中有足够数据来将链路利用最大化)时,以及当总的分组到达率低于另一预定阈值以确保基于类的带宽划分机构具有足够数据来适当划分带宽时。因此,作出是否存在这两种情形中的至少一种的判断(321),并且如果判断结果为是,则(322),状态被设定为不活跃状态,并且当前公平份额值被初始化。否则,状态被设定为活跃状态,并且基于现有技术的AFD机制使用的式子但通常以不同的方式(例如,执行的实际计算、强制最大和最小值等)计算当前公平份额值。在ACM SIGCOMM计算机通信评论第33卷、第2期(2003年4月)、第23-39页的Pan等人的“通过差分丢弃的近似公平性(Approximate Fairness through Differential Dropping)”中描述了近似公平丢弃(AFD),并且其通过引用而被全部结合于此。当前的队列长度被记录(324),以便在下个周期性控制路径处理中使用。
接着,针对各个类执行处理,以确定它们的相应到达率(Mi)和丢弃概率(Di)。一个实施例包括利用标准叫醒计数器来将这些确定延迟额外的时间段的能力(331、335、336)。
首先,通过将旧的测得的到达率老化(aging)(变动其值)并添加另外的测得的到达流量Mnew(i),并且然后将另外的测得的到达率(其可在数据路径处理期间被递增,例如图3A所示)复位,来确定相应类的到达率(Mi)。接着,一个实施例允许使用加权公平份额,并且执行这种调整(333)。最后,当前的分组类的丢弃概率被确定(334)。这可以通过利用划分操作,或者如图所示,利用近似机构(例如,对可能值的对分搜索(binary search))来执行,以将丢弃概率近似为一组预定值中的一个。
针对各个分组类来重复这种到达率和丢弃率的确定,周期性地重复整个控制路径处理。
下面的表1提供了对在图3A-B中的伪代码中使用的参数的列表和描述。
表1:在图3A-B中使用的参数
图4是在一个实施例中结合具有存储功能的WRED处理机构402使用的基于类的带宽划分机构408的框图。在2002年10月8日公告的Lin等人的美国专利6,463,068中描述了WRED,该专利通过引用而被全部结合于此。
注意,在一个实施例中使用的基于类的带宽划分的典型目的是确保公平性,因此通常不希望允许任意的WRED丢弃引起分组类之间的不公平性。因此,在一个实施例中,既利用WRED又利用基于类的带宽划分所发生的总丢弃与仅仅利用基于类的带宽划分的情况下将会发生的丢弃相同。
如这里的描述,分组401被WRED机构402接收,所允许的分组和所丢弃分组的信息403被转发到具有存储功能的基于类的每个分组接纳机构(例如,数据路径处理机构)和周期性更新机构(例如,控制路径处理机构)405,以判断将分组纳入(406)到队列407还是丢弃所接收的分组。注意,队列407的长度408(例如,占有率)被用于周期性地更新一个或多个在识别是接纳还是丢弃分组的过程中使用的参数。然后,分组409被从队列407中取回,以用于系统所需要的进一步处理和/或转发。此外,注意,WRED响应于类的输入率。然而,队列长度408表示类的输出率的近似值。因此,具有存储功能的基于类的每个分组接纳机构和周期性更新机构405将所估计的类队列长度404提供给WRED机构402。将参考图5A-5B来讨论用于确定这些所估计的类队列长度404的一种机制。
不是例如图4所述那样执行独立的WRED和基于类的带宽划分处理,而是例如图5A-5B所示,可以将这些操作组合起来,图5A-5B示出在一个实施例中执行的组合后的基于类的带宽划分和WRED数据路径和控制路径处理。注意,此处理类似图3A-3B所示的处理,但添加了WRED操作。
首先转到图5A,处理开始于处理框500,并前进到处理框501。如处理框501中所确定,如果当前状态为非活跃状态(例如,诸如相对于图3A所讨论的情形之一的结果为不活跃状态),则在处理框502中,分组被接纳并且已到达的流量的测得量被更新,并且如处理框503所指示,对所接收的分组的处理完成。否则,在处理框510中,基于所估计的输入队列长度来判断是否按照WRED丢弃分组。如处理框511所确定,如果与所接收的分组对应的分组类的丢弃概率为0,则在处理框512中,分组被接纳并且对已到达的流量的测得量被更新。如果WRED如在处理框515中所确定的那样丢弃了分组(即,按照处理框510的确定),则在处理框516中,通过一些信令机制(例如,设定标记、进程间通信等)向控制路径报警,以调整WRED队列长度近似值,并且如处理框517所指示,对所接收的分组的处理完成。
否则,如果WRED如在处理框521中所确定的那样丢弃了分组(即,按照处理框510的确定),则在处理框522中,所丢弃的分组的大小被维持(因此可被控制路径处理使用),如处理框524所指示,分组被丢弃并且对已到达的流量的测得量被更新,并且如处理框539所指示,对所接收的分组的处理完成。
否则,如处理框531中所确定,如果与所接收到的分组相关联的分组类超过了突发控制阈值,则如处理框524所指示,分组被丢弃并且已到达的流量的测得量被更新,并且如处理框539所指示,对所接收的分组的处理完成。否则,如处理框535中所确定,如果基于与所接收的分组对应的分组类相关联的概率,应当丢弃该分组,则如处理框524所指示,分组被丢弃并且已到达的流量的测得量被更新,并且如处理框539所指示,对所接收的分组的处理完成。否则,在处理框512中,分组被接纳并且已到达的流量的测得量被更新,并且如处理框539所指示,对所接收的分组的处理完成。
图5B是示出在执行WRED和基于类的带宽划分的一个实施例中执行的控制路径处理的示图。处理开始于处理框550。如处理框551中所确定,如果当前状态应当被设定为不活跃状态(即,由于参考图3A的321 所讨论的原因),则在处理框554中,状态被设定为不活跃状态,并且当前的公平份额值被初始化。否则,在处理框556中,状态被设定为活跃状态,按照与现有技术AFD机制相同的方式来计算当前的公平份额值,某些值被强制为最大值和最小值。
如处理框561中所确定,当存在多个分组类要处理时,处理框562-574被重复执行。在处理框562中,下一个分组类被选择。在处理框564中,当前分组类的到达率被基于测得的已到达流量和WRED丢弃的分组大小(例如,来自图5A中的处理框522)而更新。如处理框565中所确定,如果不是当前叫醒时间,则处理返回处理框561。否则,在处理框566中,基于新的到达率和WRED丢弃来确定丢弃概率。如处理框571中所确定,如果WRED使用的所估计的队列长度应当被减小(例如,根据图5A中的处理框516,或者丢弃概率小于百分之三),则在处理框574中,WRED的所估计的队列长度被减小。否则,WRED的所估计的队列长度通常被通过丢弃概率和某个小百分比(例如,百分之三、六、十)之间的差异而调整(例如,增大或减小)。注意,在一个实施例中,进行更细微的调整,这种调整例如但不限于:如果丢弃概率小于1/64,则队列长度估计值总是被减小,如果其小于1/16,则其被调整成约1.5%,如果其小于1/8,其被调整成大约3%,如果其大于1/8,其被调整成大约6%。处理返回到处理框561。
考虑到可应用本发明的原理的许多可能的实施例,应当明白,这里参考附图描述的实施例及其各个方面仅仅是说明性的,不应当被作为对本发明的范围的限制。例如并且对本领域技术人员来说很明显的是,许多处理框操作可被重新排序以在其它操作的执行之前、之后或者基本与其它操作同时进行。此外,许多不同形式的数据结构可用于各个实施例中。此处所讨论的本发明了考虑了所有可能落入以下权利要求及其等同物的范围内的实施例。
Claims (27)
1.一种设备,该设备包括:
队列;
用于处理多个分组中的每个特定分组,以基于多个概率中与多个分组类中的特定分组类对应的特定概率来判断是否将所述特定分组纳入所述队列、更新对与所述特定分组类对应的已到达流量的测量、响应于将所述特定分组纳入所述队列的判断而将所述特定分组纳入所述队列、并且响应于不将所述特定分组纳入所述队列的判断而丢弃所述特定分组的装置;其中,所述特定分组对应于所述特定分组类,所述多个分组中的每个分组对应于所述多个分组类中的一个分组类,并且所述多个分组类中的每个分组类与多个到达率中的一个到达率和多个公平份额中的一个公平份额相关联;以及
用于响应于预定持续时间超过由所述用于处理多个分组中的每个特定分组以基于多个概率中与多个分组类中的特定分组类对应的特定概率来判断是否将所述特定分组纳入所述队列、更新对与所述特定分组类对应的已到达流量的测量、响应于将所述特定分组纳入所述队列的判断而将所述特定分组纳入所述队列、并且响应于不将所述特定分组纳入所述队列的判断而丢弃所述特定分组的装置对多个分组的处理时间,基于对已到达流量的所述测量来周期性地更新所述多个到达率、基于所述队列的长度来周期性地更新所述多个公平份额并基于所述多个到达率和所述多个公平份额来周期性地更新所述多个概率的装置。
2.如权利要求1所述的设备,其中,所述用于处理多个分组中的每个特定分组以基于多个概率中与多个分组类中的特定分组类对应的特定概率来判断是否将所述特定分组纳入所述队列、更新对与所述特定分组类对应的已到达流量的测量、响应于将所述特定分组纳入所述队列的判断而将所述特定分组纳入所述队列、并且响应于不将所述特定分组纳入所述队列的判断而丢弃所述特定分组的装置包括这样一种装置:该装置用于识别所述多个到达率中与所述特定分组类对应的特定到达率是否等于或超过突发阈值,并且响应于所述特定到达率等于或超过所述突发阈值的识别而丢弃所述特定分组。
3.如权利要求1所述的设备,其中,所述用于处理多个分组中的每个特定分组以基于多个概率中与多个分组类中的特定分组类对应的特定概率来判断是否将所述特定分组纳入所述队列、更新对与所述特定分组类对应的已到达流量的测量、响应于将所述特定分组纳入所述队列的判断而将所述特定分组纳入所述队列、并且响应于不将所述特定分组纳入所述队列的判断而丢弃所述特定分组的装置包括这样一种装置:该装置用于对所述多个到达率中与所述特定分组类对应的特定到达率与突发率阈值进行比较,以基于所述突发率阈值来识别是否应当丢弃所述特定分组,并且响应于基于所述突发率阈值而应当丢弃所述特定分组的识别,丢弃所述特定分组。
4.如权利要求1所述的设备,其中,所述用于响应于预定持续时间超过由所述用于处理每个特定分组的装置对多个分组的处理时间,基于对已到达流量的所述测量来周期性地更新所述多个到达率、基于所述队列的长度来周期性地更新所述多个公平份额并基于所述多个到达率和所述多个公平份额来周期性地更新所述多个概率的装置包括用于估计所述多个分组类中的每个分组类的输入率的装置;并且其中,所述用于处理每个特定分组的装置包括用于基于所估计的所述特定分组类的输入率而丢弃所述特定分组和将所述特定分组纳入所述队列的装置。
5.如权利要求1所述的设备,其中,所述用于响应于预定持续时间超过由所述用于处理每个特定分组的装置对多个分组的处理时间,基于对已到达流量的所述测量来周期性地更新所述多个到达率、基于所述队列的长度来周期性地更新所述多个公平份额并基于所述多个到达率和所述多个公平份额来周期性地更新所述多个概率的装置包括用于识别不活跃状态的装置;并且其中,所述用于处理每个特定分组的装置包括响应于所述不活跃状态来将所述特定分组纳入所述队列而不管所述特定概率的装置。
6.如权利要求5所述的设备,其中,所述用于识别所述不活跃状态的装置包括用于识别所述队列的长度小于或等于预定的队列长度阈值的装置。
7.如权利要求5所述的设备,其中,所述用于识别所述不活跃状态的装置包括用于识别所述多个分组的累积到达率小于或等于预定的累积到达率阈值的装置。
8.一种设备,该设备包括:
队列;
数据路径处理机构,该数据路径处理机构被配置用于处理多个分组中的每个特定分组,以基于从多个到达率中的特定到达率和根据所述队列的长度所识别的多个公平份额中的一个公平份额确定的特定概率来判断是否将所述特定分组纳入所述队列、更新对与多个分组类中的特定分组类对应的已到达流量的测量、响应于将所述特定分组纳入所述队列的判断而将所述特定分组纳入所述队列、并且响应于不将所述特定分组纳入所述队列的判断而丢弃所述特定分组;其中,所述特定分组和所述特定到达率各自对应于所述特定分组类;其中,所述多个分组类中的每个分组类与所述多个到达率中的一个到达率和所述多个公平份额中的一个公平份额相关联,多个分组中的每个分组对应于所述多个分组类中的一个分组类,并且所述多个到达率中的每个到达率具有相应的所述概率;和
控制路径处理机构,该控制路径处理机构被配置用于响应于预定持续时间超过由所述数据路径处理机构对多个分组的处理时间,基于对已到达流量的所述测量来周期性地更新针对所述多个分组类中的每个分组类的所述多个到达率,并且基于所述队列的当前长度来周期性地更新所述多个公平份额。
9.如权利要求8所述的设备,其中,所述控制路径处理机构被配置用于基于所述多个公平份额和所述多个到达率来周期性地更新所述多个概率。
10.如权利要求8所述的设备,其中,所述数据路径处理机构被配置用于识别所述特定到达率是否等于或超过突发阈值,并且响应于所述特定到达率等于或超过所述突发阈值的识别,所述数据路径处理机构使得所述特定分组被丢弃。
11.如权利要求8所述的设备,其中,所述控制路径处理机构被配置用于估计所述多个分组类中的每个分组类的输入率;并且其中,所述数据路径处理机构被配置用于基于所估计的所述特定分组类的输入率而丢弃所述特定分组和将所述特定分组纳入所述队列。
12.如权利要求8所述的设备,其中,所述控制路径处理机构被配置用于识别是活跃还是不活跃状态;并且其中,所述数据路径处理机构被配置用于响应于所述不活跃状态来将所述特定分组纳入所述队列,而不管所述特定概率。
13.如权利要求12所述的设备,其中,所述控制路径处理机构响应于所述队列的长度小于或者等于预定的队列长度阈值,识别所述不活跃状态。
14.如权利要求12所述的设备,其中,所述控制路径处理机构响应于所述多个分组的累积到达率小于或者等于预定的累积到达率阈值,识别所述不活跃状态。
15.一种使用队列的由基于类的带宽划分机构执行的划分带宽的方法,包括以下步骤:
由所述基于类的带宽划分机构处理多个分组中的每个特定分组,以基于从多个到达率中的特定到达率和根据队列长度所识别的多个公平份额中的特定公平份额确定的特定概率来判断是否将所述特定分组纳入所述队列、更新对与多个分组类中的特定分组类对应的已到达流量的测量、响应于将所述特定分组纳入所述队列的判断而将所述特定分组纳入所述队列、并且响应于不将所述特定分组纳入所述队列的判断而丢弃所述特定分组;其中,所述特定分组与所述特定到达率各自对应于所述特定分组类;其中,所述多个分组类中的每个分组类与所述多个到达率中的一个到达率和所述多个公平份额中的一个公平份额相关联,所述多个分组中的每个分组对应于所述多个分组类中的一个分组类,所述多个到达率中的每个到达率具有相应的所述概率;以及
所述基于类的带宽划分机构的在预定持续时间之后的周期性处理,所述周期性处理包括基于对已到达流量的所述测量来更新针对所述多个分组类中的每个分组类的所述多个到达率,并且基于所述队列的当前长度来更新所述多个公平份额。
16.如权利要求15所述的方法,其中,所述周期性处理基于所述多个公平份额和所述多个到达率来更新所述概率。
17.如权利要求15所述的方法,其中,所述周期性处理包括识别状态是活跃还是不活跃状态;并且其中,所述处理每个特定分组的步骤包括:响应于状态是不活跃状态来将所述特定分组纳入所述队列,而不管所述特定概率。
18.如权利要求17所述的方法,其中,所述识别状态是活跃还是不活跃状态的步骤包括识别所述队列的长度小于或等于预定的队列长度阈值。
19.如权利要求17所述的方法,其中,所述识别状态处于活跃还是不活跃状态的步骤包括识别所述多个分组的累积到达率小于或等于预定的累积到达率阈值。
20.如权利要求15所述的方法,其中,所述处理每个特定分组的步骤包括:识别所述特定到达率是否等于或超过突发预值,并且响应于所述特定到达率等于或超过所述突发阈值的所述识别而使得所述特定分组被丢弃。
21.如权利要求15所述的方法,其中,所述周期性处理包括估计所述多个分组类中的每个分组类的输入率;并且其中,所述处理每个特定分组的步骤包括基于所估计的所述特定分组类的输入率而丢弃所述特定分组或者将所述特定分组纳入所述队列。
22.一种使用队列的由基于类的带宽划分机构执行的划分带宽的方法,包括以下步骤:
由所述基于类的带宽划分机构处理多个分组中的每个特定分组,以基于多个概率中与多个分组类中的特定分组类对应的特定概率来判断是否将所述特定分组纳入所述队列、更新对与所述特定分组类对应的已到达流量的测量、并且响应于是否将所述特定分组纳入所述队列的判断而使得所述特定分组被相应地纳入所述队列或者被丢弃;其中,所述特定分组对应于所述特定分组类,所述多个分组中的每个分组对应于所述多个分组类中的一个分组类,并且所述多个分组类中的每个分组类与多个到达率中的一个到达率和多个公平份额中的一个公平份额相关联;并且
由所述基于类的带宽划分机构响应于预定持续时间超过对多个所述特定分组的处理时间,基于对已到达流量的所述测量来周期性地更新所述多个到达率、基于所述队列的长度来周期性地更新所述多个公平份额并且基于所述多个到达率和所述多个公平分额来周期性地更新所述多个概率。
23.如权利要求22所述的方法,其中,所述周期性地更新的步骤包括用于识别状态是活跃还是不活跃的步骤;并且其中,所述处理每个特定分组的步骤包括:响应于状态是不活跃状态,将所述特定分组纳入所述队列,而不管所述特定概率。
24.如权利要求23所述的方法,其中,所述识别状态是活跃还是不活跃的步骤包括用于识别所述队列的长度小于或等于预定的队列长度阈值的步骤。
25.如权利要求23所述的方法,其中,所述识别状态是活跃还是不活跃的步骤包括用于识别所述多个分组的累积到达率小于或等于预定的累积到达率阈值的步骤。
26.如权利要求22所述的方法,其中,所述处理每个特定分组的步骤包括:用于识别所述特定到达率是否等于或超过突发阈值,并且响应于所述特定到达率等于或超过所述突发阈值的所述识别,使得所述特定分组被丢弃的步骤。
27.如权利要求22所述的方法,其中,所述周期性地更新的步骤包括用于估计所述多个分组类中的每个分组类的输入率的步骤;并且其中,所述处理每个特定分组的步骤包括用于基于所估计的所述特定分组类的输入率而丢弃所述特定分组和将所述特定分组纳入所述队列的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/257,141 | 2005-10-24 | ||
US11/257,141 US8170045B2 (en) | 2005-10-24 | 2005-10-24 | Class-based bandwidth partitioning |
PCT/US2006/039591 WO2007050283A2 (en) | 2005-10-24 | 2006-10-10 | Class-based bandwidth partitioning |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101297204A CN101297204A (zh) | 2008-10-29 |
CN101297204B true CN101297204B (zh) | 2013-02-13 |
Family
ID=37968330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680039684XA Expired - Fee Related CN101297204B (zh) | 2005-10-24 | 2006-10-10 | 基于类的带宽划分 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8170045B2 (zh) |
EP (1) | EP1941287B1 (zh) |
CN (1) | CN101297204B (zh) |
WO (1) | WO2007050283A2 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090073878A1 (en) * | 2007-08-31 | 2009-03-19 | Kenneth Gustav Carlberg | Usage based queuing with accounting for wireless access points |
EP2056192A1 (en) * | 2008-05-19 | 2009-05-06 | Alcatel Lucent | A data element queueing device and associated method |
FR2941117B1 (fr) * | 2009-01-15 | 2011-02-11 | Peugeot Citroen Automobiles Sa | Procede et dispositif de controle du reveil, d'organes appartenant a au moins un reseau multiplexe, par comptage de reveils intempestifs |
US9633117B2 (en) | 2009-04-27 | 2017-04-25 | Hewlett Packard Enterprise Development Lp | System and method for making a recommendation based on user data |
US8005106B2 (en) * | 2009-05-21 | 2011-08-23 | Cisco Technology, Inc. | Apparatus and methods for hybrid fair bandwidth allocation and drop precedence |
US20110194426A1 (en) * | 2010-02-09 | 2011-08-11 | Chien Fang | Hierarchical queuing and scheduling |
US8234401B2 (en) | 2010-06-30 | 2012-07-31 | Cisco Technology, Inc. | Adaptive policers responsive to utilization levels of a resource |
CN102487509A (zh) * | 2010-12-02 | 2012-06-06 | 中兴通讯股份有限公司 | 一种动态分配用户面处理单元资源的方法及系统 |
GB201111106D0 (en) * | 2011-06-30 | 2011-08-10 | Xelerated Ab | Method, network device, computer program and computer program product for communication queue state |
US8593972B2 (en) * | 2011-09-29 | 2013-11-26 | Cisco Technology, Inc. | Method to verify a drop probability curve |
US9225771B2 (en) | 2012-05-09 | 2015-12-29 | Cisco Technology, Inc. | Sharing excess committed network appliance resources |
US8817807B2 (en) | 2012-06-11 | 2014-08-26 | Cisco Technology, Inc. | System and method for distributed resource control of switches in a network environment |
WO2015107385A2 (en) * | 2013-12-18 | 2015-07-23 | Marvell Israel (M.I.S.L.) Ltd. | Methods and network device for oversubscription handling |
US10389643B1 (en) | 2016-01-30 | 2019-08-20 | Innovium, Inc. | Reflected packets |
US10355981B1 (en) | 2016-03-02 | 2019-07-16 | Innovium, Inc. | Sliding windows |
US10205805B2 (en) | 2016-11-21 | 2019-02-12 | Cisco Technology, Inc. | Dropping or admitting packets to an output queue using policy-based scheduling and virtual destination queue occupancy values |
US10320686B2 (en) | 2016-12-07 | 2019-06-11 | Cisco Technology, Inc. | Load balancing eligible packets in response to a policing drop decision |
US11075847B1 (en) | 2017-01-16 | 2021-07-27 | Innovium, Inc. | Visibility sampling |
US10367749B2 (en) | 2017-07-05 | 2019-07-30 | Cisco Technology, Inc. | Automatically cycling among packet traffic flows subjecting them to varying drop probabilities in a packet network |
US10560391B2 (en) | 2018-01-18 | 2020-02-11 | Cisco Technology, Inc. | Adaptive acknowledgement control |
US11048552B2 (en) | 2018-05-30 | 2021-06-29 | Texas Instruments Incorporated | High-speed broadside communications and control system |
US11343205B2 (en) * | 2018-05-30 | 2022-05-24 | Texas Instruments Incorporated | Real-time, time aware, dynamic, context aware and reconfigurable ethernet packet classification |
CN111385222A (zh) * | 2018-12-29 | 2020-07-07 | 德克萨斯仪器股份有限公司 | 实时、时间感知、动态、情境感知和可重新配置的以太网分组分类 |
US11621904B1 (en) | 2020-11-06 | 2023-04-04 | Innovium, Inc. | Path telemetry data collection |
US11784932B2 (en) * | 2020-11-06 | 2023-10-10 | Innovium, Inc. | Delay-based automatic queue management and tail drop |
US11601369B1 (en) * | 2021-09-01 | 2023-03-07 | Arbor Networks, Inc. | Mitigation of network attacks by prioritizing network traffic |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463068B1 (en) | 1997-12-31 | 2002-10-08 | Cisco Technologies, Inc. | Router with class of service mapping |
US7142552B2 (en) | 2002-04-08 | 2006-11-28 | International Business Machines Corporation | Method and system for priority enforcement with flow control |
US7385997B2 (en) | 2002-04-08 | 2008-06-10 | International Business Machines Corporation | Priority based bandwidth allocation within real-time and non-real-time traffic streams |
US8130661B2 (en) * | 2003-08-01 | 2012-03-06 | Opnet Technologies, Inc. | Systems and methods for intelligent probe testing |
US7289447B2 (en) * | 2003-10-21 | 2007-10-30 | Comcast Cable Holdings, Llc | Method and packet-level device for traffic regulation in a data network |
US20070070907A1 (en) * | 2005-09-29 | 2007-03-29 | Alok Kumar | Method and apparatus to implement a very efficient random early detection algorithm in the forwarding path |
US7817556B2 (en) * | 2006-04-20 | 2010-10-19 | Cisco Technology, Inc. | Modification of policing methods to make them more TCP-friendly |
-
2005
- 2005-10-24 US US11/257,141 patent/US8170045B2/en active Active
-
2006
- 2006-10-10 WO PCT/US2006/039591 patent/WO2007050283A2/en active Application Filing
- 2006-10-10 EP EP06825712.0A patent/EP1941287B1/en active Active
- 2006-10-10 CN CN200680039684XA patent/CN101297204B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1941287B1 (en) | 2014-12-24 |
US20070091802A1 (en) | 2007-04-26 |
EP1941287A2 (en) | 2008-07-09 |
US8170045B2 (en) | 2012-05-01 |
CN101297204A (zh) | 2008-10-29 |
WO2007050283A2 (en) | 2007-05-03 |
EP1941287A4 (en) | 2010-01-20 |
WO2007050283A3 (en) | 2007-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101297204B (zh) | 基于类的带宽划分 | |
US6643256B1 (en) | Packet switch and packet switching method using priority control based on congestion status within packet switch | |
US7310339B1 (en) | Packet messaging method and apparatus | |
US9762491B2 (en) | Dynamic thresholds for congestion control | |
CA2227244C (en) | A method for supporting per-connection queuing for feedback-controlled traffic | |
US6654342B1 (en) | Accumulating and distributing flow control information via update messages and piggybacked flow control information in other messages in a packet switching system | |
US6674721B1 (en) | Method and apparatus for scheduling packets being sent from a component of a packet switching system | |
US9497135B2 (en) | Method and system for reduction of time variance of packets received from bonded communication links | |
US8121035B2 (en) | Apparatus and method for packet buffer management in IP network system | |
US6735173B1 (en) | Method and apparatus for accumulating and distributing data items within a packet switching system | |
US20110176554A1 (en) | Packet relay apparatus and method of relaying packet | |
CN1910868B (zh) | 用于控制队列缓冲器的方法及装置 | |
JP2007527170A (ja) | 並列通信のためのシステムおよび方法 | |
CN110224944B (zh) | 一种分布式网络流量控制方法和装置 | |
CN101356777B (zh) | 在交换结构网络中管理芯片上队列 | |
EP1482684A2 (en) | Apparatus and method for minimizing transmission delay in a data communication system | |
US6728211B1 (en) | Method and apparatus for delaying packets being sent from a component of a packet switching system | |
WO2020063299A1 (zh) | 统计活跃流数目的方法、网络设备和系统 | |
US8867353B2 (en) | System and method for achieving lossless packet delivery in packet rate oversubscribed systems | |
US20080205287A1 (en) | Apparatus and method for controlling the transfer of communication traffic to multiple links of a multi-link system | |
US7391785B2 (en) | Method for active queue management with asymmetric congestion control | |
US8194669B1 (en) | Method and system for identifying media type transmitted over an atm network | |
US8660001B2 (en) | Method and apparatus for providing per-subscriber-aware-flow QoS | |
KR20070060622A (ko) | 혼잡 윈도우 제한에 의한 tcp 성능 개선 방법 | |
US8005106B2 (en) | Apparatus and methods for hybrid fair bandwidth allocation and drop precedence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130213 Termination date: 20211010 |