网络交换机中的缓冲区空间的有效使用的制作方法

文档序号:13075499阅读:372来源:国知局
网络交换机中的缓冲区空间的有效使用的制作方法与工艺

发明领域

本发明大体上涉及包通信网络,特别是涉及部署在这样的网络中的交换机中的缓冲区管理。

背景

用在诸如以太网和infiniband网络的高速包网络中的交换机通常包含缓冲存储器。由交换机通过其接口中的一个所接收的包在等待转移到适当的出接口或者在多播包的情况下可能被转移到多个出接口的同时被暂时储存在缓冲存储器中。虽然缓冲存储器可被静态分配到每个接口,但许多现代的包交换机使用共享存储器,其中缓冲区空间根据流量负载和存储器可用性被动态分配给不同的接口和队列。

概述

在下文中所描述的本发明的实施例提供了用于处理交换机中的缓冲存储器的改进技术和实现这种技术的设备。

因此,根据本发明的实施例,提供了包括多个端口的通信设备,该多个端口被配置为用作入端口和出端口,以用于连接到包数据网络。存储器耦合到端口并被配置为包含分配给入端口的相应的输入缓冲区以及保存数据包以用于经由出端口在多个队列中发送的共享缓冲区。控制逻辑被配置为监控存储器的总体占用水平,并且当通过具有被完全占用的输入缓冲区的入端口接收数据包同时存储器的总体占用水平低于指定的最大值时,被配置为将存储器中的附加空间分配给输入缓冲区,并且将所接收的数据包接受到附加空间中。

通常,控制逻辑被配置为,当总体占用水平高于指定的最大值时,丢弃所接收的数据包。

在一些实施例中,控制逻辑被配置为将预定义的配额应用于可分配给每个输入缓冲区的附加空间,并且被配置为当配额已满时丢弃所接收的数据包。通常,控制逻辑被配置为在通过指定的出端口发送数据包或丢弃包时,释放输入缓冲区以接收另外的数据包。

此外或可替代地,控制逻辑被配置为将通过入端口接收的数据包进行分类并且将该数据包排队到存储器中的多个队列中,以用于通过出端口进行发送。在一些实施例中,控制逻辑被配置为响应于数据包的相应分类,将数据包中的一些转移到共享缓冲区,同时将数据包中的其他数据包保存在输入缓冲区中,直到数据包通过出端口被发送。在公开的实施例中,控制逻辑被配置为在将数据包从输入缓冲区传递到共享缓冲区时,仅在验证满足了存储器占用标准之后才释放输入缓冲区以接收另外的数据包。

在一些实施例中,存储器被配置为使得控制逻辑可以将存储器的任何部分分配给入端口的输入缓冲区。

在一些实施例中,控制逻辑被配置为通过对通过入端口接收的数据包的第一数据量和通过出端口发送的数据包的第二数据量进行计数来监控存储器的总体占用水平。在公开的实施例中,控制逻辑被配置为通过以下操作来监控输入缓冲区的相应的填充水平:当给定的数据包从入端口写入存储器中的位置时递增输入缓冲区计数,并且当给定的数据包被转移到出端口或者被转移到共享缓冲区以及在存储器中分配给输入缓冲区的附加空间不再被占用并且在存储器中足够的空间可用于减小输入缓冲区计数时,递减输入缓冲区计数。

根据本发明的实施例,还提供了用于通信的方法,该方法包括通过网络元件的入端口从包数据网络接收数据包,该网络元件具有被配置为用作入端口和出端口的多个端口。数据包从入端口转移到网络元件中的存储器,该存储器被配置为容纳分配给入端口的相应的输入缓冲区和保存数据包以用于经由出端口在多个队列中发送的共享缓冲区。对存储器的总体占用水平进行监控。当通过具有完全占用的输入缓冲区的入端口接收数据包同时存储器的总体占用水平低于指定的最大值时,存储器中的附加空间被分配给输入缓冲区,并且所接收的数据包被接受到附加空间中。

根据结合附图进行的本发明的实施例的以下详细描述,本发明将得到更完全地理解,其中:

附图简述

图1是根据本发明的实施例示意性图示具有共享存储器的交换机的框图;

图2是根据本发明的实施例示意性示出交换机中的控制逻辑的细节的框图;

