CN1593044A - 在包交换装置中用于避免拥堵的方法和系统 - Google Patents

在包交换装置中用于避免拥堵的方法和系统 Download PDF

Info

Publication number
CN1593044A
CN1593044A CNA028191471A CN02819147A CN1593044A CN 1593044 A CN1593044 A CN 1593044A CN A028191471 A CNA028191471 A CN A028191471A CN 02819147 A CN02819147 A CN 02819147A CN 1593044 A CN1593044 A CN 1593044A
Authority
CN
China
Prior art keywords
outlet
packet
formation
bandwidth
outlet formation
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
CNA028191471A
Other languages
English (en)
Other versions
CN100384174C (zh
Inventor
史蒂夫·罗尚
理查德·S·诺曼
罗宾·布瓦万
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.)
Hyperchip Inc
Original Assignee
Hyperchip 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 Hyperchip Inc filed Critical Hyperchip Inc
Publication of CN1593044A publication Critical patent/CN1593044A/zh
Application granted granted Critical
Publication of CN100384174C publication Critical patent/CN100384174C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/10Flow control; Congestion control
    • 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/11Identifying congestion

Landscapes

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

Abstract

一种用于调节通过一种装置比如带有交换结构的路由器的数据包流的方法、装置和计算机可读的存储介质。为设在装置的出口级的多个队列中的每一个队列收集拥堵信息,比如带宽利用率统计数字。根据带宽利用率的统计数字,为每个队列计算一个“丢弃概率”。这个信息被周期性地或者按照其它的一个控制时间周期,比如当丢弃概率发生巨大变化时,传输到入口级。根据数据包要到达的队列以及该队列的丢弃概率,入口级将数据可控制地传输到交换结构或者不进行传输。在这种方式中,甚至在拥堵有机会发生以前就已经避免了拥堵的出现。这将提高带宽的利用率,因为在入口级被丢弃的数据包就不会占用装置中的其它资源。

Description

