CN103888368B - 用于限定流量控制信号的方法和装置 - Google Patents

用于限定流量控制信号的方法和装置 Download PDF

Info

Publication number
CN103888368B
CN103888368B CN201410137084.3A CN201410137084A CN103888368B CN 103888368 B CN103888368 B CN 103888368B CN 201410137084 A CN201410137084 A CN 201410137084A CN 103888368 B CN103888368 B CN 103888368B
Authority
CN
China
Prior art keywords
queue
flow control
transmission
control signal
receiving
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.)
Active
Application number
CN201410137084.3A
Other languages
English (en)
Other versions
CN103888368A (zh
Inventor
A·戈德博尔
A·巴苏
J-M·弗爱龙
A·S·贾大夫
N·贾因
P·辛德胡
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.)
Peribit Networks Inc
Original Assignee
Peribit Networks 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 Peribit Networks Inc filed Critical Peribit Networks Inc
Publication of CN103888368A publication Critical patent/CN103888368A/zh
Application granted granted Critical
Publication of CN103888368B publication Critical patent/CN103888368B/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/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
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures

Landscapes

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

Abstract

用于限定流量控制信号的方法和装置。在一个实施例中,处理器可读的介质可以存储代表指令的代码,当处理器执行指令的时候,使得处理器去接收代表接收队列的拥塞程度的值和代表传送队列的状态的值。可以由寻址到接收队列的多个分组限定至少一部分传送队列。可以基于代表接收队列的拥塞程度的值和表示传送队列的状态的值来限定传送队列的速率值。处理器可读的介质可以存储代表指令的代码,当处理器执行指令的时候,使得处理器基于代表接收队列的拥塞程度的值和代表传送队列的状态的值限定传送队列的中止时间值。

Description