图3是根据本发明的实施例示意性图示用于管理交换机中的缓冲区空间的方法的流程图;以及

图4是根据本发明的实施例示意性图示用于在交换机中处理数据包之后释放缓冲区空间的方法的流程图。

实施例的详细描述

即使在具有共享存储器的网络元件(诸如交换机)中,将相应的输入缓冲区分配给每个入端口仍然是常见做法。该输入缓冲区可包括用于每个端口的单独的物理存储器阵列。此外或可替代地,输入缓冲区可包括存储器阵列的一部分,其也用作共享缓冲区。后一种布置例如在2016年1月13日提交的美国专利申请14/994,164中进行描述,该专利申请的公开内容通过引用并入本文。

对输入缓冲区的管理取决于入端口是否应用流控制来限制入端口接收包的速率,以便避免包丢失。在以太网网络中,例如,当来自源的传入包的速率高于交换机可以适应的速率时,交换机可以向包的源发送被称为暂停帧(pauseframe)的链路级流控制消息,以命令源停止发送包。交换机通常保留输入缓冲区,被称为无损空余空间(headroom)(或简称“空余空间”),以容许在发送流控制消息之后可能到达的包。

然而,即使在没有流控制的情况下运行的网络中,最小化包丢失是可取的,以避免由于频繁的重传请求导致的服务质量的下降和带宽损失。输入缓冲区在这方面起着重要的作用。例如,期望的是,分配给每个入端口的输入缓冲区足够大以保存由于包分类时的延迟而可能累积并且由交换机内的控制逻辑转发的包。当这种延迟发生时,太小的输入缓冲区将迫使入端口丢弃包。另一方面,大的输入缓冲区的固定分配能够以共享缓冲区为代价,并且是对交换机中的有限的存储器资源的低效使用。

本文中所描述的本发明的实施例通过实现存储器空间到输入缓冲区的灵活分配来优化网络元件中的输入缓冲。所公开的实施例涉及诸如交换机的通信设备,其中存储器容纳分配给交换机的入端口的相应的输入缓冲区以及保存数据包以用于经由出端口在多个队列中发送的共享缓冲区。(通常,尽管不一定,但所有的交换机端口都被配置为用作入端口和出端口两者。)交换机中的控制逻辑除了监控输入缓冲区和共享缓冲区的特定填充水平外,还会监控存储器的总体占用水平。当通过具有完全占用的输入缓冲区的入端口接收到数据包时,只要存储器的总体占用水平低于预定义的最大值,控制逻辑就能够向输入缓冲区分配存储器中的附加空间。

交换机将接收到的数据包接受到该附加的存储器空间中,从而避免包丢失。存储器的最大总体占用水平通常被选择成使得在大多数情况下,控制逻辑将能够在需要时扩展输入缓冲区,但仅达到以下程度:该扩展不太可能导致包从共享缓冲区被丢弃并且不可能影响其他端口的输入缓冲区分配。因此,当总体占用水平高于预定义的最大值时,控制逻辑将丢弃所接收的数据包,而不是进一步扩展输入缓冲区。出于同样的原因,控制逻辑通常将一定配额应用于可被分配给每个输入缓冲区的附加空间,并且当配额已满时将丢弃所接收的数据包。

图1是根据本发明的实施例示意性图示具有共享存储器26的网络交换机20的框图。交换机20包括多个端口22,该多个端口22经由包数据网络24的链路被连接以与对等装置28、30、......进行通信。交换机20中的存储器26在控制逻辑32的指导下从端口22接收包并将其传递到端口22。(虽然存储器26在图1中被示出为单个物理块,但实际上存储器26可包括多个物理存储器阵列,其由控制逻辑32集中管理作为单个逻辑资源。)为了视觉清晰起见,交换机20的左侧的端口22在图1中被示出为入端口,而交换机右侧的端口22被示出为出端口。然而,实际上,所有交换机端口通常都被配置为作为入端口和出端口两者进行操作,如上所述。

