具有远程物理端口的网络交换系统中的流量管理的制作方法

文档序号:17291087发布日期:2019-04-03 03:58阅读:182来源:国知局
具有远程物理端口的网络交换系统中的流量管理的制作方法

本公开要求于2016年5月18日提交的名称为“在以太网链路上的带内信道化流控制”的美国临时专利申请第62/338,348号的权益,在此通过引用将其整体并入本文。

本公开总体上涉及诸如网络交换机、网桥、路由器等的网络设备,并且更具体地涉及在网络设备中管理流量。



背景技术:

网络设备经常采用各种流控制机制,例如以减少或消除由于网络设备处的拥塞而导致的数据单元(诸如分组)的丢失。一些网络应用要求处理并且转发大量的数据单元,诸如分组、通信帧等。网络设备可以处理的分组流量的数量部分地受到前面板端口(即,物理端口,网络设备经由其连接到其他设备或网络)的数目的限制。在一些这样的网络应用中,网络设备的级联被用于增加可用于集中式网络设备的前端口的数目。在这种网络应用中,有效控制集中式网络设备与级联网络设备之间的分组流是很重要的。



技术实现要素:

在一个实施例中,一种端口扩展器设备包括:多个前端口,多个前端口被配置为与网络对接;至少一个上行链路端口,至少一个上行链路端口用于与中央交换设备对接;转发处理器,该转发处理器被配置为向中央交换设备转发经由前端口中的多个前端口接收的分组,以用于由中央交换设备处理分组;多个出口队列,多个出口队列用于对由中央交换设备处理并且将经由端口扩展器设备的前端口被传输的分组进行排队,多个出口队列中的相应出口队列具有比中央交换设备中的对应的相应出口队列的队列深度小的队列深度;以及流控制处理器,该流控制处理器被配置为选择性地生成流控制消息,该流控制消息指示端口扩展器设备的多个出口队列中的特定出口队列中的拥塞;以及使得流控制消息被传输到中央交换设备,以控制从中央交换设备到端口扩展器设备的特定出口队列的分组的传输。

在另一实施例中,一种用于控制向端口扩展器设备传输分组的方法包括:在端口扩展器设备处从中央交换设备接收由中央交换设备处理的分组,分组用于经由被设置在端口扩展器设备中的前端口中的多个前端口传输;在端口扩展器设备中,使从中央交换设备接收的分组排队在端口扩展器设备的多个出口队列中的多个出口队列中,相应的一个或多个出口队列对应于端口扩展器设备的相应前端口,多个出口队列中的相应出口队列具有比中央交换设备中的对应的相应出口队列的队列深度小的队列深度;选择性地生成流控制消息,该流控制消息指示端口扩展器设备的多个出口队列中的特定出口队列中的拥塞;以及使得流控制消息被传输到中央交换设备,以控制从中央交换设备到端口扩展器设备的特定出口队列的分组的传输。

在又一实施例中,一种中央交换设备包括:至少一个端口,至少一个端口被配置为与端口扩展器设备对接,该端口扩展器设备包括用于与网络对接的多个前端口;分组处理器,该分组处理器被配置为处理从至少一个端口扩展器设备接收的分组,分组由至少一个端口扩展器设备经由至少一个端口扩展器设备的多个前端口中的多个前端口所接收;多个出口队列,多个出口队列用于存储经处理的分组,经处理的分组将被转发到至少一个端口扩展器设备,以用于经由至少一个端口扩展器设备的多个前端口中的多个前端口传输经处理的分组,出口队列中的相应多个出口队列具有比被设置在端口扩展器设备中的对应的相应出口队列的队列深度大的队列深度,以及流控制处理器,该流控制处理器被配置为响应于从端口扩展器设备接收的流控制消息,控制从中央交换设备的出口队列中的特定出口队列到端口扩展器设备的分组的传输,以防止与中央交换设备的出口队列中的特定出口队列相对应的端口扩展器设备的出口队列的溢出。

在又一实施例中,一种用于控制从中央交换设备传输分组的方法包括:由中央交换设备从耦合到中央交换设备的至少一个端口扩展器设备接收、由至少一个端口扩展器设备经由至少一个端口扩展器设备的多个前端口中的多个前端口接收的分组;由中央交换设备的分组处理器处理从至少一个端口扩展器设备接收的分组;由分组处理器使经处理的分组排队在中央交换设备的多个出口队列中,中央交换设备的出口队列中的该出口队列对应于至少一个端口扩展器设备的出口队列,中央交换设备的出口队列中的相应多个出口队列具有比至少一个端口扩展器设备的对应的相应出口队列的队列深度大的队列深度,以及由中央交换设备的流控制处理器响应于从至少一个端口扩展器设备中的端口扩展器设备接收的流控制消息,来控制从中央交换机设备的出口队列中的特定出口队列传输分组,以防止端口扩展器设备中的对应的出口队列的溢出。

在又一实施例中,一种端口扩展器设备包括:多个前端口,多个前端口用于与网络对接;至少一个上行链路端口,至少一个上行链路端口用于与中央交换设备对接;转发处理器,该转发处理器被配置为向中央交换设备转发经由前端口中的多个前端口接收的分组,以用于由中央交换设备处理分组;以及流控制处理器,该流控制处理器被配置为接收来自中央交换设备的第一流控制消息,第一流控制消息指示中央交换设备与端口扩展器设备之间的多个虚拟信道中的特定虚拟信道中的拥塞,第一流控制消息对应于支持第一信道数目的第一流控制协议;基于第一流控制消息生成符合第二流控制协议的第二流控制消息,第二流控制协议支持小于第一信道数目的第二信道数目,以及经由多个前端口中的一个或多个前端口传输第二流控制消息,以控制到端口扩展器设备的、与特定虚拟信道相对应的分组的传输。

在又一实施例中,一种流控制的方法包括:由端口扩展器设备的流控制引擎接收来自中央交换设备的第一流控制消息,第一流控制消息指示在中央交换设备与端口扩展器设备之间的多个虚拟信道中的特定虚拟信道中的拥塞,第一流控制消息对应于支持第一信道数目的第一流控制协议,由流控制引擎基于第一流控制消息来生成符合第二流控制协议的第二流控制消息,第二流控制协议支持小于第一信道数目的第二信道数目,以及由流控制引擎使得第二流控制消息经由多个前端口中的一个或多个前端口被传输,以控制到端口扩展器设备的、与特定虚拟信道相对应的分组的传输。

在又一实施例中,一种交换系统包括:一个或多个端口扩展器设备,相应端口扩展器设备包括:多个前端口,多个前端口与计算机网络对接,以及多个第一队列,多个第一队列的相应子集对应于多个前端口中的相应前端口;以及交换设备,该交换设备耦合到至少一个端口扩展器设备,并且被配置为处理经由端口扩展器设备的前端口中的多个前端口接收的分组,以至少确定经由其传输分组的第一端口扩展器设备的前端口中的其他多个前端口或者第二端口扩展器设备的前端口中的多个前端口,交换设备包括:多个第二队列,交换设备的相应第二队列对应于端口扩展器设备的相应第一队列,其中交换设备处的第二队列的缓冲区深度大于端口扩展器设备处的对应的第一队列的缓冲区;以及流控制处理器,该流控制处理器被配置为选择性地控制从交换设备的第二队列中的多个第二队列到一个或多个端口扩展器设备的第一队列中的对应的多个第一队列的分组的传输,以防止端口扩展器设备的对应的第一队列处的分组的溢出。

附图说明

图1是根据实施例的包括一个或多个端口扩展器设备和中央交换设备的示例交换系统的框图。

图2是根据实施例的包括一个或多个端口扩展器设备和多个中央交换设备的示例交换系统的框图。

图3是根据实施例的与图1的系统或图2的系统一起使用的端口扩展器设备的框图。

图4是根据实施例的与图1的系统或图2的系统一起使用的中央交换设备的框图。

图5是根据实施例的用于控制被传输到端口扩展器设备的分组的传输的示例方法的流程图。

图6是根据实施例的用于控制从中央交换设备传输的分组的传输的示例方法的流程图。