用于限定流量控制信号的方法和装置
本申请是2009年9月11日申请的、专利申请号为200910246889.0的专利申请的分案申请。
相关申请
本申请要求于2008年9月11日提交的名为“Methods and Apparatus Related toFlow Control within a Data Center”的美国临时专利申请No.61/096,209的优先权和权益,通过引用其整体结合在此处。
本申请是于2008年9月30日提交的名为“Methods and Apparatus for FlowControl Associated with Multi-Staged Queues”的共同未决的美国专利申请No.12/242,224的部分继续申请,其要求于2008年9月11日提交的名为“Methods and ApparatusRelated to Flow Control within a Data Center”的美国临时专利申请No.61/096,209的优先权和权益;并且本申请是于2008年9月30日提交的名为“Methods and Apparatusfor Flow Controllable Multi-Staged Queues”的共同未决的美国专利申请No.12/242,230的部分继续申请,其要求于2008年9月11日提交的名为“Methods and ApparatusRelated to Flow Control within a Data Center”的美国临时专利申请No.61/096,209的优先权和权益;通过引用所有这些整体结合在此处。
背景技术
在此处描述的实施例通常涉及流量控制,尤其是涉及与多级队列有关的流量控制。
例如,经由物理链路(例如,以太网链路)从发射机到接收机的数据传输可能由于拥塞而在配置为接收数据的队列处被中断。在有些情况下,由于缓冲溢出,该中断可能导致线头(HOL)阻塞和/或导致至少一部分数据的丢失。已知的流量控制协议,诸如以太网暂停(电气与电子工程师协会(IEEE)802.3x)和优先级暂停(IEEE802.1qbb)在某些应用中基本上可用于防止缓冲溢出,并且量化后的拥塞通知(QCN)(IEEE802.1qau)可以用于在具有相对稳定的数据流的多跳网络内管理数据拥塞。但是,这些已知的流量控制协议不能充分地解决与多级队列相关的拥塞问题,和/或不能充分地处理例如由数据的突发所引起的在逐跳(hop by hop)网络链路内发生的拥塞。
因此,对与逐跳网络链路有关的多级队列之间的数据流控制的方法和装置存在需求。
发明内容
在一个实施例中,处理器可读的介质可以存储代表指令的代码,当由处理器执行该指令的时候,使得处理器去接收代表接收队列的拥塞程度的值和代表传送队列的状态的值。至少一部分传送队列可以由寻址到接收队列的分组限定。传送队列的速率值可以基于代表接收队列的拥塞程度的值和表示传送队列的状态的值来定义。处理器可读的介质可以存储代表指令的代码,当由处理器执行该指令的时候,使得处理器基于代表接收队列的拥塞程度的值和代表传送队列的状态的值限定传送队列的中止时间值。
根据本发明的一个方面,提供了一种装置,包括:
第一队列模块,被配置为基于与第一流量控制环路有关的数据流来限定第一流量控制信号,第一流量控制环路包括链路、第一级队列和安排在链路和第一级队列之间的传输路径内的第二级队列,第一流量控制信号包括与第一流量控制环路有关的传送队列的速率值,和与第一流量控制环路有关的传送队列的中止时间值;和
第二队列模块,被配置为基于第二流量控制环路内的数据流来限定第二流量控制信号,第二流量控制环路包括第二级队列和链路,第二流量控制环路不包括第一级队列。
在一个实施例中,与第一流量控制环路有关的数据流来自于传送队列,队列模块被配置为基于与第一流量控制环路有关的数据流来限定代表传送队列的状态的值,队列模块被配置为基于代表传送队列的状态的值限定速率值和中止时间值。
在一个实施例中,部分第一级队列或者部分第二级队列中的至少一个包括在与多级转换结构有关的边缘设备中。
在一个实施例中,第二流量控制环路是基于优先级的流量控制环路。
在一个实施例中,所述装置进一步包括:
第三队列模块,被配置为基于与包括链路的第三流量控制环路有关的数据流来限定第三流量控制信号,第三流量控制环路不包括第一级队列和第二级队列。
在一个实施例中,第一级队列逻辑地嵌套在第二级队列的外面,第二级队列逻辑地嵌套在链路的外面。
根据本发明的另一个方面,提供了一种方法,包括:
在物理链路的接收侧上,接收请求,该请求请求中止来自第一级队列的发送侧内的队列的数据传输并中止经包括物理链路、一部分第一级队列和一部分第二级队列的路径的传输;和
响应于该请求,将流量控制信号发送给流量控制模块,流量控制模块被配置为调度来自第一级队列的发送侧内的队列的数据传输,流量控制信号与包括该路径的第一控制环路有关,并且与不包括第一级队列的第二控制环路不同。
在一个实施例中,第二流量控制环路是基于优先级的流量控制环路。
在一个实施例中,物理链路包括在不同于第一流量控制环路并且不同于第二流量控制环路的第三流量控制环路中。
在一个实施例中,数据在第一级队列的发送侧内的队列处排队,中止传输的请求包括与第一级队列的发送侧内的队列相关联的标识符。
在一个实施例中,第一级队列的发送侧内的队列包括在多个传送队列中,所述多个传送队列包括在第一级队列中,部分第二级队列包括传送队列,包括在第一级队列中的多个传送队列扇入包括在第二级队列中的传送队列。
在一个实施例中,所述请求是第一请求,所述数据是第一数据,该方法进一步包括:
在发送之前,经由该路径接收中止第二数据传输的第二请求,该发送响应于第一请求和第二请求。
在一个实施例中,所述数据是在第一级队列的发送侧内的队列上排队的第一数据,该方法进一步包括:
接收第二请求以中止在第一级队列的发送侧内的队列处排队的至少一部分第二数据的传输;和
基于第一请求和基于第二请求来限定中止时间值,中止时间值代表用于中止来自第一级队列的发送侧内的队列的第一数据传输和第二数据传输的时间段,流量控制信号包括中止时间值。
在一个实施例中,所述数据在第一级队列的发送侧内的队列处排队,所述请求包括基于第一级队列的接收侧内的队列的可用性而限定的中止时间值,流量控制信号是基于中止时间值限定的。
在一个实施例中,在第一级队列的发送侧内的队列是虚拟的队列,流量控制信号包括与虚拟的队列有关的标识符。
附图说明
图1是按照一个实施例表明多级流量可控队列的示意方框图。
图2是按照另一个实施例表明多级流量可控队列的示意方框图。
图3是按照一个实施例表明配置为限定与多个接收队列有关的流量控制信号的目的地控制模块的示意方框图。
图4是按照一个实施例表明流量控制分组的示意图。
图5是按照一个实施例表明用于限定流量控制分组的方法的流程图。
图6是按照一个实施例表明数据中心的示意方框图。
图7是按照一个实施例表明用于将流量控制信号发送给两个不同级的队列的方法的流程图。
图8是按照一个实施例表明配置为处理与多级队列系统有关的流量控制信号的控制模块的示意图。
图9A是按照一个实施例表明接收队列状态数据库的示意图。
图9B是按照一个实施例表明传送队列状态数据库的示意图。
图9C是按照一个实施例表明系统状态数据库的示意图。
图10是按照一个实施例表明队列优选数据库的示意图。
图11A是按照一个实施例表明配置为从传送队列接收数据的接收队列的可用容量的示意图。
图11B是按照一个实施例表明配置为从传送队列接收数据的另一个接收队列的可用容量的示意图。
图11C是按照一个实施例表明与传送队列有关的反馈路径的可用容量的示意图。
图11D是按照一个实施例表明用于传输寻址到传送队列的流量控制信号的定时的示意图。
图12是按照一个实施例表明用于限定流量控制信号的方法的流程图。
具体实施方式
经由链路在信源实体处的多级队列和在目的地实体处的多级队列之间传输的数据流(例如,数据分组,诸如网际协议(IP)分组)可以基于与多个流量控制环路有关的流量控制信号来控制。例如,如果由于目的地实体相对于正在发送的数据量来说具有有限的缓存能力,目的地实体(或者其一部分)不能处理来自信源实体的数据流,目的地实体可以将与至少一个流量控制环路有关的流量控制信号发送给信源实体。该流量控制信号可以被配置为触发信源实体以中止传输数据流给目的地实体。在一些实施例中,在信源实体和目的地实体之间的链路可以是物理链路,并且可以与单个网络跳跃(network hop)有关(例如,不能从地形上限定的网络步骤,或者与一个媒体访问控制(MAC)设备和另一个MAC设备之间的链路有关的网络步骤)。在一些实施例中,该信源实体可以称为发射机,并且目的地实体可以称为接收机。
与链路有关的流量控制环路可以被限定为使得与流量控制环路有关的流量控制信号可以影响跨越该链路的多级队列的不同部分。例如,与第一流量控制环路有关的流量控制信号可触发中止来自第一级队列的数据传输和来自所有扇入(fan)第一级队列的第二级队列的数据传输。与不同的流量控制环路有关的流量控制信号可以触发中止来自少于所有扇入第一级队列的第二级队列的数据传输。在一些实施例中,在一个或多个第二级队列上接收并扇入第一级队列的数据可以来自于不同的(例如,单独的)网络设备。总之,与第二流量控制环路有关的流量控制信号可以触发与第一流量控制环路有关的流量控制信号所触发的不同的(例如,更加粒状的)数据流控制。
在一些实施例中,与一级或多级队列有关的流量控制模块可以被配置为限定与流量控制环路有关的流量控制信号,和/或可以被配置为基于与流量控制信号有关的一个或多个参数值来执行流量相关动作(例如,中止数据传输)。在一些实施例中,与流量控制信号有关的一个或多个参数值可以存储在目的地实体和/或信源实体上。该存储的参数值可用于限定另一个流量控制信号,和/或可用于修改和/或调度从信源实体到目的地实体的数据传输。在一些实施例中,包括与多级队列内的几个队列相关的参数值的流量控制分组可以经由流量控制信号将其从目的地实体传送给信源实体。在一些实施例中,流量控制信号可以被配置为表示至少一部分目的地实体可以用来接收数据。
图1是按照一个实施例表明多级流量可控队列的示意方框图。如图1所示,第一级队列110的发送侧和第二级队列120的发送侧包括在物理链路100的发送侧上的信源实体130中。第一级队列110的接收侧和第二级队列120的接收侧包括在物理链路100的接收侧上的目的地实体140中。该信源实体130和/或目的地实体140可以是任何类型的计算设备(例如,服务器、个人计算机、路由器、多级开关),其可以被配置为经由物理链路100接收和/或传送数据。在一些实施例中,信源实体130和/或目的地实体140可以与数据中心有关。结合图6,论述了在数据中心内与流量可控队列相关的更多的细节。
如图1所示,第一级队列110包括在物理链路100的发送侧上传送队列A1至A4(称为第一级传送队列134),和在物理链路100的接收侧上接收队列D1至D4(称为第一级接收队列144)。第二级队列120包括在物理链路100的发送侧上传送队列B1和B2(称为第二级传送132),和在物理链路100的接收端上接收队列C1和C2(称为第二级接收队列142)。经由物理链路100的数据流可以基于与信源实体130和目的地实体140之间的流量控制环路有关的流量控制信号来控制(例如,修改、中止)。例如,从物理链路100的发送侧上的信源实体130传送的数据可以在物理链路100的接收侧上的目的地实体140上接收。当目的地实体140不可用于经由物理链路100从信源实体130接收数据的时候,流量控制信号可以在目的地实体140上被限定和/或从目的地实体140发送到信源实体130。该流量控制信号可以被配置去触发信源实体130以修改从信源实体130到目的地实体140的数据流。
例如,如果接收队列D2不可用于处理从传送队列A1传送的数据,则目的地实体140可以被配置为将与流量控制环路有关的流量控制信号发送给信源实体130;该流量控制信号可以被配置去触发中止经由传输路径从传送队列A1到接收队列D2的数据传输,该传输路径包括至少一部分第二级队列120和物理链路100。在一些实施例中,接收队列D2可能是不可用的,例如,当接收队列D2太满以至于不能接收数据的时候。在一些实施例中,该接收队列D2可以响应于预先地从传送队列A1接收的数据,从可用的状态变化为不可用的状态(例如,拥塞状态)。在一些实施例中,传送队列A1可以称为流量控制信号的目标。可以基于与传送队列A1有关的队列标识符在流量控制信号内识别该传送队列A1。在一些实施例中,该流量控制信号可以称为反馈信号。
在这个实施例中,流量控制环路与物理链路100(称为物理链路控制环路)有关,流量控制环路与第一级队列110(称为第一级控制环路)有关,并且流量控制环路与第二级队列120(称为第二级控制环路)有关。特别地,该物理链路控制环路与包括物理链路100,并且排除第一级队列110以及第二级队列120的传输路径有关。经由物理链路100的数据流可以基于与物理链路控制环路有关的流量控制信号开启和关闭。
第一级控制环路可以基于来自第二级队列110内的至少一个传送队列134的数据传输和流量控制信号,基于第一级队列110内的至少一个接收队列144的可用性(例如,可用性的指示符)限定该流量控制信号。因此,第一级控制环路可以被认为是与第一级队列110有关。第一级控制环路可以与传输路径有关,该传输路径包括物理链路100、至少一部分第二级队列120和至少一部分第一级队列110。与第一级控制环路有关的流量控制信令可以触发控制来自与第一级队列110有关的传送队列134的数据流。
第二级控制环路可以与包括物理链路100,并且包括至少一部分第二级队列120,但是排除第一级队列110的传输路径有关。第二级控制环路可以基于来自第二级队列120内的至少一个传送队列132的数据传输和流量控制信号,基于第二级队列120内的至少一个接收队列142的的可用性(例如,可用性指示符)限定该流量控制信号。因此,第二级控制环路可以被认为是与第二级队列120有关。与第二级控制环路有关的流量控制信号可以触发控制来自与第二级队列120有关的传送队列132的数据流。
在这个实施例中,与队列120的第二级有关的该流量控制环路是基于优先级的流量控制环路。特别地,来自第二级传送队列132的每个传送队列与来自第二级接收队列142的接收队列成对;并且每个队列对与服务水平(也可以称为服务等级或者服务质量)有关。在这个实施例中,第二级传送队列B1和第二级传送队列C1限定队列对,并且与服务水平X有关。第二级传送队列B2和第二级传送队列C2限定队列对,并且与服务水平Y有关。在一些实施例中,不同类型的网络业务量可以与不同的服务水平(并且因此不同的优先级)有关。例如,存储业务量(例如,读和写业务量)、处理器间的通信、媒体信令、对话层信号等等,每个可以与至少一个服务水平有关。在一些实施例中,第二级控制环路可以基于例如电气与电子工程师协会(IEEE)802.1qbb协议,其限定基于优先级的流量控制策略。
在图1中示出的经由传输路径14传输的数据流可以使用至少一个控制环路控制。传输路径14包括第一级传送队列A2、第二级传送队列B1、物理链路100、第二级接收队列C1和第一级接收队列D3。但是,在传输路径14的一级中,基于与该级有关的流量控制环路,经由队列的数据流中的变化可以影响通过传输路径14的另一级的数据流。在一级上的流量控制可以影响在另一级上的数据流,因为在信源实体130内的队列(例如,传送队列132、传送队列134)和在目的地实体140内的队列(例如,接收队列142、接收队列144)被分级。换句话说,基于一个流量控制环路的流量控制可以对经由与不同的流量控制环路有关的单元的数据流有影响。
例如,经由传输路径14从第一级传送队列A1传输到第一级接收队列D3的数据流可以基于一个或多个控制环路,即第一级控制环路、第二级控制环路和/或物理链路控制环路被修改。可以触发中止数据流向第一级接收队列D3,因为第一级接收队列D3可能已经从可用的状态改变为不可用的状态(例如,拥塞状态)。
如果流向第一级接收队列D3的数据与服务水平X有关,则基于与第二级控制环路(其基于优先级的控制环路)有关的流量控制信令,可以中止经由第二级传送队列B1和第二级接收队列C1(其限定与服务水平X有关的队列对)的数据流。但是,中止经由与服务水平X有关的队列对的数据传输可导致中止扇入第二级传送队列B1的来自传送队列的数据传输。特别地,中止经由与服务水平X有关的队列对的数据传输不仅可以导致中止来自第一级传送队列A2的数据传输,而且还可以导致中止来自第一级传送队列A1的数据传输。换句话说,来自第一级传送队列A1的数据流间接地或对比地受到影响。在一些实施例中,在传送队列A1上接收的数据和在传送队列A2上接收的数据可以与相同的服务水平X有关,但是,在传送队列A1上接收的数据和在传送队列A2上接收的数据可以例如来自与不同的服务水平有关的不同的(例如,独立的)网络设备(未示出)。
流向第一级接收队列D3的数据还可以基于与第一级控制环路有关的流量控制信令通过具体地中止从第一级传送队列A2传输数据来中止。通过直接中止从第一级传送队列A2传输数据,可以不必中断来自第一级传送队列A1的数据传输。换句话说,可以无需中止来自诸如第一级传送队列A1的其它第一级传送队列的数据传输,就能基于与第一级控制环路有关的流量控制信号直接控制第一级传送队列A2的流量控制。
流向第一级接收队列D3的数据还可以基于与物理链路控制环路有关的流量控制信令通过中止经由物理链路10的数据传输来控制。但是,中止经由物理链路100的数据传输可能导致中止经由物理链路100的所有数据传输。
在物理链路100的发送侧上的队列可以称为传送队列136,并且在物理链路的接收侧上的队列可以称为接收队列146。在一些实施例中,该传送队列136还可以称为信源队列,并且该接收队列146可以称为目的地队列。虽然未示出,但是在一些实施例中,一个或多个传送队列136可以包括在与信源实体130有关的一个或多个接口卡中,并且一个或多个接收队列146可以包括在与目的地实体140有关的一个或多个接口卡中。
当信源实体130经由物理链路100传送数据的时候,信源实体130可以称为安置在物理链路100的发送侧上的发射机。目的地实体140可以被配置去接收数据,并且可以称为安置在物理链路100的接收侧上的接收机。虽然未示出,但是在一些实施例中,该信源实体130(和相关的单元(例如,传送队列136))可以被配置为起目的地实体(例如,接收机)的作用并且该目的地实体140(和相关的单元(例如,接收队列146))可以被配置为起信源实体(例如,发射机)的作用。另外,该物理链路100可以起双向链路的作用。
在一些实施例中,该物理链路100可以是有形的链路,诸如光链路(例如,光纤缆、塑料光纤缆)、电缆链路(例如,基于铜的线路)、双绞线链路(例如,5类电缆)等等。在一些实施例中,该物理链路100可以是无线链路。经由物理链路100的数据传输可以基于诸如以太网协议、无线协议等等的协议来限定。
在一些实施例中,第二级控制环路可以被认为是嵌套(例如,逻辑地嵌套)在第一级控制环路内,因为与第二级控制环路有关的第二级队列120被安置在第一级队列110(其与第一级控制环路有关)的内侧。类似地,该物理链路控制环路可以被认为是嵌套(例如,逻辑地嵌套)在第二级控制环路内。在一些实施例中,第二级控制环路可以称为内部控制环路,并且第一级控制环路可以称为外部控制环路。
图2是按照一个实施例表明多级流量可控队列的示意方框图。如图2所示,第一级队列210的发送侧和第二级队列220的发送侧包括在物理链路200的发送侧上所安排的信源实体230中。第一级队列210的接收侧和第二级队列220的接收侧包括在物理链路200的接收侧上所安排的目的地实体240中。在物理链路200的发送侧上的队列可以集体地称为传送队列236,并且在物理链路的接收侧上的队列可以集体地称为接收队列246。虽然未示出,但是在一些实施例中,该信源实体230可以被配置为起目的地实体的作用,并且目的地实体240可以被配置为起信源实体(例如,发射机)的作用。另外,该物理链路200可以起双向链路的作用。
如图2所示,信源实体230经由物理链路200与目的地实体240通信。信源实体230具有队列QP1,该队列配置为在经由物理链路200在传送数据之前缓存数据(必要时),并且目的地实体240具有队列QP2,该队列配置为在目的地实体240上分配数据之前缓存经由物理链路200接收的数据(必要时)。在一些实施例中,无需缓存队列QP1和队列QP2就能处理经由物理链路200的数据流。
包括在第一级队列210中的传送队列QA1至QAN可以都称为第一级传送队列,并且可以集体地称为传送队列234(或者称为队列234)。包括在第二级队列220中的传送队列QB1至QBM可以都称为第二级传送队列,并且可以集体地称为传送队列232(或者称为队列232)。包括在第一级队列210中的接收队列QD1至QDR可以都称为第一级接收队列,并且可以集体地称为接收队列244(或者称为队列244)。包括在第二级队列220中的接收队列QC1至QCM可以都称为第二级接收队列,并且可以集体地称为接收队列242(或者称为队列242)。
如图2所示,第二级队列220中的每个队列被安排在物理链路200和第一级队列210中的至少一个队列之间的传输路径内。例如,一部分传输路径可以由第一级接收队列QD4、第二级接收队列QC1和物理链路200限定。第二级接收队列QC1被安排在第一级接收队列QD4和物理链路200之间的传输路径内。
在这个实施例中,物理链路控制环路与物理链路200有关,第一级控制环路与第一级队列210有关,并且第二级控制环路与第二级队列220有关。在一些实施例中,第二级控制环路可以是基于优先级的控制环路。在一些实施例中,该物理链路控制环路可以包括物理链路200、队列QP1和队列QP2。
在信源实体230上的信源控制模块270和在目的地实体240上的目的地控制模块280之间可以限定和/或传送流量控制信号。在一些实施例中,该信源控制模块270可以称为信源流量控制模块,并且该目的地控制模块280可以称为目的地流量控制模块。例如,当在目的地实体240上的一个或多个接收队列246(例如,接收队列QD2)不可用于接收数据的时候,目的地控制模块280可以被配置去将流量控制信号发送给信源控制模块。该流量控制信号可以被配置为触发信源控制模块270,从而例如中止数据从一个或多个接收队列236流动到一个或多个接收队列246。
信源控制模块270可以在该数据被传送之前将队列标识符与传送队列236中的传送队列上排队的数据相关联。该队列标识符可以代表和/或可用于识别正在排队该数据的传送队列。例如,当数据分组在第一级传送队列QA4上排队的时候,唯一地识别第一级传送队列QA4的队列标识符可以附加在该数据分组中,或者包括在该数据分组内的字段(例如,头部部分、尾部部分、有效载荷部分)中。在一些实施例中,该队列标识符可以与信源控制模块270上的数据有关,或者由信源控制模块270触发。在一些实施例中,该队列标识符可以仅仅在数据被传送之前、或者与在已经从一个传送队列236传送该数据之后与数据有关。
该队列标识符可以与从物理链路200的发送侧传送到物理链路200的接收侧的数据有关,使得可以识别数据的来源(例如,该信源队列)。因此,流量控制信号可以被限定以基于该队列标识符中止一个或多个传送队列236的传输。例如,与第一级传送队列QAN有关的队列标识符可以包括在从第一级传送队列QAN传送到第一级接收队列QD3的数据分组中。在接收到该数据分组之后,如果第一级接收队列QD3不能从第一级传送队列QAN接收另一个数据分组,则基于与第一级传送队列QAN有关的队列标识符限定流量控制信号,该流量控制信号请求第一级传送队列QAN中止传输附加的数据分组到第一级接收队列QD3。该队列标识符可以由目的地控制模块280从数据分组中解析,并且由目的地控制模块280使用以限定该流量控制信号。
在一些实施例中,响应于第一级接收队列QDR从可用的状态改变到不可用的状态,可以中止数据从多个传送队列236(例如,第一级传送队列234)到第一级接收队列QDR的数据传输。每个传送队列236可以基于其相应的队列标识符在流量控制信号内得以识别。
在一些实施例中,一个或多个传送队列236和/或一个或多个接收队列246可以是虚拟的队列(例如,逻辑地限定的队列组)。因此,队列标识符可以与虚拟的队列有关(例如,可以代表)。在一些实施例中,队列标识符可以与限定虚拟队列的一组队列中的队列有关。在一些实施例中,与物理链路200有关的一组队列标识符中的每个队列标识符可以是唯一的。例如,每个传送队列236与物理链路200(例如,与中继段有关)有关,其可以与唯一的队列标识符有关。
在一些实施例中,该信源控制模块270可以被配置为将队列标识符仅仅与传送队列236的指定子集和/或仅仅与在一个传送队列236上排队的数据子集相关。例如,如果无需队列标识符就将数据从第一级传送队列QA2传送到第一级接收队列QD1,则可能不能定义配置为请求中止来自第一级传送队列QA2的数据传输的流量控制信号,因为可能不知道数据的来源。因此,当从传送队列传送该数据的时候,可以通过将(例如,省略)队列标识符不与数据相关来从流量控制除去传送队列236中的传送队列。
在一些实施例中,可以基于满足的条件限定在目的地实体240上的一个或多个接收队列246的不可用性。该条件可以与队列的存储限制、队列访问速率、数据进队列的流速等等有关。例如,响应于一个或多个接收队列246的状态可以在目的地控制模块280上限定流量控制信号,例如该接收队列是基于超出的阈值存储限制从可用的状态改变到不可用的状态(例如,拥塞状态)的第二级接收队列QC2。当处于不可用的状态之中的时候,第二级接收队列QC2不可用于接收数据,因为例如第二级接收队列QC2被认为太满(如由超出的阈值存储限制表示的)。在一些实施例中,当禁止的时候,一个或多个接收队列246可以处于不可用的状态之中。在一些实施例中,当该接收队列不可用于接收数据的时候,可以基于中止从接收队列246到接收队列数据传输的请求限定该流量控制信号。在一些实施例中,响应于接收队列246的特定子集(例如,在指定级内的接收队列)处于拥塞状态之中,一个或多个接收队列246的状态可以(由目的地控制模块280)从可用的状态改变到拥塞状态。
在一些实施例中,可以在目的地控制模块280上限定流量控制信号,以表示接收队列246中的一个已经从不可用的状态改变到可用的状态。例如,最初,目的地控制模块280可以被配置为响应于第一级接收队列QD3从可用的状态改变到不可用的状态,限定和发送第一流量控制信号给信源控制模块270。第一级接收队列QD3可以响应于从第一级传送队列QA2发送的数据而从可用的状态改变到不可用的状态。因此,第一流量控制信号的目标可以是第一级传送队列QA2(如基于队列标识符表示的)。当第一级接收队列QD3从不可用的状态改变回到可用的状态的时候,目的地控制模块280可以被配置为限定和发送表示从不可用的状态改变回到可用的状态的第二流量控制信号给信源控制模块270。在一些实施例中,该信源控制模块270可以被配置为响应于第二流量控制信号,触发从一个或多个传送队列236到第一级接收队列QD3的数据传输。
在一些实施例中,流量控制信号可以具有一个或多个参数值,其可以由信源控制模块270使用,以修改来自传送队列236中的一个(在流量控制信号内由队列标识符识别)的传输。例如,流量控制信号可以包括一个参数值,其可以触发信源控制模块270在指定的一段时间(例如,10毫秒(ms))中止来自传送队列236中的一个的传输。换句话说,该流量控制信号可以包括中止时间段参数值。在一些实施例中,该中止时间段可以是不确定的。在一些实施例中,该流量控制信号可以限定请求,从而以指定的速率(例如,每秒指定的帧数、每秒指定的字节数)从传送队列236中的一个或多个传送数据。
在一些实施例中,可以基于流量控制算法限定流量控制信号(例如,在流量控制信号内的中止时间段)。可以基于接收队列246(例如,第一级接收队列QD4)中的接收队列不可用的时间段来限定该中止时间段。在一些实施例中,可以基于第一级接收队列244中的多个不可用来限定该中止时间段。例如,在一些实施例中,当多于或者少于指定数目的第一级接收队列244处于拥塞状态之中的时候,可以增加该中止时间段。在一些实施例中,可以在目的地控制模块280上进行这种类型的确定。该接收队列不可用的时间段可以是目的地控制模块280基于例如来自接收队列的数据流速(例如,历史流量速率、早先的流速)计算的预计(例如,预测的)时间段。
在一些实施例中,该信源控制模块270可以拒绝或者改变请求以修改来自传送队列236中的一个或多个的数据流。例如,在一些实施例中,该信源控制模块270可以被配置为减少或者增加中止时间段。在一些实施例中,不是响应于流量控制信号中止数据传输,而是该信源控制模块270可以被配置为修改与传输队列236之一有关的传输路径。例如,如果第一级传送队列QA2已经接收到基于第一级接收队列QD2的状态中的变化中止传输的请求的话,则该信源控制模块270可以被配置为触发从第一级传送队列QA2到例如第一级接收队列QD3的数据传输,而不是遵循中止传输的请求。
如图2所示,在第二级队列220内的队列扇入或者扇出物理链路200。例如,在物理链路200的发送侧上的传送队列232(即,队列QB1至QBM)扇入物理链路200的发送侧上的队列QP1。因此,在任何一个传送队列232上排队的数据可以传送给物理链路200的队列QP1。在物理链路200的接收侧上,从物理链路200经由队列QP2传送的数据可以广播给接收队列242(即,队列QC1至QCM)。
此外,如图2所示,在第一级队列210内的传送队列234扇入第二级队列220内的传送队列232。例如,在第一级传送队列QA1、QA4和QAN-2中的任一个上排队的数据可以传送给第二级传送队列QB2。在物理链路200的接收侧上,例如从第二级接收队列QCM传送的数据可以广播给第一级接收队列QDR-1和QDR
因为许多流量控制环路(例如,第一控制环路)与不同的扇入和扇出体系结构有关,所以该流量控制环路可以对经由物理链路200的数据流量具有各种各样的影响。例如,当基于第二级控制环路中止来自第二级传送队列QB1的数据传输的时候,也中止从第一级传送队列QA1、QA2、QA3和QAN-1经由第二级传送队列QB1到接收队列246中的一个或多个的数据传输。在这种情况下,当中止来自下游队列(例如,第二级传送队列QB1)的传输时,中止来自一个或多个上游队列(例如,第一级传送队列QA1)的数据传输。相比之下,如果基于第一级控制环路中止从第一级传送队列QA1沿着包括至少下游第二级传送队列QB1的传输路径传输数据,则无需完全地中止来自第二级传送队列QB1的数据传输,就能降低来自第二级传送队列QB1的数据流的速率;例如,第一级传送队列QA1仍然能够经由第二级传送队列QB1传送数据。
在一些实施例中,扇入和扇出体系结构可以不同于在图2中示出的那些。例如,在一些实施例中,在第一级队列210内的一些队列可以被配置去扇入该物理链路200,绕过第二级队列220。
与传送队列236有关的流量控制信令是由信源控制模块270处理的,并且与接收队列246有关的流量控制信令是由目的地控制模块280处理的。虽然未示出,但在一些实施例中,流量控制信令可以由一个或多个控制模块(或者控制子模块)(其可以单独的和/或集成为单个控制模块)处理。例如,与第一级接收队列244有关的流量控制信令可以由控制模块处理,该控制模块与配置为处理与第二级接收队列242有关的流量控制信令的控制模块分离。同样地,与第一级传送队列234有关的流量控制信令可以由与配置为处理与第二级传送队列232有关的流量控制信令的控制模块分离的控制模块处理。在一些实施例中,该信源控制模块270和/或目的地控制模块280的一个或多个部分可以是基于硬件的模块(例如,数字信号处理器(DSP)、现场可编程门阵列(FPGA)),和/或基于软件的模块(例如,计算机代码的模块、一组处理器可读的命令,其可以在处理器上执行)。
图3是按照一个实施例表明配置为限定与多个接收队列有关的流量控制信号28的目的地控制模块350的示意方框图。多级队列包括第一级队列310和第二级队列320。如图3所示,信源控制模块360与第一级队列310的发送侧有关,并且目的地控制模块350与第一级队列310的接收侧有关。在物理链路300的发送侧上的队列可以集体地称为传送队列370。在物理链路300的接收侧上的队列可以集体地称为接收队列380。
该目的地控制模块350被配置为响应于第一级队列310内的一个或多个接收队列不可用于接收来自第一级队列310上的单个信源队列的数据,而将流量控制信号28发送给信源控制模块360。该信源控制模块360可以被配置为基于该流量控制信号28,中止从第一级队列310上的信源队列到第一级队列310上的多个接收队列的数据传输。
可以由目的地控制模块280基于与第一级队列310内的每个不可用的接收队列有关的信息限定该流量控制信号28。该目的地控制模块350可以被配置去采集与不可用的接收队列有关的信息,并且可以被配置去限定流量控制信号28,使得不发送潜在地冲突的流量控制信号(未示出)给第一级队列310上的单个信源队列。在一些实施例中,基于信息采集而限定的流量控制信号28可以称为聚集的流量控制信号。
具体地,在这个例子中,该目的地控制模块350被配置为响应于第一级队列310的接收侧上的两个接收队列,即接收342和接收队列346,不可用于从第一级队列310的发送侧上的传送队列312接收数据来限定流量控制信号28。在这个实施例中,响应于分别经由传输路径22和传输路径24从传送队列312发送的数据分组,接收队列342和接收队列346被从可用的状态改变到不可用的状态。如图3所示,传输路径22包括传送队列312,在第二级队列320内的传送队列322,物理链路300,在第二级队列320内的接收队列332和接收队列342。传输路径24包括传送队列312、传送队列322、物理链路300、接收队列332和接收队列346。
在一些实施例中,流量控制算法可用于基于与接收队列342的不可用性相关的信息,和/或与接收队列346的不可用性相关的信息限定流量控制信号28。例如,如果目的地控制模块350确定接收队列342和接收队列346对于不同的时间段将是不可用的,则目的地控制模块350可以被配置为基于不同的时间段限定流量控制信号28。例如,目的地控制模块350可以经由流量控制信号28请求在一段时间内中止来自传送队列312的数据传输,这段时间是基于不同的时间段(例如,时间段等于不同的时间段的平均值,时间段等于不同的时间段中的较大值)来计算。在一些实施例中,可以基于来自第一级队列310的接收侧的专用中止请求(例如,与接收队列342有关的中止请求和与接收队列346有关中止请求)限定该流量控制信号28。
在一些实施例中,可以基于最大或者最小的可容许时间段限定该流量控制信号28。在一些实施例中,可以基于例如来自传送队列312的数据的聚集流速计算该流量控制信号28。例如,可以基于来自传送队列312的数据的聚集流速依比例决定该中止时间段。在一些实施例中,例如,如果来自传送队列312的数据的流速大于一个阈值,该中止时间段可以提高,并且如果来自传送队列312的数据的流速低于一个阈值,该中止时间段可以降低。
在一些实施例中,该流控制算法可以被配置为在限定和/或发送流量控制信号28之前等待指定的一段时间。该等待时间段可以被限定,使得与传送队列312相关的多个中止请求可用于限定该流量控制信号28,可以在等待时间段内的不同的时期接收该多个中止请求。在一些实施例中,可以响应于与接收的传送队列312相关的至少一个中止请求触发该等待时间段。
在一些实施例中,可以由流量控制算法基于与第一级队列310内的每个接收队列有关的优先值限定该流量控制信号28。例如,如果接收队列342具有高于与接收队列346有关的优先值的优先值,则目的地控制模块350可以被配置去基于与接收队列342有关而与不是接收队列346有关的信息限定流量控制信号28。例如,可以基于与接收队列342有关的中止时间段,而不是与接收队列346有关的中止时间段限定该流量控制信号28,因为接收队列342可以具有比与接收队列346有关的优先值更高的优先值。
在一些实施例中,可以由流量控制算法基于与第一级队列310内的每个接收队列有关的属性限定该流量控制信号28。例如,可以基于指定类型的队列(例如,后进先出(LIFO)队列,先进先出(FIFO)队列)的接收队列342和/或接收队列346限定该流量控制信号28。在一些实施例中,可以基于配置为接收指定类型的数据(例如,控制数据/信号队列、介质数据/信号队列)的接收队列342和/或接收队列346限定该流量控制信号28。
虽然未示出,但与某级队列(例如,第一级队列310)有关的一个或多个控制模块可以配置为发送信息给不同的控制模块,在这里该信息可用于限定流量控制信号。该不同的控制模块可以与不同级的队列有关。例如,可以在目的地控制模块350上限定与接收队列342有关的中止请求和与接收队列346有关的中止请求。该中止请求可以发送给与第二级队列320的接收侧有关的目的地控制模块(未示出)。可以在与第二级队列320的接收侧有关的目的地控制模块上基于中止请求和基于流量控制算法限定流量控制信号(未示出)。
可以基于与第一级队列310有关的流量控制环路(例如,第一级控制环路)限定该流量控制信号28。可以基于与第二级队列320有关的流量控制环路和/或与物理链路300有关的流量控制环路限定一个或多个流量控制信号(未示出)还。
与第一级队列310(除传送队列312以外)内的传送队列有关的数据传输大体上不受流量控制信号28限制,因为到接收队列342和346的数据流是基于第一级流量控制环路而得以控制的。例如,即使中止来自传送队列312的数据传输,但传送队列314可以继续经由传送队列322发送数据。例如,传送队列314可以被配置为即使已经中止经由传送队列322来自传送队列312的数据传输,但仍经由包括传送队列322的传输路径26发送数据到接收队列348。在一些实施例中,传送队列322可以被配置为即使基于流量控制信号28已经中止经由传输路径22来自队列312的数据传输,但仍继续从例如传送队列316发送数据给接收队列342。
如果取而代之通过基于与第二级控制环路有关的流量控制信号(未示出)控制经由传送队列322的数据流,从而中止去往接收队列342和346的数据传输,则经由传送队列322来自传送队列314和传送队列316的数据传输也将被限制(除了来自传送队列312的数据传输之外)。可以中止来自传送队列322的数据传输,因为其与指定的服务水平有关,并且例如在接收队列342和346上造成拥塞的数据可以与指定的服务水平有关。
在流量控制信号28内限定的一个或多个参数值可以存储在目的地控制模块350的存储器352上。在一些实施例中,在参数值已经被限定之后,和/或当该流量控制信号28被发送给信源控制模块360的时候,该参数值可以存储在目的地控制模块350的存储器352上。在流量控制信号28内限定的参数值可用于跟踪例如传送队列312的状态。例如,在存储器352内的条目可以表示该传送队列312是处于中止状态(例如,非传送状态)之中。可以基于在流量控制信号28内限定的中止时间段参数值限定该项目。当该中止时间段已经期满的时候,更新该项目以表示传送队列312的状态已经转变为例如激活状态(例如,传送状态)。虽然未示出,但在一些实施例中,该参数值可以存储在目的地控制模块350外面的存储器(例如,远程存储器)上。
在一些实施例中,存储在目的地控制模块350的存储器352上的参数值(例如,基于参数值限定的状态信息)可以由目的地控制模块350使用,以确定是否应限定附加流量控制信号(未示出)。在一些实施例中,该参数值可以由目的地控制模块350使用以限定一个或多个附加流量控制信号。
例如,如果响应于从传送队列312接收的第一数据分组,接收队列342从可用的状态改变为不可用的状态(例如,拥塞状态),则可以经由流量控制信号28发送中止来自传送队列312数据传输的请求。基于队列标识符,该流量控制信号28可以表示传送队列312是请求的目标,并且可以指定中止时间段。当发送该流量控制信号28给信源控制模块360的时候,与传送队列312有关的该中止时间段和队列标识符可以存储在目的地控制模块350的存储器352中。在发送流量控制信号28之后,响应于从传送队列312(传输路径没有在图3中示出)接收的第二数据分组,接收队列344从可用的状态改变为拥塞状态。在基于流量控制信号28中止来自传送队列312的数据传输之前,可以从传送队列312发送第二数据分组。该目的地控制模块350可以访问存储在存储器352中的信息,并且可以响应于与接收队列344有关的状态中的变化,确定不应当限定以传送队列312为目标的附加流量控制信号,并且发送给信源控制模块360,因为流量控制信号28已经被发送。
在一些实施例中,该信源控制模块360可以被配置为基于最近的流量控制信号参数值中止来自传送队列312的传输。例如,在已经将目标是传送队列312的流量控制信号28发送给信源控制模块360之后,可以在信源控制模块360上接收到目标是传送队列312的稍后的流量控制信号(未示出)。该信源控制模块360可以被配置为实现与稍后的流量控制信号有关的一个或多个参数值,而不是与流量控制信号28有关的参数值。在一些实施例中,稍后的流量控制信号可以触发该传送队列312在比流量控制信号28中表示的时间更长或者更短的一段时间内保持中止状态。
在一些实施例中,当与该参数值有关的优先值高于(或者低于)与一个或多个与流量控制信号28有关的参数值有关的优先值的时候,该信源控制模块360可以可选地执行与稍后的流量控制信号有关的一个或多个参数值。在一些实施例中,可以在目的地控制模块350上限定每个优先值,并且可以基于与接收队列380中的一个或多个有关的优先值来限定每个优先值。
在一些实施例中,可以响应于来自不可用的接收队列380的同一个接收队列限定流量控制信号28和稍后的流量控制信号(这两个都是以传送队列312为目标)。例如,稍后的流量控制信号可以包括更新的参数值,目的地控制模块350基于在比之前计算的时间更久的时间段内保持不可用的状态的接收队列342限定该参数值。在一些实施例中,可以响应于改变状态(例如,从可用的状态改变到不可用的状态)的接收队列380中的一个来限定目标是传送队列312的流量控制信号28,并且可以响应于改变状态(例如,从可用的状态改变到不可用的状态)的接收队列380中的另一个来限定目标是传送队列312的稍后的流量控制信号。
在一些实施例中,可以在目的地控制模块350限定多个流量控制信号,以中止从来自第一级队列310中的多个传送队列的传输。在一些实施例中,多个传送队列可以传输数据给单个接收队列,诸如接收队列344。在一些实施例中,来自第一级队列310中的多个传送队列的流量控制信号的历史记录可以存储在目的地控制模块350的存储器352中。在一些实施例中,可以基于流量控制信号的历史记录计算与单个接收队列有关的稍后的流量控制信号。
在一些实施例中,与多个传送队列有关的中止时间段可以被分组和包括在流量控制分组中。例如,与传送队列312有关的中止时间段和与传送队列314有关的中止时间段可以包括在流量控制分组(也可以称为流量控制分组)中。结合图4描述了与流量控制分组相关的更多的细节。
图4是按照一个实施例表明流量控制分组的示意图。该流量控制分组包括包头410、包尾420和有效载荷430,有效载荷430包括用于由队列标识符(ID)(在列414中示出)代表的几个传送队列的中止时间段参数值(在列412中示出)。如图4所示,由队列ID1至V(即,Queue ID1至Queue IDv)代表的传送队列分别是与中止时间段参数值1至V(即,中止时间Period1至中止时间Periodv)有关。该中止时间段参数值414表示应中止(例如,禁止)由队列ID412代表的传送队列传输数据的时间段。
在一些实施例中,例如,可以在诸如在图3中示出的目的地控制模块350这样的目的地控制模块上限定该流量控制分组。在一些实施例中,该目的地控制模块可以被配置为以常规的时间间隔限定流量控制分组。例如,该目的地控制模块可以被配置为每隔10毫秒限定流量控制分组。在一些实施例中,该目的地控制模块可以被配置为当已经计算出中止时间段参数值的时候,和/或当已经计算出指定数目的中止时间段参数值的时候,随机地限定流量控制分组。在一些实施例中,例如,基于一个或多个参数值和/或由目的地控制模块访问的状态信息,该目的地控制模块可以确定不应限定和/或发送至少一部分流量控制分组。
虽然未示出,但在一些实施例中,多个队列ID可以与单个中止时间段参数值有关。在一些实施例中,至少一个队列ID可以与除中止时间段参数值以外的参数值有关。例如,队列ID可以与流速参数值有关。该流速参数值可以表示传送队列(由队列ID代表的)将要发送数据的流速(例如最大流速)。在一些实施例中,该流量控制分组可以具有配置为表示特定的接收队列是否可以用于接收数据的一个或多个字段。
可以经由流量控制信号(诸如,在图3中示出的流量控制信号28)从目的地控制模块传送该流量控制分组到信源控制模块(诸如,在图3中示出的信源控制模块360)。在一些实施例中,可以基于第2层(例如,开放系统互连(OSI)模型的第2层)协议限定该流量控制分组。换句话说,可以在网络系统的第2层内限定和使用该流量控制分组。在一些实施例中,可以在与第2层(例如,MAC设备)有关的设备之间传送该流量控制分组。
回来参考图3,与该流量控制信号28有关的一个或多个参数值(例如,基于参数值限定的状态信息)可以存储在信源控制模块360的存储器362中。在一些实施例中,当在信源控制模块360上接收到该流量控制信号28的时候,该参数值可以存储在信源控制模块360的存储器362上。在流量控制信号28内限定的参数值可用于跟踪接收队列380中的一个或多个(例如,接收342)的状态。例如,在存储器362内的条目可以表示接收队列342不可用于接收数据。可以基于在流量控制信号28内限定并且与接收队列342的标识符(例如,队列标识符)有关的中止时间段参数值限定该项目。当该中止时间段已经期满的时候,更新该项目以表示接收队列342的状态已经转变为例如激活状态。虽然未示出,但在一些实施例中,该参数值可以存储在信源控制模块360外面的存储器(例如,远程存储器)上。
在一些实施例中,存储在信源控制模块360的存储器362上的参数值(和/或状态信息)可以由信源控制模块360使用,以确定是否应当将数据传送给接收队列380中的一个或多个。例如,该信源控制模块360可以被配置为基于与接收队列344和接收队列342相关的状态信息,将数据从传送队列316传送到接收队列344,而不是接收队列342。
在一些实施例中,该信源控制模块360可以分析数据传输模式,以确定是否应当将数据从一个或多个信源队列370传送到一个或多个接收队列380。例如,该信源控制模块360可以基于存储在信源控制模块360的存储器362上的参数值确定传送队列314正在给接收队列346发送相对较高容量的数据。基于这个确定,该信源控制模块360可以触发队列316而不是接收队列346去发送数据给接收队列348,因为接收队列346正在从传送队列314接收很高数量的数据。通过分析与传送队列370有关的传输模式,大体上可以避免在接收队列380中的一个或多个上拥塞的发生。
在一些实施例中,该信源控制模块360可以分析存储在信源控制模块360的存储器362上的参数值(和/或状态信息),以确定是否应当将数据传送给接收队列380中的一个或多个。通过分析存储的参数值(和/或状态信息),大体上可以避免在传送队列380中的一个或多个上发生拥塞。例如,基于比较(例如,是更好,是更糟)接收队列342的历史可用性和接收队列340的历史的可用性,信源控制模块360可以触发传送数据给接收队列340,而不是接收队列342。在一些实施例中,例如,基于在数据突发类型方面比较接收队列344的历史表现和接收队列342的历史表现,信源控制模块360可以传送数据给接收队列342,而不是接收队列344。在一些实施例中,与接收队列380中的一个或多个相关的参数值的分析可以基于特定的时间窗、特定类型的网络交易(例如,处理器间通信)、特定的服务水平等等。
在一些实施例中,该目的地控制模块350可以发送有关接收队列380的状态信息(例如,当前状态信息),该信息可以由信源控制模块360使用,以确定是否应当从信源队列370中的一个或多个传送数据。例如,该信源控制模块360可以触发队列314去发送数据给队列344,而不是队列346,因为正如由目的地控制模块350所表示的那样,队列346具有比队列344更多的可用容量。在一些实施例中,当前状态信息、传输模式分析和历史数据分析的任何组合可用于大体上防止,或者降低接收队列380中的一个或多个发生拥塞的可能性。
在一些实施例中,可以经由带外传输路径从目的地控制模块350发送流量控制信号28到信源控制模块360。例如,可以经由专用于与流量控制信令相关的通信的链路发送流量控制信号28。在一些实施例中,可以经由与第二级队列320有关的队列,与第一级队列310有关的队列,和/或物理链路300传送该流量控制信号28。
图5是按照一个实施例表明用于限定流量控制分组的方法的流程图。如图5所示,在500上,在第一级队列内的传送队列上排队的数据与代表传送队列的队列标识符有关。在一些实施例中,该队列标识符可以附加在该数据上,或者包括在与数据有关的一部分字段中。
在510上,在传送队列上排队的数据经由第二级队列和物理链路被发送给第一级队列内的接收队列。换句话说,经由传输路径从传送队列发送该数据到接收队列,该传输路径不仅包括传送队列和接收队列,而且包括第二级队列中的至少一个队列和物理链路。第二级队列可以安排在第一级队列和物理链路之间。第一级队列的发送侧可以与数据中心的交换中心有关,并且第一级队列的接收侧可以与在数据中心边缘上的网络实体有关,反之亦然。第一级队列可以与第一级控制环路有关,并且第二级队列可以与第二级控制环路有关。在一些实施例中,该物理链路可以与物理链路控制环路有关。
在520上,响应于在接收队列上正在接收的数据而修改该接收队列的状态。在一些实施例中,可以响应于在接收队列上接收的数据将该接收队列的状态从可用的状态改变到拥塞状态。在一些实施例中,响应于正处于拥塞状态的级内的多个接收队列(或者,指定的接收队列的子集),将该接收队列的状态(由目的地控制模块)从可用的状态改变到拥塞状态。
在530上,基于接收队列的状态和基于该队列标识符,在中止时间段内限定中止来自传送队列的数据传输的请求。中止传输的该请求可以包括队列标识符,使得该传送队列可以被识别为中止请求的目标。在一些实施例中,可以基于转变为不活动状态或者禁止状态的接收队列的状态限定中止传输的请求。在一些实施例中,可以基于来自接收队列的数据流速来限定该中止时间段。
在540上,在与第二级队列的接收侧有关的目的地控制模块上修改与请求有关的中止时间段。可以基于中止来自传送队列的数据传输的多个请求来修改传送队列的中止时间段。在一些实施例中,基于中止来自传送队列的数据传输的多个请求,在配置为限定传送队列的中止时间段参数值的一部分目的地控制模块上修改该中止时间段。在一些实施例中,该目的地控制模块可以与接收侧的可能不包括第二级队列的不同的部分有关。在一些实施例中,可以拒绝该中止请求。
在550上,基于请求限定包括代表中止时间段的参数值的流量控制分组。在一些实施例中,该流量控制分组可以包括与多个队列标识符有关的中止周期参数值。
在560上,将该流量控制分组发送给与传送队列有关的信源控制模块。在一些实施例中,可以在预定时间,或者在与第二级队列的接收侧有关的信源控制模块处指定的时间上发送该流量控制分组。在一些实施例中,可以经由流量控制信号发送和/或经由带外传输路径发送该流量控制分组。
在560上,基于包括在流量控制分组中的中止时间段参数值中止来自第一级队列内的传送队列的数据传输。在一些实施例中,在信源控制模块上接收到该流量控制分组之后,可以用在信源控制模块上接收的流量控制信号(例如,不同的流量控制分组)减小该中止时间段。
图6是按照一个实施例表明数据中心600的示意方框图。该数据中心600包括网络实体610、网络实体620和网络实体630(集体地称为网络实体680),其分别经由物理链路690中的至少一个与交换核心602通信。例如,网络实体630可以被配置为经由物理链路632从交换核心602传送数据和/或接收数据。当网络实体630经由物理链路632传送数据的时候,网络实体630可以被称为安排在物理链路632的发送侧上的发射机。交换核心602可以被配置为接收数据,并且可以被称为安排在物理链路632的接收侧上的接收机。相反地,交换核心602还可以被配置作为发射机传送数据,并且网络实体630可以被配置作为接收机接收该数据。
经由每个物理链路690(物理链路612、物理链路622和/或物理链路632)的数据流可以基于一个以上的流量控制环路,诸如与图1到图5结合描述的那些来得以控制。该流量控制环路可以与物理链路690和/或部分数据中心600内的多级队列有关。例如,流量控制环路可以与物理链路622有关,并且至少一个流量控制环路可以与跨越物理链路622的若干级队列中的每一级有关。
在一些实施例中,每级队列可以在物理链路622的一侧(例如,发送侧)上具有队列的第一部分,和在物理链路622的另一例(例如,接收侧)上具有队列的第二部分。例如,虽然未示出,但在某一级队列内的第一队列可以包括在物理链路612的一侧上的网络实体610中,并且在该级队列内的第二队列可以包括在物理链路612的另一侧上的交换核心602中。流量控制环路可以与在包括在网络实体610中的该级队列内的第一队列有关,和在包括在交换核心602中的该级队列内的第二队列有关。
例如,如果第一队列(接收队列)不能处理从第二队列(传送队列)传送的数据,那么与第一队列有关的流量控制模块可以将配置为触发中止来自第二队列的数据传输的流量控制信号发送给第一队列。可以基于与第二队列有关的队列标识符在流量控制信号内识别第二队列。
如图6所示,网络实体610、网络实体620和网络实体630在数据中心600的边缘,并且分别地起到网络614、网络624和网络634网关的作用。网络614、网络624和/或网络634例如可以是虚拟网络、局域网(LAN)和/或广域网(WAN),并且可以包括一个或多个有线和/或无线的环节。
该数据中心600的交换核心602可以是具有多个级(例如,进入级、输出级、中间级)的转换结构,可以经由这些级路由数据。在一些实施例中,可以基于Clos网络体系结构(例如,不堵塞Clos网络、狭义不堵塞Clos网络、Benes网络)限定该交换核心602。在一些实施例中,网络体系结构,举例来说,诸如Clos网络和/或Benes网络是可重构的(例如,可重新排列的)。在一些实施例中,可以通过一个或多个多级开关(未示出)限定该交换核心602,每个开关包括一个或多个交换结构。在一些实施例中,该开关核心602可以被配置为起单个逻辑实体的作用。
图7是按照一个实施例表明用于将流量控制信号发送给两个不同的队列级的方法的流程图。如图7所示,在700上,当接收队列处于拥塞状态的时候,将第一流量控制信号发送给第一级传送队列。在一些实施例中,可以响应于接收队列处于拥塞状态的指示符发送第一流量控制信号。在一些实施例中,该指示符可以被称为拥塞指示符。在一些实施例中,响应于从第一级传送队列发送的一部分数据,将该接收队列的状态从可用的状态改变到拥塞状态。在一些实施例中,第一流量控制信号可以与第一流量控制环路有关。
在710上,当接收队列处于拥塞状态的时候,将第二流量控制信号发送给第二级传送队列。在一些实施例中,可以响应于接收队列处于拥塞状态的指示符发送第二流量控制信号。换句话说,触发第二流量控制信号发送的指示符可以与触发第一流量控制信号发送的指示符相同。在一些实施例中,可以由不同的指示符触发发送第一流量控制信号和发送第二流量控制信号。在一些实施例中,可以响应于从第二级传送队列发送的一部分数据,将该接收队列的状态从可用的状态改变到拥塞状态。在一些实施例中,第二流量控制信号可以与第二流量控制环路有关,第二流量控制环路不同于与第一流量控制信号有关的第一流量控制环路。
图8是按照一个实施例表明配置为处理与多级队列系统802有关的流量控制信号的控制模块的示意图。具体地,目的地控制模块850与多级队列系统802的接收侧有关,并且信源控制模块840与多级队列系统802的发送侧有关。如图8所示,多级队列系统802包括第一级队列810和第二级队列820。第一级队列810包括物理链路800的发送侧上的传送队列FA1至FAN(称为第一级传送队列834),和物理链路800的接收侧上的接收队列FD1至FDp(称为第一级接收队列844)。第二级队列820包括物理链路800的发送侧上的传送队列FB1和FBM(称为第二级传送队列832),和物理链路800的接收侧上的接收队列FC1和FCo(称为第二级接收队列842)。
当一个或多个接收队列不可用于处理从传送队列传送的该数据(例如,数据分组、数据流)的时候,该目的地控制模块850可以被配置为限定一个或多个流量控制信号,该一个或多个流量控制信号配置为触发修改来自一个或多个传送队列的数据流。该目的地控制模块850可以被配置为基于存储在状态数据库856中的状态值(例如,状态值的组合)限定流量控制信号。具体地,可以基于存储在状态数据库856中的状态值限定该流量控制信号的参数值(也可以称为命令)。例如,可以基于存储在状态数据库856中的一个或多个状态值在流量控制信号内限定应当修改来自传送队列的数据流量的特定方式。在一些实施例中,可以配置该目的地控制模块850,使得基于存储在状态数据库856中的一个或多个状态值,不发送流量控制信号(例如,没有限定流量控制信号,限定用于流量控制信号的参数值,但是不发送)。
该目的地控制模块850可以被配置为基于包括在状态数据库856中的状态值限定流量控制信号,使得可以以特定的方式控制来自多级队列系统802内的不同水平的传送队列的数据流量。例如,该目的地控制模块850可以被配置为限定以第一级队列810(其逻辑地嵌套在第二级队列820的外面)中的特定传送队列为目标的流量控制信号。第一级队列810中的特定传送队列可以与特定的虚拟机或者网络设备有关。可以基于例如与特定的传送队列有关的状态值,和/或与从特定的传送队列接收数据的接收队列有关的状态值限定以特定传送队列为目标的该流量控制信号,使得以特定的方式为特定的传送队列实现流量控制。在上述的例子中,可以在不影响来自第一级队列810中的其它的传送队列并扇入例如第二级队列820中的传送队列的数据流的情况下,流量控制信号可触发中止来自第一级队列810的特定传送队列的数据传输。总之,以第一级队列810中的特定传送队列为目标的该流量控制信号可以触发比当该流量控制信号目标是第二级队列820中的一个或多个传送队列时可以实现的更多粒状数据流量控制。
如图8所示,该状态数据库856可以存储在目的地控制模块850的存储器854中。在一些实施例中,该状态数据库856(或者状态数据库856的一部分)可以存储在存储器(未示出)中,该存储器不是目的地控制模块850本地的(例如,远程存储器)。
在一些实施例中,由目的地控制模块850基于存储在状态数据库856中的状态值限定的流量控制信号可以包括速率值和/或中止时间值(还可以称为中止时间段参数值)。该中止时间值可以限定中止时间段,在此期间传送队列应当中止数据传输。在一些实施例中,该中止时间值可以指定例如几百毫秒的中止时间段。该速率值可以限定传送队列应当从传送队列传送数据的速率(例如,位速率、字节速率、平均位速率)。在一些实施例中,该速率值可以指定例如数百千位/秒的速率。
例如,如果接收队列FDp不可用于处理在传送队列FA1上排队的数据(例如,数据分组流),并且寻址到接收队列FDp,该目的地控制模块850可以被配置为将与流量控制环路有关的流量控制信号发送给信源控制模块830,该流量控制信号可以被配置为基于包括在流量控制信号中的中止时间值,在中止时间段内触发中止从传送队列FA1到接收队列FDp的数据传输。目的地控制模块850可以基于包括在状态数据库856中的一个或多个状态值限定该中止时间段参数值。在一些实施例中,传送队列FA1可以被称为流量控制信号的目标。换句话说,该流量控制信号可以以(例如,寻址到)传送队列FA1为目标。在一些实施例中,可以基于与传送队列FA1有关的队列标识符在流量控制信号内识别该传送队列FA1
在一些实施例中,速率值和中止时间值两者可以以单个传送队列为目标(基于队列标识符)。在这个例子中,速率值和中止时间值两者可以包括在单个流量控制帧中,诸如结合图4所描述的那样。在上述的例子中,以传送队列为目标的速率值和/或中止时间值可以包括在一个以上的流量控制帧中。
在一些实施例中,该目的地控制模块850可以被配置为基于例如一个或多个规则(未示出)限定流量控制信号。可以使用算法(例如,程序)实现该规则。在一些实施例中,可以基于一个或多个阈值条件限定该规则。虽然未示出,但在一些实施例中,规则(例如,实现该规则的算法)可以存储在存储器854中,并且当限定流量控制信号的时候,由目的地控制模块850进行检索。
由目的地控制模块850用来限定流量控制信号的状态值可以是代表与多级队列系统802有关的各种单元的状态的值。例如,状态值可以代表在物理链路800的接收侧上的队列(例如,第一级队列810中的队列、第二级队列820中的队列)的状态。代表接收队列的状态值可以称为接收队列状态值。结合图9A描述了与可以存储在状态数据库856中的接收队列状态值相关的更多细节。在一些实施例中,状态值可以代表在物理链路800的接收侧上的队列(例如,第一级队列810中的队列、第二级队列820中的队列)的状态。代表传送队列的状态值可以称为传送队列状态值。结合图9B描述了与可以存储在状态数据库856中的传送队列状态值的相关的更多细节。在一些实施例中,除了特定的队列(例如,特定的传送队列、特定的接收队列)以外,状态值可以代表与多级队列系统802相关的单元的状态。这些类型的状态值可以称为系统状态值。例如,系统状态值可以代表反馈路径的状态、物理链路800的状态,和/或多级队列系统802的传输路径(或者传播路径的集合)的状态。图结合9C描述了与可以存储在状态数据库856中的系统状态值相关的更多的细节。
在一些实施例中,可以基于散列(hash)值检索和/或修改包括在状态数据库856中的状态值。例如,与队列(例如,传送队列、接收队列)有关的状态值可以存储在使用代表该队列的标识符的散列值识别的存储位置中(例如,该状态数据库856的存储位置)。可以基于使用代表该队列的标识符的散列查找在存储位置上稍后更新与该队列有关的状态值。
在一些实施例中,该目的地控制模块850可以被配置为基于优先级存储状态值。例如,与传送队列有关的优先级可以表示仅仅某些类型的状态值应当存储用于该传送队列。该目的地控制模块850可以被配置为基于这个优先级存储用于该传送队列的状态值。类似地,与接收队列(或者多级队列系统802的另一部分)有关的优选级可以表示仅仅某些类型的状态值应当存储用于该接收队列(或者多级队列系统802的另一部分)。该目的地控制模块850可以被配置为基于这个优先级存储用于该接收队列(或者多级队列系统802的另一部分)的状态值。
图9A是按照一个实施例表明接收队列状态数据库905的示意图。该接收队列状态数据库905可以限定状态数据库的一部分,诸如在图8中示出的状态数据库856。该接收队列状态数据库905包括与接收队列标识符(在列910中示出)有关的接收队列状态值(在列920中示出),该接收队列标识符代表接收队列(诸如,在图8中示出的接收队列)。例如,该接收队列状态值RV51与由接收队列标识符RQ12(也可以称为接收队列RQ12)代表的接收队列有关。在一些实施例中,例如,该接收队列状态值RV51可以代表接收队列RQ12处于不拥塞的状态并且可以用来接收数据,可以代表接收队列RQ12处于拥塞的状态并且不可用于接收数据,可以代表经指定的一段时间后接收队列RQ12的平均流失速率,可以代表接收队列RQ12的使用百分比(例如,接收队列RQ12被使用的百分比),和/或其他。虽然未示出,但在一些实施例中,多个接收队列状态值可以与单个接收队列有关,或者多个接收队列可以与单个接收队列状态值有关。
在一些实施例中,目的地控制模块(诸如,在图8中示出的目的地控制模块850)可以被配置为在仅仅与拥塞的接收队列有关的接收队列状态数据库905中存储状态值。例如,该目的地控制模块可以被配置为仅仅存储与例如不可用于从一个或多个传送队列接收数据的接收队列有关的状态值。在一些实施例中,该目的地控制模块可以被配置为仅仅存储与例如具有超过指定阈值的使用百分比的接收队列有关的状态值。
在一些实施例中,可以由目的地控制模块更新该接收队列状态数据库905。例如,如果接收队列的使用百分比改变,则可以在接收队列状态数据库905内更新代表接收队列的使用百分比的接收队列状态值。在一些实施例中,响应于在接收队列状态数据库905内代表的接收队列上接收的数据,和/或其他,周期性地、随机地更新在接收队列状态数据库905内的条目。
在一些实施例中,当与接收队列有关的接收队列状态值以特定的方式改变的时候,可以从接收队列状态数据库905中除去与接收队列有关的条目(例如,行)(或者条目的一部分)。例如,当接收队列RQ1例如不再拥塞的时候,可以从接收队列状态数据库905中除去与接收队列RQ1(在列910中示出)有关的状态值RV2(在列920中示出)。
在一些实施例中,目的地控制模块(诸如,在图8中示出的目的地控制模块850)可以被配置为基于例如存储在接收队列状态数据库905中的一个或多个接收队列状态值,并且基于一个或多个规则(未示出)限定流量控制信号。例如,目的地控制模块可以被配置为限定流量控制信号,该流量控制信号配置为基于接收队列RQ1的使用百分比和接收队列RQ1的流失速率触发传送队列(其是流量控制信号的目标),以在中止时间段内中止数据传输到接收队列RQ1(在列910中示出)。在一些实施例中,可以限定该规则,使得当接收队列RQ1的使用百分比超出阈值相对很大的余量和/或接收队列RQ1的流失速率相对缓慢的时候,目的地控制模块将限定相对长的中止时间段。还可以限定该规则,使得当接收队列RQ1的使用百分比超出阈值相对小的余量和/或接收队列RQ1的流失速率相对快速的时候,目的地控制模块将限定相对短的中止时间段。
在一些实施例中,目的地控制模块(诸如,在图8中示出的目的地控制模块850)可以被配置为基于例如存储在接收队列状态数据库905中的接收队列状态值中的变化,限定寻址到单个传送队列的多个流量控制信号。例如,响应于从传送队列接收并促使接收队列从不拥塞的状态改变到拥塞的状态的分组,可以在第一时间将与接收队列有关的接收队列状态值存储在接收队列状态数据库905中。接收队列状态值可以代表接收队列处于拥塞的状态。目的地控制模块可以被配置为基于与接收队列有关的接收队列状态值,限定第一流量控制信号,该第一流量控制信号配置为基于第一中止时间值在中止时间段内触发传送队列中止传输附加的分组到接收队列。在中止时间段结束之前,如果接收队列从拥塞的状态改变到不拥塞的状态,则该目的地控制模块可以发送第二流量控制信号,该第二流量控制信号包括第二中止时间值,第二中止时间值短于中止时间段的剩余时间(并且短于第一中止时间值),使得整个中止时间段比最初由第一中止时间值限定的短。
在一些实施例中,目的地控制模块可以被配置为解决(或者防止潜在的)与多个接收队列有关的流量控制信令冲突。具体地,目的地控制模块可以被配置为发送流量控制信号给接收队列,使得实现一组接收队列所期望的流量控制。例如,接收队列状态值RV2和接收队列状态值RV51可以分别地代表该接收队列RQ1和接收队列RQ12处于拥塞的状态。可以由从单个传送队列发送的分组引起该接收队列RQ1和接收队列RQ12的拥塞状态。该目的地控制模块可以限定流量控制信号(或者流量控制信号的集合),其将满足接收队列RQ1和接收队列RQ12两者的需要,而不是为例如具有不同的和冲突的中止时间值的每个接收队列RQ1和接收队列RQ12限定和发送多个独立的流量控制信号。具体地,该目的地控制模块可以限定和发送流量控制信号,该流量控制信号将触发传送队列在将允许接收队列RQ1和接收队列RQ12两者接收来自传送队列的附加分组之前返回到不拥塞的状态的单个中止时间段内中止数据传输给接收队列RQ1和接收队列RQ12两者。在这种例子中,除非接收队列RQ1和接收队列RQ12两者准备(例如,可用于)从传送队列接收数据,目的地控制模块可以基于随后的流量控制信号来防止中止时间段被减小(响应于例如独立地转变为不拥塞的状态的接收队列RQ1或者接收队列RQ12)。
在一些实施例中,例如,接收队列状态值RV2和接收队列状态值RV51可以分别地代表该接收队列RQ1和接收队列RQ12处于拥塞的状态。可以由从单个传送队列发送的分组引起该接收队列RQ1和接收队列RQ12的拥塞状态。目的地控制模块可以被配置为基于该接收队列状态值RV2确定在第一中止时间段内应当中止该传送队列,和基于该接收队列状态值RV51确定在第二中止时间段内(不同于第一时间段)应当中止该传送队列。该目的地控制模块可以被配置为基于大于或等于两个中止时间段中较长时间段的一个中止时间段来限定流量控制信号,以保证接收队列RQ1和接收队列RQ12两者准备好将在一个中止时间段结束时从传送队列接收数据。
在一些实施例中,该目的地控制模块可以被配置为发送配置为延长中止时间段的流量控制信号,该中止时间段与传送队列有关。例如,第一接收队列和第二接收队列可以被配置为从传送队列接收数据。目的地控制模块可以被配置为限定配置为触发该传送队列在中止时间段内中止数据传输到第一接收队列的第一流量控制信号。可以限定该中止时间段的持续时间,使得在接收队列准备接收该数据之后,该传送队列将继续发送数据给该接收队列。在已经发送第一流量控制信号之后,该目的地控制模块可以被配置为基于与第二接收队列有关的接收队列状态值(和/或与传送队列有关的传送队列状态值),限定配置为触发延长中止时间段的第二流量控制信号。在这个例子中,可以延长该中止时间段,因为,直至第一接收队列准备好从该传送队列接收数据之后第二接收队列将不会准备从该传送队列接收数据。
图9B是按照一个实施例表明传送队列状态数据库925的示意图。该传送队列状态数据库925可以限定状态数据库的一部分,诸如在图8中示出的状态数据库856。该传送队列状态数据库925包括与传送队列标识符(在列930中示出)有关的传送队列状态值(在列940中示出),该传送队列标识符代表传送队列(诸如,在图8中示出的传送队列)。例如,该传送队列状态值TVB与由传送队列标识符TQ1(也可以称为传送队列TQ1)代表的传送队列有关。该传送队列状态值930可以响应于流量控制信号而代表传送队列940的状态。在一些实施例中,例如,传送队列状态值TVB可以代表在指定时间开始的指定时间段内已中止来自传送队列TQ1的传输,可以代表自从在流量控制信号中接收到速率值以来,传送队列TQ1已经发送了指定数目的字节值,和/或等等。虽然未示出,但在一些实施例中,多个传送队列状态值可以与单个传送队列有关,或者多个传送队列可以与单个传送队列状态值有关。
可以由目的地控制模块(例如,在物理链路的接收侧上)更新该传送队列状态数据库925。例如,在已经发送流量控制信号给传送队列之后,如果是从传送队列接收分组的,则可以在传送队列状态数据库925内更新代表自从发送流量控制信号以来接收的分组数目的传送队列状态值。在一些实施例中,响应于从传送队列状态数据库925内所代表的传送队列中接收的数据,和/或其他,周期性地、随机地更新在传送队列状态数据库925内的条目。在一些实施例中,在链路(例如,物理链路)的接收侧上的目的地控制模块可以被配置为基于从该链路的发送侧上的信源控制模块接收的信息,更新在传送队列状态数据库925中的条目。
在一些实施例中,目的地控制模块(诸如,在图8中示出的目的地控制模块850)可以被配置为基于例如存储在传送队列状态数据库925中的一个或多个传送队列状态值,和基于一个或多个规则(未示出)来限定流量控制信号。例如,该传送队列状态值TVA可以代表传送队列TQ2已经以特定的速率发送数据。如果该接收队列不能处理当前的传输速率,则目的地控制模块可以被配置为基于规则来限定流量控制信号,该流量控制信号配置为触发传送队列TQ2进一步降低到接收队列的数据传输速率。
在一些实施例中,目的地控制模块可以被配置为基于包括在传送队列状态数据库925中的状态值解决(或者防止潜在的)流量控制信令冲突。例如,包括在传送队列状态数据库925中的传送队列状态值TVA(示出在列940上)可以代表响应于流量控制信号已经中止传送队列TQ2直到时间T1。该目的地控制模块可以基于传送队列状态值TVA来阻止发送(或者抑制限定)过早地结束中止传输的(例如,在时间T1之前结束中止传输)第二流量控制信号。如果基于来自传送队列TQ2的数据流,响应于处于拥塞状态的单个接收队列发送流量控制信号,则目的地控制模块可以阻止发送在时间T1之前过早地结束中止传输的附加的流量控制信号(除非该附加的流量控制信号与该一个接收队列有关)。如果基于来自传送队列TQ2的数据,响应于多个分别处于拥塞状态的接收队列发送该流量控制信号,则该目的地控制模块可以阻止发送在时间T1之前过早地结束中止传输的附加的流量控制信号(除非该附加的流量控制信号与该多个接收队列有关)。在一些实施例中,该目的地控制模块可以限定将阻止限定和/或发送流量控制信号的非反馈指示符。
在一些实施例中,目的地控制模块(诸如,在图8中示出的目的地控制模块850)可以被配置为只为已向其发送流量控制信号的传送队列在传送状态数据库925中存储状态值。例如,只有在已经将寻址到传送队列的流量控制信号发送给传送队列的时候,该目的地控制模块可以被配置为为传送队列存储状态值。
在一些实施例中,当例如与传送队列有关的命令不再有效的时候,可以从传送队列状态数据库925中除去与传送队列有关的条目(例如,一行)(或者条目的一部分)。例如,当该中止时间段已经结束的时候,可以从传送队列状态数据库925中除去代表传送队列的中止时间段的持续时间的传送队列状态值。
图9C是按照一个实施例表明系统状态数据库955的示意图。该系统状态数据库955可以限定状态数据库的一部分,诸如在图8中示出的状态数据库856。该系统状态数据库955包括与系统标识符(在列950中示出)有关的系统状态值(在列960中示出),除了特定的队列(例如,特定的传送队列、特定的接收队列)以外,该系统标识符代表多级队列系统的一部分。例如,该系统状态值SVT可以与由系统标识符S1(也可以称为系统S1)代表的一部分多级队列系统有关。多级队列系统的几部分例如可以是反馈路径(例如,与物理链路有关的反馈路径,诸如在图8中示出的物理链路800,带外反馈路径)、物理链路,和/或传输路径(或者传播路径的集合)。在一些实施例中,例如,系统状态值可以代表反馈路径(或者传输路径的百分比)不可用于传送流量控制信号,可以代表一部分多级队列系统的拥塞水平,该多级队列系统包括多个传送队列和多个接收队列,和/或等等。
可以由目的地控制模块(例如,在物理链路的接收侧上)更新该系统状态数据库955。例如,如果反馈路径从可用的状态改变到不可用的状态(或者反之亦然),则可以在系统状态数据库955内更新代表该改变的系统状态值。在一些实施例中,响应于从一个或多个传送队列接收和/或在一个或多个接收队列上接收的数据,和/或其他,周期性地、随机地更新系统状态数据库955内的项目。
在一些实施例中,目的地控制模块(诸如,在图8中示出的目的地控制模块850)可以被配置为基于例如存储在系统状态数据库955中的一个或多个系统状态值,和基于一个或多个规则(未示出)限定流量控制信号。例如,如果正如由包括在系统状态数据库955中的系统状态值代表的那样,反馈路径不可用,则目的地控制模块不会经由反馈路径发送一组流量控制信号。在一些实施例中,例如,如果在一部分多级队列系统内的总体拥塞超过包括在规则中的阈值条件,则目的地控制模块可以被配置为修改流量控制信号(例如,增加在流量控制信号内的中止时间值)。
在一些实施例中,目的地控制模块(诸如,在图8中示出的目的地控制模块850)可以被配置为只为多级队列系统的几部分在系统状态数据库955中存储状态值。例如,只有在该反馈路径拥塞的时候,该目的地控制模块可以被配置为为反馈路径存储状态值。
在一些实施例中,可以从该系统状态数据库955中除去与一部分多级队列系统有关的条目(例如,行)(或者条目的一部分)。例如,当反馈路径例如不再拥塞的时候,可以从系统状态数据库955中除去与反馈路径有关的状态值(或者整个条目)。
回到参考图8,在一些实施例中,该状态数据库856可以包括接收队列状态值、传送队列状态值和/或系统状态值。例如,在一些实施例中,该状态数据库856可以包括接收队列数据库(诸如,在图9A中示出的)和传送队列数据库(诸如,在图9B中示出的),但是可能不包括系统状态数据库(诸如,在图9C中示出的)。在上述的实施例中,基于接收队列状态值和/或传送队列状态值,而不是基于系统状态值,该目的地控制模块850可限定一个或多个流量控制信号,因为系统状态值是不可利用的。
在一些实施例中,该信源控制模块840可以被配置为处理(例如,解码)从目的地控制模块850发送的一个或多个流量控制信号。例如,该信源控制模块840可以被配置为在流量控制信号中接收一个指令,并且可以被配置为基于该命令修改从传送队列传送的数据。在一些实施例中,该信源控制模块840可以被配置为修改包括在流量控制信号中的指令,并且可以被配置为执行该修改的指令。例如,该信源控制模块840可以接收包括以特定传送队列为目标的1000毫秒的中止时间值的流量控制信号。该信源控制模块840可以被配置为基于物理链路800的发送侧上的处理资源的不可用性,触发在比1000毫秒更长的一段时间内中止来自传送队列的数据传输。
在一些实施例中,该信源控制模块840可以被配置为基于包括在流量控制信号中的速率值和中止时间值的组合,触发修改来自传送队列的数据传输。例如,该信源控制模块840可以被配置为按脉冲或者在时间分段内从传送队列传送数据。可以基于速率值和中止时间值的组合计算脉冲。
在一些实施例中,该信源控制模块840可以被配置为基于包括在队列优选数据库846中的流量控制优先级来处理流量控制信号。例如,该信源控制模块840可以被配置为忽略从目的地控制模块850发送的一个或多个流量控制信号(或者一部分流量控制信号)。该信源控制模块840可以被配置为基于包括在队列优先级数据库846中的条目而忽略流量控制信号(或者一部分流量控制信号)。例如,目的地控制模块850可以被配置为基于包括在状态数据库856中的状态值(例如,与传送队列FAN有关的状态值)来限定以传送队列FAN为目标的中止时间值和速率值(在队列810的第一级内)。该信源控制模块840可以被配置为忽略以传送队列FAN为目标的中止时间值,因为传送队列FAN没有被配置为基于中止时间值中止传输。作为代替,该信源控制模块840可以基于该速率值修改来自传送队列FAN的数据流。
在一些实施例中,信源控制模块840可以被配置为将与传送队列有关的一个或多个流量控制优先级发送给目的地控制模块850。该目的地控制模块850可以使用流量控制优先级去限定一个或多个流量控制信号。例如,该信源控制模块840可以发送一个指示符给目的地控制模块850,该指示符指示传送队列FA1配置为基于速率值修改(来自传送队列FA1)数据的流量,而不是配置为基于中止时间值修改数据的流量。因此,目的地控制模块850可以被配置为限定以仅包括速率值而不包括中止时间值的传送队列FA1为目标的流量控制信号。
虽然未示出,在但一些实施例中,可以在与多级队列系统802有关的流量控制环路内执行其他类型的流量控制算法。例如,在一些实施例中,除了在此处描述的那些之外,可以执行随机早期丢弃流量控制算法。
在一些实施例中,可以将传送队列(例如,传送队列FAN)的流量控制优先级从物理链路800的发送侧传送到物理链路800的接收侧。例如,从传送队列传送的数据分组可以包括传送队列的流量控制优先级的指示符(例如,在数据分组的包头中的指示符)。包括在该数据分组中的流量控制优先级可以由目的地控制模块850使用以限定一个或多个流量控制信号。在一些实施例中,该目的地控制模块850可以被配置为在例如存储器854中存储传送队列的流量控制优先级,供稍后使用。结合图10描述了一个队列优先级数据库的例子。
图10是按照一个实施例表明队列优先级数据库1000的示意图。如图10所示,该队列优选数据库1000包括与传送队列标识符(在列1010中示出)有关的流量控制优先级(在列1020中示出)。例如,与中止流量控制(在列1020中示出)的流量控制优先级有关的传送队列Q1(在列1010中示出)。传送队列Q3(在列1010中示出)与没有反馈控制(在列102Q中示出)的流量控制优先级有关,因为传送队列Q3不是流量可控的传送队列。
图11A是按照一个实施例表明配置为从传送队列接收数据的第一接收队列的可用容量的示意图。图11B是按照一个实施例表明配置为从传送队列接收数据的第二接收队列的可用容量的示意图。图11C是按照一个实施例表明与传送队列有关的反馈路径的可用容量的示意图。图11D是按照一个实施例表明用于传输寻址到传送队列的流量控制信号的定时的示意图。可以在目的地控制模块上限定并发送该流量控制信号。如图11A至图11D所示,时间向右增加。
如图11A所示,第一接收队列的可用容量响应于从传送队列(未示出)接收的数据随后在时间T2上降到阈值YV之下。因此,如图11D所示,在时间T2上发送流量控制信号给传送队列。该流量控制信号被配置为触发在中止时间段内中止来自传送队列的传输,直至时间T9为止。可以经由反馈路径发送在时间T2上发送的流量控制信号。
如图11A所示,第一接收队列的可用容量响应于从第一接收队列传送(例如,从中流失)的数据在时间T4上提高到阈值YV之上。在时间T4上不将流量控制信号发送给传送队列(如由图11D表明的),因为该反馈路径在时间T4上不可用于流量控制信号的传输(在图11C中示出)。如果该反馈路径可用于传输,则可以在时间T4上发送流量控制信号以触发减少传送队列的中止时间段。
如图11A所示,第一接收队列的可用容量响应于从第一接收队列传送(例如,从中流失)的数据在时间T7上提高到阈值YV之上。在时间T7上(如由图11D表明的)不将流量控制信号发送给传送队列,因为预定从该传送队列接收数据的第二接收队列不可用于从时间T5(在图11B中示出)开始接收来自传送队列的数据,因为第二接收队列的可用容量低于该阈值ZV。如图11D所示,在时间T8上发送流量控制信号,以在时间T9之后响应于第二接收队列的不可用性来触发增加传送队列的中止时间段的持续时间。
图12是按照一个实施例表明用于限定流量控制信号的方法的流程图。如图12所示,在1200上,在限定接收队列的存储器上接收分组。在一些实施例中,接收队列可以与逻辑地嵌套在第二级队列外面的第一级队列有关。第二级队列可以逻辑地嵌套在物理链路的外面。
在1210上,响应于该分组限定代表接收队列的状态的接收队列状态值。在一些实施例中,接收队列的状态可以存储在状态数据库中。接收队列状态值例如可以代表接收队列的拥塞水平。
在1220上,可以基于包括在分组中的标识符更新代表传送队列状态的传送队列状态值。在一些实施例中,该标识符可以代表该分组是从传送队列接收的。因此,该标识符可用于更新与传送队列有关的传送队列状态值。在一些实施例中,该传送队列状态值可以代表在接收队列上自从响应于从不拥塞状态改变到拥塞状态的接收队列而将流量控制信号发送给该传送队列以来接收的许多字节。
在1230上,接收代表系统状态的系统状态值。系统状态值可以代表与传送队列和接收队列有关的反馈路径的容量。
在1240上,寻址到传送队列的流量控制信号可以基于接收队列状态值、传送队列状态值和/或系统状态值限定。在已经限定该流量控制信号之后,可以将该流量控制信号发送给配置为基于该流量控制信号触发修改来自传送队列的数据流的信源控制模块。在一些实施例中,流量控制信号可以包括速率值和中止时间值。可以基于包括在流量控制信号中的速率值和/或中止时间值修改来自传送队列的数据流。
在此处描述的某些实施例涉及具有计算机可读介质(也可以称为处理器可读介质)的计算机存储产品,在计算机可读介质上具有用于执行各种各样计算机可执行操作的命令或者计算机代码。可以为了特定的目的设计和构造介质和计算机代码(也可以称为代码)。计算机可读介质的例子包括但是不局限于:磁存储介质,诸如硬盘、软盘和磁带;光存储介质,诸如光盘/数字视频光盘(CD/DVD)、光盘只读存储器(CD-ROM)和全息照相设备;磁光盘存储介质,诸如光盘;载波信号处理模块;和特别配置为存储和执行程序代码的硬件设备,诸如专用集成电路(ASIC)、可编程序逻辑设备(PLD)和只读存储器(ROM)和随机存取存储器(RAM)设备。
计算机代码的例子包括但是不局限于,微代码或者微指令、诸如由编译器产生的机器指令,用于产生网络服务的代码,和包含高级指令的文件,该高级指令是由计算机使用翻译器执行的。例如,可以使用Java、C++或者其它的编程语言(例如,面向对象的程序设计语言)和开发工具执行多个实施例。计算机代码的附加例子包括但是不局限于,控制信号、加密的代码和压缩的代码。
虽然上文已经描述了各种各样的实施例,但应该明白,它们仅仅通过举例的方式给出,并非限制,并且可以在形式和细节方面进行各种变化。除了互相排斥的组合之外,可以以任何组合方式组合在此处描述的装置和/或方法的任何部分。在此处描述的实施例可以包括所描述的不同实施例的功能、部件和/或特征的各种组合和/或子组合。例如,信源实体和/或目的地实体可以具有跨越物理链路的多于两个流量可控队列级的队列级。

