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

文档序号:9567080阅读:来源:国知局
该数据包正被放置和/或存储在0队列1中。类似地,举另一个例来说,如果输出队列0队列2的可用容量降至阈值以下,则流控制模块730将从0队列2接收数据包,而不是从另一个输出队列720。在这样的例子中,流控制包将被发送至正向模块G2发送数据包的边缘设备650,而该数据包正被放置和/或存储在0队列2中。这允许各流控制包为输出队列720所特有,而不影响边缘设备650发送数据包至其他各具有大于阈值的可用容量的输出队列720。
[0082]在其它实施例中,流控制模块730在总体上监视输出队列720。举例来说,如果输出队列720是单共享存储器缓冲区的一部分,则流控制模块730可监视该单共享存储器缓冲区的可用容量。如果该单共享存储器缓冲区的可用容量降低到阈值以下,则流控制模块730可向该共享存储器缓冲区请求数据包。在某些实施例中,数据包可选自随机输出队列720、存储最大数目数据包的输出队列和/或诸如此类的队列。
[0083]在某些实施例中,流控制模块730可包括存储器(未示出)和/或与其相耦合,所述存储器包含向与第一级632相关的模块F1-FN发送流控制信号的历史。这样的历史可包括该流控制信号的发送时间、中止时间周期和/或任何其它与该流控制信号相关的信息。通过减少和/或除去多余的流控制信号,历史的保存可减少在模块间发送的流控制信号的数目。举例来说,如果流控制模块730将流控制信号发送至与第一级632相关的模块F1-FN,则该历史可保证流控制模块730不会在特定的时间周期内向该与第一级632相关的模块F1-FN发送多余和/或重复的流控制信号。举例来说,流控制模块730可被设置为,每10秒钟只向与第一级632相关的特定的模块F1-FN发送单流控制信号。
[0084]回到图7,举例来说,外围处理设备670可以是计算节点、服务节点、路由器和存储节点,如同这里所进一步详细描述的那样。在某些实施例中,举例来说,外围处理设备670包括服务器、存储设备、网关、工作站和/或诸如此类的东西。使用任何适当的连接,例如,举例来说,光学连接(例如,光缆和光连接器)、电连接(例如,电缆和电连接器)和/或诸如此类的东西,外围处理设备670可与边缘设备650操作性耦合。因而,外围处理设备670被设置为向边缘设备650发送数据(例如,数据包和数据单元等)。
[0085]边缘设备650可以是任何被设置为将外围处理设备670与交换机结构630操作性耦合的设备。在某些实施例中,举例来说,边缘设备650可以是接入交换机、输入/输出模块、架顶式设备和/或诸如此类的东西。仅仅作为图例,边缘设备E1和E2在示图中被显示为源边缘设备,而边缘设备E3在示图中被显示为目的边缘设备。在结构上,边缘设备650(包括E1、E2和E3)可起到源边缘设备和目的边缘设备这两个作用。相应地,边缘设备650可向交换机结构630发送数据,以及从交换机结构630接收数据。
[0086]虽然图7中所示的边缘设备E1是同与第一级632相关的模块F1操作性耦合的,但是,边缘设备E1也可同任意数目的与第一级632相关的模块相耦合。此外,虽然图7中所示的边缘设备E1是同单交换机结构630操作性耦合的,但是,边缘设备E1也可同任意数目的与交换机结构630类似的交换机结构相耦合。在某些实施例中,举例来说,边缘设备E1可同与交换机结构630的第一级相关的模块F1和与第二交换机结构(图7中未不出)的第一级相关的模块都相耦合。在这样的实施例中,边缘设备E1可以向模块F1发送数据,也可以向与第二交换机结构的第一级相关的模块发送数据。
[0087]在某些实施例中,边缘设备650可被设置为准备数据包,以进入交换机结构630。举例来说,边缘设备650可被设置为,在向交换机结构630发送数据包之前,转送、分类和/或修改该数据包的包封装。在某些实施例中,举例来说,边缘设备650向数据包添加源标识符(例如,源MAC地址和IP地址等)、目的标识符(例如,源MAC地址和IP地址等)和/或任何其它信息。这样的信息可用于将数据包路由通过交换机结构630。
[0088]在某些实施例中,边缘设备650可被设置为向外围处理设备670发送流控制信号。举例来说,当边缘设备E1从交换机结构630 (例如,流控制模块730)内的流控制模块接收流控制信号的时候,该边缘设备E1可以向一个或多个外围处理设备S1和S2发送流控制信号。类似地,在边缘设备E1处,当队列和/或缓冲区的可用容量跨过(例如,小于)阈值时,边缘设备E1可向一个或多个外围处理设备S1和S2发送流控制信号。
[0089]在某些实施例中,边缘设备650与外围处理设备670之间的这种流控制信号可以基于任何适当的协议,其中,所述协议不同于交换机结构630内的模块与边缘设备650之间所使用的流控制协议。举例来说,该流控制信号可以基于已知的标准流控制协议,例如,以太网暂停协议(电机及电子工程师协会(IEEE)802.3x)、优先级暂停协议(IEEE802.1Qbb)、量化拥塞通告(QCN)协议(IEEE802.lQau)、量子流控制协议(QFC)以及诸如此类的协议。在其它实施例中,边缘设备650与外围处理设备670之间的这种流控制信号可以基于任何其它适当的协议,其中,所述协议包括交换机结构630内的模块与边缘设备650之间所使用的协议。
[0090]在使用中,举例来说,外围处理设备S1可被设置为向另一个外围处理设备S5发送数据包。举例来说,图7示出向外围处理设备S5发送数据包的外围处理设备S1。任何经由边缘设备650与交换机结构630操作性耦合的外围处理设备670都可将数据包发送至任何其它经由边缘设备650与交换机结构630耦合的外围处理设备670。
[0091]外围处理设备S1可向边缘设备E1发送数据包。在某些实施例中,数据包可包括有效载荷和头。有效载荷可包括发送至外围处理设备S5的数据。头可包括标识信息。在某些实施例中,举例来说,头可至少包括与源和目的外围处理设备670相关的一部分IP五元组。在这样的实施例中,举例来说,头可包括目的外围处理设备MAC地址、目的外围处理设备因特网协议(IP)地址、源外围处理设备MAC地址、源外围处理设备IP地址和/或传输协议标识符。在本例中,目的外围处理设备MAC地址和目的外围处理设备IP地址可与外围处理设备S5相关,而源外围处理设备MAC地址和源外围处理设备IP地址可与外围处理设备S1相关。在某些实施例中,边缘设备E1还可以添加源边缘设备标识符(例如,与E1相关的MAC和/或IP地址)和目的边缘设备标识符(例如,与E3相关的MAC和/或IP地址)。这样的信息可以与将数据包路由通过交换机结构630的查找表相结合使用,所述查找表被示于并且描述于下列专利文献:美国专利申请(申请号N0.12/607, 162题目为“Methods andApparatus Related to a Distributed Switch Fabric”(2009 年 11 月 18 日申请)),上述专利通过引用合并于此。把这样的源和目的特定信息以及将数据包路由通过交换机结构630的查找表相结合使用,可保证源自特定的源并将被发送至特定目的的各数据包将经由相同通路(例如,通过与交换机结构630的各级相关的相同模块)通过交换机结构630而发送。或者说,保持数据包通过交换机结构630从第一边缘设备650发送到第二边缘设备650的顺序。
[0092]使用数据包的头的内所包含的信息,边缘设备E1可以决定向哪个模块F1-FN发送该数据包。在某些实施例中,举例来说,边缘设备E1可使用散列函数来决定向哪个模块F1-FN发送该数据包,所述散列函数使用目的外围处理设备MAC地址、目的外围处理设备IP地址、源外围处理设备MAC地址、源外围处理设备IP地址、目的边缘设备标识符、源边缘标识符和/或传输协议标识符作为输入。
[0093]在与第一级632相关的模块F1接收数据包之后,模块F1决定向与第二级634相关的模块G2发送数据包。在某些实施例中,举例来说,模块F1可使用散列函数,所述散列函数使用目的标识符和/或源标识符作为输入。基于该散列函数的输入,模块F1可以将数据包转送至与第二级634相关的模块G2。类似地,模块G2可以将数据包转送至与第三级636相关的模块H2。使用目的边缘设备标识符,模块H2可以将数据包转送至目的边缘设备E3。使用目的外围处理设备标识符,边缘设备E3可因此将数据包转送至目的外围处理设备S5o
[0094]如以上所讨论的那样,如果拥塞出现在交换机结构630内的模块Fl-FN、G1-GN和H1-HN处,则模块Fl-FN、G1-GN和H1-HN可以将数据包从该模块处的拥塞队列发送至流控制模块。流控制模块可以定义和发送流控制信号至边缘设备E1 (或基于数据包的源的另一边缘设备)。在某些实施例中,边缘设备E1可因此发送流控制信号至外围处理设备S1和/或外围处理设备S2。相应地,在一时间周期内和/或在从流控制模块接收重新开始信号之前,源设备S1和/或S2和/或边缘设备E1可以减少和/或中止向交换机结构630发送数据包。这减少了拥塞队列处所接收的数据包的数目,从而减少了拥塞并增加了该队列处的可用容量。
[0095]图9是根据本发明的另一实施例的流控制信号的发送方法800的流程图。方法800包括,在802处,接收多级交换机的一级的输出队列的可用容量的指示符。这样的指示符可由与该多级交换机的该级的模块相关的流控制模块接收。
[0096]在804处,如果输出队列的可用容量的指示符满足条件,则发送输出队列内数据包请求。该多级交换机的该级的该模块可以选择发送至流控制模块的数据包。在某些实施例中,基于该多级交换机的该级的模块接收请求的时间、基于上次保存在队列中的数据包、基于保存在队列中最久的数据包,和/或使用任何其它适当的方法或算法,该多级交换机的该级的模块可随机地选择数据包。
[0097]在806处,从该多级交换机的该级接收数据包,并且,在808处,分析该数据包,以标识该数据包的源边缘设备的标识符。这样的标识符可被包括在该数据包的头部内。
[0098]在810处,使用第一流控制协议向该数据包的源边缘设备发送流控制信号,这样,该源边缘设备使用第二流控制协议向源外围处理设备发送流控制信号。可在该多级交换机内使用该第一流控制协议,而该第二流控制协议可用于向与该多级交换机操作性耦合的设备(例如,外围处理设备)发送流控制信号。举例来说,第一流控制协议可用于在交换机结构的内模块与边缘设备之间发送流控制信号,而第二流控制协议可用于在边缘设备与外围处理设备之间发送流控制信号。在某些实施例中,该第二流控制协议可以是标准流控制协议,例如,举例来说,以太网暂停协议IEEE 802.3x、优先级暂停协议IEEE 802.lQbb、QCN协议IEEE 802.lQau、QFC协议和/或诸如此类的协议。
[0099]虽然上面描述了各种实施例,但是应当理解为它们仅作为举例而非限制。上述方法中说明某些情况以某顺序发生,但这些情况的顺序可以改变。此外,如果可能,某些情况可以在并行进程中同时进行,或者如上所述依次进行。
[0100]虽然,如上所显示和描述的那样,流控制模块监视输出队列的可用容量,但是,在其它实施例中,交换机模块(例如,交换机320)监视输出队列的可用容量,并且当该输出队列的可用容量小于阈值时,该交换机模块自动地将数据包发送至流控制模块。基于接收的数据包,该流控制模块可以定义和发送流控制信号至边缘设备。
[0101]虽然,如上所显示和描述的那样,从交换机结构内的模块的输出队列发送数据包至流控制模块,但是,在其它实施例中,发送数据包的复本至流控制模块。在这样的实施例中,原数据包保留在将经由输出端口而被发送的输出队列中,而该数据包的复本被用于
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1