在包交换装置中用于避免拥堵的方法和系统
发明领域
本发明涉及在包交换装置中避免拥堵的方法和系统,尤其是使用数据包丢弃技术来避免拥堵的方法和系统。
发明背景
通过一个包交换装置(比如,一个路由器)来支持的所有链路的集成链路带宽通常比装置的总交换能力高。这就引起位于包交换装置入口(交换前)和出口(交换后)级的缓冲器中出现拥堵。拥堵甚至会在无阻塞交换结构(switch fabrics)上出现。通常可以使用缓冲来控制拥堵。然而,缓冲会造成数据包传输的延迟,因此,为了避免过度延迟,就需要开发更复杂的技术来解决拥堵。
一种用于控制拥堵的方案是尾部丢弃法,藉此,允许将数据包填充到出口缓冲器中,如果数据包来自交换结构而同时缓冲器容量已满,就将数据包丢弃。然而,这种方法会造成多路数据流丢失数据包。高层协议会通过终止数据流并重新传输丢失信息的方法来对这种类型的数据包丢失做出反应。虽然拥堵本身被终止了,而最终的结果就是包交换装置那种非常令人讨厌的减速—加速—减速等等的工作方式。
在另一种传统的拥堵控制算法中,出口级对每一个数据包采取一个行动,这种行动可以是使数据包排队等待,也可以是将数据包丢弃。这种类型算法的一个例子是随机初期丢弃(RED)算法。RED(随机初期丢弃)算法的具体例子包括RED(随机初期丢弃)算法(该算法在1998年4月的Internet Request For Comments(RFC)2309中进行了描述,特此引用),以及BLUE算法(该算法在BLUE:A New Class ofActive Queue Management Algorithms的第1-26页进行了描述,Wu-chang Feng等著,特此引用)。数据包应该丢弃还是排队等待的决定通过监控特定链路上出口缓冲器已充满的程度,并相应地给数据包产生一个丢弃概率来进行确定。如果给数据包产生的随机数字低于丢弃概率,数据包就被丢弃;否则将数据包放入出口缓冲器中。在这种方法中,出口缓冲器的拥堵可以通过出口缓冲器采取的行动来进行控制。
但是,由于延迟不丢弃的数据包增加的不稳定信号和等待时间以及发送要丢弃的数据包都需要大量地提供交换结构。因此,通过装置出口丢弃数据包或者使数据包排队等候的每一个行动(比如,一旦交换资源已经被用来交换数据包),这些最终丢弃的数据包将消耗掉包交换装置整个入口和交换级的资源。明显地,以测量拥堵水平为基础来做出决定,被使用装置的存储器和/或交换资源利用程度不可避免地效率低下。
因此,在工业上有必要开发一种能够限制拥堵,同时又能够在像路由器这样的包交换装置中有更大的资源利用效率的机制。
发明简述
本发明提供了一种用于在包交换装置的入口级调节数据包流量的方法。特别地,将为装置出口级的多个队列中的每一个获得带宽利用率信息。根据带宽利用率信息,为每个队列计算“丢弃概率”。这个信息周期性地或者在其它控制的时间段传输到入口级,比如当丢弃概率出现极大变化时。然后入口级就能够根据数据包要到达的队列以及那个队列的丢弃概率,继续进行数据包到交换结构的可控传输或者停止进行传输。在这样的方式中,甚至在拥堵有机会发生以前就被避免了。这就提高了带宽的利用率,因为在入口级丢弃的数据包不会占据装置中的其它资源。
因此,本发明可以概括为利用一种调节通过一个装置的数据包流的方法,该装置设有包括多个输入端口和多个输出端口的交换结构;一个控制实体,该控制实体连接到输入端口用于调节到入口的数据包流;以及多个出口队列,该出口队列连接到输出端口用于临时存储从出口收到的数据包。该方法包括获得有关出口队列收到的数据包的带宽利用率信息;从带宽利用率信息中确定各出口队列的丢弃概率;向控制实体提供各出口队列的丢弃概率,供控制实体用来有选择性的将数据包传输到交换结构的输入端口。
在一个特定的实施例中,获得有关出口队列收到数据包的带宽利用率信息包括为每一个输出端口确定从该输出端口收到连续数据包之间的平均空闲时间;为每一个输出端口确定连接到该输出端口的每个出口队列单位时间收到业务流字节数的平均值,以及为每个输出端口确定单位时间从该输出端口收到非业务流字节数的平均值。
在一个特定实施例中,通过为某一出口队列确定分配业务流带宽,以及将该出口队列收到的业务流字节数平均值与该出口队列分配的业务流带宽进行比较,就可以确定一个出口队列的丢弃概率。如果该出口队列收到的业务流字节数平均值比该出口队列分配到的业务流带宽更大(更小),则该出口队列的丢弃概率被设定为该出口队列以前丢弃概率值的时间平均值与一个正(负)增加值之和。
在一个特定的实施例中,可以为每个出口队列和数据包优先级的组合的丢弃概率进行计算。
在一个特定的实施例中,本发明的方法可以实现为计算机可读储存介质上的指令序列。
根据第二个主要的方面,本方法可以概括为丢弃概率计算模块,该模块包括一个分配处理实体,用于为每个出口队列和一个与分配处理实体相连的概率处理实体确定一个分配的业务流带宽,概率处理实体适合于从分配处理实体为每个出口队列接收分配的业务流带宽,还适合于从外部装置中为每个出口队列接收已收到业务流字节的平均值。
概率处理实体可以将每个出口队列收到业务流字节的平均数与该出口队列分配的业务流宽带进行比较,并根据该出口队列收到的业务流字节平均值比该出口队列分配业务流带宽是大还是小,将某一出口队列的丢弃概率设定为该出口队列以前丢弃概率值的时间平均值与或正或负的增加值之和。
根据第三个主要的方面,本方法可以概括为设有交换结构的一种装置,该交换结构设有多个输入端口和多个输出端口,该交换结构适合于在该装置的输入端口和输出端口之间交换数据包。该装置还包括多个出口队列,出口队列与交换结构输出端口中相应的一个相连,每个出口队列都适合于(i)临时存储从相应交换结构出口收到的数据包,(ii)在出口队列收到数据包的基础上确定带宽使用信息。
所述装置还包括一个与出口队列相连的丢弃概率计算模块,该丢弃概率计算模块适合于以带宽使用率信息为基础确定每个出口队列的丢弃概率。所述装置还包括一个与交换结构输入端口和丢弃概率计算模块相连的数据包接收部件,数据包接受部件适合于(i)接收传输到交换结构输出端口的数据包;(ii)确认与每个收到的数据包相关的出口队列;(iii)根据与每个收到数据包相关的出口队列的丢弃概率,将收到数据包传输或者不传输到交换结构的一个输入端口。
根据另一主要方面,本发明可以概括为一种调节通过一个装置的数据包流量的方法,该装置设有一个入口实体;一个出口实体;一个处理结构,该处理结构设在入口实体和出口实体之间;以及一个控制实体,该控制装置用于在将数据包传输到入口实体之前对数据包进行处理。该方法包括获得与出口实体的收到数据包相关的拥堵信息,并将拥堵信息提供给控制实体,供控制实体用来在数据包传输到入口实体之前对数据包进行处理。
通过对本发明优选实施例的说明和附图的审查,本领域一般技术人员对本发明的这些和其它方面以及特点将更加清楚明了。
附图简述
其中:
图1是设有本发明实施例的随机数据包丢弃功能的一个包交换装置的框图;
图2是图1装置中丢弃概率计算模块实施例的框图。
优选实施例详述
参考图1,图中显示了本发明实施例的包交换装置,该装置以入口级获得的拥堵信息为基础,通过在入口级传输或者不传输数据包来避免信息拥堵的发生。
在一个实施例中,包交换装置100是一种多级路由器,而且出口级可以是多级路由器的中间级或者最后级。能在包交换网络中与邻近的装置(比如,路由器或者节点)相连的装置100包括一个交换结构102,交换结构102设有多个输入端口104和多个输出端口106。交换结构102的输入端口104与一组输入线路卡108相连,交换结构102的输出端口106与一组输出线路卡110相连。在线路卡为双向线路的实施例中,输入线路卡108和输出线路卡110可以没有差别。同样,在多级路由器中,输出线路卡110将作为路由选择的下一级。
输入线路卡108适合于从外部实体中接收数据包流,并将它们提供给交换结构102的输入端口104。每个输入线路卡108可以通过一个总线结构105与交换结构102的一个、两个或者多个输入端口104相连。输出线路卡110适合于从交换结构102的输出接口106接收数据包流并将它们转发到网络下游临近的路由器或者节点上。每个输出线路卡110都设有一个、两个或者多个物理接口,与交换器102的输出端口106中的每一个相对应。每个输出线路卡110上的接口通过输出线路卡110能共同使用的总线结构107与交换结构102上相应的输出端口106相连。在图示实施例中,有四个标记为I0、I1、I2、I3的接口,两个接口位于两个输出线路卡110中的每一个上面。然而,显而易见还能够采用其他布置方式,本发明不受任何接口、输出线路卡110数量或者接口在输出线路卡110上的布置方式的限制。
典型地,数据包由首部和有效负载构成,而且还与优先级关联(或者优先权或服务级别)。首部通常确定数据包的优先级(如果可用)以及数据包发送的目的地节点。收到一个特定数据包的输入线路卡108将它的目的地节点转换成交换结构102的目的地输出端口,比如106x,并且将这个目的地输出端口106x的标识插入到数据包的首部。利用在数据包的首部所指定的目的地输出端口106x的标识,数据包就通过适当的总线105被提供给交换结构102的一个输入端口104。交换结构102负责确保数据包确实出现在要求的目的地输出端口106x。具有一个(通过输出线路卡的总线107)连接到目的地输出端口106x的接口的输出线路卡110从数据包的首部将目的地输出端口106x的标识去掉,以数据包最初的形式将其转发到网络上临近的路由器或者节点上。在这种方式中,数据包被移动到更靠近它的目的地节点。在多级路由器的情况下,输出线路卡就代表了路由选择的下一级。
在一个实施例中,同那种其输出线路卡110能够传输到装置100外面的交换结构相比,交换结构102能够以更高的速率向每个输出线路卡110提供信息。这是为了允许输出线路卡110来缓冲超出的带宽,并就如何路由缓冲数据包做出明智的决定。在另外的实施例中,严格的讲,如果装置100中数据包发送的速率与能够通过一个与输出线路卡110相连的外部装置进行控制的速率匹配或者比这个速率小,出口实体就没有必要是队列。
不管在装置100出口是否需要缓冲能力,在出口线路卡110上的接口都包含一个出口实体。在一个实施例中,每个输出线路卡110上的每个接口都与一个、两个或者多个构成出口实体部件的出口队列112相连。出口队列被用来临时存储通过适当总线107从交换结构102的相应输出端口106发送来的数据包流中的数据包。出口队列112可以说是作为与它们相连的物理接口充当虚拟接口或者虚拟端口。应当提及的是在多级路由器中,相对于路由选择的后面级,出口队列112实际上是入口队列。
在图示实施例中,每个接口上有两个出口队列112,分别标记为Q0,Q1。因此,接口I0与它自己的出口队列Q0,Q1,而接口I1与它自己的出口队列Q0,Q1等等相连。但是,可以理解的是还可以有其它布置方式,而且本发明并不局限于每个接口上出口队列112的任何特定数量。此外,在数据包有不同优先级的情况下(比如,P0和P1),出口队列112可以在优先级的基础上划分为相应的一组子队列113。应当认识到的是子队列113并不要求全体都是一样的深度,对于每个出口队列112也不需要具有相同的子队列113数目。
根据本发明的一个实施例,还为每个接口设有一个出口业务流管理器(ETM)114。每个出口业务流管理器114包括适当的电路、软件和/或者控制逻辑用于从每个收到的首部去掉目的地输出标识以及用于确定将收到的数据包放到哪个接口、哪个出口队列112和子队列113。显然可以理解的是在本发明的其它实施例中,每个输出线路卡110设有一个输出业务流管理器,这样,每个出口业务流管理器114将直接连接到与总线107相对应的一个通路中。
向哪个接口发送一个收到的数据包,要在收到数据包首部中指定的信息(比如目的地节点)的基础上做出决定。向哪个出口队列112插入收到的数据包,要在收到数据包首部中指定的信息(比如虚拟端口标识符)的基础上做出决定。向哪个子队列113插入收到的数据包,要在收到数据包首部中指定的信息(比如优先级)的基础上做出决定。
为了说明的目的,假定每个接口实际设有一个出口业务流管理器114,每个这样的出口业务流管理器114都额外设有电路、软件和/或控制逻辑,用于监控从交换结构102的相应输出端口106收到的数据包目的地和数量。在这个信息的基础上,出口业务流管理器114产生表明拥堵的信息。
拥堵信息可能包括带宽利用率信息,比如:
接口Ii上收到数据包之间的平均空闲时间(记做AIT(Ii)-平均空闲时间);
接口Ii收到非业务流字节平均值(记做ARNB(Ii)-收到非业务流字节平均值);
与接口Ii关联的每个出口队列Qε{1120,1121}的每个优先级Pε{1130,1311}收到业务流字节平均值(记做ARTB(Ii,Q,P)-平均收到业务流字节)。
可选地,拥堵信息还可以包括对每个出口队列112深度的测量值或者每个队列可变性的测量值。为了说明的目的,假定拥堵信息是带宽利用率信息,该信息由位于一个给定出口线路卡110上的每个出口业务流管理器114产生,这样的信息被提供给公共丢弃概率计算模块(DPEM)120,该公共丢弃概率计算模块有输出线路卡110共用。(另外一个方法是,为输出线路卡110上的每个出口业务流管理器114设有一个单独的DPEM 120)。
位于给定输出线路卡110上的DPEM 120包括电路、软件和/或控制逻辑,用于为每个与位于给定出口线路卡110上的每个接口关联的出口队列112和子队列113计算丢弃概率。因此,根据设有DPEM 120的出口线路卡上的接口数量,每个DPEM 120将为一个、两个或者多个接口计算丢弃概率。为了便于标记,接口Ii,队列112q和子队列113P的丢弃概率将被记做DP(Ii,112q,113p)。
每个DPEM 120通过一个控制链路122与每个输入线路卡108中的一个或者多个数据包接收单元(PAUs)118相连。从一个给定DPEM120连接到输入线路卡108的控制链路携带有每个队列和优先级的组合的丢弃概率,所述每个组合是对于与包含DPEM 120的输出线路卡110关联的每个接口可能的组合。由于这个工作由位于每个输出线路卡110中的每个DPEM 120完成,所以位于每个输入线路卡108中的每个PAU 118就可以为每个可能的接口、队列和子队列组合获取丢弃概率。由特定DPEM 120传输的丢弃概率就可以以广播信息的形式进行发送。交换结构102实际上被用做一个通道,用来将丢弃概率DP(I,Q,P)从DPEM 120运送到PAUs 118的。
现在考虑位于一个特定输入线路卡108上的PAU 118,这个装置被用来在数据包传输到交换结构102的相应输入端口104之前处理数据包流。PAU 118的功能之一就是以每个数据包的接口和输入队列(如果适用,还有优先级)为基础,以及与接口、输出队列(如果适用,还有优先级)的组合相联系的丢弃概率为基础,通过使用数据包的随机丢弃功能来避免信息拥堵。虽然用来说明的实施例中交换结构102的每个输入端口104显示了一个PAU 118,但是在某些实施例中,给每个输入线路卡108都设一个PAU 118,或者设置唯一的一个布置在输入线路卡108中的PAU 118,这样是非常有利的。
用来处理一个特定数据包流的PAU 118设有合适的电路、软件和/或控制逻辑,用于确定每个收到数据包目的地输出端口。这个目的地输出端口与输出线路卡110之一上的一个接口(比如,Ii)相对应。此外,PAU 118还包括合适的电路、软件和/或控制逻辑,用于确定输出业务流管理器114要将收到的数据包插进去的输出队列112(比如,112q),所述输出业务流管理器114关联于与目的地输出端口相对应的接口。此外,如果一个收到的数据包具有几个优先级中的一个,那么,PAU 118还包括合适的电路、软件和/或控制逻辑,用于确定数据包的优先级以及要确定数据包要插入到的子队列(比如,113p)。基于这种信息并且基于丢弃概率DP(Ii,112q,113p),PAU 118做出是要丢弃收到的数据包还是继续向交换结构102传输的决定。
为了做出是否丢弃收到的具有接口Ii、输出队列112q和子队列113p特征的数据包的决定,PAU 118包括合适的电路、软件和/或控制逻辑,用于为收到的数据包产生一个随机如数字R并将R与丢弃概率DP(Ii,112q,113p)进行比较。比如说,如果R低于DP(Ii,112q,113p),那么数据包就被丢弃,否则数据包就被发送到交换结构102的相应输入端口104。另外一种方法是,如果随机数字R比丢弃概率DP(Ii,112q,113p)高,就将数据包丢弃。术语“随机数字”在这种意义上就是指包括一个由伪随机或者拟随机技术产生的数字。
在它决定确实要将收到数据包转发到交换结构102的情况下,PAU118包括合适的电路、软件和/或控制逻辑,用于将目的地输出端口的标识插入到数据包首部,并将数据包转发到交换结构102的相应输入端口104,这时数据包的首部规定了目的地输出端口的标识。但是,在它决定要丢弃收到数据包的情况下,数据包不会传输到交换结构102,而将完全地被丢弃,或者发送到一个用于存放丢弃数据包的单独的存储库。非常具有优势的是,不传输的数据包不会消耗交换结构102中的资源或者PAU 118拥堵管理装备中的资源,提高了资源的利用率。
现在来描述通过与接口I0关联的输出业务流管理器114来产生带宽利用值(比如,AIT(I0),ARBN(I0)和ARBT(I0,Q,P))。第一,关于AIT(I0)值,它指示接口I0的总带宽利用率。如果使用了长度固定的数据包,那么总带宽利用率就可以通过计算每秒钟到达出口业务流管理器114的数据包数量来直接进行测量。在这种情况下,就不需要计算平均空闲时间。但是,如果使用了可变长度数据包,优选地,总宽带利用率通过计算连续收到数据包时非传输时间间隔的平均值来进行间接测量。这个时间是指数据包与数据包之间的平均空闲时间。
如果一个字中的专用比特被用来显示那个字是否在它所在的数据包中距离最后一个字有一定数目的字,那么就便于实现测量数据包之间的平均空闲时间的方法。这样一种用于用信号指示数据包即将结束的技术在授予给Norman等人、申请号为09/870,776的美国专利申请中进行了描述,该专利申请日期为2001年5月31日,转让给本发明的受让人,特此引用。
与接口I0关联的出口业务流管理器114也为Qε{1120,1121},Pε{1130,1131}产生ARTB(I0,Q,P)值,该值是为接口I0表示发送到每个出口队列和子队列组合的业务流字节数平均值。一个业务流字节从属于一个必须满足特定的面向用户的质量服务标准的数据包。换言之,业务流字节属于必须避免信息拥堵的数据包。为了计算每个ARTB(I0,Q,P)值,出口业务流管理器114包括合适的电路、软件和/或控制逻辑,用于分析每个到来数据包的首部,并且从首部的信息中确定让数据包前往哪个出口队列112,以及数据包优先级。
另外,与接口I0关联的出口业务流管理器114也产生ARNB(I0)值,该值表示了在接口I0收到的非业务流字节数的平均值。一个非业务流字节属于没有附带面向用户服务质量标准的数据包中的字节。为了计算ARNB(I0)值,出口业务流管理器114包括合适的电路、软件和/或控制逻辑,用于分析每个到来数据包的首部,并且从首部的信息中确定数据包是业务流数据包还是非业务流数据包。显而易见的是,对于每个数据包,只在计算ARNB(I0)值和ARTB(I0,Q,P)值的过程中对数据包部首进行一次分析。
参考图2,现在详细描述适合为每个有效的I,Q,P组合计算丢弃概率DP(Ii,112q,113p)的丢弃概率计算模块(DPEM)120的例子。特别地,图示的与一个出口线路卡110关联的DPEM 120包括:一个总计(aggregation)处理实体208,一个利用率处理实体210,一个分配处理实体220,一个概率处理实体230,以及一个外推处理实体240。
总计处理实体208从与接口I0关联的出口业务流管理器114接收ARNB(I0)和AIT(I0)值,从与接口I1关联的出口业务流管理器114接收ARNB(I1)和AIT(I1)值。总计处理实体208根据其输入确定收到的非业务流字节(标记为ARNB)的总计平均值,以及带宽梯度(标记为BWGR)。ARNB和BWGR值被提供给利用率处理实体210。ARNB值的计算可以通过加上由于i=0和i=1而增加的ARNB(Ii)值来得到。BWGR值的计算可以通过以下方式完成。
为了得到一个总平均空闲时间,对每个接口测量的平均空闲时间AIT(I0),AIT(I1)求平均值。然后将总平均空闲时间与一组预设阈值进行比较。在一个实施例中,每个接口的总平均空闲时间首先与临界最小平均阈值时间(记作T1)进行比较。如果它小于T1,那么这种情况就表明交换结构102中带宽的超临界利用。因此,设定带宽梯度值(BWGR)来表明在入口侧迫切需要缩小带宽。
然而,如果总平均空闲时间不小于T1,那么就让它与预设最小平均阈值(标记为T2)进行比较。如果总平均空闲时间比T2小,那么这种情况表明了非临界性拥堵,非临界性拥堵消耗了交换结构102的缓冲空间。因此,设定带宽梯度值(BWGR)表明在入口侧需要适当的缩小带宽。
如果总平均空闲时间不比T2小,那么就将它与预设最大平均阈值(标记为T3)进行比较。如果总平均空闲时间比T3大,那么这种情况就表明交换结构102中带宽利用率不足。因此,设定带宽(BWGR)来表明在入口侧需要增加带宽。
最后,如果总平均空闲时间介于T2和T3之间,那么这种情况表明交换结构102中的带宽的使用不需要进行补偿。因此,设定带宽梯度值(BWGR)表明在入口侧既不需要增加带宽,也不需要减少带宽。
应当指出的是,阈值T1、T2和T3可以在各种参数如带宽利用率,还有队列深度和带宽的可变性(猝发性)的基础上进行动态调节。
利用率处理实体220从总计处理实体208中收到BWGR值(比如,带宽梯度)和ARNB值(比如,平均收到非业务流字节)。以其输入为基础,利用率处理实体210为业务流数据包确定一个总利用带宽,然后把总利用带宽以BWAVAIL值(可利用带宽)的形式提供给分配处理实体220。BWAV值的计算按照以下步骤进行:
利用率处理实体对所有数据包(业务流数据包和非业务流数据包)可以利用的总带宽保留内部记录,记做AGG_AVAIL。如果BWGR值表明在入口侧的带宽需要增加,于是AGG_AVAIL通过预设步长值来增加入口侧带宽,直到最大可利用总带宽;如果BGWR值表明入口侧的带宽需要缩小,那么AGG_AVAIL就通过预设步长值缩小入口侧带宽,降到一个最小可利用总带宽;如果BGWR值表明出口侧的带宽既不需要增加也不需要缩小,那么AGG_AVAIL保持不变;如果BWGR值表明在入口侧迫切需要缩小带宽,那么AGG_AVAIL设定到一个预设(低)值。
其次,从AGG_AVAILA的结果中减去ARNB值就得到BWAVAIL值,BWAVAIL值是只有业务流数据包可以利用的总带宽。在本发明的一个实施例中,增加和减少操作中的步长值都可以设为最小可利用总带宽的百分率。因为缩小带宽比增加带宽更重要,所以增加操作的步长值要低于缩小操作中的步长值。
分配处理实体220除了从利用率处理实体210中以BWAVAIL值的形式收到业务流数据包可利用总带宽以外,还收到平均字节数的显示值,如果丢弃概率为零,就应当为输出线路卡上的每个输出队列112接收平均字节数显示值。这个信息从外推处理实体240中以多个ARTBDP0(I,Q)值(比如,如果丢弃概率为0的平均收到业务流字节)的形式进行接收,其中Iε{I0,I1}和Qε{1120,1121}。随后,在外推处理实体240内容中将对每个ARTBDP0(I,Q)值的计算进行详细描述。
以其输入为基础,分配处理实体220为每个有效的I,Q组合的业务流字节分配带宽。这个计算结果以给I和Q的组合分配带宽值的形式(记作BWALLOC(I,Q)—分配的带宽)提供给概率处理实体230。
BWALLOC(I,Q)值的计算按照以下方式进行:分配处理实体220首先确定为每个I和Q的组合分配的带宽是否满足要求。这可以通过将以前的BWALLOC(I,Q)值与相应的ARTBDP0(I,Q)值进行比较来完成。因此,将分配的带宽与I和Q组合能够收到的最大可能带宽进行比较。
如果BWALLOC(I,Q)值超过ARTBDP0(I,Q)值,那么就要缩小BWALLOC(I,Q)值,比如,缩小一个固定的量,或者以一个依赖于BWALLOC(I,Q)值与ARTBDP0(I,Q)值之差的因子来缩小BWALLOC(I,Q)值。另一方面,如果BWALLOC(I,Q)值小于ARTBDP0(I,Q)值,那么BWALLOC(I,Q)的值就要增加,比如,增加一个固定的量,或者以一个依赖于BWALLOC(I,Q)值与ARTBDP0(I,Q)值之差的因子来增加BWALLOC(I,Q)值。BWALLOC(I,Q)值的增加或者缩小值被提供给概率处理实体230。
应当指出的是,另外一个实施例中,“不改变”的结果将应用到特定的BWALLOC(I,Q)值中,该实施例同样在本发明的范围内。还应当指出的是,当从概率处理实体210上收到数据时,为了确保在同一线路卡上,检查BWALLOC(I,Q)在整个I和Q范围内的总和不会超过该线路卡的BWAVAIL值是非常有利的。
概率处理实体230,除了从分配处理实体220接收(Iε{I0,I1}和Qε{1120,1121})的BWALLOC(I,Q)值,还从外推处理实体240接收(Iε{I0,I1}和Qε{1120,1121}以及Pε{1130,1131})的ARTBDP0(I,Q,P)值,从与接口I0关联的出口业务流控制器114接收(Qε{1120,1121}以及Pε{1130,1131}的)ARTB(I0,Q,P)值,从与接口I1关联的出口业务流管理器114接收(Qε{1120,1121}以及Pε{1130,1131}的)ARTB(I1,Q,P)值。
以其输入为基础,概率处理实体230为每个有效的I,Q,P组合产生丢弃概率DP(I,Q)P),在这种情况下为Iε{I0,I1}和Qε{1120,1121}以及Pε{1130,1131}产生。为给定I值(比如i)和Q值(比如q)对所有的P值计算丢弃概率DP(I,Q,P)可以按照以下方式进行:
首先,对所有的P值计算ARTB(I,q,p)的总和。这就得到一个数量,该数量表示了与接口Ii关联的出口队列112q收到业务流字节的总平均数量,可以记做TARTB(i,q)。为了确定是否分配了比需要的更大的带宽,将这个数量与BWALLOC(i,q)进行比较。因为当分配的带宽与实际使用的带宽相匹配的时候,就会产生最优的资源利用效率,两个参数的差提供了一个误差的信号,要使这个差别变为零。在这个阶段,可以采取一种简单的方法和一种更加复杂的方法。下面先描述简单的方法,然后描述更加复杂的方法。
在分配带宽比总平均使用带宽大的情况下,在简单方法中,丢弃概率DP(i,q,P)将对一个或者多个P降低(取决于使用了intserv还是diffserv模型),使得在入口处丢弃的数据包更少,最终造成了TARTB(i,q)的增加。相反地,如果平均总带宽小于实际使用带宽,丢弃概率DP(i,q,P)将对一个或者多个P增加(取决于使用了intserv还是diffserv模型),使得大量数据包在入口处被丢弃,最终造成了TARTB(i,q)的减少。用于增加丢弃概率DP(i,q,P)的幅度将不同于缩小的幅度。
重复以上过程,直到分配的带宽处于总平均使用带宽的一定范围内。有利的是,这种方法避免了一定程度的信息拥堵。但是,收敛将花费相对较长的时间。这是因为在改变丢弃概率和业务流字节数的平均值发生相应改变之间的大量时间都浪费了。此外,如果丢弃概率在业务流字节数的平均值被检测到之前就改变了,那么就可能“超过”最终丢弃概率,而最终丢弃概率将允许分配的带宽位于总平均使用带宽的一定范围之内。为了减少收敛的时间,可以求助于一种更复杂的方法。
在更复杂的方法中,每个P的丢弃概率的净增加/减少量是一个迭代过程的结果,它取决于(i)丢弃概率(记作ADP(I,q,P)并被提供给外推处理实体240)的时间平均值;(ii)一个临时丢弃概率(记作DPtemp(i,q,P);(iii)收到业务流临时平均字节数(记作ARTBtemp(i,q,P))。
在初始化时,临时丢弃概率DPtemp(i,q,P)设定为以前的DP(i,q,P)值,收到业务流临时平均字节数ARTBtemp(i,q,P)设定为以前的收到业务流字节ARTB(i,q,P)的平均数。与前面一样,这个迭代过程的起点是通过比较分配带宽BWALLOC(i,q)和使用的平均总带宽TARTB(i,q)来确定是否需要增加或者降低丢弃概率。取决于是否需要增加或者减少丢弃概率,来对一个或者多个P的临时丢弃概率值做出相应的改变。
在这一点上,收到业务流字节临时平均字节数ARTBtemp(i,q,P)被改变了,但是在相反的方向上。因此,临时丢弃概率的增加与收到业务流平均临时平均字节数相对应,而临时丢弃概率的降低与收到业务流平均临时平均字节数的增加相对应。利用每个收到业务流平均临时字节数的新值,将对所有P的ARTBtemp(i,q,P)值全部相加,就计算出了使用的临时平均总带宽TARTBtemp(i,q)。将TARTBtemp(i,q)的值与BWALLOC(i,q)值进行比较,比较的结果就表明了分配带宽是否比期望的总平均使用带宽大。
改变一个或者多个P的临时丢弃概率DPtemp(i,q,P)的步骤、重新计算ARTBtemp(i,q,P)对整个P的值的步骤以及计算TARTBtemp(i,q)值的步骤都可以多次重复。在一个实施例中,一直重复这个步骤直到TARTBtemp(i,q)值处于所需要的BWALLOC(i,q)值范围内。一个可选方案是,将这个步骤重复固定的次数或者直到临时丢弃概率实现收敛。在经过需要的重复次数以后,在任何情况下,每个丢弃概率DP(i,q,P)都设定为相应临时丢弃概率DPtemp(i,q,P)的当前值,并将丢弃概率提供给输入线路卡中的PAUs。在这种方法中,就可以预测由于丢弃概率的变化而造成的带宽利用率的变化,以便更快地得到所需要的带宽利用率。
对DPtemp(i,q,P)和ARTBtemp(i,q,P)的值可以使用不同的初始步长,初始步长可以是一个固定值。对于ARTBtemp(i,q,P)值,初始步长可以是一个取决于的值,在每次(或者第N次)迭代中以2的幂次方减小。在每次(或者每第N次)迭代过程中,相对于它们以前的值来为DPtemp(i,q,P)和ARTBtemp(i,q,P)的增加或降低来减少步长,这样是很有利的。举个不作为限制的例子,减少量可以是对数的(比如:2的幂次方)。
应当认识到的是,通过将丢弃概率不仅作为带宽利用率的函数,还作为其它参数的函数关系,所述参数是比如出口队列112和/或子队列的深度、发送到每个接口出口队列和/或子队列的单个数据流的带宽变化性(猝发性),就能够推动本领域一般技术人员提高概率处理实体230的性能。一个数据流的猝发性可以看作是那个数据流带宽的导数。
外推处理实体240除了从概率处理实体230接收ADP(I,Q,P)值以外,还从出口业务流管理器114接收ARTB(I,Q,P)值,即每个有效的I,Q,P组合的平均收到字节数。如果丢弃概率为零,外推处理实体240就以其输入为基础为每个有效的I,Q,P组合计算收到业务流字节的平均数。这些值以ARTBDP0(I,Q,P)值的形式被提供给概率处理实体230。
ARTBDP0(I,Q,P)值的计算按照以下方式进行:给定每个有效的I,Q,P组合的收到业务流字节数的平均值,并且给定相同的I,Q,P组合的平均丢弃概率,如果丢弃概率为零,就通过外推计算收到业务流字节数的平均值。特别地,ARTBDP0(I,Q,P)=ARTB(I,Q,P)/(1-ADP(I,Q,P))。如果更经常地收到ARTB(I,Q,P)值而非ADP(I,Q,P)值,那么一旦收到ARTB(I,Q,P)值,就要读取相应的ADP(I,Q,P)值并且计算相应的ARTBDP0(I,Q,P)。
另外,外推处理实体240还对那些与一个共用接口和出口队列相关联的所有优先级的ARTBDP0(I,Q,P)值求总和,得到给定I,Q组合的接收字节平均数以及该I,Q组合效率最低情况下收到的字节。外推处理实体240以该I,Q组合的ARTBDP0(I,Q)值的形式将这个信息提供给分配处理实体220。因此,ARTBDP0(I,Q)=(ARTBDP0(I,Q,P))p,其中(X)p表示一系列X(P)在整个P值范围内总和。
在一些实施例中,这样是有利的:限制将DP(I,Q,P)值传输到PAUs 118的速度以限制通过交换结构02的非业务流字节,同时还限制丢弃概率改变后由于更长的反应时间所引起的不稳定性。对于一个给定的(I,Q,P)三元组的新丢弃概率,不论何时当它从原先的值改变一个超过预设绝对值或者相对值的量时都可以被发送出去,而不用以更高的速率进行更新。这个预设值是可编程的。这个预设值对同一接口的一个输出端口到下一个输出端口或者从一个出口队列112到下一个队列可以各不相同,或者对于同一接口I和出口队列Q组合,从一个子队列113到下一个子队列也不相同。在另外的实施例中,只要同-(I,Q)组合的所有丢弃概率中的一个变化超出了预设绝对值或者相对值,全部丢弃概率就会被发送出去。在丢弃概率没有实质性差别的情况下设有一个定时器,使得丢弃概率值至少按照每秒中的预设时间次数将概率值发送到PAUs 118。
此外,根据本发明的一个实施例,为每个输出端口、与该输出端口关联的出口队列、以及优先级的组合单独产生一个丢弃概率。在其它的实施例中,一个数据包的优先级没有考虑到是丢弃还是转发一个数据包的决定中去,因此,一个单一的丢弃概率将与每个有效的输出端口和出口队列的组合关联。
而且,前面已经提到过,在决定不传输收到的数据包的情况下,数据包可能完全从存储器中丢弃或者被发送到一个存储丢弃数据包的单独存储库。在另外的实施例中,没有传输到处理结构的数据包可以沿着一个备用通道重新发送。
在又一实施例中,要丢弃的数据包被“标记”为“可丢弃数据”,直到需要使用该数据包在存储器中占用的空间时,才将该数据包丢弃。在这种方法中,如果导致数据包被打上“标记”的拥堵减轻,数据包会取消标记并继续发送到交换结构。“标记”的数据包的特性可以规定在数据包的首部。在再一实施例中,被标记的数据包仍然可通过交换结构来传输,但是标记可以用做发给高层应用程序的信号,必须迅速降低某个数据流。
显而易见,虽然上述说明提到了“丢弃”概率,但这并不意味着数据包就真正根据这种概率被丢弃了。一个例子是不传输到交换结构102的包被存储在一个单独的存储器中或者记录下来供以后参考。因此,术语“丢弃概率”可以看作是指非传输概率的更宽泛的概念。根据数据包发送到的出口队列的“丢弃”概率,PAU 118做出传输或者不传输收到数据包的决定。
本领域一般技术人员应理解的是前面所述关于路径接收单元118、丢弃概率计算模块120、利用率处理实体210、分配处理实体220、概率处理实体230和外推处理实体240功能性的全部或部分可以作为预编程的硬件或者固件元件(比如,专用集成电路(ASICs),电可擦可编程只读存储器(EEPROMs),等等),或者其它相关元件来执行完成。
在本发明的其它实施例中,前面所述关于路径接收单元118、丢弃概率计算模块120、利用率处理实体210、分配处理实体220、概率处理实体230和外推处理实体240功能性的全部或部分可以作为软件来实现,所述软件由一系列通过数字计算机来执行程序指令构成,数字计算机包括一个处理器和与通信总线相连的一个存储器。这种存储器包括数据和程序指令。为了执行规范中描述的功能块,处理器适合于处理数据和程序指令。为此在图中对操作进行了描述。
程序指令能被存储在一个固定、有明确形状并且计算机系统可读的媒体中,(如,可移动磁盘,CD-ROM,ROM,或者硬盘),或者将程序指令远程存储,但通过由传输媒体连接到网络的调制解调器或者其它接口设备(如通道转接器)可以传输到计算机系统。传输媒体可以是有明确形状的媒体(如光纤或者模拟传输线)或者是使用无线技术完成的媒体(如微波、红外线或者其他传输方法)。
本领域一般技术人员显然能够理解,程序指令可以用许多编程语言写成,和很多计算机体系结构或者操作系统一起使用。比如,有些实施例可以在过程编程语言(如“C语言”)或者面向对象的编程语言(比如“C++”或“JAVA”)中完成。
本发明的实施例已经进行了描述和说明,本领域的技术人员显然能够理解,可以对本发明进行各种修改和变化可以对本发明做出修改、变化而不脱离本发明的范围,如同权利要求书要求的那样。

Claims (58)

1.一种调节通过一个装置的数据包流的方法,所述装置设有至少包括一个输入端口和至少一个输出端口的一个处理结构;一个控制实体,所述控制实体与所述至少一个输入端口相连以调节传输到那里的数据包流;以及多个出口队列,所述出口队列至少与一个输出端口相连以临时存储从那里收到的数据包,所述的方法包括:
获得有关出口队列收到数据包的带宽利用率信息;
从带宽利用率信息中确定每个出口队列的丢弃概率;
为控制实体提供每个出口队列的丢弃概率,供控制实体用来有选择地将数据包传输到处理结构的至少一个输入端口。
2.如权利要求1所述的方法,其特征在于,获得关于出口队列处收到数据包的带宽利用率信息包括从至少一个业务流管理实体接收所述带宽利用率,业务流管理实体设在出口队列和至少一个输出端口之间。
3.如权利要求1所述的方法,其特征在于,每个数据包或者由多个业务流字节或者由非业务流字节组成,并且,获得关于出口队列处收到数据包的带宽利用率信息还包括为所述至少一个输出端口中的每一个特定端口确定连接到该特定输出端口的每个出口队列每单位时间收到的业务流字节平均值。
4.如权利要求3所述的方法,其特征在于,从带宽利用率信息中为一个特定的出口队列确定丢弃概率包括:
为所述特定出口队列确定一个分配业务流带宽;
将所述特定出口队列的收到业务流字节平均值与该出口队列的分配业务流带宽进行比较;以及
如果所述特定出口队列的收到业务流字节平均值比该出口队列的分配业务流带宽大,增加该出口队列的丢弃概率;
如果所述特定出口队列的收到业务流字节平均值比该出口队列的分配业务流带宽小,降低该出口队列的丢弃概率。
5.如权利要求3所述的方法,其特征在于,从带宽利用率信息中为一个特定的出口队列确定丢弃概率包括:
为所述特定出口队列确定一个分配业务流带宽;
将所述特定出口队列的收到业务流字节平均值与该出口队列的分配业务流带宽进行比较;以及
如果所述特定出口队列的收到业务流字节平均值比该出口队列的分配业务流带宽大,就将该出口队列的丢弃概率设为该出口队列以前的丢弃概率的时间平均值与一个正的增加值之和;
如果所述特定出口队列的收到业务流字节平均值比该出口队列的分配业务流带宽小,就将该出口队列的丢弃概率设为该出口队列以前的丢弃概率的时间平均值与一个负的增加值之和。
6.如权利要求3所述的方法,其特征在于,为一个特定的出口队列确定丢弃概率包括:
(a)将临时收到业务流字节平均值设定为收到业务流字节的平均数;
(b)将临时丢弃概率设定为所述特定出口队列以前丢弃概率值的时间平均值;
(c)为所述特定出口队列确定一个分配业务流带宽;
(d)将临时收到业务流字节平均值与所述特定出口队列的分配业务流带宽进行比较;
(e)如果临时收到业务流字节平均值比所述特定出口队列的分配业务流带宽大,就给临时丢弃概率加上一个正的概率增加值,并且给临时收到业务流字节平均值增加一个负的带宽增加值;
(f)如果临时收到业务流字节平均值比所述特定出口队列的分配业务流带宽小,就给临时丢弃概率加上一个负的概率增加值,并且给临时收到业务流字节平均值增加一个正的带宽增加值;
(g)将所述特定出口队列的丢弃概率设定为临时丢弃概率。
7.如权利要求6所述的方法,还包括执行步骤(d),(e)和(f)一个预定的次数。
8.如权利要求6所述的方法,还包括执行步骤(d),(e)和(f),直到临时收到业务流字节平均值在所述特定出口队列分配业务流带宽所需要的范围内。
9.如权利要求8所述的方法,还包括测量所述特定出口队列的深度并执行步骤(d),(e)和(f),直到所述特定出口队列的深度在所需的范围内。
10.如权利要求9所述的方法,还包括测量所述特定出口队列深度的可变性,并执行步骤(d),(e)和(f),直到所述特定出口队列深度的可变性在所需要的范围内。
11.如权利要求6所术的方法,还包括执行步骤(d),(e)和(f),直到所述特定出口队列的临时丢弃概率收敛到一个需要的精确度。
12.如权利要求6所述的方法,其特征在于,为所述特定出口队列确定一个分配业务流带宽包括:
如果所述特定出口队列的丢弃概率为零,则确定在出口队列将收到的业务流字节平均值;以及
如果所述特定出口队列的丢弃概率为零,而且如果出口队列将收到的业务流字节平均值大于该队列的分配业务流带宽,则为该出口队列的分配业务流带宽加上一个正的增加值;
如果所述特定出口队列的丢弃概率为零,而且如果出口队列将收到的业务流字节平均值小于该队列的分配业务流带宽,则为该出口队列的分配业务流带宽加上一个负的增加值。
13.如权利要求6所述的方法,还包括:
为所有连接到所述特定输出端口的出口队列确定可用的业务流带宽;
为所有连接到所述特定输出端口的出口队列确定分配的总业务流带宽;
其中,只有当分配给连接到所述特定输出端口的所有出口队列的总业务流带宽小于连接到该输出端口的所有出口队列的可用业务流带宽时,才执行给所述特定出口队列分配业务流带宽增加一个正的增加值这个步骤。
14.如权利要求13所述的方法,其特征在于,为连接到输出端口的所有出口队列确定一个可用业务流带宽包括:
确定带宽梯度,该带宽梯度表明了与所述特定输出端口相连的所有出口队列的可用业务流带宽增加或者降低的速率;
按照与梯度带宽的函数关系增加或者降低与所述特定输出端口相连的所有出口队列的可用业务流带宽。
15.如权利要求14所述的方法,其特征在于,获得与出口队列处收到数据包相关的带宽利用率信息还包括:为所述至少一个输出端口中的每一个特定端口确定从所述特定输出端口单位时间收到的非业务流字节平均值,并且还在于,为连接到所述特定输出端口的所有出口队列确定一个可用业务流带宽还包括:
为连接到所述特定输出端口的所有出口队列确定一个总链路容量;
将最大可用业务流带宽设定为所述总链路容量与所述非业务流字节平均值之差;
其中,连接到所述特定输出端口的所有出口队列的可用业务流带宽不会超过最大可用业务流带宽。
16.如权利要求15所述的方法,其特征在于,如果所述特定出口队列的丢弃概率为零,确定在该出口队列将收到的业务流字节平均值还包括:计算该出口队列每个时间单位收到业务流字节平均值和该出口队列以前丢弃概率值的时间平均值的一个函数。
17.如权利要求16所述的方法,其特征在于,所述函数是以下两项的商:(i)所述特定出口队列每个时间单位收到的业务流字节平均值,(ii)所述特定出口队列以前丢弃概率值的时间平均值与整体时间的差。
18.如权利要求6所述的方法,还包括:
如果所述特定出口队列的丢弃概率为零,确定在该出口队列将收到的业务流字节平均值;以及
执行步骤(d),(e),(f)至少两次;
其中,如果出口队列为零,正的宽带增加量是所述特定出口队列将收到的业务流平均数的第一部分,所述第一部分随着步骤(f)的执行将减少;并且
其中,如果出口队列为零,负的宽带增加量是所述特定出口队列将收到的业务流平均数的第二部分,所述第二部分随着步骤(e)的执行将减少。
19.如权利要求18所述的方法,其特征在于,正的概率增加值具有随着步骤(e)的执行而减少的一个值,并且,负的概率增加值具有随着步骤(f)的执行而减少的一个值。
20.如权利要求14所述的方法,其特征在于,获得与所述出口队列收到的数据包有关的带宽利用率信息包括为所述至少一个输出端口中的每个特定输出端口确定从该输出端口收到连续数据包之间的平均空闲时间。
21.如权利要求20所述的方法,其特征在于,确定一个带宽梯度包括:
将从所述特定输出端口收到的连续信息包之间的平均空闲时间与一个第一阈值进行比较;以及
如果从所述特定输出端口收到的连续信息包之间的平均空闲时间低于第一阈值,设定带宽梯度来为连接到所述特定输出端口的所有出口队列指示可用业务流带宽中的一个第一降低速率。
22.如权利要求21所述的方法,还包括:
将从所述特定输出端口收到的连续信息包之间的平均空闲时间与一个小于第一阈值的第二阈值进行比较;以及
如果从所述特定输出端口收到的连续信息包之间的平均空闲时间低于第二阈值,设定带宽梯度来为连接到所述特定输出端口的所有出口队列指示可用业务流带宽中的一个第二降低速率,其中,所述第二降低速率比所述第一降低速率大。
23.如权利要求22所述的方法,还包括:
将从所述特定输出端口收到的连续信息包之间的平均空闲时间与一个第三阈值进行比较;以及
如果从所述特定输出端口收到的连续信息包之间的平均空闲时间高于第三阈值,设定带宽梯度来为连接到所述特定输出端口的所有出口队列指示可用业务流带宽中的一个增加速率。
24.如权利要求23所述的方法,还包括:
确定多个出口队列中存储器利用率的程度;以及
编程将第一、第二和第三阈值中至少一个表示成所述存储器利用率程度的函数。
25.如权利要求1所述的方法,其特征在于,所述处理结构的至少一个输出端口为多个输出端口,并且,多个输出端口中的每个端口都分别与多个出口队列中的一个队列相连接。
26.如权利要求1所述的方法,其特征在于,所述处理结构的所述至少一个输出端口中的至少一个分别与多个出口队列中的一个队列相连接。
27.如权利要求1所述的方法,其特征在于,将每个出口队列的丢弃概率提供给控制实体是在可编程的基础上来进行操作。
28.如权利要求1所述的方法,还包括:
记录每个出口队列在选择时间的丢弃概率;
探测是否有一个预定幅度的变化在至少一个出口队列的丢弃概率中出现;
其中,只有探测到有至少一个预定幅度的变化在一个特定出口队列的丢弃概率中出现,才能执行将所述特定出口队列的丢弃概率提供给控制实体。
29.如权利要求1所述的方法,还包括:
记录每个出口队列在选择时间的丢弃概率;
探测是否至少有一个预定幅度的变化在至少一个出口队列的丢弃概率中出现;
其中,在下面两种情况下执行将一个特定出口队列的丢弃概率提供给控制实体的步骤(i)探测到有至少一个预定幅度的变化在所述特定出口队列的丢弃概率中出现;或者(ii)经过预定的时间后,不管是否探测到有至少一个预定幅度的变化在所述特定出口队列的丢弃概率中出现。
30.如权利要求1所述的方法,还包括:
对于每个收到数据包,控制实体确定收到数据包前往哪个出口队列,并在数据包要传输到的那个出口队列的丢弃概率的基础上,确定将收到的数据包传输还是不传输到处理结构。
31.如权利要求30所述的方法,其特征在于,在数据包要传输到的那个出口队列的丢弃概率的基础上,将收到的数据包传输到处理结构还是不进行传输包括:
为收到的数据包产生一个随机数;
将随机数与收到数据包要传输到的那个出口队列的丢弃概率就比较;以及
在比较的基础上将收到的数据包传输或者不传输到处理结构。
32.如权利要求31所述的方法,其特征在于,不传输一个收到的数据包包括丢弃数据包。
33.如权利要求31所述的方法,其特征在于,不传输一个受到的数据包包括将数据包标记为可丢弃数据包。
34.如权利要求31所述的方法,其特征在于,不传输一个收到的数据包包括在一个存储位置存储收到的数据包并将数据包标记为可丢弃数据包,并且,传输一个数据包包括只传输没有被标记为可丢弃的数据包。
35.如权利要求34所述的方法,其特征在于,不传输一个收到的数据包还包括:
确定在出口队列中是否存在拥堵减轻的情况;以及
如果在出口队列中存在拥堵减轻的情况,就确定是否存储位置要被用来存储其它数据包,如果不是,就不再标记数据包为可丢弃数据包。
36.一种计算机可读的存储介质,包括程序指令,用来在一个计算装置执行中执行权利要求1中定义的方法。
37.一个用来在一个装置中使用的丢弃概率计算模块,该装置设有(i)一个处理结构,设有至少一个输入端口和至少一个输出端口;(ii)一个控制实体,与所述至少一个输入端口相连,用来调节流入到该端口的数据包;(iii)多个出口队列,与所述至少一个输出端口相连,用来临时存储从出口收到的数据包,所述丢弃概率计算模块包括:
用于获得在出口队列收到数据包带宽利用率信息的装置;
用于从带宽利用率信息中确定每个出口队列的丢弃概率的装置;以及
用来向控制实体提供每个出口队列丢弃概率的装置,供控制实体用来有选择地将数据包传输到处理结构的所述至少一个输入端口。
38.一个用来在一个装置中使用的丢弃概率计算模块,该装置设有(i)一个处理结构,设有至少一个输入端口和至少一个输出端口;(ii)一个控制实体,与所述至少一个输入端口相连,用来调节流入到该端口的数据包;以及(iii)多个出口队列,与所述至少一个输出端口相连,用来临时存储从出口收到的数据包,所述丢弃概率计算模块包括:
一个分配处理实体,用于为每个出口队列确定一个分配的业务流带宽;以及
一个与分配处理实体相连的概率处理实体,所述概率处理实体适合于从分配处理实体中为每个出口队列接收分配业务流带宽,还适合于从一个外部实体中为每个出口队列接收业务流字节的平均值,概率处理实体可用于:
将每个出口队列的收到业务流字节平均值与所述特定出口队列的分配业务流带宽进行比较;
根据所述特定出口队列收到业务流字节的平均值是比该出口队列的分配业务流带宽更大还是更小,将出口队列的丢弃概率设定为该出口队列以前丢弃概率值的时间平均值与一个正的或者负的增加值的和。
39.一种计算机可读的存储介质,包括一个程序单元,该程序单元供一个计算装置用来实现权利要求38中的丢弃概率计算模块。
40.一种装置,包括:
一个处理结构,该处理结构设有至少一个输入端口和至少一个输出端口,所述处理结构适合于从至少一个输入端口接收数据包并将处理过的数据包转发到至少一个输出端口;
多个出口队列,每个出口队列与处理结构上所述的至少一个输出端口之一相连,每个出口队列适合于(i)临时存储从处理结构的相应输出端口收到的数据包;(ii)在出口队列收到数据包的基础上确定带宽利用率信息;
一个丢弃概率计算模块,与出口队列相连,所述丢弃概率计算实体适合于在带宽利用率信息的基础上,确定每个出口队列的丢弃概率;
一个数据包接收单元,该数据包接收单元与处理结构的至少一个输入端口相连,并且与丢弃概率计算模块相连,所述数据包接收单元适合于(i)接收输送到处理结构中所述至少一个输出端口的数据包;(ii)确定每个收到数据包关联的出口队列;(iii)在每个收到数据包的出口队列的丢弃概率的基础上,或者将所述数据包传输或者不传输到处理结构的所述至少一个输入端口之一。
41.如权利要求40所述的装置,其特征在于,所述至少一个输出端口是多个输出端口,所述装置还包括:
多个输出线路卡,每个输出线路卡与处理结构的所述多个输出端口的一个独特的子集相连;
其中,丢弃概率计算模块的一部分设在每个输出线路卡上;
其中,丢弃概率计算模块设在一个特定输出线路卡上的那一部分就是丢弃概率计算模块中与处理结构的多个输出端口的所述子集连接的那部分,而所述处理结构是所述特定输出线路卡所连接的处理结构。
42.如权利要求41所述的装置,其特征在于,所述至少一个输入端口是多个输入端口,还包括:
多个输入线路卡,每个输入线路卡与处理结构的所述多个输入端口的一个独特的子集相连;
其中,数据包接收单元的一部分设在每个输入线路卡上。
43.如权利要求40所述的装置,其特征在于,处理结构是一个交换结构。
44.一种调节通过一个装置的数据包流的方法,该装置设有至少包括一个输入端口和至少一个输出端口的一个处理结构;一个控制实体,该控制实体与至少一个输入端口相连以调节传输到那里的数据包流;以及多个出口队列,所述出口队列至少与一个输出端口相连以临时存储从那里收到的数据包,每个数据包带有从一组优先级选择出的相应优先级,所述方法包括:
获得有关出口队列收到数据包的带宽利用率信息;
从带宽利用率信息中确定与每个输出队列和每个优先级关联的丢弃概率;
向控制实体提供每个出口队列和优先级关联的丢弃概率,供控制实体用来有选择地将数据包传输到处理结构的至少一个输入端口。
45.如权利要求44所述的方法,还包括:
对于每个收到的数据包,控制实体确定收到的数据包前往哪个出口队列,还确定该数据包的优先级,以及在收到数据包前往的出口队列的丢弃概率和数据包的优先级的基础上,是将收到数据包传输还是不传输到处理结构。
46.一种调节通过一个装置的数据包流的方法,该装置设有一个入口实体、一个出口实体、一个位于入口实体和出口实体之间的处理结构、以及一个控制实体,该控制实体适合于在将数据包传输到入口实体之前对数据包进行处理,所述方法包括:
获得有关出口实体收到数据包的拥堵信息;以及
将拥堵信息提供给控制实体,供控制实体用来在数据包传输到入口实体之前对数据包进行处理。
47.如权利要求46所述的方法,还包括:
对于控制实体收到的每个数据包,在拥堵信息的基础上将收到数据包传输或者不传输到入口实体。
48.如权利要求47所述的方法,其特征在于,不将收到数据包传输到入口实体包括丢弃收到的数据包。
49.如权利要求47所述的方法,其特征在于,不将收到数据包传输到入口实体包括在一个存储位置存储数据包。
50.如权利要求47所述的方法,其特征在于,不将收到数据包传输到入口实体包括沿着一个备用线路重新传输数据包。
51.如权利要求46所述的方法,还包括:
对于控制实体收到的每个数据包,在拥堵信息的基础上,在收到数据包传输到入口实体之前或者对数据包进行标记或者不进行标记。
52.如权利要求51所述的方法,还包括在出口实体处接收被标记的数据包以探测拥堵信息。
53.如权利要求46所述的方法,其特征在于,获得在出口实体收到的有关数据包的拥堵信息还包括确定一个丢弃概率。
54.如权利要求53所述的方法,还包括:
为控制实体收到的每个数据包产生一个数量值;
将数量值与丢弃概率进行比较;以及
在所述比较步骤结果的基础上,将收到的数据包传输或者不传输到入口实体。
55.如权利要求54所述的方法,其特征在于,数量值是一个随机的数字。
56.如权利要求46所述的方法,其特征在于,拥堵信息包括带宽利用率信息。
57.如权利要求46所述的方法,其特征在于,出口实体包括多个出口队列,并且,拥堵信息还包括每个出口队列的占用率。
58.如权利要求57所述的方法,其特征在于,出口实体包括多个出口队列,并且,拥堵信息包括每个出口队列占用率的可变性。
CNB028191471A 2001-09-27 2002-09-24 在包交换装置中用于避免拥堵的方法和系统 Expired - Fee Related CN100384174C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/963,487 US8125902B2 (en) 2001-09-27 2001-09-27 Method and system for congestion avoidance in packet switching devices
US09/963,487 2001-09-27

Publications (2)

Publication Number Publication Date
CN1593044A true CN1593044A (zh) 2005-03-09
CN100384174C CN100384174C (zh) 2008-04-23

Family

ID=25507312

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028191471A Expired - Fee Related CN100384174C (zh) 2001-09-27 2002-09-24 在包交换装置中用于避免拥堵的方法和系统

Country Status (7)

Country Link
US (1) US8125902B2 (zh)
EP (1) EP1430642B1 (zh)
CN (1) CN100384174C (zh)
AT (1) ATE410854T1 (zh)
AU (1) AU2002328232A1 (zh)
DE (1) DE60229273D1 (zh)
WO (1) WO2003028288A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100512227C (zh) * 2006-09-07 2009-07-08 威盛电子股份有限公司 包转送控制系统及方法
CN102185725A (zh) * 2011-05-31 2011-09-14 北京星网锐捷网络技术有限公司 一种缓存的管理方法、装置和网络交换设备
CN103516749A (zh) * 2012-06-21 2014-01-15 浙江大华技术股份有限公司 一种采用多卡发送数据的方法以及装置
CN105191233A (zh) * 2013-03-14 2015-12-23 思科技术公司 交换机内部传输协议
CN106528564A (zh) * 2015-09-11 2017-03-22 中国移动通信集团河北有限公司 一种拥堵数据处理方法和装置
CN109257244A (zh) * 2017-07-14 2019-01-22 北京国双科技有限公司 用户行为数据的传输控制方法、装置及系统

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7283470B1 (en) 2002-01-25 2007-10-16 Juniper Networks, Inc. Systems and methods for dropping data using a drop profile
US6748247B1 (en) * 2002-03-12 2004-06-08 Winphoria Networks, Inc. System and method of handling dormancy in wireless networks
US7430169B2 (en) * 2002-06-03 2008-09-30 International Business Machines Corporation Retro flow control for arriving traffic in computer networks
US7224670B2 (en) * 2002-06-03 2007-05-29 International Business Machines Corporation Flow control in computer networks
US8161145B2 (en) * 2003-02-27 2012-04-17 International Business Machines Corporation Method for managing of denial of service attacks using bandwidth allocation technology
US20040246895A1 (en) * 2003-06-09 2004-12-09 Telefonaktiebolaget Lm Ericsson (Publ) Bandwidth-limited supervisory packet transmission to control congestion and call establishment in packet-based networks
JP4186776B2 (ja) * 2003-10-01 2008-11-26 日本電気株式会社 フロー制御方式およびフロー制御方法
US7570653B2 (en) * 2004-09-02 2009-08-04 Cisco Technology, Inc. Buffer allocation using probability of dropping unordered segments
US7944829B2 (en) * 2005-03-28 2011-05-17 Netlogic Microsystems, Inc. Mechanism for managing access to resources in a heterogeneous data redirection device
US7609707B2 (en) * 2005-08-31 2009-10-27 Alcatel Lucent Communication traffic management systems and methods
US8547843B2 (en) * 2006-01-20 2013-10-01 Saisei Networks Pte Ltd System, method, and computer program product for controlling output port utilization
US7742417B2 (en) * 2007-02-16 2010-06-22 International Business Machines Corporation Burst traffic smoothing for SIP processing elements
JP4659907B2 (ja) * 2007-07-19 2011-03-30 富士通株式会社 通信メッセージ分類プログラム、通信メッセージ分類方法および通信メッセージ分類装置
US8411566B2 (en) * 2007-10-31 2013-04-02 Smart Share Systems APS Apparatus and a method for distributing bandwidth
CN101478527A (zh) * 2009-01-20 2009-07-08 华为技术有限公司 带宽分配方法和路由设备
CN102511150B (zh) * 2009-09-24 2015-12-09 日本电气株式会社 通信数据传输设备、通信数据传输系统、通信数据传输方法以及通信数据传输程序
GB2481971B (en) 2010-07-07 2016-12-21 Cray Uk Ltd Apparatus & method
US8345675B1 (en) * 2010-12-28 2013-01-01 Juniper Networks, Inc. Orderly offlining in a distributed, multi-stage switch fabric architecture
US20140211630A1 (en) * 2011-09-28 2014-07-31 Vincent E. Cavanna Managing packet flow in a switch faric
JP5919727B2 (ja) * 2011-10-26 2016-05-18 富士通株式会社 バッファ管理のためのプログラム、中継装置及び制御方法
US8717925B2 (en) * 2011-12-22 2014-05-06 Ixia Testing TCP connection rate
US8855127B2 (en) * 2012-10-02 2014-10-07 Lsi Corporation Method and system for intelligent deep packet buffering
KR102102254B1 (ko) 2014-01-15 2020-04-20 삼성전자주식회사 통신 시스템에서 무선 네트워크의 혼잡 검출 장치 및 방법
JP6511875B2 (ja) * 2015-03-09 2019-05-15 富士通株式会社 情報処理システム、スイッチ装置及び情報処理システムの制御方法
US10785157B2 (en) * 2018-03-13 2020-09-22 Juniper Networks, Inc. Adaptive load-balancing over a multi-point logical interface
US11558316B2 (en) 2021-02-15 2023-01-17 Mellanox Technologies, Ltd. Zero-copy buffering of traffic of long-haul links
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115429A (en) 1990-08-02 1992-05-19 Codex Corporation Dynamic encoding rate control minimizes traffic congestion in a packet network
US5426640A (en) 1992-01-21 1995-06-20 Codex Corporation Rate-based adaptive congestion control system and method for integrated packet networks
US5313454A (en) 1992-04-01 1994-05-17 Stratacom, Inc. Congestion control for cell networks
US5436891A (en) 1993-01-14 1995-07-25 Motorola, Inc. Method and system for traffic management in cell relay networks
US5359593A (en) * 1993-08-26 1994-10-25 International Business Machines Corporation Dynamic bandwidth estimation and adaptation for packet communications networks
US5497375A (en) 1994-01-05 1996-03-05 Motorola, Inc. Device and method for ATM end system cell flow regulation
EP0706297A1 (en) 1994-10-07 1996-04-10 International Business Machines Corporation Method for operating traffic congestion control in a data communication network and system for implementing said method
EP0712220A1 (en) 1994-11-08 1996-05-15 International Business Machines Corporation Hop-by-hop flow control in an ATM network
US5629927A (en) 1995-05-31 1997-05-13 International Business Machines Corporation Monitoring ATM networks for burstiness using cell full or cell empty latency with minimum information
EP0781068A1 (en) 1995-12-20 1997-06-25 International Business Machines Corporation Method and system for adaptive bandwidth allocation in a high speed data network
US6108304A (en) 1996-03-08 2000-08-22 Abe; Hajime Packet switching network, packet switching equipment, and network management equipment
US5815492A (en) 1996-06-20 1998-09-29 International Business Machines Corporation Dynamic bandwidth estimation and adaptation in high speed packet switching networks
US6011776A (en) 1996-06-20 2000-01-04 International Business Machines Corporation Dynamic bandwidth estimation and adaptation in high speed packet switching networks
US5912894A (en) 1996-06-20 1999-06-15 International Business Machines Corporation Method and system for monitoring traffic to optimize the bandwidth reserved to an audio channel connection in a high speed digital network
JP3359499B2 (ja) 1996-06-28 2002-12-24 沖電気工業株式会社 送出トラヒック制御装置
US5898691A (en) 1996-09-26 1999-04-27 Cisco Technology, Inc. Method and apparatus for congestion distributed adaptive routing
US6424624B1 (en) 1997-10-16 2002-07-23 Cisco Technology, Inc. Method and system for implementing congestion detection and flow control in high speed digital network
US6430155B1 (en) 1998-11-30 2002-08-06 Cisco Technology, Inc. Congestion avoidance on communications networks
US6252848B1 (en) 1999-03-22 2001-06-26 Pluris, Inc. System performance in a data network through queue management based on ingress rate monitoring
US6813242B1 (en) * 1999-05-07 2004-11-02 Lucent Technologies Inc. Method of and apparatus for fast alternate-path rerouting of labeled data packets normally routed over a predetermined primary label switched path upon failure or congestion in the primary path
WO2001005107A1 (en) 1999-07-13 2001-01-18 Alteon Web Systems, Inc. Apparatus and method to minimize congestion in an output queuing switch
US6442652B1 (en) * 1999-09-07 2002-08-27 Motorola, Inc. Load based cache control for satellite based CPUs
US6728253B1 (en) * 1999-09-24 2004-04-27 International Business Machines Corporation Mixed queue scheduler
US6820128B1 (en) * 1999-11-04 2004-11-16 Nortel Networks Limited Method and apparatus of processing packets having varying priorities by adjusting their drop functions according to a predefined fairness relationship
CA2292828A1 (en) 1999-12-22 2001-06-22 Nortel Networks Corporation Method and apparatus for traffic flow control in data switches
US6898182B1 (en) * 2000-07-21 2005-05-24 Arris International, Inc Congestion control in a network device having a buffer circuit
US6856596B2 (en) * 2000-12-01 2005-02-15 Marconi Communications, Inc. Approximation of the weighted random early detection buffer admittance algorithm
US7002980B1 (en) * 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
US7616573B2 (en) * 2004-06-10 2009-11-10 Alcatel Lucent Fair WRED for TCP UDP traffic mix

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100512227C (zh) * 2006-09-07 2009-07-08 威盛电子股份有限公司 包转送控制系统及方法
CN102185725A (zh) * 2011-05-31 2011-09-14 北京星网锐捷网络技术有限公司 一种缓存的管理方法、装置和网络交换设备
CN103516749A (zh) * 2012-06-21 2014-01-15 浙江大华技术股份有限公司 一种采用多卡发送数据的方法以及装置
CN105191233A (zh) * 2013-03-14 2015-12-23 思科技术公司 交换机内部传输协议
CN105191233B (zh) * 2013-03-14 2019-06-07 思科技术公司 用于交换机内部传输的方法和设备
CN106528564A (zh) * 2015-09-11 2017-03-22 中国移动通信集团河北有限公司 一种拥堵数据处理方法和装置
CN109257244A (zh) * 2017-07-14 2019-01-22 北京国双科技有限公司 用户行为数据的传输控制方法、装置及系统

Also Published As

Publication number Publication date
DE60229273D1 (de) 2008-11-20
EP1430642A2 (en) 2004-06-23
US20030058793A1 (en) 2003-03-27
WO2003028288A2 (en) 2003-04-03
ATE410854T1 (de) 2008-10-15
WO2003028288A3 (en) 2003-07-31
CN100384174C (zh) 2008-04-23
US8125902B2 (en) 2012-02-28
EP1430642B1 (en) 2008-10-08
AU2002328232A1 (en) 2003-04-07

Similar Documents

Publication Publication Date Title
CN1593044A (zh) 在包交换装置中用于避免拥堵的方法和系统
CN1279728C (zh) 在分组交换数据流之间调度可用链路带宽的方法和设备
CN1123176C (zh) 综合业务分组交换网络及其接纳控制方法和交换节点
CN1539224A (zh) 用于支持非线性、高度可缩放的增减拥塞控制方案的方法
KR100463697B1 (ko) 네트워크 프로세서가 흐름 큐의 연결 해제/재연결을 통해출력을 스케줄링하는 방법 및 시스템
CN1745549A (zh) 基于内容处理消息的系统
CN1658575A (zh) 一种在sgsn网络处理器中提高服务质量的方法
JP2002223240A (ja) 重み付きランダムアーリディテクションバッファアドミッタンスアルゴリズムの近似方法
CN1165184C (zh) 一种适合实现路由器服务质量的综合业务中的调度方法
US7522624B2 (en) Scalable and QoS aware flow control
CN1643874A (zh) 使用定额和差额值进行调度
CN1192563C (zh) 服务于多输出队列的调度方法、程序调度装置及数据交换节点
CN1303797C (zh) 测定ip话音网络的方法
CN1134136C (zh) 分级指导随机提早丢弃队列管理器
CN101378364B (zh) 广域网出口调度方法及单元
US8467401B1 (en) Scheduling variable length packets
Keshav et al. Rate controlled servers for very high speed networks
US20090073878A1 (en) Usage based queuing with accounting for wireless access points
JP2946462B1 (ja) パケット・スケジューリング制御方法
JP2003511976A (ja) スループット・ブロッキング最適化のためのリンク容量共有化
Meenakshi et al. An efficient sorting techniques for priority queues in high-speed networks
Shao et al. Scheduling heavy-tailed data traffic over the wireless internet
Tong et al. Quantum varying deficit round robin scheduling over priority queues
CN1450768A (zh) 分组传输装置及其方法
Kherani et al. TCP as an implementation of age-based scheduling: fairness and performance

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: 4198638 CANADA CO., LTD.

Free format text: FORMER OWNER: HYPERCHIP INC.

Effective date: 20050930

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20050930

Address after: Quebec

Applicant after: Hyperchip Inc.

Address before: Quebec

Applicant before: Hyperchip Inc.

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080423

Termination date: 20130924