Claims (46)

1.一种被实施在存储器或者处理设备中的至少一个中的装置,所述装置包括:
第一流量控制模块,被配置为基于第一流量控制环路内的数据流来发送第一流量控制信号,所述第一流量控制回路包括(1)扇入第二级传送队列中的第一级传送队列、(2)扇入物理链路的所述第二级传送队列以及(3)所述物理链路,所述第一流量控制信号包括来自所述第一级传送队列的传送队列的标识符和与所述传送队列的标识符相关联的中止时间值,所述中止时间值基于第一请求而中止在与所述第一级传送队列相关联的接收队列处的传输,并且基于第二请求而中止在所述接收队列处的传输;以及
第二流量控制模块,被配置为基于第二流量控制环路内的数据流来限定第二流量控制信号,所述第二流量控制环路包括(1)所述第二级传送队列和(2)所述物理链路,并且所述第二流量控制环路不包括所述第一级传送队列。
2.根据权利要求1所述的装置,还包括:
第三流量控制模块,被配置为基于与第三流量控制环路相关联的数据流来限定第三流量控制信号,所述第三流量控制环路包括所述物理链路并且不包括所述第一级传送链路和所述第二级传送链路。
3.根据权利要求1所述的装置,其中所述第二流量控制环路是基于优先级的流量控制环路。
4.根据权利要求1所述的装置,其中所述第一级传送队列包括在第一接口卡处的传送队列和在第二接口卡处的传送队列,在所述第一接口卡处的传送队列和在所述第二接口卡处的传送队列扇入到在所述第二级传送队列中包括的传送队列。
5.根据权利要求1所述的装置,其中所述第一流量控制信号包括第2层流量控制分组,所述第一流量控制模块与第2层设备相关联。
6.根据权利要求1所述的装置,其中:
所述中止时间是与所述第一请求相关联的时间段和与所述第二请求相关联的时间段的平均值。
7.根据权利要求1所述的装置,其中:
当与所述第一请求相关联的时间段大于与所述第二请求相关联的时间段时,所述中止时间值是与所述第一请求相关联的时间段。
8.根据权利要求1所述的装置,其中:
所述第一流量控制模块被配置为将限定所述第一流量控制信号延迟等待时间段,所述第一请求和所述第二请求在所述等待时间段内被接收。
9.根据权利要求1所述的装置,其中所述第二流量控制模块被配置为发送所述第二流量控制信号,使得来自所述第二级传送队列的传送队列响应于所述第二流量控制信号而中止传输。
10.根据权利要求1所述的装置,其中:
所述第一流量控制环路包括(1)扇入第二级接收队列中的第一级接收队列、(2)扇入所述物理链路中的所述第二级接收队列,
所述第二流量控制环路包括所述第二级接收队列并且不包括所述第一级接收队列。
11.一种用于流量控制的方法,包括:
基于接收队列在第一时间的拥塞状态,来限定用于第一级传送队列的第一流量控制信号,所述第一流量控制信号包括来自所述第一级传送队列的传送队列的标识符和与所述传送队列的所述标识符相关联的中止时间值,所述中止时间值基于用来中止在接收队列处的传输的请求,并且基于所述接收队列的所述拥塞状态;
当所述接收队列在所述第一时间处于所述拥塞状态时,向所述第一级传送队列发送所述第一流量控制信号;
基于所述接收队列在第二时间的所述拥塞状态,来限定用于与所述第一级传送队列不同的第二级传送队列的第二流量控制信号;以及
当所述接收队列在所述第二时间处于所述拥塞状态时,向所述第二级传送队列发送所述第二流量控制信号,所述第一级传送队列包括被扇入到所述第二级传送队列中包括的队列中的第一组传送队列。
12.根据权利要求11所述的方法,其中所述第二级传送队列包括被扇入物理链路中的多个传送队列,所述物理链路不同于所述第二级传送队列和所述第一级传送队列。
13.根据权利要求11所述的方法,其中来自所述第一组传送队列的至少一个传送队列在第一接口卡处,来自所述第一组传送队列的至少一个传送队列在第二接口卡处。
14.根据权利要求11所述的方法,其中所述第二时间不同于所述第一时间。
15.根据权利要求11所述的方法,其中所述第一时间对应于所述第二时间。
16.根据权利要求11所述的方法,其中响应于所述接收队列在所述第一时间之前从可用的状态改变到所述拥塞状态而触发发送所述第一流量控制信号,响应于所述接收队列在所述第二时间之前从可用的状态改变到所述拥塞状态而触发发送所述第二流量控制信号。
17.一种用于流量控制的装置,包括
第一级传送队列,包括在第一接口卡处的传送队列和在第二接口卡处的传送队列;
第二级传送队列,在所述第一接口卡处的所述传送队列和在所述第二接口卡处的所述传送队列被扇入到在所述第二级传送队列中包括的传送队列;以及
控制模块,被配置为当接收到第一流量控制信号时修改用于所述第一级传送队列的流量控制,所述第一流量控制信号与第一流量控制环路相关联,所述第一流量控制环路包括所述第一级传送队列和所述第二级传送队列,
所述控制模块被配置为当接收到第二流量控制信号时修改用于所述第二级传送队列的流量控制,所述第二流量控制信号与第二流量控制环路相关联,所述第二流量控制环路包括所述第二级传送队列并且不包括所述第一级传送队列。
18.根据权利要求17所述的装置,其中所述第二级传送队列包括被扇入物理链路中的多个传送队列,所述第一流量控制环路和所述第二流量控制环路分别包括所述物理链路。
19.根据权利要求17所述的装置,其中所述第二级传送队列包括被扇入物理链路中的多个传送队列,所述控制模块被配置为当接收到第三流量控制信号时修改用于所述物理链路的流量控制,所述第三流量控制信号与第三流量控制环路相关联,所述第三流量控制环路包括所述物理链路并且不包括所述第一级传送队列和所述第二级传送队列。
20.根据权利要求17所述的装置,其中所述流量控制信号基于第2层协议。
21.一种用于流量控制的方法,包括:
限定中止时间值,所述中止时间值代表用于中止第一级队列的发送侧内的队列与所述第一级队列的接收侧内的队列之间的数据传输的时间段;以及
从在物理链路的接收侧上的流量控制模块向在所述物理链路的所述发送侧上的流量控制模块发送流量控制信号,所述流量控制信号被配置为基于所述中止时间值而中止从在所述第一级队列的所述发送侧内的队列的数据传输,所述流量控制信号与第一流量控制环路相关联并且不与第二流量控制环路相关联,所述第一流量控制环路包括所述第一级队列、第二级队列和所述物理链路,所述第二流量控制环路包括所述第二级队列和所述物理链路并且不包括所述第一级队列。
22.根据权利要求21所述的方法,其中所述第二流量控制环路是基于优先级的流量控制环路。
23.根据权利要求21所述的方法,其中所述物理链路被包括在第三流量控制环路中,所述第三流量控制环路不同于所述第一流量控制环路和所述第二流量控制环路。
24.根据权利要求21所述的方法,其中所述数据在所述第一级队列的所述发送侧内的队列处排队,中止传输的请求包括与所述第一级队列的所述发送侧内的队列相关联的标识符。
25.根据权利要求21所述的方法,其中在所述第一级队列的所述发送侧内的队列是虚拟的队列,所述流量控制信号包括与所述虚拟的队列相关联的标识符。
26.根据权利要求21所述的方法,其中所述流量控制信号是第一流量控制信号,所述数据是第一数据,所述方法还包括:
存储所述第一流量控制信号的标识符;
在所述流量控制模块处接收请求,以中止在所述第一级队列的所述发送侧内的队列处排队的第二数据的至少一部分的传输;以及
基于所述中止时间值和所述第一流量控制信号的标识符来确定不发送第二流量控制信号。
27.一种用于流量控制的方法,包括:
从物理链路的接收侧接收响应于第一数据分组在接收队列处被接收而限定的第一流量控制信号,所述数据分组包括在所述物理链路的发送侧上设置的传送队列的标识符,所述流量控制信号包括与所述传送队列相关联的标识符和与所述传送队列的所述标识符相关联的第一中止时间值;
从所述物理链路的所述接收侧接收第二流量控制信号,所述第二流量控制信号包括与所述传送队列的所述标识符相关联的第二中止时间值;以及
基于所述第一中止时间值和所述第二中止时间值而中止在所述传送队列处的第二数据分组的传输持续第二中止时间段。
28.根据权利要求27所述的方法,其中设置在所述物理链路的所述发送侧上的所述传送队列是虚拟队列,所述流量控制信号包括与所述虚拟队列相关联的标识符。
29.根据权利要求27所述的方法,其中所述传送队列和所述接收队列被包括在第一级队列中,第二级队列与所述第一级队列相互不包括,并且被设置在所述传送队列和所述接收队列之间。
30.根据权利要求27所述的方法,其中所述传送队列和所述接收队列被包括在第一级队列中,流量控制优先级被包括在与被包括在第二级队列中的成对的队列相关联的第一组流量控制优先级中,所述第一级队列与不同于所述第一组流量控制优先级的第二组流量控制优先级相关联。
31.根据权利要求27所述的方法,其中所述传送队列被包括在多个传送队列中,所述多个传送队列被扇入到来自多个队列的一个队列中,所述第一流量控制信号和所述第二流量控制信号被配置为触发数据传输的中止,所述数据传输来自比被包括在所述多个传送队列中的所有传送队列更少的传送队列。
32.一种用于流量控制的方法,包括:
接收第一请求以中止在被包括在第一级队列中的传送队列处排队的第一数据的传送,所述第一请求与基于第一接收队列的可用性而限定的所述第一数据相关联,所述第一接收队列被包括在第一级队列中,所述第一数据被排队以用于经由传输路径的传输,所述传输路径包括被包括在第二级队列中的传送队列,所述第二级队列被设置在被包括在所述第一级队列中的所述传送队列与被包括在所述第一级队列中的所述第一接收队列之间;
接收第二请求以中止在所述第一级队列中的所述传送队列处排队的第二数据的传输,所述第二请求与基于被包括在所述第一级队列中的第二接收队列的可用性而限定的所述第二数据相关联;以及
基于所述第一请求并且基于所述第二请求发送流量控制信号,所述流量控制信号被配置为触发中止所述第一数据和所述第二数据中的至少一个的传输,使得经由被包括在所述第二级中的所述传送队列的数据流被修改。
33.根据权利要求32所述的方法,其中所述限定包括:基于所述第一请求并且基于所述第二请求,来限定用于被包括在所述第一级队列中的所述传送队列的中止时间值。
34.根据权利要求32所述的方法,其中所述限定包括:限定中止时间值,所述中止时间值基于第2层协议被编码在所述流量控制信号中。
35.根据权利要求32所述的方法,其中所述第一请求包括第一中止时间值,所述第二请求包括与所述第一中止时间值不同的第二中止时间值,所述限定响应于条件被满足而被执行,所述条件与所述第一中止时间值和所述第二中止时间值的比较相关联。
36.根据权利要求32所述的方法,其中所述第二级队列是流量可控级队列,所述流量可控级队列扇入流量可控的链路。
37.根据权利要求32所述的方法,其中被包括在所述第一级队列中的所述传送队列被包括在多个传送队列中,所述多个传送队列被包括在所述第一级队列中,被包括在所述第一级队列中的所述多个传送队列扇入被包括在所述第二级队列中的所述传送队列中。
38.根据权利要求32所述的方法,其中所述流量控制信号包括中止时间值,所述中止时间值是与所述第一请求相关联的时间段和与所述第二请求相关联的时间段的平均值。
39.根据权利要求32所述的方法,所述流量控制信号包括中止时间值,当与所述第一请求相关联的时间段大于与所述第二请求相关联的时间段时,所述中止时间值是与所述第一请求相关联的时间段。
40.根据权利要求32所述的方法,其中所述限定被延迟等待时间段,所述接收所述第一请求和所述接收所述第二请求在所述等待时间段内。
41.一种用于流量控制的方法,包括:
接收第一请求以中止在第一级队列处排队的第一数据的传输,所述请求与基于被包括在所述第一级队列中的第一接收队列的可用性而限定的所述第一数据相关联,所述第一数据针对被排队以用于经由传输路径的传输,所述传输路径包括物理链路和被设置在所述物理路径和所述第一级队列之间的所述传输路径内的第二级队列的一部分;
接收第二请求以中止在所述第一级队列处排队的第二数据的传输,所述请求与基于被包括在所述第一级队列中的第二接收队列的可用性而限定的所述第二数据相关联,所述第二数据被排队以用于经由所述传输路径传输;以及
基于所述第一请求并且基于所述第二请求限定流量控制信号。
42.根据权利要求41所述的方法,其中所述第二级队列的一部分包括传送队列,所述流量控制信号被配置为触发中止所述第一数据和所述第二数据中的至少一个的传输,使得经由被包括在所述第二级中的所述传送队列的数据流被修改。
43.根据权利要求41所述的方法,其中所述第一数据在被包括在所述第一级队列中的传送队列处被排队,所述第二数据在所述传送队列处被排队,所述限定包括:基于所述第一请求并且基于所述第二请求,来限定用于所述传送队列的中止时间值。
44.根据权利要求41所述的方法,其中所述限定包括:限定中止时间值,所述中止时间值基于第2层协议被编码在所述流量控制信号中。
45.根据权利要求41所述的方法,其中所述第一请求包括第一中止时间值,所述第二请求包括与所述第一中止时间值不同的第二中止时间值,所述限定响应于条件被满足而被执行,其中所述条件与所述第一中止时间值和所述第二中止时间值的比较相关联。
46.根据权利要求41所述的方法,其中所述第二级队列是流量可控级队列,所述物理链路是流量可控的链路。
CN201410137084.3A 2008-09-11 2009-09-11 用于限定流量控制信号的方法和装置 Active CN103888368B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US9620908P 2008-09-11 2008-09-11
US61/096,209 2008-09-11
US12/242,230 2008-09-30
US12/242,230 US8218442B2 (en) 2008-09-11 2008-09-30 Methods and apparatus for flow-controllable multi-staged queues
US12/242,224 2008-09-30
US12/242,224 US8154996B2 (en) 2008-09-11 2008-09-30 Methods and apparatus for flow control associated with multi-staged queues
CN200910246889.0A CN101917330B (zh) 2008-09-11 2009-09-11 用于限定流量控制信号的方法和装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200910246889.0A Division CN101917330B (zh) 2008-09-11 2009-09-11 用于限定流量控制信号的方法和装置