在存储器阵列26内,控制逻辑32分配相应的存储容量以用作用于每个入端口22的输入缓冲区34(标记为ib0、ib1、ib2......),以便保存通过端口从网络24接收的包。阵列26的另一部分被分配为共享缓冲区36,其保存数据包以用于经由出端口22在多个队列中发送。控制逻辑32能够调整不同输入缓冲区34的容量以及输入缓冲区34相对于共享缓冲区36的总累积容量。这些调整可以是静态预分配的形式,根据需要具有额外的分配,这取决于不同的输入缓冲区的相对填充水平(由图1中的阵列26内的阴影示意性地指示),如下文进一步描述的。在一些实施例中,存储器26以这样的方式被配置:控制逻辑32可以以类似于空余空间的分配的方式将存储器阵列的任何物理部分分配给输入缓冲区34,该空余空间的分配在上述美国专利申请14/994,164中进行描述。

为了方便使存储器26内的功能划分可视化,输入缓冲区34和共享缓冲区36在图1中被标记为单独的物理区域。然而,在一些实施例中,控制逻辑32实现一种管理方案,其中这些边界是逻辑的而不是物理的,并且可以在占用管理器40和控制逻辑32的其他功能的控制下动态地移动。在这样的实施例中,例如,控制逻辑32可将包从输入缓冲区34转移到共享缓冲区36,而不会实际上将包从一个存储器位置复制到另一个存储器位置。相反,占用管理器40以及控制逻辑32中的输入缓冲区管理功能和共享缓冲区管理功能只是递增和递减相应的计数器,这些计数器被保存在交换机20内的计数存储器38中,以便跟踪各种存储器分配的实际占用水平。因此,给定的包在存储器26中的物理地址最初可以是输入缓冲区34中的一个的一部分,然后可以转移到共享缓冲区36的一部分并在该包通过出端口发送出去之后,再次返回到输入缓冲区。

可替代地,本实施例的原理在经必要修正后可应用于交换机和其他网络元件,其中输入缓冲区34至少部分地与共享缓冲区36物理分离,使得包数据在从一个缓冲区转移到另一个缓冲区时被物理复制。

虽然为了简单起见,控制逻辑32在图1中被示出为单个集中式功能块,但该逻辑的功能可以分布在与端口22相关联的中央控制器和各个端口逻辑单元中。控制逻辑32的功能可以以由软件或固件驱动的一个或更多个可编程处理单元或者硬连线或可编程逻辑电路或这样的元件的组合来实现。

图2是根据本发明的实施例示意性示出交换机20中的控制逻辑32的细节的框图。为了清晰和具体起见,该图示出了逻辑32的一个可能的实施方式,但其他实施方式在本领域的技术人员阅读本说明书之后对于他们来说将是明显的,并且被认为是在本发明的范围内。虽然逻辑32的元件在图2中示为单独的功能组件,但在实践中,这些组件可在单一芯片或芯片组内的自定义或可编程硬件逻辑中被一起实施。

在经由入端口22a(诸如图1中的端口22中的一个)接收到传入包之后,输入管理器42尝试将包放置在存储器26中被分配给入端口的输入缓冲区34中。如先前所解释的,输入管理器42通过每次包被接收并被写入输入端口34时递增计数存储器38中的计数器并且当包被传递到共享缓冲区36或者被传递到出端口22b时递减计数来跟踪输入缓冲区34的占用。当该计数达到一定限度时,输入管理器42将拒绝接受传入包。

然而,同时,占用管理器40例如通过对通过交换机20的入端口接收的包的数据量和通过出端口发送的包的数据量进行计数来在计数存储器38中保存存储器26的总占用的计数。换句话说,每次包从任何入端口22a写入存储器26时,该计数递增,而每当例如由于包通过任何出端口22b发送或丢弃包而导致释放存储器26中的空间(无论是分配给输入缓冲区34还是分配给共享缓冲区36的)时,该计数递减。因此,即使当输入缓冲区34中的数据的计数已经达到其极限时,占用管理器40也可以将存储器26中的附加空间分配给输入缓冲区34,以便接受包。只要总占用计数低于预定义的最大值,并且到目前为止进行的到该入接口22a的输入缓冲区34的附加分配还没有达到一定的预定义的配额,则占用管理器40将通常进行这种分配。

