用于与交换机结构相关的流控制的方法和装置的制造方法_3

文档序号:9567080阅读:来源:国知局
模块214与第三级244的模块216之间的数据通路224。在某些实施例中,举例来说,数据通路224是模块间的光连接器。在其它实施例中,数据通路在中面内。这样的中面可用于将第二级的各模块与第三级的各模块相连。在又一些其他实施例中,两个或更多模块载于单芯片封装之内,并且,数据通路是电迹线。
[0049]在某些实施例中,如果交换机结构200内的模块212、214和216是堵塞的(例如,在模块212、214和216处,缓冲区的可用容量跨过了阈值),则与堵塞的模块212、214和216操作性耦合的流控制模块(图2中未示出)可以向一个或多个源边缘设备(例如,边缘设备182、184和186)发送流控制信号。更特别地,与堵塞的模块212、214和216操作性耦合的该流控制模块,可对堵塞的模块212、214和216的缓冲区内的一个或多个数据包进行采样(例如,进行接收)。该流控制模块可分析数据包,以确定该数据包发送自哪个边缘设备,并向该边缘设备发送流控制信号。在接收自流控制模块的流控制信号的基础上,边缘设备可向数据包所源于的外围处理设备(例如,外围处理设备114、124和134)发送流控制信号(例如,IEEE 802.3x以太网暂停协议、IEEE 802.1Qbb优先级暂停协议、IEEE802.lQau QCN协议和/或诸如此类的协议)。在流控制信号的基础上,该外围处理设备可以中止向边缘设备传送数据包。
[0050]举例来说,图3示出了交换机结构系统300的一部分。所示出的部分交换机结构系统300包括交换机320、与该交换机320操作性耦合的流控制模块330以及多个源设备310、311、312和313。源设备310、311、312和313可以与参照图1所描述和示出的边缘设备182、184和186相类似。因而,如同这里所进一步详细描述的那样,源设备310、311、312和313与交换机320操作性耦合,并被设置为向交换机320发送数据包。
[0051]交换机320可以与参照图2所描述和示出的交换机结构200的模块212、214和216相类似。因而,交换机320可以是与交换机结构200相类似的交换机结构的一部分。虽然图3中未示出,但交换机320还可以包括一个或多个输出口,这些输出口与其它交换机模块和/或目的设备操作性耦合。因而,交换机320可将数据包从源设备310、311、312和313路由到目的设备(图3中未示出)。
[0052]交换机320还包括输出队列350,该输出队列350被设置为,在向其它交换机模块和/或目的设备(图3中未示出)发送接收自源设备310、311、312和313的数据包之前,对该数据包进行缓存。图4详细示出了输出队列350。如图4所示,输出队列350可存储那些等待经由交换机320的输出端口而发送的数据包(例如,DP1-DP114)。输出队列350可以是任何适当的输出队列。在某些实施例中,举例来说,输出队列350如同先入先出(FIFO)缓冲区那样工作。在这样的实施例中,经由输出端口,数据包按照从源设备310、311、312和313的接收顺序而发送。在其它实施例中,数据包可被分派优先级,这样,具有高优先级的数据包移到队列350的前部。在又一些其他实施例中,队列350可被构造和/或分成基多个于优先级的队列。
[0053]流控制模块330与交换机320操作性耦合,并被设置为监视输出队列350的可用容量。在某些实施例中,举例来说,交换机320可周期性地(例如,每0.1秒)向流控制模块330发送表示输出队列350的可用容量的指示符。在其它实施例中,流控制模块330可周期性地向交换机320请求该指示符。如同这里所进一步详细描述的那样,以该指示符为基础,流控制模块330可确定是否应向源设备310、311、312和313发送流控制信号。更特别地,流控制模块330可确定输出队列350的可用容量是否已经跨过和/或低于一个或多个阈值(例如,图3中所示的T1、T2和Τ3)。如同这里所进一步详细描述的那样,流控制模块330可因此向一个或多个源设备310、311、312和313发送流控制信号。
[0054]流控制模块330可以是任何适当的硬件模块和/或软件模块(在硬件中执行),这些模块被设置为监视输出队列350的可用容量和/或被设置为定义和发送流控制信号。在某些实施例中,举例来说,流控制模块330可包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)和/或诸如此类的东西。
[0055]在使用中,源设备310、311、312和313可向交换机320发送数据包。这样的数据包可类似于图5中所示的数据包400。因而,数据包400可包括有效载荷414、源标识符410和目的标识符412。源标识符410可以是发送数据包400的源设备310、311、312和313的标识符。举例来说,如果源设备310向交换机320发送数据包400,则源标识符410可以是源设备310的标识符。类似地,目的标识符412可以是包要送达的目的设备的标识符。在某些实施例中,源标识符410和/或目的标识符412可以是因特网协议(IP)地址、媒体存取控制(MAC)地址、光纤信道标识符(FCID)和/或任何其它适当的标识符。
[0056]当交换机320从一个或多个源设备310、311、312和313接收数据包时,交换机320将数据包存储在输出队列350中。类似地,当输出端口变得可用时,交换机320将数据包从输出队列350中移除,并经由该输出端口发送该数据包。如果,交换机320以大于它经由输出端口发送数据包的速率,从源设备310、311、312和313接收数据包,则将大量的数据包随着时间被存储在输出队列350中,并且,输出队列350的可用容量将减小。
[0057]在某些实施例中,如果输出队列350的可用容量降到第一阈值T1以下但仍大于第二阈值T2,则流控制模块330可以以第一速率对来自输出队列350的数据包进行采样。更特别地,如果输出队列350的可用容量降到该第一阈值T1以下但仍大于该第二阈值T2,则流控制模块330向交换机320发送信号,以请求存储在输出队列350中的数据包。当输出队列350的可用容量保持在该第一阈值T1以下而大于该第二阈值T2时,可周期性地(例如,每0.1秒)以第一速率发送这样的信号。响应于从流控制模块330接收这样的信号,交换机320可从输出队列350向流控制模块330发送数据包(例如,图5中所示的数据包400)。相应地,当输出队列350的可用容量低于该第一阈值T1而大于该第二阈值T2时,交换机320可以以第一速率向流控制模块330发送数据包。在某些实施例中,基于交换机320接收到请求的时间,交换机320可选择发送至流控制模块330的数据包。举例来说,交换机320可发送其在接收到该请求之后由其所接收到的下一数据包。或者说,交换机320可发送其在从流控制模块330接收信号之后立即由其接收到的数据包。在其它实施例中,基于上次保存在队列350中的数据包、保存在队列350中最久的数据包,和/或使用任何其它适当的方法或算法,交换机320可随机地选择数据包。
[0058]类似地,如果输出队列350的可用容量降到第二阈值T2或第三阈值T3以下,则流控制模块330可以停止以第一速率对来自输出队列350的数据包进行采样,而开始以第二速率或第三速率对来自输出队列350的数据包分别进行采样。更特别地,当输出队列350的可用容量低于该第二阈值T2而大于该第三阈值T3时,交换机320可以以第二速率向流控制模块330发送数据包。类似地,当输出队列350的可用容量低于该第三阈值T3时,交换机可以以第三速率向流控制模块330发送数据包。在某些实施例中,第二速率大于第一速率,而第三速率大于第二速率和第一速率。在这样的实施例中,当输出队列350的可用容量下降时,发送给流控制模块330的数据包的数目会增加。
[0059]流控制模块330所接收的数据包可用于定义发送给源设备310、311、312和313的流控制包。更特别地,流控制模块330可对接收的数据包进行分析,以确定该数据包接收自哪个源设备310、311、312和313。举例来说,如果数据包400 (图5中所示)是在流控制模块330处接收的,则流控制模块330可为源标识符410分析数据包400。
[0060]使用源标识符410,流控制模块330可定义发送给由源标识符410所标识的源设备310、311、312和313的流控制包。相应地,流控制模块330接收到的数据包400越多(例如,当输出队列350中的拥塞增加且输出队列350的可用容量下降时),则发送的流控制包就越多。如同这里所进一步详细描述的那样,这提高了流控制模块330所接收的一个或多个数据包将包括向交换机320发送最大数目数据包的源设备310、311、312和313的源标识符的概率。相应地,这提高了这样的源设备将接收到被设置为调节来自该源设备的数据流的流控制信号的概率。
[0061 ] 图6是流控制包500的示意图。流控制包500包括源标识符510、目的标识符520、优先级标识符530和严重性标识符(severity identifier) 540。流控制包500的源标识符510可以是与交换机320相关的标识符。因而,源标识符510标识出现拥塞的交换机(即,交换机320)。流控制包500的目的标识符520可以是流控制模块所接收的数据包400的源标识符410。或者说,因为流控制包500将发送到发送数据包400的源设备310、311、312和313,所以,数据包400的源标识符410被用作流控制包500的目的标识符520。
[0062]流控制包500的优先级标识符530表明该流控制包500在交换机结构系统300中的优先级。在某些实施例中,举例来说,流控制包500的优先级标识符530为“高”。在这样的实施例中,数据包400的优先级标识符可为“低”。相应地,在数据包之前,流控制包通过交换机结构系统300而发送(S卩,当交换机结构系统300内的模块确定下次要发送输出队列内的哪一个包时,流控制包比数据包优先)。在其它实施例中,优先级标识符530的值可基于任何其它的参量,例如,举例来说,数据包500的严重性标识符540、数据包400的源标识符410、数据包400的目的标识符412和/或诸如此类。
[0063]流控制包的严重性标识符540可表明交换机320处的拥塞的严重性。在某些实施例中,举例来说,如果输出队列350的可用容量小于第一阈值T1而大于第二阈值T2,则严重性标识符540可为第一值(例如,“低”)。类似地,如果输出队列350的可用容量小于第二阈值T2而大于第三阈值,或者,如果输出队列350的可用容量小于第三阈值,则严重性标识符540可为第二值(例如,“中”)或第三值(例如,“高”)。
[0064]在某些实施例中,经由带外控制平面连接(图3中未示出),流控制模块330向由数据包400的源标识符410所标识的源设备310、311、312和313发送流控制包500。或者说,在某些实施例中,经由一连接,流控制模块330向源设备310、311、312和313发送流控制包500,其中,该连接不同于发送数据包400至交换机320所通过的那个连接(和/或在不同的连接平面的内)。使用这样的带外连接,可减少源设备310、311、312和313从流控制模块330接收流控制包500所花费的时间。举例来说,这样的连接可用于流控制信号,和/或其它控制平面和/或管理平面信号。因而,流控制模块330与源设备310、311、312和313之间的带外连接可以是低延时连接。
[0065]在其它实施例中,经由数据平面连接,流控制模块330向由数据包400的源标识符410所标识的源设备310、311、312和313发送流控制包500。或者说,在
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1