Publications (2)

Publication Number Publication Date
CN103888368A CN103888368A (zh) 2014-06-25
CN103888368B true CN103888368B (zh) 2018-03-02

Family

ID=41799188

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201410137084.3A Active CN103888368B (zh) 2008-09-11 2009-09-11 用于限定流量控制信号的方法和装置
CN200910246889.0A Active CN101917330B (zh) 2008-09-11 2009-09-11 用于限定流量控制信号的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200910246889.0A Active CN101917330B (zh) 2008-09-11 2009-09-11 用于限定流量控制信号的方法和装置

Country Status (3)

Country Link
US (6) US8154996B2 (zh)
EP (2) EP3024186B1 (zh)
CN (2) CN103888368B (zh)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8213308B2 (en) * 2008-09-11 2012-07-03 Juniper Networks, Inc. Methods and apparatus for defining a flow control signal related to a transmit queue
US8154996B2 (en) 2008-09-11 2012-04-10 Juniper Networks, Inc. Methods and apparatus for flow control associated with multi-staged queues
US8325749B2 (en) 2008-12-24 2012-12-04 Juniper Networks, Inc. Methods and apparatus for transmission of groups of cells via a switch fabric
JP2012510118A (ja) 2008-11-26 2012-04-26 カルガリー・サイエンティフィック・インコーポレイテッド アプリケーションプログラムの状態への遠隔アクセスを提供するための方法およびシステム
US8254255B2 (en) * 2008-12-29 2012-08-28 Juniper Networks, Inc. Flow-control in a switch fabric
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US8625427B1 (en) * 2009-09-03 2014-01-07 Brocade Communications Systems, Inc. Multi-path switching with edge-to-edge flow control
US9264321B2 (en) 2009-12-23 2016-02-16 Juniper Networks, Inc. Methods and apparatus for tracking data flow based on flow state values
JP5340186B2 (ja) * 2010-01-21 2013-11-13 アラクサラネットワークス株式会社 パケット中継装置及びパケットを中継する方法
US9112751B1 (en) * 2010-02-02 2015-08-18 Qualcomm Incorporated Distributed bandwidth control in a communication network
US9602439B2 (en) * 2010-04-30 2017-03-21 Juniper Networks, Inc. Methods and apparatus for flow control associated with a switch fabric
US9065773B2 (en) 2010-06-22 2015-06-23 Juniper Networks, Inc. Methods and apparatus for virtual channel flow control associated with a switch fabric
US8553710B1 (en) 2010-08-18 2013-10-08 Juniper Networks, Inc. Fibre channel credit-based link flow control overlay onto fibre channel over ethernet
US9660940B2 (en) 2010-12-01 2017-05-23 Juniper Networks, Inc. Methods and apparatus for flow control associated with a switch fabric
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
US9032089B2 (en) 2011-03-09 2015-05-12 Juniper Networks, Inc. Methods and apparatus for path selection within a network based on flow duration
CA2734860A1 (en) 2011-03-21 2012-09-21 Calgary Scientific Inc. Method and system for providing a state model of an application program
US8989009B2 (en) * 2011-04-29 2015-03-24 Futurewei Technologies, Inc. Port and priority based flow control mechanism for lossless ethernet
RU2625525C2 (ru) 2011-08-15 2017-07-14 Калгари Сайентифик Инк. Бесконтактный удаленный доступ к программному приложению
CA2844851A1 (en) 2011-08-15 2013-02-21 Calgary Scientific Inc. Method for flow control and for reliable communication in a collaborative environment
CN103959708B (zh) 2011-09-30 2017-10-17 卡尔加里科学公司 包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展
US8811183B1 (en) 2011-10-04 2014-08-19 Juniper Networks, Inc. Methods and apparatus for multi-path flow control within a multi-stage switch fabric
CN104040946B (zh) 2011-11-23 2017-07-14 卡尔加里科学公司 用于协作远程应用程序共享和会议的方法和系统
US9231870B2 (en) 2011-12-22 2016-01-05 International Business Machines Corporation Flexible and scalable data link layer flow control for network fabrics
US9036993B2 (en) * 2012-02-13 2015-05-19 Marvell World Trade Ltd. Method and apparatus for dynamically allocating bandwidth to a client in a passive optical network
US9729673B2 (en) 2012-06-21 2017-08-08 Calgary Scientific Inc. Method and system for providing synchronized views of multiple applications for display on a remote computing device
GB2503933B (en) * 2012-07-13 2015-07-15 Canon Kk Time sensitive transaction over an asynchronous serial link
CN102891803B (zh) * 2012-10-10 2015-05-13 华为技术有限公司 拥塞处理方法及网络设备
US9189529B2 (en) * 2013-02-14 2015-11-17 Ab Initio Technology Llc Queue monitoring and visualization
CN104283808B (zh) * 2013-07-03 2019-03-26 华为技术有限公司 拥塞控制方法、设备及系统
US8891376B1 (en) * 2013-10-07 2014-11-18 International Business Machines Corporation Quantized Congestion Notification—defense mode choice extension for the alternate priority of congestion points
WO2015070393A1 (en) * 2013-11-13 2015-05-21 Qualcomm Incorporated Method and apparatus for qcn-like cross-chip function in multi-stage ethernet switching
EP3075111B1 (en) 2013-11-29 2017-12-20 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
EP3135009B1 (en) 2014-04-23 2018-03-14 Bequant S.L. Method and apparatus for network congestion control based on transmission rate gradients
CN105099939A (zh) * 2014-04-23 2015-11-25 株式会社日立制作所 在不同数据中心之间执行流量控制的方法和设备
JP6490205B2 (ja) 2014-06-30 2019-03-27 華為技術有限公司Huawei Technologies Co.,Ltd. フローエントリ構成の方法、装置及びシステム
CN105391567B (zh) * 2014-09-05 2019-05-24 华为技术有限公司 流量管理实现方法、装置和网络设备
US9497025B2 (en) * 2014-09-20 2016-11-15 Innovasic Inc. Ethernet interface module
CN105577575B (zh) 2014-10-22 2019-09-17 深圳市中兴微电子技术有限公司 一种链路控制方法及装置
US10015264B2 (en) 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
CN107431630B (zh) 2015-01-30 2021-06-25 卡尔加里科学公司 高度可扩展、容错的远程访问架构和与之连接的方法
US9647950B2 (en) 2015-05-11 2017-05-09 Ebay Inc. System and method of site traffic control
EP3353959A4 (en) * 2015-09-25 2019-07-03 INTEL Corporation ACTIVE CONNECTION DURING THE RESETTING OF A LAN INTERFACE
WO2017053964A1 (en) 2015-09-25 2017-03-30 Fsa Technologies, Inc. Data flow prioritization system and method
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US20180191628A1 (en) * 2016-12-31 2018-07-05 Alcatel-Lucent Usa Inc. Scheduling granularity based on application type
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
JP7145794B2 (ja) * 2019-03-14 2022-10-03 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US20200404541A1 (en) * 2019-06-19 2020-12-24 Qualcomm Incorporated System and method for flow control and acknowledgement transmission
US11470010B2 (en) * 2020-02-06 2022-10-11 Mellanox Technologies, Ltd. Head-of-queue blocking for multiple lossless queues
US11683199B2 (en) 2020-08-07 2023-06-20 Hyannis Port Research, Inc. Distributed system with fault tolerance and self-maintenance
US11088959B1 (en) 2020-08-07 2021-08-10 Hyannis Port Research, Inc. Highly deterministic latency in a distributed system
US11228529B1 (en) 2020-08-07 2022-01-18 Hyannis Port Research, Inc. Local and global quality of service shaper on ingress in a distributed system
US11303389B2 (en) 2020-08-07 2022-04-12 Hyannis Port Research, Inc. Systems and methods of low latency data communication for physical link layer reliability
US11328357B2 (en) 2020-08-07 2022-05-10 Hyannis Port Research, Inc. Sequencer bypass with transactional preprocessing in distributed system
US11483087B2 (en) 2020-08-07 2022-10-25 Hyannis Port Research, Inc. Systems and methods for clock synchronization using special physical layer clock sync symbols
US11315183B2 (en) 2020-08-07 2022-04-26 Hyannis Port Research, Inc. Electronic trading system and method based on point-to-point mesh architecture
FI129689B (en) * 2020-12-23 2022-06-30 NSION Oy Controlling the data flow between the source node and the destination node
CN112929295B (zh) * 2021-01-22 2022-07-12 宁波大学 一种微突发抑制的动态标记阈值缓存管理方法
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device
CN117155863A (zh) * 2022-05-23 2023-12-01 华为技术有限公司 一种抑制拥塞队列产生的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1459955A (zh) * 2002-05-23 2003-12-03 威盛电子股份有限公司 网络传输速率的控制方法及使用该方法的以太网交换机
WO2004010660A1 (en) * 2002-07-18 2004-01-29 Intel Corporation (A Delaware Corporation) Apparatus and method for virtual ouput queue feedback
CN1579070A (zh) * 2001-10-29 2005-02-09 媒体网国际公司 一种多媒体通信的方法、系统和数据结构
CN1713633A (zh) * 2004-06-24 2005-12-28 华为技术有限公司 一种网络流量控制的方法