图7是根据实施例的用于控制对应于在中央交换设备与端口扩展器设备之间的多个虚拟信道中的特定虚拟信道的分组的传输的示例方法的流程图。

具体实施方式

本文在交换系统中的流控制的上下文中描述了实施例,该交换系统包括集中式交换设备和端口扩展器设备。然而,应当注意,根据本文的公开和教导,用于流控制的类似方法和装置可以用在其他合适的和被配置为在计算机网络中进行操作的设备中。仅作为示例,下面在集中式交换设备与端口扩展器设备之间的标准以太网链路上的信道化流控制的上下文中描述了在标准以太网链路上的信道化流控制。然而,用于标准以太网链路上的信道化流控制的类似方法和装置可以用在其他通用网络架构中。通常,所描述的流控制方法不限于用于在集中式交换设备与端口扩展器设备之间的流控制,而是也可以用在其他合适的网络架构中。

在本文描述的各种实施例中,网络交换系统包括耦合到一个或多个中央交换设备的端口的一个或多个端口扩展器设备。在一个实施例中,一个或多个端口扩展器设备包括被配置为与计算机网络对接的前物理端口。在一个实施例中,包括多个物理前端口的端口扩展器设备经由中央交换设备的多个下行链路物理端口(其数目少于端口扩展器设备的物理前端口的数目)耦合到中央交换设备。仅作为示例,在一个实施例中,包括八个物理前端口的端口扩展器设备经由中央交换设备的仅一个或两个下行链路物理端口耦合到中央交换设备,从而扩展可用于中央交换设备以与计算机网络对接的物理前端口的数目。在一个实施例中,与中央交换设备相比,一个或多个端口扩展器设备是具有减少的分组处理和出口缓冲能力的相对无源的低成本设备。例如,一个或多个端口扩展器设备通常将经由端口扩展器设备的物理前端口接收的分组传递到中央交换设备,而不由端口扩展器设备处理分组,或者端口扩展器设备对分组处理最少。中央交换设备处理从一个或多个端口扩展器设备接收的分组,以至少针对从一个或多个端口扩展器设备接收的分组做出转发决定,以确定分组经由其被传输的一个或多个端口扩展器设备的一个或多个物理前端口。在一个实施例中,中央交换设备确定分组要经由其被传输的中央交换设备的下行链路端口,以便分组被转发到特定的端口扩展器设备,并且还确定分组经由其被传输的特定端口扩展器设备的一个物理前端口或多个物理前端口。在一些实施例中,由中央交换设备对分组的处理还包括执行其他处理操作,诸如确定分组所对应的流、确定分组所对应的流的优先级,确定分组是单播分组还是多播分组、如果分组是多播分组则执行分组复制、确定分组是否应该被丢弃、确定分组是否应该被镜像以用于进一步的分析等。在一个实施例中,在完成中央交换设备对分组的处理时,中央交换设备向一个或多个端口扩展器设备提供经处理的分组,该端口扩展器设备包括分组要经由其被传输的一个或多个物理前端口,以用于随后经由一个或多个所确定的物理前端口传输分组。

在一个实施例中,一个或多个端口扩展器设备中的每个端口扩展器设备维护出口队列,这些出口队列用于对端口扩展器设备从中央交换设备接收的分组进行排队,以用于随后从端口扩展器设备传输分组。在一个实施例中,一个或多个端口扩展器设备中的每个端口扩展器设备为端口扩展器设备的每个前端口维护相应的出口队列集合,其中出口队列集合中的相应出口队列对应于(例如,由端口扩展器设备支持的)相应的优先级。在一个实施例中,为了有效地管理从中央交换设备到一个或多个端口扩展器设备的分组的流,中央交换设备维护出口队列以对经处理的分组进行排队,经处理的分组去往一个或多个端口扩展器设备但尚未被调度以从出口队列中出队并且转发到一个或多个端口扩展器设备中的多个端口扩展器设备,或者不能被立即转发到一个或多个端口扩展器设备中的多个端口扩展器设备,例如由于一个或多个端口扩展器设备中的出口队列中的拥塞。在一个实施例中,中央交换设备维护多个出口队列(其数目对应于与一个或多个端口扩展器设备中的出口队列的数目)。因此,在一个实施例中,由中央交换设备维护的出口队列的数目通常超过中央交换设备的物理下行链路端口的数目。在一个实施例中,在中央交换设备处维护大量的出口队列实质上创建了大量的虚拟信道,这些虚拟信道用于经由中央交换设备的相对较少数目的下行链路端口将分组从中央交换设备传输到一个或多个端口扩展器设备。

在一个实施例中,端口扩展器设备中的相应出口队列具有在中央交换设备中的对应的相应出口队列。在一个实施例中,中央交换设备中的相应出口队列具有比端口扩展器设备中的对应的相应出口队列明显深的队列深度。中央交换设备中的相应出口队列用作端口扩展器设备中的对应的相应队列的扩展。在至少一些实施例中,在端口扩展器设备中维护相对较浅的出口队列减少了端口扩展器设备中出口队列所需的缓冲区空间量,从而降低了端口扩展器设备的功率消耗和成本和/或增加了可以在端口扩展器设备中被支持的物理前端口的数目。这样,因为在一个实施例中,因为出口排队主要由中央交换设备的较深的出口队列处理,并且端口扩展器设备具有最小的出口排队能力和降低的成本,在各种实施例中,通过添加一个或多个低成本端口扩展器设备,以低成本实现了向交换系统添加附加的物理前端口。

在一个实施例中,一个或多个端口扩展器设备和中央交换设备实现信道化流控制,以减轻端口扩展器设备中的相对较浅的出口队列的敏感性和/或防止一个或多个端口扩展器设备中的相对浅的出口队列的溢出。在一个实施例中,信道化流控制允许单独控制从中央交换设备中的特定出口队列到一个或多个端口扩展器设备中的对应的特定出口队列的分组的传输。因此,例如,如果端口扩展器设备中的特定出口队列变得拥塞,则端口扩展器设备向中央交换设备指示拥塞的特定出口队列,并且中央交换设备控制分组的传输,例如通过暂停从中央交换设备中的、与端口扩展器设备中的特定出口队列相对应的出口队列传输分组或者降低从中央交换设备中的、与端口扩展器设备中的特定出口队列相对应的出口队列传输分组的速率,而不阻止或以其他方式负面影响从中央交换设备中的其他出口队列到端口扩展器设备传输分组。例如,在一个实施例中,如果端口扩展器设备中与端口扩展器设备的特定前物理端口相对应的出口队列和特定优先级正在经历拥塞,则端口扩展器设备向中央交换设备指示拥塞的出口队列,并且中央交换设备阻止向拥塞的出口队列传输分组,而不阻止向与端口扩展器设备的相同前物理端口相对应的端口扩展器设备中的其他出口队列和其他优先级传输分组,并且不阻止向与端口扩展器设备的其他前物理端口相对应的出口队列传输分组,从而防止端口扩展器设备的出口队列中的命运共享。例如,在一个实施例中,因为向端口扩展器设备中的非拥塞的出口队列传输分组不会由于端口扩展器设备中的出口队列的其他多个出口队列中的拥塞受到负面影响(例如,未被阻止),因此防止了端口扩展器设备中的出口队列的多个出口队列中的命运共享,因为非拥塞的出口队列不与拥塞的出口队列共享命运。因此,在至少一些实施例中,在一个或多个端口扩展器设备中的相对浅的出口队列中的特定的多个出口队列中拥塞时,从中央交换设备到一个或多个端口扩展器设备的分组的信道化流控制防止了一个或多个端口扩展器设备中的拥塞出口队列的溢出,而不阻止向一个或多个端口扩展器设备中的非拥塞出口队列传输分组,并且防止在一个或多个端口扩展器设备中的不同出口队列之间的命运共享。此外,在一个实施例中,中央交换设备中的相对较深的出口队列减少或消除了要经由一个或多个端口扩展器设备的物理前端口发生的分组的丢弃,而不需要附加的缓冲区空间用于在一个或多个端口扩展器设备处对分组进行排队。

图1是根据实施例的被配置为实现本文描述的各种流控制技术的示例交换系统100的框图。在一个实施例中,交换系统100例如是数据中心的一部分。在另一实施例中,交换系统100是计算机网络的节点。交换系统100包括耦合到中央交换设备104的一个或多个端口扩展器设备102。在一个实施例中,例如,一个或多个端口扩展器设备102中的每个端口扩展器设备包括:用于将端口扩展器设备102耦合到网络的物理前端口110的集合、网络上的网络设备、诸如服务器的数据中心设备、存储设备、计算设备等。一个或多个端口扩展器设备102中的每个端口扩展器设备还包括,用于将端口扩展器设备102耦合到中央交换设备104的一个或多个上行链路端口112。在一个实施例中,中央交换设备104包括一个或多个下行链路端口114和一个或多个上行链路端口116。在一个实施例中,至少一些下行链路端口114经由相应的链路115耦合到相应的端口扩展器设备102的上行链路端口112。在一个实施例中,相应链路115符合标准化通信协议。例如,在一个实施例中,相应链路115是标准以太网链路。例如,中央交换设备的一个或多个上行链路端口116耦合到其他网络设备,诸如数据中心中的上行链路网络设备(例如,核心交换机)。在一个实施例中,中央交换设备104是相对“有源的”交换设备,其被配置为处理由端口扩展器设备102提供给中央交换设备104的分组,而端口扩展器设备102是相对“无源的”设备,其通常不执行分组的处理,或者执行分组的最小处理,并且通常简单地在中央交换设备104与端口扩展器设备的物理前端口110之间传送分组。因此,在一个实施例中,端口扩展器设备102仅为中央交换设备104的下行链路端口114提供端口扩展或端口扇出(fan-out)功能。

继续参考图1,端口扩展器设备102包括相应的转发处理器120、相应的流控制引擎122、以及出口队列124的相应集合。通常,端口扩展器设备102(例如,端口扩展器设备102-1)被配置为经由端口扩展器设备102的前端口110接收分组,并且向端口扩展器设备102的转发处理器120(例如,转发处理器120-1)提供分组。在一个实施例中,转发处理器120最低限度地处理接收的分组,并且将经最底限度地处理的分组转发到中央交换设备104,以用于分组的进一步处理。在一个实施例中,例如,由转发处理器120执行的最小处理包括向分组的报头添加一个或多个标签,该报头将允许中央交换设备104确定分组经由端口扩展器设备102的前端口110中的哪个前端口被接收。

端口扩展器设备102还被配置为经由端口扩展器设备102的上行链路端口112接收由中央交换设备104处理的分组。在一个实施例中,端口扩展器设备102被配置为经由基于由中央交换设备104对分组的处理而确定的端口110中的多个端口来传输由中央交换设备104处理的分组。在操作中,当端口扩展器设备从中央交换设备104接收到经处理的分组时,端口扩展器设备102的转发处理器120将分组放置在与前端口110相对应的出口队列124中,分组将经由前端口110被传输。在一个实施例中,出口队列124包括出口队列124的多个子集,出口队列124的相应子集对应于端口扩展器设备的相应前端口110。在一个实施例中,出口队列124的每个子集包括多个队列124,其中出口队列124的子集中的相应出口队列124对应于由端口扩展器设备102支持的相应的优先级(诸如服务质量(qos)水平)。因此,例如,在端口扩展器设备支持八个不同优先级(例如,八个不同的qos水平)的实施例中,出口队列124包括分别与前端口110相对应的队列124的多个子集,队列124的每个特定子集具有八个队列124用于对要经由特定端口110被传输的不同优先级的分组进行排队。在一个实施例中,转发处理器120基于分组的报头的一个或多个标签,确定分组要经由其被传输的前端口110和与前端口110相对应的、其中放置分组的特定队列124。在一个实施例中,在将分组放置在确定的出口队列124中之前,转发处理器120从分组的报头移除一个或多个标签。

在一个实施例中,特定出口队列124在某些情况下可能变得拥塞,例如由于耦合到特定出口队列124所对应的端口110的链路上的拥塞,或者响应于从耦合到出口队列124所对应的端口110的下游网络设备接收的流控制消息,暂时中止从特定出口队列124传输分组。为了在不阻止去往出口队列124的其他出口队列的分组的情况下减轻队列124中的特定队列中的拥塞,端口扩展器设备102的流控制引擎122监测出口队列124中的拥塞,并且选择性地生成流控制消息以指示出口队列124中的特定出口队列中的拥塞。在一个实施例中,流控制引擎122使得流控制消息被传输到中央交换设备104,以控制从中央交换设备104去往特定出口队列124的分组的传输,而不会对分组到非拥塞出口队列124的传输产生负面影响。

现在转向中央交换设备104,在一个实施例中,中央交换设备104包括分组处理器130、流控制引擎132和多个出口队列134。在一个实施例中,中央交换设备104的分组处理器130被配置为处理经由端口114从端口扩展器设备102接收的分组(或者与经由端口114接收的分组相关联的分组描述符)。在一个实施例中,分组处理器130被配置为处理从端口扩展器设备102接收的分组,以至少针对分组做出转发决定,以确定分组经由其将被传输的一个或多个端口扩展器设备102的一个或多个前端口110。在一个实施例中,分组处理器130耦合到转发数据库(未示出),该转发数据库存储与地址(例如,媒体访问控制(mac)地址、因特网协议(ip)地址等)相关联的转发信息(例如,端口信息)和/或其他合适的信息。在一个实施例中,分组处理器130被配置为利用来自分组报头的信息来查找转发数据库中的指示分组将被转发到的一个或多个前端口110的信息。基于针对分组的转发决定,分组处理器130使分组入队到一个或多个出口队列134中,以用于随后向包括被确定用于从一个或多个端口扩展器设备102传输分组的前端口110的一个或多个端口扩展器设备102传输分组。

在一个实施例中,出口队列134包括与中央交换设备104的相应下行链路端口114相对应的出口队列134的相应集合。在一个实施例中,出口队列134的相应集合包括与耦合到中央交换设备104的对应的下行链路端口114的端口扩展器设备102的相应前端口110相对应的出口队列134的相应子集。在一个实施例中,出口队列134的相应子集包括与耦合到中央交换设备104的对应的下行链路端口114的端口扩展器设备102的相应出口队列124相对应的相应出口队列134。在一个实施例中,端口中央交换设备104的相应出口队列134对应于端口扩展器设备102的相应出口队列124。因此,在一个实施例中,针对特定端口114,中央交换设备通常维护多个出口队列134(其数目对应于耦合到特定端口114的端口扩展器设备102的物理端口110的数目与由交换系统100支持的不同分组优先级的数目的乘积)。维护中央交换设备处的出口队列实质上创建了大量的虚拟信道,以用于将分组从中央交换设备传输到耦合到中央交换设备104的端口114的端口扩展器设备。在一个实施例中,“虚拟信道”对应于由中央交换设备(例如,中央交换设备104)中的对应的出口队列以及耦合到中央交换设备的端口扩展器设备(例如,端口扩展器设备)中的出口队列虚拟地创建的信道。因此,例如,在一个实施例中,中央交换设备104与端口扩展器设备(例如,端口扩展器设备102-1)之间的虚拟信道对应于中央交换设备中的出口队列134和端口扩展器设备中的对应的出口队列(例如,对应的出口队列124-1)。

在一个实施例中,来自出口队列134的分组通常被传送到端口扩展器设备102的对应的出口队列124。在一个实施例中,中央交换设备的出口队列134具有比端口扩展器设备的对应的出口队列124的队列深度大的队列深度。例如,在一个实施例中,出口队列134比对应的出口队列124深至少25%。作为另一示例,在一些其他实施例中,出口队列134比对应的出口队列124深50%、深75%、深90%等。在其他实施例中,出口队列134比对应的队列124深其他合适的量。在一个实施例中,端口扩展器设备102与中央交换设备104之间的信道化流控制被实现为防止端口扩展器设备102的相对较浅的出口队列124中的溢出和/或减轻中央交换设备104的出口队列134中的拥塞。