在输入缓冲区34中的传入包(无论是通过输入管理器42还是在由占用管理器分配的附加空间中)到达时,分类逻辑44将包进行分类并将其排队到存储器26中的多个队列中的一个中,以用于通过一个或多个出端口22b进行发送。为此,分类逻辑44通常对包报头进行解析并生成一个或多个描述符,以用于进一步处理和生成转发指令。基于描述符,处理器56选择通过其发送包的出端口22b(或多个端口)。该描述符也可指示待应用到包的服务质量(qos),即,发送的优先级水平,并可指示对于包报头的修改的任何适用的指令。分类逻辑44将描述符放置在适当的传输队列中,以等待经由指定的出端口22b的发送。通常,控制逻辑32保持用于每个出端口22b的专用传输队列或每出端口多个传输队列,对于每个优先级一个传输队列。

在对给定包的描述符进行排队后,分类逻辑44通知共享缓冲区管理器46相应的包已经排队。根据包分类,共享缓冲区管理器46决定是否将来自输入缓冲区34的包转移到共享缓冲区36。在作出该决定时,共享缓冲区管理器46通常考虑诸如包的优先级水平和/或包所分派的传输队列和/或包被保存在其中的输入缓冲区的其他特征的标准。未被允许进入共享缓冲区36的数据包通常将保留在其分派的输入缓冲区34中,直到它们到达其相应队列的头部并且通过出端口22b发送出去。

与输入管理器42一样,共享缓冲区管理器46通过在包从输入缓冲区34转移时递增计数存储器38中的数据计数,并且在包通过出端口22b发送出去时递减数据计数,来跟踪共享缓冲区36的占用水平。共享缓冲区管理器46在接受来自输入缓冲区34的包后通知占用管理器40可以释放输入缓冲区中的相应空间。然而,在这样做之前,占用管理器40检查它是否已经向该输入缓冲区分配了任何附加空间,并且如果已经分配,则验证已满足条件来释放输入缓冲区中的空间。例如,占用管理器40可以检查存储器26的总体占用水平是否低于预定义的最大值和/或分配给入端口22a的附加的输入缓冲区空间是否不再被占用。当满足这些条件时,占用管理器40例如通过递减计数存储器38中相应的输入缓冲区计数器的值来释放输入缓冲区34中的相应空间,或者发信号通知输入管理器42这样做。

在将包发送到网络24后,出端口22b(或控制逻辑32的另一包发送组件)向占用管理器40发信号通知。响应于该通知,占用管理器40递减其存储器占用的计数。根据包是从输入缓冲区34还是从共享缓冲区36被发送到出端口22b,输入管理器42或共享缓冲区管理器46释放缓冲区空间,使得存储器26中的位置可被覆盖,然后相应的分配可以自由接受另外的包。

图3是根据本发明的实施例示意性图示用于管理交换机20中的缓冲区空间的方法的流程图。这种存储器记账和管理过程通常在任何给定的时间针对并行的多个不同的包发生,通过不同的入端口和出端口进入和离开交换机,并因此使用不同的相应的缓冲区分配。为了清楚起见,参考图2中所示的具体实施方式来描述该方法,但替代实施方式对于本领域的技术人员来说将是明显的并且被认为在本发明的范围内。

当交换机20通过入端口22a接收到传入包时,图3的方法在包进入步骤50处开始。在输入缓冲区检查步骤52处,输入管理器42检查在相应的输入缓冲区34中是否有可用于包的空间。为此,例如,输入管理器检查计数存储器38中的相应的数据计数是否已经达到分配给该输入缓冲区的数据量。如果有可用的空间,则在输入缓冲区准许进入步骤54处,允许入端口22a将包写入输入缓冲区34。分类逻辑44对包报头进行处理,以便在包排队步骤56处对包进行分类并将其分派给适当的传输队列。

在资格检查步骤58处,共享缓冲区管理器46检查包是否有资格转移到共享缓冲区36。如前所述,该决定通常取决于包类型和优先级,以及共享缓冲区中空间的可用性。如果包有资格进行转移,则在缓冲区转移步骤60处,共享缓冲区管理器46将包移动到共享缓冲区36。虽然这种转移可能涉及在存储器26中包从一个位置到另一个位置的物理复制,但在一些实施例中,它仅通过递增计数存储器38中的共享缓冲区计数器而在不物理地移动包数据的情况下来执行。只要满足适当的条件,相应的空间就可以从输入缓冲区34中释放出来,如下文参考图4进一步解释的。否则,如果包没有资格转移到共享缓冲区36,则在包保持步骤62处,其保留在输入缓冲区34中。

当包到达其传输队列的头部时,在包发送步骤64处,控制逻辑32将包传递到出端口22b。响应于包的发送,在缓冲区释放步骤66处,控制逻辑32的组件释放共享缓冲区36或输入缓冲区34中的相应空间。

现在返回到步骤52,当输入管理器42发现其在输入缓冲区34中没有剩下足够的空间来接受包时,占用管理器40在占用检查步骤68处检查在存储器26中是否有可用的附加空间来接受包。由占用管理器40分配附加空间的条件可以根据系统和网络要求而变化。在本实施例中,如上所解释的,当存储器26的总体占用水平(如由计数存储器38中保存的计数所指示的)低于预定义的最大值时,并且只要分配给该输入缓冲区的附加空间不超过预定义的配额,占用管理器40将存储器26中的附加空间分配给输入缓冲区34。例如,如果系统操作员已经向该输入缓冲区分配了一定的原始存储容量,则占用管理器可以分配高达原始容量的一定附加百分比(诸如20%)。配额通常被选择为足够大,以防止在控制逻辑32的处理延迟的情况下的包丢失,而不会显著增加通过其它端口22进入交换机20的包将由于缓冲区溢出而必须被丢弃的可能性。包的服务质量(qos)水平也可以是决定是否为其分配附加空间的一个因素。

如果在步骤68处,占用管理器40能够将附加的缓冲区空间分配给传入包,则在步骤54处,包进入输入缓冲区并且由分类逻辑44进行处理,如上所述。否则,如果附加的缓冲区空间不可用(因为存储器26接近被完全占用,或者因为输入缓冲区34已经达到其配额),则在包丢弃步骤70处,控制逻辑32丢弃包。

图4是根据本发明的实施例示意性图示用于在交换机20中处理数据包之后释放缓冲区空间的方法的流程图。如上面所解释的,该方法当共享缓冲区管理器46在步骤60处将包从输入缓冲区34接受到共享缓冲区36中时被执行并且在下文中参考该步骤进一步解释。当包在步骤64和步骤66处离开交换机20时,发生类似的过程。

在本示例中,当共享缓冲区管理器46决定将来自输入缓冲区34的包接受到共享缓冲区36中时,图4的方法在包接受步骤72处开始。在通知步骤74处,共享缓冲区管理器46通知占用管理器40和输入管理器42其决定。在释放检查步骤76处,占用管理器40在此阶段检查是否满足适用条件以用于向输入管理器42释放缓冲区空间。如前所述,向输入缓冲区释放空间的条件通常在于验证存储器26的总体占用水平是否低于预定义的最大值。占用管理器40还可以验证分配给输入缓冲区34的附加空间是否在预定义的配额内。还可以考虑其他因素,诸如共享缓冲区的具体占用水平和包的qos水平(例如,包是属于有损业务类别还是属于无损业务类别)。

当在步骤76处满足适用条件时,在输入缓冲区释放步骤78处,占用管理器40释放现在已经通过将包转移到共享缓冲区36而被释放的输入缓冲区空间,或者用信号通知输入管理器42这样做。在本示例中,该步骤是通过使计数存储器38中相应的输入缓冲区计数器减去与已被转移的包的大小对应的量来执行。可替代地,在步骤78处的转移和缓冲区计数器的递减可能是对应于多个包或包的一部分的量。否则,当没有满足用于释放输入缓冲区中的空间的条件时,在释放推迟步骤80处,控制逻辑32延迟释放输入缓冲区空间。通常在从存储器26发送附加包之后,占用管理器40将仅在满足适用条件之后允许输入缓冲区空间在步骤78处释放。

虽然为了清晰和完整起见,以上所描述的实施例具体地涉及网络交换机,但本发明的原理可以类似地应用于其他种类的网络交换元件,诸如网桥和路由器,以及应用于具有多个输入和输出的其他种类的网络元件,诸如适当类型的网络接口控制器。因此,将认识到,以上描述的实施例是通过示例的方式引用的,并且本发明不限于上文已具体示出和描述的那些实施例。相反,本发明的范围包括上文所描述的各种特征的组合和子组合以及本领域技术人员在阅读以上描述之后将想到的且未在现有技术中公开的其变型和修改。

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