Family Cites Families (154)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029164A (en) * 1990-04-13 1991-07-02 Digital Equipment Corporation Congestion avoidance in high-speed network carrying bursty traffic
US5457687A (en) 1993-09-02 1995-10-10 Network Equipment Technologies, Inc. Method and apparatus for backward explicit congestion notification (BECN) in an ATM network
US5521913A (en) * 1994-09-12 1996-05-28 Amber Wave Systems, Inc. Distributed processing ethernet switch with adaptive cut-through switching
AU6549296A (en) 1995-07-19 1997-02-18 Ascom Nexion Inc. Method and apparatus for reducing information loss in a communications network
US5991295A (en) * 1995-10-10 1999-11-23 Madge Networks Limited Digital switch
US5689500A (en) * 1996-01-16 1997-11-18 Lucent Technologies, Inc. Multistage network having multicast routing congestion feedback
EP0797370A1 (en) * 1996-03-20 1997-09-24 Alcatel Bell N.V. Method to estimate the current datapacket rate of a virtual connection, a feedback mechanism using said method and device, switching node and destination node realizing said method
JPH09258932A (ja) * 1996-03-27 1997-10-03 Fuji Xerox Co Ltd ネットワーク印刷装置
US5768271A (en) * 1996-04-12 1998-06-16 Alcatel Data Networks Inc. Virtual private network
GB9618137D0 (en) 1996-08-30 1996-10-09 Sgs Thomson Microelectronics Improvements in or relating to an ATM switch
US6049546A (en) * 1996-10-15 2000-04-11 At&T Corporation System and method for performing switching in multipoint-to-multipoint multicasting
CN1240564A (zh) * 1996-11-06 2000-01-05 诺基亚电信公司 交换结构
US5987028A (en) 1997-05-12 1999-11-16 Industrial Technology Research Insitute Multiple channel ATM switch
US6370145B1 (en) * 1997-08-22 2002-04-09 Avici Systems Internet switch router
US6324165B1 (en) * 1997-09-05 2001-11-27 Nec Usa, Inc. Large capacity, multiclass core ATM switch architecture
US6073089A (en) 1997-10-22 2000-06-06 Baker; Michelle Systems and methods for adaptive profiling, fault detection, and alert generation in a changing environment which is measurable by at least two different measures of state
US6512747B1 (en) * 1998-03-05 2003-01-28 Nippon Telegraph And Telephone Corporation ATM transmission system
JP3650262B2 (ja) * 1998-03-20 2005-05-18 富士通株式会社 セルの転送レート制御装置およびその方法
US6570850B1 (en) 1998-04-23 2003-05-27 Giganet, Inc. System and method for regulating message flow in a digital data network
US6618357B1 (en) * 1998-11-05 2003-09-09 International Business Machines Corporation Queue management for networks employing pause time based flow control
US7046631B1 (en) * 1999-01-22 2006-05-16 Alcatel Canada Inc. Method and apparatus for provisioning traffic dedicated cores in a connection oriented network
US6621828B1 (en) 1999-12-01 2003-09-16 Cisco Technology, Inc. Fused switch core and method for a telecommunications node
US7027457B1 (en) * 1999-12-03 2006-04-11 Agere Systems Inc. Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches
US6544760B2 (en) * 1999-12-22 2003-04-08 Zymogenetics, Inc. Kunitz domain polypeptide Zkun11
US6771601B1 (en) * 2000-01-31 2004-08-03 International Business Machines Corporation Network switch having source port queuing and methods, systems and computer program products for flow level congestion control suitable for use with a network switch having source port queuing
US7324442B1 (en) 2000-02-28 2008-01-29 The Board Of Trustees Of The Leland Stanford Junior University Active queue management toward fair bandwidth allocation
EP1133110B1 (en) 2000-03-06 2006-06-21 International Business Machines Corporation Switching device and method
GB0005899D0 (en) * 2000-03-10 2000-05-03 British Telecomm Packet switching
US6944173B1 (en) 2000-03-27 2005-09-13 Hewlett-Packard Development Company, L.P. Method and system for transmitting data between a receiver and a transmitter
GB2361139B (en) 2000-04-04 2003-07-09 3Com Corp Flow control system for ethernet network devices
US6657962B1 (en) * 2000-04-10 2003-12-02 International Business Machines Corporation Method and system for managing congestion in a network
US6574195B2 (en) 2000-04-19 2003-06-03 Caspian Networks, Inc. Micro-flow management
JP4586241B2 (ja) * 2000-06-14 2010-11-24 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
US7269666B1 (en) 2000-06-30 2007-09-11 Intel Corporation Memory utilization in a network interface
FI114749B (fi) * 2000-09-11 2004-12-15 Nokia Corp Poikkeamien ilmaisujärjestelmä ja menetelmä sen opettamiseksi
US20070192863A1 (en) 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US6665495B1 (en) * 2000-10-27 2003-12-16 Yotta Networks, Inc. Non-blocking, scalable optical router architecture and method for routing optical traffic
CN100426780C (zh) 2000-11-07 2008-10-15 英特尔公司 基于交换的网络处理器
US7173931B2 (en) * 2000-11-20 2007-02-06 Hung-Hsiang Jonathan Chao Scheduling the dispatch of cells in multistage switches
US7420969B2 (en) 2000-11-29 2008-09-02 Rmi Corporation Network switch with a parallel shared memory
CA2430571C (en) 2000-11-30 2011-07-12 Lancope, Inc. Flow-based detection of network intrusions
US6973032B1 (en) * 2000-12-04 2005-12-06 Cisco Technology, Inc. Selective backpressure control for multistage switches
JP3526269B2 (ja) * 2000-12-11 2004-05-10 株式会社東芝 ネットワーク間中継装置及び該中継装置における転送スケジューリング方法
US7161906B2 (en) 2000-12-15 2007-01-09 Agere Systems Inc. Three-stage switch fabric with input device features
US20020118692A1 (en) * 2001-01-04 2002-08-29 Oberman Stuart F. Ensuring proper packet ordering in a cut-through and early-forwarding network switch
US7075934B2 (en) * 2001-01-10 2006-07-11 Lucent Technologies Inc. Method and apparatus for hierarchical bandwidth distribution in a packet network
US20020167950A1 (en) * 2001-01-12 2002-11-14 Zarlink Semiconductor V.N. Inc. Fast data path protocol for network switching
US6856622B1 (en) * 2001-02-20 2005-02-15 Pmc-Sierra, Inc. Multicast cell scheduling protocol
US7068657B2 (en) * 2001-04-24 2006-06-27 Alcatel Facilitating inverse multiplexing over asynchronous transfer mode via communication links having disparate data transmission rates
US8228797B1 (en) 2001-05-31 2012-07-24 Fujitsu Limited System and method for providing optimum bandwidth utilization
US7277429B2 (en) 2001-06-01 2007-10-02 4198638 Canada Inc. Cell-based switch fabric with distributed scheduling
US20030005145A1 (en) 2001-06-12 2003-01-02 Qosient Llc Network service assurance with comparison of flow activity captured outside of a service network with flow activity captured in or at an interface of a service network
US7624444B2 (en) * 2001-06-13 2009-11-24 Mcafee, Inc. Method and apparatus for detecting intrusions on a computer system
US7042842B2 (en) 2001-06-13 2006-05-09 Computer Network Technology Corporation Fiber channel switch
US7167480B1 (en) 2001-06-21 2007-01-23 Lighthouse Capital Partners Iv, Lp Multi-service data transport architecture
US7440448B1 (en) 2001-07-02 2008-10-21 Haw-Minn Lu Systems and methods for upgradeable scalable switching
US20040001433A1 (en) 2001-07-18 2004-01-01 Gram Charles Andrew Interactive control of network devices
US7047303B2 (en) 2001-07-26 2006-05-16 International Business Machines Corporation Apparatus and method for using a network processor to guard against a “denial-of-service” attack on a server or server cluster
US7283556B2 (en) * 2001-07-31 2007-10-16 Nishan Systems, Inc. Method and system for managing time division multiplexing (TDM) timeslots in a network switch
US20030026267A1 (en) 2001-07-31 2003-02-06 Oberman Stuart F. Virtual channels in a network switch
US7027404B2 (en) * 2001-08-20 2006-04-11 Samsung Electronics Co., Ltd. Mechanism for cell routing in a multi-stage fabric with input queuing
US7151744B2 (en) * 2001-09-21 2006-12-19 Slt Logic Llc Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover
CA2358038A1 (en) 2001-09-27 2003-03-27 Alcatel Canada Inc. System and method for selection of redundant control path links in a multi-shelf network element
US7512980B2 (en) * 2001-11-30 2009-03-31 Lancope, Inc. Packet sampling flow-based detection of network intrusions
US7475426B2 (en) 2001-11-30 2009-01-06 Lancope, Inc. Flow-based detection of network intrusions
US7221652B1 (en) 2001-12-14 2007-05-22 Applied Micro Circuits Corporation System and method for tolerating data link faults in communications with a switch fabric
US7085846B2 (en) 2001-12-31 2006-08-01 Maxxan Systems, Incorporated Buffer to buffer credit flow control for computer network
US6977932B1 (en) 2002-01-16 2005-12-20 Caspian Networks, Inc. System and method for network tunneling utilizing micro-flow state information
US7313135B2 (en) * 2002-01-31 2007-12-25 Mosaid Technologies, Inc. Trunking in a matrix
US7424744B1 (en) * 2002-03-05 2008-09-09 Mcafee, Inc. Signature based network intrusion detection system and method
US20030185249A1 (en) * 2002-03-28 2003-10-02 Davies Elwyn B. Flow control and quality of service provision for frame relay protocols
US7876681B2 (en) * 2002-05-24 2011-01-25 Verizon Business Global Llc Systems and methods for controlling network-bound traffic
US7190669B2 (en) * 2002-07-09 2007-03-13 Hewlett-Packard Development Company, L.P. System, method and computer readable medium for flow control of data traffic
US6986161B2 (en) 2002-08-12 2006-01-10 Harris Corporation Mobile ad-hoc network with intrusion detection features and related methods
KR100663586B1 (ko) 2002-08-28 2007-01-02 삼성전자주식회사 헤더 압축에 의한 패킷 데이터의 송신 방법 및 장치
JP3970138B2 (ja) * 2002-09-09 2007-09-05 富士通株式会社 イーサネットスイッチにおける輻輳制御装置
US7327680B1 (en) 2002-11-05 2008-02-05 Cisco Technology, Inc. Methods and apparatus for network congestion control
US7372813B1 (en) 2002-11-26 2008-05-13 Extreme Networks Virtual load balancing across a network link
US7539199B2 (en) * 2003-02-21 2009-05-26 Gireesh Shrimali Switch fabric scheduling with fairness and priority consideration
US7372814B1 (en) * 2003-02-27 2008-05-13 Alcatel-Lucent Network system with color-aware upstream switch transmission rate control in response to downstream switch traffic buffering
KR100735408B1 (ko) * 2003-03-10 2007-07-04 삼성전자주식회사 이더넷 기반의 네트워크에서 서비스 클래스별 트래픽의스위칭 제어 방법 및 그 스위칭 장치
US7150044B2 (en) 2003-03-10 2006-12-12 Mci, Llc Secure self-organizing and self-provisioning anomalous event detection systems
US7430175B2 (en) * 2003-07-21 2008-09-30 Qlogic, Corporation Method and system for managing traffic in fibre channel systems
US20050036502A1 (en) 2003-07-23 2005-02-17 International Business Machines Corporation System and method for handling multicast traffic in a shared buffer switch core collapsing ingress VOQ's
US7688815B2 (en) * 2003-08-18 2010-03-30 BarracudaNetworks Inc Method and system for a multi-stage interconnect switch
US7230175B2 (en) * 2003-08-19 2007-06-12 Willis Whiteside Portable exerciser for stringed instrument players
US20060285548A1 (en) * 2003-09-29 2006-12-21 Hill Alan M Matching process
US20080028096A1 (en) 2003-10-21 2008-01-31 Henderson Alex E Transporting fibre channel over ethernet
US20050108444A1 (en) 2003-11-19 2005-05-19 Flauaus Gary R. Method of detecting and monitoring fabric congestion
US9270643B2 (en) 2003-11-21 2016-02-23 Intel Corporation State-transition based network intrusion detection
US20050138238A1 (en) * 2003-12-22 2005-06-23 James Tierney Flow control interface
US8819265B2 (en) * 2003-12-22 2014-08-26 Rockstar Consortium Us Lp Managing flow control buffer
US7543052B1 (en) * 2003-12-22 2009-06-02 Packeteer, Inc. Automatic network traffic discovery and classification mechanism including dynamic discovery thresholds
US7649843B2 (en) * 2004-02-09 2010-01-19 Transwitch Corporation Methods and apparatus for controlling the flow of multiple signal sources over a single full duplex ethernet link
WO2005086435A1 (en) * 2004-03-05 2005-09-15 Xyratex Technology Limited A method for congestion management of a network, a signalling protocol, a switch, an end station and a network
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US7499402B2 (en) * 2004-04-13 2009-03-03 Radioframe Networks, Inc. Network delay control
EP1589716A1 (en) * 2004-04-20 2005-10-26 Ecole Polytechnique Fédérale de Lausanne (EPFL) Method of detecting anomalous behaviour in a computer network
US20050249214A1 (en) 2004-05-07 2005-11-10 Tao Peng System and process for managing network traffic
US20060056308A1 (en) * 2004-05-28 2006-03-16 International Business Machines Corporation Method of switching fabric for counteracting a saturation tree occurring in a network with nodes
JP2006005437A (ja) 2004-06-15 2006-01-05 Fujitsu Ltd トラフィック分散制御装置
US20060026681A1 (en) 2004-07-29 2006-02-02 Zakas Phillip H System and method of characterizing and managing electronic traffic
US7457245B2 (en) 2004-09-07 2008-11-25 Intel Corporation Directional and priority based flow control mechanism between nodes
US7606158B2 (en) 2004-09-24 2009-10-20 Cisco Technology, Inc. Hierarchical flow control for router ATM interfaces
US7564869B2 (en) 2004-10-22 2009-07-21 Cisco Technology, Inc. Fibre channel over ethernet
US20060092833A1 (en) 2004-11-02 2006-05-04 Bemmel Jeroen V Congestion control for improved management of service level agreements in switched networks
US7733770B2 (en) * 2004-11-15 2010-06-08 Intel Corporation Congestion control in a network
US7540025B2 (en) * 2004-11-18 2009-05-26 Cisco Technology, Inc. Mitigating network attacks using automatic signature generation
KR100622670B1 (ko) * 2004-12-07 2006-09-19 한국전자통신연구원 알려지지 않은 네트워크 공격에 대한 실시간 공격 패턴 검출 시스템 및 그 방법
US7436773B2 (en) * 2004-12-07 2008-10-14 International Business Machines Corporation Packet flow control in switched full duplex ethernet networks
KR100689430B1 (ko) 2004-12-16 2007-03-08 삼성전자주식회사 디지털 홈 서비스에서 하이브리드 모니터링을 통한 동적서비스 품질 매핑 장치 및 방법
US20060272018A1 (en) 2005-05-27 2006-11-30 Mci, Inc. Method and apparatus for detecting denial of service attacks
US7719982B2 (en) * 2005-08-31 2010-05-18 Intel Corporation Switching device utilizing flow-control management
US9467462B2 (en) 2005-09-15 2016-10-11 Hewlett Packard Enterprise Development Lp Traffic anomaly analysis for the detection of aberrant network code
US7908357B2 (en) * 2005-09-21 2011-03-15 Battelle Memorial Institute Methods and systems for detecting abnormal digital traffic
US7930752B2 (en) 2005-11-18 2011-04-19 Nexthink S.A. Method for the detection and visualization of anomalous behaviors in a computer network
US20070150949A1 (en) 2005-12-28 2007-06-28 At&T Corp. Anomaly detection methods for a computer network
US8397284B2 (en) 2006-01-17 2013-03-12 University Of Maryland Detection of distributed denial of service attacks in autonomous system domains
US8613088B2 (en) * 2006-02-03 2013-12-17 Cisco Technology, Inc. Methods and systems to detect an evasion attack
US9426092B2 (en) 2006-02-03 2016-08-23 Level 3 Communications Llc System and method for switching traffic through a network
US7643418B1 (en) 2006-03-24 2010-01-05 Packeteer, Inc. Aggregate rate control using PID
US7675857B1 (en) * 2006-05-03 2010-03-09 Google Inc. Method and apparatus to avoid network congestion
US7817558B2 (en) * 2006-05-19 2010-10-19 Cisco Technology, Inc. Flow based flow control in an ethernet switch backplane
US7701849B1 (en) 2006-06-23 2010-04-20 Juniper Networks, Inc. Flow-based queuing of network traffic
US8050559B2 (en) 2006-08-21 2011-11-01 Juniper Networks, Inc. Multi-chassis router with multiplexed optical interconnects
CN101132286B (zh) * 2006-08-21 2012-10-03 丛林网络公司 具有多路光互连部件的多机架路由器
US8161475B2 (en) 2006-09-29 2012-04-17 Microsoft Corporation Automatic load and balancing for virtual machines to meet resource requirements
US20080167920A1 (en) 2006-11-29 2008-07-10 Robert Schmidt Methods and apparatus for developing cyber defense processes and a cadre of expertise
JP5102844B2 (ja) 2006-12-19 2012-12-19 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・フローを解析する装置および方法
US8520517B2 (en) 2007-02-21 2013-08-27 Broadcom Corporation Switch fabric end-to-end congestion avoidance mechanism
US7916718B2 (en) * 2007-04-19 2011-03-29 Fulcrum Microsystems, Inc. Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
EP1986391A1 (en) 2007-04-23 2008-10-29 Mitsubishi Electric Corporation Detecting anomalies in signalling flows
US8649370B2 (en) * 2007-05-17 2014-02-11 Ciena Corporation Systems and methods for programming connections through a multi-stage switch fabric with blocking recovery, background rebalancing, and rollback
US8331387B2 (en) 2007-06-22 2012-12-11 Broadcom Corporation Data switching flow control with virtual output queuing
CN101102275B (zh) * 2007-06-25 2010-08-04 中兴通讯股份有限公司 在以太网交换芯片上实现多级调度的方法
US20090077663A1 (en) * 2007-09-17 2009-03-19 Alcatel Lucent Score-based intrusion prevention system
EP2040420A1 (en) 2007-09-20 2009-03-25 Lucent Technologies Inc. Method and device for shaping a stream of frames of user traffic, as well as computer network
US20090204964A1 (en) 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US20090300209A1 (en) * 2008-06-03 2009-12-03 Uri Elzur Method and system for path based network congestion management
US8213308B2 (en) * 2008-09-11 2012-07-03 Juniper Networks, Inc. Methods and apparatus for defining a flow control signal related to a transmit queue
US8325749B2 (en) 2008-12-24 2012-12-04 Juniper Networks, Inc. Methods and apparatus for transmission of groups of cells via a switch fabric
US8154996B2 (en) 2008-09-11 2012-04-10 Juniper Networks, Inc. Methods and apparatus for flow control associated with multi-staged queues
US8228929B2 (en) 2008-10-24 2012-07-24 Juniper Networks, Inc. Flow consistent dynamic load balancing
US8254255B2 (en) * 2008-12-29 2012-08-28 Juniper Networks, Inc. Flow-control in a switch fabric
US8160072B1 (en) 2009-12-11 2012-04-17 Brocade Communications Systems, Inc. Method and system for facilitating QoS zoning in a network
US9264321B2 (en) 2009-12-23 2016-02-16 Juniper Networks, Inc. Methods and apparatus for tracking data flow based on flow state values
US9602439B2 (en) 2010-04-30 2017-03-21 Juniper Networks, Inc. Methods and apparatus for flow control associated with a switch fabric
US9065773B2 (en) 2010-06-22 2015-06-23 Juniper Networks, Inc. Methods and apparatus for virtual channel flow control associated with a switch fabric
US8553710B1 (en) 2010-08-18 2013-10-08 Juniper Networks, Inc. Fibre channel credit-based link flow control overlay onto fibre channel over ethernet
US8724628B1 (en) 2010-11-23 2014-05-13 Juniper Networks, Inc. Methods and apparatus for destination based hybrid load balancing within a switch fabric
US9660940B2 (en) 2010-12-01 2017-05-23 Juniper Networks, Inc. Methods and apparatus for flow control associated with a switch fabric
US9032089B2 (en) 2011-03-09 2015-05-12 Juniper Networks, Inc. Methods and apparatus for path selection within a network based on flow duration
US8811183B1 (en) 2011-10-04 2014-08-19 Juniper Networks, Inc. Methods and apparatus for multi-path flow control within a multi-stage switch fabric
US9620908B2 (en) 2015-01-13 2017-04-11 Cisco Technology, Inc. Multiport radio frequency connector isolation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1579070A (zh) * 2001-10-29 2005-02-09 媒体网国际公司 一种多媒体通信的方法、系统和数据结构
CN1459955A (zh) * 2002-05-23 2003-12-03 威盛电子股份有限公司 网络传输速率的控制方法及使用该方法的以太网交换机
WO2004010660A1 (en) * 2002-07-18 2004-01-29 Intel Corporation (A Delaware Corporation) Apparatus and method for virtual ouput queue feedback
CN1713633A (zh) * 2004-06-24 2005-12-28 华为技术有限公司 一种网络流量控制的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《一种支持QoS的多级交换网络调度算法》;胡宇翔等;《计算机科学》;20080531;第35卷(第5期);第82、83页,图2 *