在一个实施例中,中央交换设备104的流控制引擎132被配置为接收由端口扩展器设备102的流控制引擎122生成的流控制消息,流控制消息指示端口扩展器设备102的特定出口队列124中的拥塞,并且响应于该流控制消息,控制来自中央交换设备104的对应的出口队列308的分组的传输,以防止端口扩展器设备102中的特定出口队列124的溢出。在一个实施例中,流控制引擎132还被配置为检测中央交换设备104的出口队列134中的特定多个出口队列中的拥塞,并且生成指示中央交换设备104的出口队列134中的特定出口队列中的拥塞的流控制消息。在一个实施例中,指示中央交换设备104的出口队列134中的特定出口队列中的拥塞的流控制消息被提供给端口扩展器设备102,使得流控制可以被传播到耦合到端口扩展器设备102的下游网络设备。在一个实施例中,将流控制传播到耦合到端口扩展器设备102的下游网络设备,控制分组(例如,与特定优先级相对应的分组)到端口扩展器设备103的传输,从而减少了要由中央交换设备104处理的分组的数目(例如,特定优先级的分组),并且减轻了中央交换设备104的特定出口队列134中的拥塞。

在一个实施例中,从中央交换设备104传输到端口扩展器设备102的流控制消息(反之亦然)带内地被传输,其中在相同的链路115(例如,以太网链路)上将分组从中央交换设备104传输到端口扩展器设备102(反之亦然),在该链路115上将分组从中央交换设备104传输到端口扩展器设备102(反之亦然)。在一个实施例中,从中央交换设备104被传输到端口扩展器设备102的流控制消息(反之亦然)通常符合用于带内流控制(例如,在以太网链路上的流控制)的第一流控制协议,该带内流控制支持实现对从中央交换设备104的相对大量的出口队列134到端口扩展器设备102的对应的出口队列124的分组的单独流控制所需的相对大量的虚拟信道。在一个实施例中,端口扩展器设备102另外支持第二流控制协议,以用于与耦合到端口扩展器设备102的端口110的网络设备交互。在一个实施例中,第二流控制协议是信道化的每优先级流控制协议,该协议支持与由端口扩展器设备102和交换系统100所支持的优先级(例如,qos水平)的数目相对应的相对较少数目的虚拟信道。在一个实施例中,第一流控制协议是量化拥塞通知(qcn)协议或者支持相对大量信道的另一合适的流控制协议。在一个实施例中,第一流控制协议是ieee802.1qau拥塞通知消息(cnm)流控制协议。在另一实施例中,第一流控制协议是支持相对大量的信道或连接的另一合适的流控制协议。在一个实施例中,第二流控制协议是优先流控制(pfc)协议或者支持相对较少数目的信道的另一合适的流控制协议。在一个实施例中,第二流控制协议是定义链路级流控制的ieee802.1x协议或者定义优先级水平流控制的ieee801qbb协议。在另一实施例中,第二流控制协议是支持相对较少数目的信道的另一种合适的流控制协议。

在一个实施例中,中央交换设备104的流控制引擎132被配置为,根据第二流控制协议来响应从端口扩展器设备102接收的流控制消息(即使该流控制消息通常符合第一流控制协议)。例如,与由第一流控制协议定义的流控制响应相比,第二流控制协议定义了更适合于从中央交换设备104到端口扩展器设备102的分组的信道化流控制的流控制响应。在一个实施例中,根据第二流控制协议的响应需要不包括在符合第一流控制协议的流控制消息中的一些信息。在一个实施例中,流控制引擎132基于被包括在流控制消息中的信息来确定未被包括在流控制消息中的信息。作为示例,在一个实施例中,第一流控制协议通过指示拥塞队列的填充水平来操作,并且根据第一流控制协议对流控制消息的响应涉及基于拥塞队列的填充水平调制去往拥塞队列的分组的流速。在另一方面,根据第二流控制协议对流控制消息的响应涉及而不是调制去往拥塞队列的分组的流速,而是暂停去往拥塞队列的分组的传输一段时间。在该实施例中,流控制引擎132基于在从端口扩展器设备102接收的流控制消息中指示的拥塞出口队列124的填充水平,确定暂停向端口扩展器设备102的拥塞出口队列124传输分组的时间量,并且在所确定的时间量内暂停从中央交换设备104的对应的出口队列134向端口扩展器设备102的拥塞出口队列124传输分组。

在一个实施例中,端口扩展器设备102的流控制引擎122被配置为从中央交换设备104接收通常符合第一流控制协议的第一流控制消息,该流控制消息指示中央交换设备104的特定出口队列134中的拥塞,并且将第一流控制消息转换为通常符合第二流控制协议的第二流控制消息。然后,第二流控制消息经由前端口110中的一个或多个前端口传输到耦合到一个或多个前端口110的一个或多个网络设备,以暂停来自一个或多个网络设备的、与对应于拥塞出口队列134的优先级相关联的分组的传输,以减轻拥塞出口队列134中的拥塞。类似地,在一个实施例中,端口扩展器设备102的流控制引擎122被配置为接收第一流控制消息,该第一流控制消息经由端口扩展器设备102的前端口110从耦合到端口扩展器设备102的前端口110的网络设备被接收,该第一流控制消息通常符合第二流控制协议,并且通常指示出口队列124,端口扩展器设备102将暂停从该出口队列124到耦合到端口扩展器设备102的前端口110的网络设备的分组的传输。在一个实施例中,流控制引擎122被配置为将第一流控制消息转换为通常符合第一流控制协议的第二流控制消息。然后,在一个实施例中,第二流控制消息从端口扩展器设备102传输到中央交换设备104,以暂停去往在第一流控制消息中被标识的出口队列124的分组的传输。

图2是根据实施例的包括一个或多个端口扩展器设备202和多个中央交换设备204的示例交换系统200的框图。在一个实施例中,端口扩展器设备202与图1的端口扩展器设备102相同或相似。类似地,在一个实施例中,中央交换设备204与图1的中央交换设备104相同或相似。在其他实施例中,端口扩展器设备202与图1的端口扩展器设备101不同和/或中央交换设备204与图1的中央交换设备104不同。

在一个实施例中,一个或多个端口扩展器设备202中的每个端口扩展器设备耦合到多个中央交换设备204中的一个或多个中央交换设备。在该配置中,在各种实施例中,多个中央交换设备204向交换系统200提供弹性和/或改进交换系统200的性能。例如,在一个实施例中,多个交换设备204通过提供故障切换能力(其中在中央交换设备204发生故障的情况下,操作从中央交换设备204切换到其他一个或多个中央交换设备204)来向交换系统200提供弹性。作为另一示例,在一个实施例中,多个交换设备204通过增加由端口扩展器设备204接收的分组的处理速率来改进性能。

图3是根据实施例的端口扩展器设备300的框图。在一个实施例中,端口扩展器设备300对应于图1的端口扩展器设备102或者图2的端口扩展器设备202。端口扩展器设备300包括多个前端口302,用于将扩展器设备302耦合到数据中心中的网络、网络设备(诸如交换机、路由器、网桥等)、端点(诸如服务器、存储设备等)等。端口扩展器设备300还包括上行链路端口304,用于将端口扩展器设备300耦合到中央交换设备。端口扩展器设备300被配置为经由前端口302中的多个前端口来接收分组并且将所接收的分组经由端口304转发到耦合到端口扩展器设备300的中央交换设备。端口扩展器设备300被进一步配置为经由端口304接收由耦合到端口扩展器设备300的中央交换设备处理的分组,并且将分组转发到前端口302中的合适的多个前端口,以用于经由前端口302传输分组。

在一个实施例中,端口扩展器设备300包括转发处理器305、队列缓冲器306以及流控制引擎307。队列缓冲器306保持多个出口队列308,用于对将经由前端口302传输的分组进行排队。在一个实施例中,出口队列308包括出口队列308的多个集合310,在一个实施例中,出口队列308的相应集合310对应于相应前端口302。出口队列308的每个集合310包括分别对应于由端口扩展器设备300支持的不同优先级的多个出口队列308。在图3的示例实施例中,端口扩展器设备300支持多达八个不同的优先级,并且出口队列308的每个集合310包括分别对应于八个分组优先级中的多个分组优先级的多达八个出口队列308。在操作中,当端口扩展器设备300从中央交换设备接收分组时,端口扩展器设备300的转发处理器305基于分组的报头来确定该分组将被转发到的特定端口302和对应于特定端口302的出口队列308的集合310的、放置分组的特定出口队列308。然后,在一个实施例中,该分组被放置在出口队列308中,以用于随后经由端口302传输分组。

在一个实施例中,端口扩展器设备300包括队列调度器309,该队列调度器309被配置为调度来自出口队列308的分组的传输。在各种实施例中,队列调度器309根据合适的仲裁方案为与端口扩展器设备300的特定前端口302相对应的出口队列308提供服务。在一些实施例中,端口扩展器设备300省略了队列调度器309,而是依赖由端口扩展器设备300耦合到的中央交换设备实现的调度。

在一个实施例中,流控制引擎307管理端口扩展器设备300中的流量,以防止出口队列308中的溢出。例如,在一个实施例中,当由端口扩展器设备300接收到分组的速率高于可以从端口扩展器设备300传输分组的速率时,出口队列308中的拥塞发生。作为另一示例,在一个实施例中,当端口扩展器设备300响应于端口扩展器设备300从耦合到端口302的下游设备接收的流控制消息,暂停从出口队列308传输分组时,与端口302相对应的出口队列308中的拥塞发生。在一个实施例中,流控制引擎307实现信道化流控制,以控制从耦合到端口扩展器设备300的中央交换设备去往端口扩展器设备300的出口队列308中的特定出口队列的分组的传输。在至少一些实施例中,由流控制引擎307实现的信道化流控制防止了端口扩展器设备300中的出口队列308之间的命运共享,或者阻止了由于队列308中的其它多个队列中的拥塞,阻止了指向非拥塞队列308的分组的传输。

在一个实施例中,为了实现信道化流控制,流控制引擎307通常根据第一流控制协议操作,该第一流控制协议支持在端口扩展器设备300与端口扩展器设备300耦合到的中央交换设备之间的相对大量的虚拟信道。在一个实施例中,第一流控制协议支持比端口扩展设备300的端口302的数目和/或由端口扩展器设备300支持的优先级的数目更多数目的信道。在一个实施例中,第一流控制协议对应于标准化流控制协议(诸如,ieee802.1qau拥塞通知消息(cnm)流控制协议),该标准化流控制协议支持比端口扩展设备300的端口302的数目和/或由端口扩展器设备300支持的优先级的数目更多数目的信道。在另一实施例中,第一流控制协议不对应于标准化流控制协议。

在一个实施例中,在操作中,流控制引擎307检测出口队列308中的拥塞,并且生成指示在出口队列308中检测到的拥塞的拥塞通知消息。在一个实施例中,流控制引擎307被配置为每当使分组入队到出口队列308中时检测该出口队列308的水平,并且基于出口队列308的水平的测量来生成拥塞通知消息。例如,在一个实施例中,如果队列的经测量的水平超过预定阈值,则流控制引擎307生成拥塞通知消息。在另一实施例中,流控制处理器生成拥塞通知消息的概率取决于(例如,与其成比例)队列的经测量的填充水平。在一个实施例中,由流控制引擎307生成的拥塞通知消息包括标识针对其生成拥塞通知消息的特定出口队列308的信息。例如,拥塞通知消息包括标识出口队列308所对应的端口302的标签(诸如分布式交换架构(dsa)标签),以及标识队列308所对应的优先级水平的队列标识符。在该实施例中,dsa标签标识特定出口队列308是其一部分的集合310,并且队列标识符标识优先级、并且因此标识所标识的集合310内的特定出口队列308。

在一个实施例中,由流控制引擎307生成的拥塞通知消息经由端口304传输到耦合到端口304的中央交换设备。在其中端口扩展器设备300耦合到多个中央交换设备的实施例中,诸如在图2的交换系统中,由流控制引擎307生成的拥塞通知消息被传输到传输分组的多个中央交换设备中的、由流控制引擎307基于其生成拥塞通知消息的特定一个中央交换设备。在端口扩展器设备300耦合到多个中央交换设备的另一实施例中,由流控制引擎310生成的拥塞通知消息被传输到多个中央交换设备中的每个中央交换设备。在一个实施例中,从端口扩展器设备300接收拥塞通知消息的中央交换设备,基于拥塞通知消息中的信息来标识拥塞通知消息所对应的出口队列308,并且暂停来自中央交换设备中的、与端口扩展器设备300的经标识的出口队列308相对应的出口队列的分组的传输。

在一个实施例中,端口扩展器设备300还包括粗流控制引擎320。粗流控制引擎320被配置为生成阻止流控制消息,并且将阻止流控制消息传输到中央交换设备以暂时阻止所有分组到端口扩展器设备300的传输,或者对应于特定优先级的所有分组到端口扩展器设备300的传输。在一个实施例中,粗流控制引擎320监测共同可用于出口队列308的整个缓冲区空间,并且当出口队列308共同可用的整个缓冲区空间几乎被出口队列308用完时,触发流控制消息。

图4是根据一个实施例的中央交换设备400的框图。在一个实施例中,中央交换设备400对应于图1的中央交换设备104,或者图2的每个中央交换设备204。在一个实施例中,中央交换设备400被配置为耦合到至少一个端口扩展器设备,诸如图3的端口扩展器设备300。中央交换设备400包括与中央交换设备400的下行链路端口404相对应的出口队列408的集合。在一个实施例中,相应出口队列408对应于耦合到中央交换设备的下行链路端口404的端口扩展器设备的相应出口队列。例如,在一个实施例中,图3的端口扩展器设备300耦合到中央交换设备400的下行链路端口404,并且相应的出口队列408对应于图3的端口扩展器设备300的相应出口队列308。尽管在图4中仅示出了出口队列408的一个集合和仅一个下行链路端口404,但是在一些实施例中,中央交换设备400通常包括出口队列408的多个集合和多个下行链路端口404。

在一个实施例中,中央交换设备400包括耦合到转发数据库412的分组处理器410、多播分组复制引擎414、拥塞避免引擎416、队列调度器418、流控制引擎420和粗流控制引擎422。在一些实施例中,尽管多播分组复制引擎414、拥塞避免引擎416、队列调度器418、流控制引擎420和全局流控制引擎422在图4中示出为与分组处理器410分开,但是这些引擎中的至少一些被包括在分组处理器410中。例如,在一个实施例中,多播分组复制引擎414和拥塞避免引擎416被包括在分组处理器410中。

在一个实施例中,分组处理器410被配置为处理由中央交换设备从耦合到中央交换设备400的至少一个端口扩展器设备接收的分组。在一个实施例中,分组处理器410对分组的处理包括至少确定要向其转发分组的至少一个端口扩展器设备的一个或多个前端口。在一个实施例中,分组处理器410对分组的处理还包括确定分组所对应的流、确定分组所对应的流的优先级、确定分组是单播分组还是多播分组、如果分组是多播分组则执行分组复制、确定分组是否应该被丢弃、确定分组是否应该被镜像以用于进一步的分析等。在各种实施例中,中央交换设备400利用虚拟端口和/或扩展端口(e-port)来促进对经由耦合到中央交换设备400的至少一个端口扩展器设备的物理前端口被接收的分组的处理。例如,中央交换设备400将虚拟端口和/或e-port分配给分组,以标识至少一个端口扩展器设备的、分组经由其被接收和/或分组将经由其被传输的物理前端口,并且使用分配的虚拟端口和/或e-ports来处理分组。在一些实施例中,由中央交换设备400使用的、用于处理经由至少一个扩展器设备的前物理端口接收的分组的各种技术被描述在于2011年6月2日提交的、名称为“用于网络的集中式分组处理器”、现在是美国专利第9,258,216号的美国专利申请第13/151,927号中,以及在于2011年6月2日提交的、名称为“用于网络的集中式分组处理器中的接口映射”、现在是美国专利第9,258,219号的美国专利申请第13/151,948号中,这两篇文献的全部内容在此通过引用并入本文。

由分组处理器410处理的分组被放置在出口队列408中。在一个实施例中,分组处理器410基于对分组将被转发到的一个或多个前端口110以及分组所对应的流的优先级的确定,在一个实施例中,确定在其中放置分组的一个特定出口队列,或者多个特定出口队列。在实一个施例中,多播分组复制引擎414复制多播分组以生成多播分组的相应副本,以用于经由至少一个端口扩展器设备的相应前端口的传输。在一个实施例中,拥塞避免引擎416实现合适的拥塞避免技术(例如,尾部丢弃)以防止出口队列408中的溢出。例如,在一个实施例中,拥塞避免引擎416检测出口队列408的填充水平,并且当出口队列408的填充水平接近出口队列408的最大填充水平时,拥塞避免引擎416丢弃去往出口队列408的一个或多个分组以防止出口队列408中的溢出。

在一个实施例中,队列调度器418被配置为调度来自出口队列408的分组的传输。在各种实施例中,队列调度器418以严格优先级和/或以加权循环(wrr)优先级和/或以整形亏损加权循环(sdwrr)为与耦合到端口404的端口扩展器设备的特定前端口相对应的出口队列408提供服务。在一个实施例中,流控制引擎420被配置为接收由耦合到中央交换设备100的至少一个端口扩展器设备提供的流控制消息,并且响应于该流控制消息来控制来自特定出口队列408的分组的传输,以防止至少一个端口扩展器设备中的对应的出口队列的溢出。在一个实施例中,当流控制引擎420接收由端口扩展器设备提供的流控制消息时,流控制消息基于被包括在流控制消息中的信息,确定流控制消息所对应的信道以及相应的所对应的特定出口队列408。例如,流控制引擎420基于被包括在流控制消息中的:(ii)指示端口扩展器设备的物理前端口的信息和(ii)指示与端口扩展器设备中的物理前端口相对应的拥塞出口队列的优先级的信息,确定信道。在一个实施例中,流控制引擎420基于被包括在流控制消息中的qcn拥塞点标识符(cpid)和dsa标签来确定信道。在另一实施例中,流控制消息包括其他合适的信息,诸如表示流控制消息所对应的信道的标准以太网分组信息,并且流控制引擎420基于该其他合适的信息来附加地或备选地确定信道。例如,在一个实施例中,流控制消息包括以太网分组虚拟局域网(valn)标识符(vid),并且流控制引擎420至少部分基于vid来确定信道。作为另一示例,流控制引擎420包括如由ieee802.1br协议定义的e-tag,并且流控制引擎420至少部分基于e-tag来确定信道。

此外,在一个实施例中,流控制引擎420基于被包括在流控制消息的队列填充水平指示,确定用于暂停从特定出口队列408传输分组的时间量。在另一实施例中,流控制消息指示拥塞队列的队列拥塞水平而不是队列填充水平,并且流控制引擎420基于流控制消息中指示的队列拥塞水平来确定暂停时间。例如,在一个实施例中,流控制消息包括如ieee802.1qau协议中所定义的确定的量化反馈(qfb)值,并且流控制引擎420基于被包括在流控制消息中的qfb值来确定暂停时间。在一个实施例中,为了确定暂停时间,流控制引擎420访问暂停时间映射表424,以将流控制消息中指示的队列填充水平值或者队列拥塞水平映射到暂停时间值,该暂停时间值指示用于暂停从特定出口队列408传输分组的时间量。在一个实施例中,流控制引擎420在所确定的时间量内引起来自特定队列408的分组的传输。

在一个实施例中,流控制引擎420还被配置为监测出口队列408的填充水平,并且选择性地生成指示接近溢出的特定出口队列408的流控制消息。流控制引擎420被配置为使得与特定出口队列408相对应的流控制消息被传输到至少一个端口扩展器设备,使得流控制可以被传播到至少一个端口扩展器设备下游的一个或多个网络设备。在一个实施例中,流控制引擎120生成流控制消息,该流控制消息指示拥塞出口队列408所对应的特定端口扩展器设备中的特定物理前端口,并且使得流控制消息被传输到该特定端口扩展器设备。在一个实施例中,所指示的物理前端口是基于其触发流控制消息的分组的源端口。在一个实施例中,特定端口扩展器设备接收流控制消息,并且经由流控制消息中指示的物理前端口将流控制传播到耦合到流控制消息中指示的物理前端口的下游设备。在至少一些实施例中,流控制向下游网络设备的传播指导下游网络设备暂停向至少一个端口扩展器设备传输分组(或者与特定优先级相对应的分组),从而实现分组的无损传输。

在一个实施例中,中央交换设备400的粗流控制引擎422与如上文参考图3所描述的端口扩展器设备300的全局流控制320类似地操作。粗流控制引擎422被配置为生成阻止流控制消息,并且将阻止流控制消息传输到端口扩展器设备,以暂时阻止来自端口扩展器设备的所有分组的传输,或者暂时阻止来自端口扩展器设备300的、与特定优先级相对应的分组的传输。在一个实施例中,端口扩展器设备向至少一个端口扩展器设备下游的一个或多个网络设备传播流控制,暂时阻止从一个或多个下游网络设备到该至少一个端口扩展器设备的所有分组的传输,或者暂时阻止到该至少一个端口扩展器设备的、与特定优先级相对应的所有分组的传输。在一个实施例中,全局流控制引擎422监测共同可用于出口队列408的整个缓冲区空间,并且当共同可用于出口队列408的整个缓冲区空间几乎被出口队列408用完时,触发流控制消息。

图5是根据实施例的用于控制被传输到端口扩展器设备的分组的传输的示例方法500的流程图。在一个实施例中,方法500由端口扩展器设备来实现。例如,在一个实施例中,图1的端口扩展器设备102中的一个或多个端口扩展器设备中的每个端口扩展器设备被配置为实现方法500。作为另一示例,图2的端口扩展器设备202中的一个或多个端口扩展器设备中的每个端口扩展器设备被配置为实现方法500。在另一实施例中,方法500由与图1的端口扩展器设备102和图2的端口扩展器设备202不同的端口扩展器设备实现。类似地,在一些实施例中,图1的端口扩展器设备102或图2的端口扩展器设备202实现与方法500不同的方法,以控制分组到端口扩展器设备的出口队列的传输。注意,在一些实施例中,虽然本文在控制被传输到端口扩展器设备的分组的传输的上下文中描述了方法500,但是方法500通常由除端口扩展器设备之外的网络设备(例如,交换机、路由器等)以及除包括(多个)中央交换设备和(多个)端口扩展器设备的交换系统之外的通用网络架构中用于流控制。

在框502处,端口扩展器设备接收由交换设备处理的分组。在框504处,端口扩展器设备使在框502处接收的分组入队到端口扩展器设备的出口队列中。在一个实施例中,端口扩展器设备基于被包括在分组的报头中的信息(例如,一个或多个标签)来确定端口扩展器设备的、分组将经由其从该端口扩展器设备被传输的特定前端口和/或将要放置分组的出口队列,以用于随后经由该端口扩展器设备的特定前端口传输。

在框506处,生成流控制消息。在一个实施例中,在框506处生成的流控制消息指示端口扩展器设备的特定出口队列中的拥塞。在一个实施例中,在框506处生成的流控制消息包括标识端口扩展器设备中的特定拥塞出口队列的信息。

在框508处,在块506处生成的流控制消息被传输到中央交换设备,以控制从中央交换设备去往端口扩展器设备中的特定出口队列的分组的传输。在一个实施例中,在框506处生成的流控制消息被传输到中央交换设备,以指导中央交换设备暂停去往端口扩展器设备中的特定出口队列的分组的传输。

图6是根据实施例的用于控制去往端口扩展器设备的出口队列的分组的传输的示例方法600的流程图。在一个实施例中,方法600由中央交换设备实现。例如,图1的中央交换设备104被配置为实现方法600以控制去往端口扩展器设备102的出口队列的分组的传输。作为另一示例,图2的中央交换设备204中的每个中央交换设备被配置为实现方法600以控制去往端口扩展器设备102的出口队列的分组的传输。在另一实施例中,方法600由与图1的中央交换设备104或图2的中央交换设备204不同的中央交换设备实现,以控制去往端口扩展器设备的出口队列的分组的传输。类似地,在一些实施例中,图1的中央交换设备104或图2的中央交换设备204实现与方法600不同的方法,以控制去往端口扩展器设备的出口队列的分组的传输。

在框602处,中央交换设备从至少一个端口扩展器设备接收分组。在一个实施例中,在框602处接收的分组已经由该至少一个端口扩展器设备经由该至少一个端口扩展器设备的多个前端口中的多个前端口被接收。

在框604处,处理在框602处由中央交换设备接收的分组。在框604处理分组包括确定向其转发分组的、至少一个端口扩展器设备的一个或多个前端口。

在框606处,在框604处处理的分组被入队到中央交换设备的出口队列中。在一个实施例中,中央交换设备的出口队列对应于与至少一个端口扩展器设备的前端口相关联的该至少一个端口扩展器设备中的出口队列。在一个实施例中,中央交换设备的出口队列对应于该至少一个端口扩展器设备的前端口和由端口扩展器设备的前端口支持的优先级。在一个实施例中,中央交换设备的出口队列对应于至少一个端口扩展器设备中的出口队列。在一个实施例中,至少一个端口扩展器设备中的出口队列与至少一个端口扩展器设备的前端口相关联。

在框608处,响应于从端口扩展器设备接收的流控制消息,中央交换设备控制来自中央交换设备的出口队列的分组的传输,以防止端口扩展器设备中的对应的队列的溢出。例如,在一个实施例中,响应于从端口扩展器设备接收的流控制消息,中央交换设备暂停来自中央交换设备的特定出口队列的分组的传输,以防止端口扩展器设备中对应的出口队列的溢出。例如,在一个实施例中,以上面关于图4描述的方式,中央交换设备的流控制引擎(诸如图4的流控制引擎420)暂停来自中央交换设备的特定出口队列的分组的传输,以防止端口扩展器设备中的对应的出口队列的溢出。在其他实施例中,利用其他合适的流控制引擎和/或其他合适的暂停机制。

图7是根据实施例的用于控制在中央交换设备与端口扩展器设备之间的、多个虚拟信道中的特定虚拟信道中的分组的传输的示例方法700的流程图。在一个实施例中,方法700由端口扩展器设备实现。例如,在一个实施例中,图1的端口扩展器设备102中的一个或多个端口扩展器设备中的每个端口扩展器设备被配置为实现方法700。作为另一示例,在一个实施例中,图2的端口扩展器设备202中的一个或多个端口扩展器设备中的每个端口扩展器设备被配置为实现方法700。在另一实施例中,方法700由与图1的端口扩展器设备102和图2的端口扩展器设备202不同的端口扩展器设备实现。类似地,图1的端口扩展器设备102或图2的端口扩展器设备202实现与方法700不同的方法,以控制在中央交换设备与端口扩展器设备之间的多个虚拟信道中的特定虚拟信道中的分组的传输。

在框702处,端口扩展器设备从中央交换设备接收第一流控制消息。第一流控制消息指示从中央交换设备到端口扩展器设备的多个虚拟信道中的特定虚拟信道中的拥塞。在一个实施例中,第一流控制消息符合支持第一虚拟信道数目的第一流控制协议。例如,在一个实施例中,第一流控制消息符合支持相对大量的虚拟信道的量化拥塞通知协议。

在框704处,端口扩展器设备基于在框702处接收的第一流控制消息来生成第二流控制消息。第二流控制消息符合与第一流控制协议不同的第二流控制协议。在一个实施例中,第二流控制协议支持小于第一流控制协议支持的第一信道数目的第二信道数目。例如,在一个实施例中,第二流控制消息符合支持优先级流控制(pfc)协议,该协议支持与端口扩展器设备支持的优先级的数目相对应的相对较小数目的虚拟信道。

在框706处,端口扩展器设备经由端口扩展器设备的一个或多个前端口向耦合到端口扩展器设备的一个或多个前端口的一个或多个网络设备传输在块704处生成的第二流控制消息。在一个实施例中,第二流控制消息用于控制从一个或多个网络设备去往中央交换设备与端口扩展器设备之间的特定虚拟信道的分组的传输。例如,在一个实施例中,第二流控制消息指导一个或多个网络设备暂停向端口扩展器设备传输特定优先级的分组。

在一个实施例中,一种端口扩展器设备包括:多个前端口,多个前端口被配置为与网络对接;至少一个上行链路端口,至少一个上行链路端口用于与中央交换设备对接;转发处理器,该转发处理器被配置为向中央交换设备转发经由前端口中的多个前端口接收的分组,以用于由中央交换设备处理分组;多个出口队列,多个出口队列用于对由中央交换设备处理并且经由端口扩展器设备的前端口被传输的分组进行排队,多个出口队列中的相应出口队列具有比中央交换设备中的对应的相应出口队列的队列深度小的队列深度;以及流控制处理器,该流控制处理器被配置为选择性地生成流控制消息,该流控制消息指示端口扩展器设备的多个出口队列中的特定出口队列中的拥塞;以及使得流控制消息被传输到中央交换设备,以控制从中央交换设备到端口扩展器设备的特定出口队列的分组的传输。

在其他实施例中,端口扩展器设备进一步包括以下特征中的一个或多个特征的任何合适的组合。

转发处理器被配置为:通过使得分组经由至少一个上行链路链接被传输到中央交换设备,来向中央交换设备转发分组。

流控制处理器被配置为:使用分组经由其被传输到中央交换机的至少一个上行链路链接,使得流控制消息带内地被传输到中央交换设备。

流控制处理器被配置为:当新的分组被放置在特定出口队列中时,检测特定出口队列的填充水平,以及选择性地生成流控制消息以包括特定出口队列的填充水平的指示。

流控制处理器被配置为:当新的分组被放置在特定出口队列中时,检测特定出口队列的拥塞水平,以及选择性地生成流控制消息以包括特定出口队列的拥塞水平的指示。

多个出口队列包括多个出口队列的多个子集,多个出口队列的相应子集对应于多个前端口中的相应前端口,并且其中定义多个出口队列的子集的相应出口队列对应于由端口扩展器设备支持的相应分组优先级。

流控制处理器被配置为生成流控制消息以包括:(i)指示特定出口队列所对应的前端口的信息,以及(ii)指示特定出口队列所对应的特定分组优先级的信息。

在另一实施例中,一种用于控制向端口扩展器设备传输分组的方法,包括:在端口扩展器设备处从中央交换设备接收由中央交换设备处理的分组,分组用于经由被设置在端口扩展器设备中的前端口中的多个前端口传输;在端口扩展器设备中,使从中央交换设备接收的分组排队在端口扩展器设备的多个出口队列中的多个出口队列中,相应的一个或多个出口队列对应于端口扩展器设备的相应前端口,多个出口队列中的相应出口队列具有比中央交换设备中的对应的相应出口队列的队列深度小的队列深度;选择性地生成流控制消息,该流控制消息指示端口扩展器设备的多个出口队列中的特定出口队列中的拥塞;以及使得流控制消息被传输到中央交换机设备,以控制从中央交换设备到端口扩展器设备的特定出口队列的分组的传输。

在其他实施例中,该方法包括以下特征中的一个或多个特征的任何合适的组合。

该方法进一步包括:由端口扩展器设备经由端口扩展器设备的前端口接收分组,以及由端口扩展器设备的转发处理器,经由端口扩展器设备的一个或多个上行链路端口,向中央交换设备转发接收的分组,以用于由中央交换设备来处理分组。

使得流控制消息被传输到中央交换设备包括:使得流控制消息经由端口扩展器设备的至少一个上行链路端口带内地被传输到中央交换设备。

该方法进一步包括:当新的分组被放置在特定出口队列中时,检测特定出口队列的填充水平,以及选择性地生成流控制消息以包括特定出口队列的填充水平的指示。

该方法进一步包括:当新的分组被放置在特定出口队列中时,检测特定出口队列的拥塞水平,以及选择性地生成流控制消息以包括特定出口队列的拥塞水平的指示。

多个出口队列包括出口队列的多个子集,多个出口队列的相应子集对应于多个前端口中的相应前端口,并且其中定义多个出口队列的子集的相应出口队列对应于由端口扩展器设备支持的相应分组优先级。

生成流控制消息包括生成流控制消息以包括:(i)指示特定出口队列所对应的前端口的信息,以及(ii)指示特定出口队列所对应的特定分组优先级的信息。

在又一实施例中,中央交换设备包括:至少一个端口,至少一个端口被配置为与端口扩展器设备对接,端口扩展器设备包括用于与网络对接的多个前端口;分组处理器,该分组处理器被配置为处理从至少一个端口扩展器设备接收的分组,分组由至少一个端口扩展器设备经由至少一个端口扩展器设备的多个前端口中的多个前端口所接收;多个出口队列,多个出口队列用于存储经处理的分组,经处理的分组将被转发到至少一个端口扩展器设备,以用于经由至少一个端口扩展器设备的多个前端口中的多个前端口传输经处理的分组,出口队列中的相应多个出口队列具有比被设置在端口扩展器设备中的对应的相应出口队列的队列深度大的队列深度,以及流控制处理器,该流控制处理器被配置为响应于从端口扩展器设备接收的流控制消息,控制从中央交换设备的出口队列中的特定出口队列到端口扩展器设备的分组的传输,以防止与中央交换设备的出口队列中的特定出口队列相对应的端口扩展器设备的出口队列的溢出。

在其他实施例中,网络设备进一步包括以下特征中的一个或多个特征的任何合适的组合。

流控制消息指示端口扩展器设备中的特定出口队列的填充水平,并且其中流控制处理器被配置为响应于流控制消息,暂停从与端口扩展器设备中的特定出口队列相对应的中央交换设备中的出口队列传输分组。

流控制处理器被进一步配置为,基于在流控制消息中指示的填充水平,确定用于暂停从中央交换设备中的对应的出口队列传输分组的时间量。

在又一实施例中,一种用于控制从中央交换设备传输分组的方法包括:由中央交换设备从耦合到中央交换设备的至少一个端口扩展器设备接收、由至少一个端口扩展器设备经由至少一个端口扩展器设备的多个前端口中的多个前端口接收的分组;由中央交换设备的分组处理器处理从至少一个端口扩展器设备接收的分组;由分组处理器使经处理的分组排队在中央交换设备的多个出口队列中,中央交换设备的出口队列中的出口队列对应于至少一个端口扩展器设备的出口队列,中央交换设备的出口队列中的相应多个出口队列具有比至少一个端口扩展器设备的对应的相应出口队列的队列深度大的队列深度,以及由中央交换设备的流控制处理器响应于从至少一个端口扩展器设备的端口扩展器设备接收的流控制消息,来控制从中央交换设备的出口队列中的特定出口队列传输分组,以防止端口扩展器设备中的对应的出口队列的溢出。

在其他实施例中,该方法包括以下特征中的一个或多个特征的任何合适的组合。

流控制消息指示端口扩展器设备中的特定出口队列的填充水平,并且其中响应于流控制消息来控制从与端口扩展器设备中的特定出口队列相对应的中央交换设备中的出口队列传输分组包括:暂停从与端口扩展器设备中的特定出口队列相对应的中央交换设备中的出口队列传输分组。

该方法进一步包括,基于在流控制消息中指示的填充水平,确定用于暂停从中央交换设备中的对应的出口队列传输分组的时间量。

在又一实施例中,一种端口扩展器设备包括:多个前端口,多个前端口用于与网络对接;至少一个上行链路端口,至少一个上行链路端口用于与中央交换设备对接;转发处理器,该转发处理器被配置为向中央交换设备转发经由前端口中的多个前端口接收的分组,以用于由中央交换设备处理分组;以及流控制处理器,该流控制处理器被配置为接收来自中央交换设备的第一流控制消息,该第一流控制消息指示在中央交换设备与端口扩展器设备之间的多个虚拟信道中的特定虚拟信道中的拥塞,第一流控制消息对应于支持第一信道数目的第一流控制协议;基于第一流控制消息生成符合第二流控制协议的第二流控制消息,该第二流控制协议支持小于第一信道数目的的第二信道数目,以及经由多个前端口中的一个或多个前端口传输第二流控制消息,以控制到端口扩展器设备的、与特定虚拟信道相对应的分组的传输。

在其他实施例中,端口扩展器设备进一步包括以下特征中的一个或多个特征的任何合适的组合。

虚拟信道的相应子集对应于端口扩展器设备的相应前端口。

特定虚拟信道由端口扩展器设备中的出口队列和中央交换设备中的对应的出口队列来定义。

在又一实施例中,一种流控制的方法包括:由端口扩展器设备的流控制引擎接收来自中央交换设备的第一流控制消息,该第一流控制消息指示在中央交换设备与端口扩展器设备之间的多个虚拟信道中的特定虚拟信道中的拥塞,该第一流控制消息对应于支持第一信道数目的第一流控制协议,由流控制引擎基于第一流控制消息来生成符合第二流控制协议的第二流控制消息,该第二流控制协议支持小于第一信道数目的第二信道数目,以及由流控制引擎使得第二流控制消息经由多个前端口中的一个或多个前端口被传输,以控制到端口扩展器设备的、与特定虚拟信道相对应的分组的传输。

在其他实施例中,该方法包括以下特征中的一个或多个特征的任何合适的组合。

虚拟信道的相应子集对应于端口扩展器设备的相应前端口。

特定虚拟信道由端口扩展器设备中的出口队列和所述中央交换设备中的对应的出口队列来定义。

在又一实施例中,一种交换系统包括:一个或多个端口扩展器设备,相应端口扩展器设备包括:多个前端口,多个前端口与计算机网络对接,以及多个第一队列,多个第一队列的相应子集对应于多个前端口中的相应前端口;以及交换设备,交换设备耦合到至少一个端口扩展器设备,并且被配置为处理经由端口扩展器设备的前端口中的多个前端口接收的分组,以至少确定经由其传输分组的第一端口扩展器设备的前端口中的其他多个前端口或者第二端口扩展器设备的前端口中的多个前端口,该交换设备包括:多个第二队列,交换设备的相应第二队列对应于端口扩展器设备的相应第一队列,其中交换设备处的第二队列的缓冲区深度大于端口扩展器设备处的对应的第一队列的缓冲区;以及流控制处理器,该流控制处理器被配置为选择性地控制从交换设备的第二队列中的多个第二队列到一个或多个端口扩展器设备的第一队列中的对应的多个第一队列的分组的传输,以防止端口扩展器设备的对应的第一队列处的分组的溢出。

在其他实施例中,交换系统进一步包括以下特征中的一个或多个特征的任何合适的组合。

流控制处理器被配置为,响应于接收到来自端口扩展器设备的带内流控制消息,控制从交换设备的第二队列中的多个第二队列到至少一个端口扩展器设备的第一队列中的对应的多个第一队列的分组的传输。

流控制处理器被配置为,通过暂时暂停指向一个或多个端口扩展器设备的第一队列中的特定第一队列的分组的传输,来控制从交换设备的第二队列中的特定第二队列到一个或多个端口扩展器设备的第一队列中的对应的特定第一队列的分组的传输。

可以利用硬件、执行固件指令的处理器、执行软件指令的处理器、或者其任何组合来实现上文描述的各种框、操作、和技术中的至少一些。

当以硬件实现时,硬件可以包括分离组件、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)等中的一个或多个。

当利用执行软件或固件指令的处理器实现时,软件或固件指令可以被存储在任何计算机可读存储器中,诸如磁盘、光盘或其他存储介质、ram或rom或闪存、处理器、硬盘驱动器、光盘驱动器、磁带驱动器等中。软件或固件指令可以包括机器可读指令,当该机器可读指令由一个或多个处理器执行时,使得一个或多个处理器执行各种动作。

尽管已经参考具体示例描述了本发明,但是这些示例仅用于说明而不是对本发明的限制,在不脱离本发明的范围的情况下,可以对所公开的实施例进行改变、添加和/或删除。例如,上文描述的方法或技术的一个或多个部分可以以不同的顺序(或同时)执行,并且仍然实现期望的结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1