Also Published As

Publication number Publication date
US8964556B2 (en) 2015-02-24
EP2560333B1 (en) 2016-02-10
US20100061238A1 (en) 2010-03-11
CN101917330B (zh) 2014-05-07
CN101917330A (zh) 2010-12-15
US8218442B2 (en) 2012-07-10
US20120195203A1 (en) 2012-08-02
US8154996B2 (en) 2012-04-10
US20100061239A1 (en) 2010-03-11
US20120275307A1 (en) 2012-11-01
CN103888368A (zh) 2014-06-25
EP2560333A2 (en) 2013-02-20
US10931589B2 (en) 2021-02-23
EP3024186A1 (en) 2016-05-25
US20180145917A1 (en) 2018-05-24
US8811163B2 (en) 2014-08-19
EP2560333A3 (en) 2013-04-17
EP3024186B1 (en) 2020-04-15
US20150172196A1 (en) 2015-06-18
US9876725B2 (en) 2018-01-23

Similar Documents

Publication Publication Date Title
CN103888368B (zh) 用于限定流量控制信号的方法和装置
US8213308B2 (en) Methods and apparatus for defining a flow control signal related to a transmit queue
US11336581B2 (en) Automatic rate limiting based on explicit network congestion notification in smart network interface card
CN102487358B (zh) 用于与交换机结构相关的流控制的方法和装置
US8174978B2 (en) Method for congestion management of a network, a signalling protocol, a switch, an end station and a network
CN102769565B (zh) 基于流持续时间的用于网络中路径选择的方法和装置
US9344369B2 (en) System and methods for distributed quality of service enforcement
US9602439B2 (en) Methods and apparatus for flow control associated with a switch fabric
CN104885420B (zh) 用于管理多个数据分组的方法、系统和介质
CN103916326B (zh) 用于数据中心的系统、方法以及设备
CN110166367A (zh) 一种分组网络中控制流量的方法及装置
US11502967B2 (en) Methods and apparatuses for packet scheduling for software-defined networking in edge computing environment
CN108494676A (zh) 数据传输方法、装置、数据收发设备、系统及存储介质
US8005106B2 (en) Apparatus and methods for hybrid fair bandwidth allocation and drop precedence
EP2164210B1 (en) Methods and apparatus for defining a flow control signal
Liu et al. The dynamic nature of Congestion inInfiniBand
Parthasarathy et al. A Numerical Model of a Bulk Flow TCP and its Routing Performance Analysis for the Optical IP Networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant