CN117157958A - 基于预测分析的缓冲区管理方法和系统 - Google Patents

基于预测分析的缓冲区管理方法和系统 Download PDF

Info

Publication number
CN117157958A
CN117157958A CN202280026905.9A CN202280026905A CN117157958A CN 117157958 A CN117157958 A CN 117157958A CN 202280026905 A CN202280026905 A CN 202280026905A CN 117157958 A CN117157958 A CN 117157958A
Authority
CN
China
Prior art keywords
traffic
predicted
time
queue
class
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.)
Pending
Application number
CN202280026905.9A
Other languages
English (en)
Inventor
优素福·本-埃兹拉
亚尼夫·本-海姆
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.)
Xin Guang Electronics Co ltd
Original Assignee
Xin Guang Electronics Co ltd
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 Xin Guang Electronics Co ltd filed Critical Xin Guang Electronics Co ltd
Publication of CN117157958A publication Critical patent/CN117157958A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/127Avoiding congestion; Recovering from congestion by using congestion prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

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

Abstract

一种用于管理通信网络和计算机程序产品中的流量的方法,该方法包括:接收将由交换机通过端口发送的多个流量单元,该端口具有相关联的队列;从多个流量单元中提取特征;将特征提供给第一引擎以获得多个流量单元的类别;使用与该类别的流量模型相关联的第二引擎,获得针对该类别在未来时刻以及针对传输多个流量单元的交换机的物理位置的预测流量容量的指示;分配与预测流量容量的指示相对应的大小的队列;将至少一个流量单元分配给缓冲区。

Description

基于预测分析的缓冲区管理方法和系统
相关申请的交叉引用
本申请是2022年5月12日提交的美国临时专利申请号为63/187,916,题为“基于自由格式文本描述的相关对象片段搜索”的延续申请并主张其权益,在此通过引用将其全部内容纳入本申请中而不引起否认。
技术领域
本公开总体涉及缓冲区管理,具体地,涉及用于数据中心内和数据中心之间的缓冲区管理的方法和系统。
背景技术
数据中心用于处理由不断增长的可用应用程序所创建的工作负载,因为最终用户数量也在不断增长,并且整个数据在云中转换。设计数据中心网络的挑战对于各种云应用程序的性能起着重要作用。数据中心运营商在将可用带宽用于各种类型的多个应用程序时面临着极端的挑战,每个应用程序都有自己的需求,例如可能随着时间的推移而变化的不同的吞吐量,服务质量(QoS)需求,可接受的延迟等。
通常,如果通信信道或传输接收端负载达到其满容量,则无论是在发送之前还是在接收之后,诸如数据包之类的流量单元可以存储在缓冲区中,直到信道或目的地能够容纳和处理它们。然而,当缓冲区已满时,数据包可能会丢失,这可能会导致严重的问题。
发明内容
所公开主题的一个示例性实施例是一种用于管理通信网络中的流量的方法,包括:接收将由交换机通过端口发送的多个流量单元,该端口具有相关联的队列;从多个流量单元中提取特征;将特征提供给第一引擎以获得多个流量单元的类别;使用与该类别的流量模型相关联的第二引擎,获得针对该类别在未来时刻以及针对传输多个流量单元的交换机的物理位置的预测流量容量的指示;分配与预测流量容量的指示相对应的大小的队列;将至少一个流量单元分配给缓冲区。在该方法中,流量单元是数据包。该方法还可以包括:接收要传输的初始多个流量单元;从该初始多个流量单元中的每一个中提取特征以获得多个特征向量;将多个特征向量聚类成多个类别;训练第一引擎接收多个流量单元并输出来自多个类别中的该类别。该方法还可以包括:根据分配给特定类别的多个特征向量的子集来训练第二引擎,使得第二引擎适合于根据流量模型提供针对该类别的预测流量容量的指示。在该方法中,可选地预测未来时刻t+τ的预测流量容量,其中t是当前时刻并且τ是时间间隔。在该方法中,可选地预测未来时刻t+τ的预测流量容量,其中t是当前时刻并且τ是时间间隔,并且其中基于当前时刻和在未来时刻的可用缓冲区大小来预测流量容量。在该方法中,可选地预测未来时刻t+τ的预测流量容量,其中t是当前时刻并且τ是时间间隔,并且其中基于在未来时刻该类别的优先级的拥塞队列的数量来预测流量容量。在该方法中,可选地预测未来时刻t+τ的预测流量容量,其中t是当前时刻并且τ是时间间隔,并且其中基于未来时刻的队列的归一化出队率来预测流量容量。在该方法中,可选地预测未来时刻t+τ的预测流量容量,其中t是当前时刻并且τ是时间间隔,并且其中基于与该多个流量单元相关联的应用或站点的优先级来预测流量。在该方法中,可选地预测未来时刻t+τ的预测流量容量,其中t是当前时刻并且τ是时间间隔,并且其中基于与该类别相关联的系数来预测流量容量。在该方法中,可选地预测未来时刻t+τ的预测流量容量,其中t是当前时刻并且τ是时间间隔,并且其中基于该交换机的物理位置来预测流量容量。在该方法中,预测流量容量可选地根据以下公式来预测:
Ti c(t,t+τ,位置)=
αc·1/Np'(t,t+τ,位置)·γi c'(t,t+τ,位置)·(B-Boc'(t,t+τ,位置)),
其中:i为端口的索引;c是多个流量单元的类别;t是当前时刻;τ是与未来时刻的时间差;αc是分配给c类别的系数;位置是交换机在数据中心内的物理位置;Np'(t,t+τ,位置)是Np(t,位置)以及Np(t+τ,位置)的变体或组合,Np(t,位置)是交换机在t时刻该类别的优先级的拥塞队列的数量,Np(t+τ,位置)是交换机在t+τ时刻该类别的优先级为p的拥塞队列的数量;B-Boc'(t,t+τ,位置)是B-Boc(t,位置)以及B-Boc(t+τ,位置)的变体或组合,B-Boc(t,位置)是t时刻用于交换机的剩余缓冲区,B-Boc(t+τ,位置)是t+τ时刻交换机的剩余缓冲区;γi c'(t,t+τ,位置)是γi c(t,位置)以及γi c(t+τ,位置)的变体或组合,γi c(t,位置)是交换机在t时刻的c类别的队列的每端口归一化出队率,γi c(t+τ,位置)是交换机的c类别的第i个队列在t+τ时刻的每端口归一化出队率。在该方法中,队列可选地不以先进先出的方式被清空。可选地,在该方法中,多个流量单元同时从队列中出列。
所公开主题的另一示例性实施例是一种保存程序指令的非暂时性计算机可读介质,该指令当被处理器读取时使得处理器执行以下操作:接收将由交换机通过端口发送的多个流量单元,该端口具有关联的队列;从多个流量单元中提取特征;将特征提供给第一引擎以获得多个流量单元的类别;使用与该类别的流量模型相关联的第二引擎,获得针对该类别在未来时刻以及针对传输多个流量单元的交换机的物理位置的预测流量容量的指示;分配与预测流量容量的指示相对应的大小的队列;将至少一个流量单元分配给缓冲区。在计算机程序产品内,流量单元可选地是数据包。在该计算机程序产品中,可选地,程序指令还使处理器执行以下操作:接收要传输的初始多个流量单元;以及从该初始多个流量单元中的每一个中提取特征以获得多个特征向量;将多个特征向量聚类成多个类别;训练第一引擎接收多个流量单元并输出来自多个类别中的该类别。在该计算机程序产品中,可选地,程序指令还使处理器执行以下操作:根据分配给特定类别的多个特征向量的子集来训练第二引擎,使得第二引擎适合于根据流量模型提供针对该类别的预测流量容量的指示。在该计算机程序产品中,可选地预测未来时刻t+τ的预测流量容量,其中t是当前时刻并且τ是时间间隔。在计算机程序产品内,预测流量容量可选地基于从列表中选择的一项或多项来预测,该列表包括:当前时刻和未来时刻的可用缓冲区大小;未来时刻该类别的优先级的拥塞队列的数量;未来时刻该队列的归一化出队率;与多个流量单元相关联的应用程序或站点的优先级;与类别相关的系数;以及交换机的物理位置。
附图中的几个视图的简要说明
通过以下结合附图的详细描述,将更全面地理解和领会本公开的主题,在附图中,相应或相似的数字或字符表示相应或相似的部件。除非另有说明,附图提供本公开的示例性实施例或方面,且不限制本公开的范围。在附图中:
图1示出了脊叶(Spine-Leaf)型的数据中心的概括图;
图2示出了近似公平丢弃(AFD)方案的示意图;
图3示出了数据中心部署的传统静态交换机架构示意图;
图4示出了动态阈值方案的性能图;
图5示出了根据本公开的一些示例性实施例的用于训练引擎以对传输进行分类并确定缓冲区大小的方法中的步骤的流程图;
图6是根据本公开的一些实施例的用于确定队列阈值的方法的流程图;和
图7是根据本公开的一些实施例的用于确定队列阈值的系统的框图。
具体实施方式
在所有计算机化网络中,特别是在由于大量应用和用户而可能负载较重的数据中心中,当所有缓冲区都已满时,数据包可能会丢失。数据包丢失可能会造成严重问题。问题的严重性可取决于多种因素,例如发送/接收应用程序的类型、传输数据的类型、应用程序或服务的服务级别协议(SLE)等等。
尽管下面的讨论可互换地涉及流量单元和数据包,但是应当理解,该讨论也同样适用于其他流量单元。
因此,本公开的一个技术问题涉及对数据中心中的端口的队列和缓冲区进行管理的需要,以优化传输性能,从而减少因重要传输丢失而造成严重损害的可能性。
一些已知的技术中,从可用缓冲区空间分配多个缓冲区用于避免数据包丢失。在一些实施例中,一个或多个缓冲区可被分配用于大规模传输,例如包括多于预定数量的数据包的传输,也称为大象流,并且一个或多个缓冲区可被分配用于较小传输,称为小鼠流。
进一步的已知技术从可用池中静态地分配缓冲区,因此可能无法有效且高效地响应传输突发。其他技术根据传输时间的负载和要求使用动态分配。然而,这仍然不能提供适当的解决方案,因为在传输过程中情况可能会发生巨大的变化,从而导致性能急剧下降。
本公开的一个技术方案涉及设置队列阈值,即每个队列的容量,并相应地从可用池中动态分配存储队列的缓冲区。然而,本方案中不只是根据当前情况和负载来确定队列阈值并执行缓冲区分配,因为在传输过程中当前情况和负载可能由于例如当前传输和可能发生或至少开始的r个传输而改变。相反,在预计发生传输的时间过程中,队列阈值设置和来自可用池的缓冲区的分配是根据稍后预期的预测负载来完成的。缓冲区分配还可以考虑所传输的数据包的类别或类型,这可能与发送或接收应用程序、预期传输量、SLE、传输交换机的物理位置或其他因素相关。
本公开的另一技术方案包括训练第一引擎,例如分类器,用于对传输中的多个数据包进行分类以获得它们的类别,使得相应的队列阈值和所分配的缓冲区大小符合该类别。例如,包括与应用程序相关的多个数据包的传输可被分类为传输大量数据的类别,可被分配给比与被分类为传输大量数据的类别的应用程序相关的传输更大的缓冲区。反之亦然。
本公开的又一技术方案包括针对每个这样的类别训练第二引擎,也称为流量模型,该引擎适合于在将来预期发生传输时,从可用池中为特定类别计算适当的队列阈值。
本公开的一个技术效果是优化了队列阈值和提高了缓冲区分配的有效性,因为本方案中根据传输发生时的需求进行调整,而不是根据之前的需求进行调整的。通过设置队列阈值并分配适合应用程序类型和活动要求的比例的缓冲区,可以减少丢弃的数据包,并且可以提高服务水平。
现在参考图1,示出了脊叶型数据中心的部分概括图,其由多个交付点(POD)100组成,每个交付点包括架顶式交换机108和一个或多个聚合交换机116。数据中心还可包括多个核心交换机120。每个POD 100可以包括多个机架,例如机架1(104)、机架2(104')等。
机架1(104)可包括多个服务器,例如服务器112、服务器113等。机架1(104)还可包括架顶式(ToR)交换机108。ToR交换机108负责向服务器112、113等中的任何一个提供数据,并从服务器112、113等中的任何一个接收要提供至目的地的数据。
POD 100可包括一个或多个聚合交换机116,每个聚合交换机负责向两个或多个机架(例如机架1(104)和机架2(104’))内的任一服务器112、113提供数据,并且从两个或多个机架内的任一服务器112、113接收要提供至目的地的数据。
数据中心可包括一个或多个核心交换机120,该一个或多个核心交换机120使得能够在一个或多个POD 100的两个或多个聚合交换机116之间以及因此在数据中心内的多个机架和多个服务器之间进行通信和数据传输。
数据中心可包括数据中心核心交换机(未示出)和数据中心边缘交换机(未示出),该数据中心核心交换机用于实现两个或更多个POD 100之间的通信和数据传输,该数据中心边缘交换机用于实现数据中心与网络空间中任何地方的其他数据中心或服务器之间的通信。
应当理解,所公开的结构仅是示例性的,可使用连接各种服务器并使得各服务器能够在彼此之间或者在任一服务器与网络空间中的另一源或目的地计算平台之间发送和接收数据的任何其他结构。
应当理解,交换机在交换机层级中的位置越高,交换机可能需要在更分散的时间等向或从更多类型的应用程序提供更多类型的数据。例如,数据中心核心交换机120相比于ToR交换机108可以提供更多样化的传输。
由于每个应用程序和传输情况不同,其需求也不同。一些应用程序需要传输少量数据,但需要以尽可能小的延迟进行传输,而其他应用程序(例如备份传输)需要传输大量数据,但可以容忍较长的延迟。每个传输的数据包的重要性也可能有所不同。例如,在音乐传送应用程序中,丢失一些数据包的情况可能没有在银行应用程序中那么严重,而且更容易容忍。
上面公开的技术问题可以适用于结合图1示出或讨论的任何交换机,例如ToR交换机108、聚合交换机116、核心交换机120、数据中心核心交换机和数据中心边缘交换机。当需要发送数据并且信道繁忙时,缓冲区可以填充要传输的数据,同样地,当目的地繁忙时也可以填充要接收的数据。
因此,现有的一种技术涉及将缓冲区的可用空间分成两部分:用于处理小传输的第一缓冲区,称为小鼠流队列,其可用于存储每次传输的第一数据包,以及第二缓冲区,称为大象流队列,用于处理大传输,特别是与传输相关的除了分配给小鼠流队列的第一数据包之外的所有数据包。应当理解,术语缓冲区和队列可以互换使用。
已知的用于处理丢弃问题的机制是具有动态分组优先级排序(DPP)的近似公平丢弃(AFD)。AFD专注于通过限制攻击性大象流的缓冲区使用来保留缓冲区空间以吸收小鼠流,尤其是微爆发(聚合小鼠流)。如下详述,该方案还可以强制大象流之间的带宽分配公平性。DPP提供了将小鼠流和大象流分离到两个不同队列的能力,从而可以为它们独立分配缓冲区空间,并对其进行不同的队列调度。
AFD算法的特征是基于大象流的数据速率在大象流之间公平分配带宽。该功能有两个主要元素:数据速率测量和公平速率计算。
数据速率测量涉及测量入口(即,进入)端口上的每个大象流的到达率并将其传递到出口(即,出口)端口上的缓冲区管理机制。
公平速率计算涉及使用基于出口端口队列的占用的反馈机制来动态地计算出口队列的每流公平速率。
当一大象流的数据包进入出口队列时,AFD算法将所测得的流的到达率与计算的每流公平共享速率进行比较。
如果到达率小于公平速率,则该数据包进入队列并最终被输送到出口链路。
如果到达率超过公平速率,则该数据包将按超过公平速率的比例从该流中随机丢弃。因此使用公平速率和所测得的流率来计算丢弃概率。流超过公平速率越多,其丢弃概率就越高,从而所有大象流都达到公平速率。
AFD是一种流感知的早期丢弃机制,其发出网络拥塞信号并通过丢弃数据包来参与应用主机上的TCP拥塞机制,是相对于早期方法(例如加权随机早期丢弃,或加权随机早期丢弃(WRED))的改进检测。WRED将加权随机早期丢弃应用于基于类别的队列,但不利用类别内的流感知,使得包括丢包敏感的小鼠流在内的所有数据包都具有相同的丢失概率,因此,来自小鼠流的数据包与大象流中的数据包一样有可能被丢弃。尽管大象流可以使用水滴作为拥塞信号来缓解,但水滴可能会对小鼠流产生有害影响。此外,相同的丢弃概率可能会导致大象流以更高的速率(由于往返时间短)获得更多的带宽。
因此,出口带宽可能不会在穿过同一拥塞链路的大象流之间平均分配。结果,小鼠流的流完成时间变差,而大象流无法公平地访问链路带宽和缓冲区资源。
然而,AFD在做出丢弃决定之前考虑流量大小和数据到达率。丢弃算法旨在保护小鼠流并在带宽争用期间提供大象流之间的公平性。
现在参考图2,示出了AFD方案的示意图,具有一对队列:小鼠流队列204和常规(大象流)队列208。在图2的示例中,小鼠流队列可以限制为最多N个数据包的流(N=5)。数据包的短流,例如包含四个数据包的流212,可以专门存储在小鼠流队列204中并在可能时向前传输。类似地,流216正在被存储在小鼠流队列204内。然而,流220更长。因此,前N个数据包确实被分配给小鼠流队列204,而从数据包N+1(224)开始的其余数据包被分配给常规队列208。两个队列都通过出口端口228输出存储在其中的数据包。
因此,传统的网络管理仅允许部署一组预定义的缓冲区管理策略,其参数可以适应特定的网络条件。新管理策略的纳入需要复杂的控制和数据计划代码更改,有时还需要重新设计实施硬件。
然而,当前软件定义网络的发展大多忽略了这些挑战而把注意力集中在数据包分类器的灵活且高效的表示上,这些数据包分类器不能很好地处理缓冲区管理方面的问题。
传统上,队列执行先进先出(FIFO)处理顺序,并且众所周知的,对于单队列(SQ)架构、加权吞吐量目标和FIFO处理没有确定性最优算法。
现在参考图3,示出了部署在数据中心中的传统静态交换机架构的示意图,其具有中央数据包处理和分类引擎。
该架构采用集中式分类引擎304,其对传入的数据包流进行分类。当交换机接收到数据包时,该引擎会检查目标地址和源地址,将目标地址和源地址与网段和地址表进行比较,并确定数据包的类别。
对应于所确定的类别,将数据包根据分类转发到队列引擎之一,例如队列引擎1(308)、队列引擎2(312)、队列引擎N(316)或等等,其中N是类别的数量。另外,集中式分类引擎304通过不转发不良数据包来防止不良数据包分散。
每个队列引擎将相关数据包放置在其静态缓冲区中,例如静态缓冲区1(320)、静态缓冲区2(324)等,并且具体地根据与每个数据包相关联的端口放置在相关队列中。例如,静态缓冲区1(320)具有与端口1的Q0相关联的第一队列328、与端口1的QN相关联的第N队列332,等等。
因此,对于每个队列,静态缓冲区以恒定缓冲区大小进行分区。当数据包在交换机中处理时,它们被保存在缓冲区中。
在这种布置中,动态缓冲区被分成单独的虚拟缓冲区池,其中每个虚拟缓冲区被分配给每个端口。在每个虚拟缓冲区中,数据包被组织到逻辑FIFO队列中。
如果目的地段拥塞,则交换机保留该数据包,等待带宽在拥塞的段上变得可用。在静态缓冲区中,一旦缓冲区满了,额外的传入数据包将被丢弃。因此,降低数据包丢失率以支持计算机网络上的任何应用程序这点非常重要。为了实现这一目标,可以增加缓冲区大小,并且核心网络可具有非常大的静态缓冲区,但这会显着增加系统成本、操作复杂性、不确定性和脉冲性应用性能以及更长的队列延迟。因此,这种布置也不能提供充分的结果。
因此,先进的动态缓冲区管理方案应当支持:(1)低队列延迟;(2)控制队列长度,防止上溢和下溢;(3)较低的丢包率。
在这种被称为动态阈值(DT)的方案中,每个队列的大小需要根据适用于该队列的阈值来确定,该阈值可以与缓冲区中的剩余空间成比例。该方案可以使用诸如平均队列长度以及队列长度的最小和最大阈值之类的参数。
当拥塞程度低时,可以自动增加阈值,以便延迟拥塞控制的激活,并且当拥塞程度高时,可以自动降低阈值,以便更早地激活拥塞控制。
当平均队列长度小于最小阈值时,不丢弃任何数据包,当队列长度在最小和最大阈值之间时,可以以线性上升的概率丢弃数据包,当队列长度超过最大阈值时,所有数据包都被丢弃。因此,这种方案可通过不让队列填满来避免拥塞。
在进一步的方案中,网络设备可以跨优先级队列共享缓冲区以避免瞬时拥塞期间的丢弃。
虽然在大多数情况下具有成本效益,但低优先级流量可能导致高优先级流量的数据包丢失增加。同样,长流可以阻止缓冲区吸收传入的突发传送,即使它们不共享同一队列。因此,如果不静态分配缓冲区空间,缓冲区共享技术无法保证跨(优先级)队列的隔离。
虽然拥塞控制(CC)算法和调度技术能够减轻DT的缺点,但它们无法完全解决这些缺点。
事实上,CC可以间接减少缓冲区利用率,为突发传送留下更多空间,而调度可以允许优先处理共享单个端口的那些优先级队列。然而,这些技术中的每一种都可以感知和控制不同的网络变量:
首先,CC只能感测每个流的性能(例如,丢失或延迟),但不知道共享缓冲区的状态和竞争流之间的相对优先级。更糟糕的是,CC控制给定流的速率,但不能影响其他流发送的速率。因此,CC无法解决共享同一设备的流之间的缓冲区冲突。
其次,调度只能感测每个队列的占用并且仅在数据包已经进入队列之后才控制数据包经由特定端口的传输(出列)。因此,调度无法解决不共享同一端口的队列之间的缓冲区冲突。
为了降低成本并最大化利用率,网络设备通常依赖于共享缓冲区芯片,其跨队列的分配由缓冲区管理算法(例如DT)动态调整。
DT与仍未占用的缓冲区空间成比例地动态地为每个队列分配缓冲区。因此,共享缓冲区的队列越多,每个队列允许占用的缓冲区就越少。尽管部署广泛,但DT仍无法满足多架构数据中心环境的要求,原因有以下三个:
首先,DT不能可靠地吸收突发传送,而这对于应用性能至关重要。其次,DT无法提供任何隔离保证,这意味着流量(即使是高优先级流量)的性能取决于其所经过的每个设备上的瞬时负载。第三,DT无法对流量需求的突然变化做出反应,因为它使缓冲区保持高度利用率(以提高吞吐量),即使这带来的好处很少。
更糟糕的是,将部分缓冲区空间分配给队列的更先进的方法有效地浪费了可以更好地利用的宝贵的缓冲区空间,例如吸收突发传送。
DT根据剩余缓冲区空间和可配置参数α,动态调整每个队列的瞬时最大长度,即该队列的阈值Ti c(t),例如按照以下公式:Ti c(t)=αi c·(B-Q(t)),其中:
Ti c(t)是端口i中类别c的队列阈值,即分配的队列大小;
c是与传输相关的类别;
αi c是端口i中类别c的参数;
B为总缓冲区空间;和
Q(t)是在时刻t的总缓冲区占用率。
队列的α参数影响其最大长度及其相对于其他队列的相对长度。
因此,与低优先级流量类别相比,运营商可能为高优先级流量类别设置更高的α值。
然而,尽管它很重要,但是没有系统的方法来配置α,这意味着不同的数据中心供应商和运营商可能使用不同的α值。假设数据中心运营商将流量分为几个类别,每个类别在每个端口独占使用一个队列来实现跨类别延迟隔离。例如,存储、VoIP(互联网协议电话)和分布式计算(MapReduce)可能属于不同的流量类别。同样假设每个流量类别具有高或低优先级,将类别区分为高优先级和低优先级有助于在高负载时将某些类别优先于其他类别。
该优先级划分涉及共享缓冲区的使用并且不影响调度。
运营商可以配置多个低优先级类别和多个高优先级类别。在云环境中,受服务级别协议(SLA)约束的流量将具有高优先级。
现在参考图4,示出了DT方案的性能图400。在t0时刻,传入的突发传送Q2快速改变缓冲区占用率。在瞬态(t0..t2)中,Q1的阈值低于其长度。因此,其所有传入数据包都将被丢弃到Q2的空闲缓冲区中。尽管如此,在达到公平的稳态分配(时间t1…t2)之前,Q2经历了下降。
可以看出,高优先级突发传送(对于Q2)在缓冲区达到稳定状态之前被丢弃。如果满足以下条件,则可以避免这些丢弃:(i)当突发传送到达时有更多可用缓冲区(稳态分配);或者(ii)缓冲区可以更快地清空,以便为突发传送(瞬态分配)腾出空间。
因此,DT表现出以下低效率:
1、DT不提供最小缓冲区保证:DT通过静态参数(α)强制队列或类别优先于其他队列或类别。然而,α并不能提供任何保证,因为实际的每个队列阈值取决于总体剩余缓冲区,即使在稳定状态下,其也可能达到任意且不可控的低值。
2、DT不提供突发传送容错保证:除了稳态分配的不可预测性之外,DT的瞬态分配也是不可控的。当涉及突发传送吸收时,这尤其成问题。造成这种限制的主要原因是DT将缓冲区空间视为标量,忽略了其随时间的预期占用情况。
增强的动态方案根据队列级别和缓冲区级别信息来限制每个队列可以使用的缓冲区空间。
具体地,定义阈值,即每个队列的最大长度,且缓冲区容量可按如下方式分配:
Ti c(t)=αc·1/Np(t)·γi c(t)·(B-Boc(t))
其中:
·c是与传输相关的类别;
·Ti c(t)是阈值大小,即分配给c类别的第i个端口的队列长度;
·αc是分配给队列所属类别的值;
·Np(t)是该类别所属优先级(低或高)的拥塞(非空)队列的数量。如果非空队列数量较少,则可以分配较大的阈值,反之亦然;
·γi c(t)是与端口关联的队列的每端口归一化出队率,即特定队列的清除率;和
·B是总缓冲区,Boc(t)是占用的缓冲区,因此B-Boc(t))是剩余缓冲区。
该公式可以处理以下情况,例如,通常高负载但特定类别的小负载使得较小的空间足以容纳该队列、高负载但相关队列的高出队率使得较小的空间足以容纳该队列,或类似的情况。
Np(t)限制稳态分配。每个队列的阈值除以Np。该因素对分配的影响是双重的:(i)它限制了每个类别和每个优先级的占用率;(ii)它允许相同优先级的类别之间的加权公平。
γi c(t)表示瞬态的持续时间。缓冲区根据其出队率(γ)按比例分配给每个队列。γ因子与上限相结合,能够改变瞬态的持续时间。事实上,给定每个优先级一定量的缓冲区,它会根据其疏散率按比例分成队列,从而有效地最小化清空缓冲区所需的时间。实际上,减少了从一种稳态分配过渡到另一种稳态分配所需的时间。
因此,上述方案通过处理诸如一般高负载但特定类负载很小、高负载但相关队列的出队率高,或类似的情况,提高了吞吐量并减少了队列延迟,同时确保了给定突发传送的吸收。
然而,从上面的公式可以清楚地看到,所有与时间相关的因子都是在接收到数据包时基于当前时刻计算的,但是一旦传输开始并处于进行中时,这些因子可能会改变且它们的值可能会改变。因此相关性和有用性较低,从而可能提供有缺陷的结果。因此,该公式也没有提供足够的解决方案。
因此,根据本公开,可以根据预期发生的时间和特定的发送交换机来确定缓冲区的动态阈值,即,队列长度。例如,可根据以下公式计算阈值:
Ti c(t,t+τ,位置)=
αc·1/Np'(t,t+τ,位置)·γi c'(t,t+τ,位置)·(B-Boc'(t,t+τ,位置))
其中:
·i是流量单元目的地端口的索引;
·c是多个流量单元的类别;
·t是当前时刻;
·τ是与未来时刻的时间差,
·αc是分配给c类别的系数;和
·位置是交换机在数据中心内的物理位置,被提供为例如架顶式交换机标识符和核心交换机标识符的组合;
·Np'(t,t+τ,位置)是以下各项的变体或组合:Np(t,位置),其是特定交换机在t时刻该类优先级p的拥塞队列的数量,以及Np(t+τ,位置),其是特定交换机在(t+τ)时刻该类优先级p的拥塞队列的数量。例如,该值可以等于任何数字、其平均值等等。
·B是总缓冲区,Boc(t,位置)是t时刻占用的缓冲区,Boc(t+τ,位置)是(t+τ)时刻占用的缓冲区,B-Boc'(t,t+τ,位置)是以下各项的变体或组合:B-Boc(t,位置),其是特定交换机在t时刻的剩余缓冲区,以及B-Boc(t+τ,位置),其是特定交换机在(t+τ)时刻的剩余缓冲区。例如,该值可以等于任何数字、其平均值等等。
·γi c'(t,t+τ,位置)是以下各项的变体或组合:γi c(t,位置),其是特定交换机的c类别第i个队列在t时刻的每端口归一化出队率,以及γi c(t+τ,位置),其是特定交换机的c类别第i个队列在(t+τ)时刻的每端口归一化出队率。例如,该值可以等于任何数字、其平均值等等。
Np(t+τ,位置)、Boc(t+τ,位置)和γi c(t+τ,位置)的值可以从引擎获得,例如人工智能引擎,例如神经网络,其在不同时刻、交换机等的多个传输上进行训练。
在一些实施例中,还可以基于例如t(包括例如时间、日、月等)以及交换机的位置来学习τ的优选值,交换机的位置也可以暗示其在相关时间的特定行为。一般来说,τ可以在几毫秒、几秒和几分钟之间变化,这是大多数传输的时间范围,因此设置阈值可能有助于消除或减少丢包。交换机的位置可以表示为特定的交换机标识符。
在本公开的一些实施方式中,作为队列的清除率的γi c(t+τ,位置)因其不受先进先出(FIFO)机制的限制可以高于传统方法,多个数据包可以同时输出。
现在参考图5,示出了根据本公开的一些示例性实施例的用于训练引擎以对传输进行分类并确定缓冲区大小的方法中的步骤流程图。
该方法可由任何计算平台执行,无论是否与特定交换机或特定数据中心相关联。
在步骤504,可以从由诸如数据包之类的流量单元组成的传入训练流量数据中提取特征。流量单元将由交换机通过端口来传输,该端口具有相关联的队列。这些特征可包括例如源地址、目的地地址、数据包到达率、时间和日期、特定交换机和特定数据中心、优先级(例如,与并行计算相关的服务级别协议或MapReduce将意味着高优先级)等等。可以从在预定时间间隔内到达的一个数据包或一系列数据包中提取特征。
在步骤508,可以将特征向量聚类成不同的集群,相比于分配给其他集群的特征向量的特性而言,每个集群具有的特征更类似于分配给该集群的其他特征向量的特性。可以应用任何当前已知的聚类算法或将变得已知的聚类算法,例如但不限于K均值、高斯混合模型、支持向量机、基于密度的、基于分布的、基于质心的或基于分层的。
然后,可根据特征向量和分配给每个向量的集群来训练分类器,使得给定另一向量,分类器输出最合适的聚类。
在步骤512,可以根据分配给集群的流量数据来生成与每个集群相关的数据集。数据集可包括分配给每个特定类别的特征向量。数据集可以分为训练数据集、验证数据集和测试数据集。
在步骤516,人工智能(AI)引擎,也称为流量模型,例如实施为神经网络、深度神经网络或其他可以在训练数据集上进行训练的神经网络。流量模型用于预测处于特定位置的交换机在未来时刻+τ在特定队列Np(t,t+τ,位置)上的负载,可用内存Boc(t,t+τ,位置)和疏散率γi c(t+τ,位置)。来自训练数据集的每个数据集(包括一个或多个特征向量)可以与相关值(被称为基础真值)相关联。例如,对于标识交换机的多个τ值和位置值,训练数据集中的每个向量可以与Np(t,t+τ,位置)的计算值(使用预测分析),Boc(t,t+τ,位置)和γi c(t,t+τ,位置)相关联。该值可以根据为交换机积累的大量信息和时间t来计算。
因此,每个流量模型根据一个集群的特征向量进行训练,以输出每个特征向量的Np(t,t+τ,位置)、Boc(t,t+τ,位置)和γi c(t,t+τ,位置)的值和一个或多个τ值,指示在t时刻之后的时间间隔τ处的所述值。还可以训练引擎以输出提供最佳值或值组合的τ值。例如,这样的值可以指示将传输推迟小τ可使得获得更大的队列并避免丢失数据包的风险。每个这样的引擎,接收时间和交换机位置,因而都是时空引擎。
一旦引擎被训练并表示流量模型,就可以使用验证数据集来验证引擎以调整模型的超参数,并使用测试数据集来测试引擎,以避免过度拟合。
应当理解,在另外的实施例中,相同的引擎可适于处理具有类别指示的各种类别的特征向量组合,并且根据相关类别进行操作。
现在参考图6,示出了根据本公开的一些示例性实施例的用于确定队列阈值(即,要分配给特定队列的缓冲区的容量)的方法中的步骤流程图。
该方法可以由任何计算平台执行,例如属于特定交换机或与特定交换机通信的计算平台,以便获得快速结果,从而不会给传输增加不可接受的延迟。
在步骤604,可以提取传入流量的特征,类似于上面的步骤504。
在步骤608,可以将特征向量提供给在上述步骤508训练的分类器,以获得一组一个或多个特征向量的类别。该类别可对应于图5的训练流量数据已被聚类到的集群之一。一旦特征向量被分配给一个类别,这可能意味着选择与该类别相关的人工智能引擎。
在步骤612,可以将特定引擎应用于特征向量,以获得一组或多组指示预测流量容量的值。例如,对于τ的一个或多个值,每组预测值可以包括Np(t,t+τ,位置)、Boc(t,t+τ,位置)和γi c(t,t+τ,位置)。在一些实施例中,引擎还可以输出提供Np、Boc和γi c的最佳组合的τ值。在替代实施例中,可以向单个引擎提供该类别的特征向量,该引擎根据该类别在内部操作特定引擎。
在步骤616,可以针对特定特征向量组合结果。例如,可以将当前时刻(即τ=0)的值与从其他τ值获得的一组或多组值进行比较,或者可以将当前时刻的值组合,例如与其他τ值的相关值进行平均,等等。
然后可以应用所得到的阈值,并且可以根据该阈值向相关端口的队列分配容量。
如上所述,如果队列不限于以先进先出(FIFO)范例操作,则γi c可能高于传统方法。例如,这可以通过使用光传输来实现,例如,申请号为63/167,082,标题为“具有全光存储器缓冲区的光开关”的美国专利申请中所详细描述的,且已转让给与本申请相同的受让人。
现在参考图7,示出了根据本公开的一些示例性实施例的用于确定一个或多个缓冲区的队列大小的系统的框图。
图7的框图可以被配置为执行如上图5和图6的方法。图7的系统可以包括一个或多个计算平台700。虽然图7示出了单个计算平台,但是应当理解,这些方法可以由不同的计算平台执行,每个计算平台包括下面详述的一个或多个组件。因此,图7的计算平台可被实施为可操作地连接的一个或多个计算平台,或者其中数据可直接或间接地从一个计算平台提供到另一计算平台。例如,一个计算平台700可以是数据中心的接入交换机、聚合交换机或核心交换机的一部分,并且可以执行图6的方法,而另一计算平台700可以是远程计算平台,例如作为服务器、台式计算机、膝上型计算机等,并且可以执行图5的方法。
计算平台700可经由任何通信信道与其他计算平台通信,例如广域网、局域网、内联网、互联网、存储器存储设备的传输等。
计算平台700可包括处理器704,其可以是一个或多个中央处理单元(CPU)、微处理器、电子电路、集成电路(IC)等。处理器704可被配置为提供所需的功能,例如通过加载到存储器并激活下面详细描述的存储设备716上存储的模块。应当理解,处理器704可被实施为一个或多个处理器,无论其是否位于同一平台上。
计算平台700可包括输入/输出(I/O)设备708,例如显示器、扬声器、耳机、指示设备、键盘、触摸屏等。I/O设备708可用于从用户接收输入并向用户提供输出,例如接收参数设置、显示性能统计等。
计算平台700可包括通信设备712,用于与其他计算平台,例如其他交换机、服务器、PoD、数据中心等,进行通信。通信设备712可适于通过任何通信协议并通过任何信道,例如互联网、内联网。LAN、WAN等,进行通信。
计算平台700可包括存储设备716,例如硬盘驱动器、闪存盘、随机存取存储器(RAM)、存储器芯片等。在一些示例性实施例中,存储设备716可以保存可操作的程序代码,以使处理器704执行与下面列出的任何模块相关联的动作或者上面图5和图6的方法的步骤。程序代码可以包括适于执行如下详述的指令的一个或多个可执行单元,例如函数、库、独立程序等。
存储设备716可包括特征提取组件720,用于从诸如数据包的单个流量单元或者从两个或更多个这样的单元的序列中提取特征。这些特征可以是,例如,源地址、目的地地址、数据包到达率、时间和日期、特定交换机和特定数据中心、优先级级别(例如,服务级别协议或MapReduce将具有高优先级)。
存储设备716可包括聚类组件724,用于接收从流量单元提取的多个特征向量,并将它们聚类成群组,也称为类别或集群,使得分配给同一群组的特征向量,根据预定的度量,比分配给不同群组的特征向量彼此更相似。
存储设备716可包括分类器组件728,用于接收例如由特征提取组件720提取的一个或多个特征向量,并且将它们分类到由聚类组件724创建的类别或集群中。
存储设备716可包括预测引擎训练组件732,用于接收每个这样的类别的相关特征向量以及一个或多个基础真值,例如用于各种τ和位置向量的Np(t,t+τ,位置)、Boc(t,t+τ,位置)和γi c(t,t+τ,位置)。训练后,每个经过训练的引擎都被配置为接收特征向量(可能是τ和位置值)作为输入,并输出相关的Np(t,t+τ,位置)、Boc(t,t+τ,位置)和γi c(t,t+τ,位置)。在一些实施例中,引擎可不接收τ值,而是针对几个τ值中的每一个的值,或特定的τ值和提供优选组合的相关值输出一组Np(t,t+τ,位置)、Boc(t,t+τ,位置)和γi c(t,t+τ,位置)。训练引擎可以将可用特征向量划分为训练向量、验证向量和测试向量。训练的引擎可以是神经网络、深度神经网络、循环神经网络(RNN)、长短期记忆或任何其他人工智能引擎。
门控循环单元(GRU)是RNN中的门控机制。在一些实施例中,GRU可用于增强性能。GRU的使用在Ikolas Adaloglou于2020年9月17日发表于https://theaisummer.com/gru的“循环神经网络:在Pytorch中构建GRU单元VS LSTM单元”中得到了进一步详细介绍,于2017年8月21日发布的“进化:从普通RNN到GRU和LSTM”,可在https://towardsdatascience.com/lecture-evolution-from-vanilla-rnn-to-gru-lstms-58688f1da83a上获取,相关幻灯片可在以下位置获取:https://docs.google.com/presentation/d/1UHXrKL1oTdgMLoAHHPfMM_srDO0BCyJXPmhe4DNh_G8/pub?start=false&loop=false&delayms=3000&slide=id.g24de73a70b_0_0,其全部内容通过引用整体并入并用于任何目的。可以预期GRU中的读取门和忘记门取决于特定时间和位置的流量。
存储设备716可包括控制和数据流组件736,用于管理流,使得上述详述的每个组件接收到期望的输入并且其输出被引导至其目的地,并且执行所需的计算。例如,控制流组件736可以接收流量单元,激活特征提取组件720以提取特征,对特征进行分类,激活该类别的相关引擎,基于例如当前值和预测值计算适用值,并提供用于分配缓冲区的值。
存储设备716可包括由分类器训练组件728和预测引擎训练组件732训练的引擎740,且该引擎740用于对另外的特征向量进行分类并预测所需的值。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述设备的任何合适的组合。计算机可读存储介质的更具体示例的非详尽列表包括以下各项:便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器。只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)、记忆棒、软盘、诸如其上记录有指令的凹槽中的打孔卡或凸起结构之类的机械硬盘编码装置,以及上述各项的任何合适的组合。本文所使用的计算机可读存储介质不应被解释为瞬态信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线传输的电信号。
在此描述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令并将计算机可读程序指令转发以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或多种编程语言(例如“C”、C#、C++、Java、Phyton、Smalltalk或其他语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户计算机上执行、部分在用户计算机上作为独立软件包执行、部分在用户计算机上执行、部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以(例如,使用互联网服务提供商通过互联网)连接到外部计算机。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以个性化电子电路,以便执行本发明的各方面。
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现流程图和/或框图的框或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以引导计算机、可编程数据处理装置和/或其他设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括工业制品,其包括实现在流程图和/或框图的框或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行,从而产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的框或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。就这一点而言,流程图或框图中的每个框可表示指令的模块、片段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些替代实施方式中,方框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个框实际上可以大致同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应当注意,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以通过基于特殊目的硬件的系统来实现,该系统执行指定的功能或动作或执行特殊目的硬件和计算机指令的组合。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这一点而言,流程图或框图中的每个框可以表示指令的模块、片段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些替代实施方式中,方框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应当指出的是,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以由执行指定功能或动作的基于专用硬件的系统来实现,或者执行专用硬件和计算机指令的组合。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。如本文所用,单数形式“a”、“an”和“该”也旨在包括复数形式,除非上下文清楚地另有说明。还应当理解,术语“包括”和/或“包含”当在本说明书中使用时,指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。
所附权利要求中的所有装置或步骤加功能元件的相应结构、材料、作用和等同物旨在包括用于与具体要求保护的其他要求保护的元件相结合来执行该功能的任何结构、材料或作用。对本发明的描述是为了说明和描述的目的而给出的,但并不旨在穷举或限制本发明所公开的形式。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。所选择和描述的实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解本发明的具有适合于所设想的特定用途的各种修改的各种实施例。

Claims (20)

1.一种用于管理通信网络中的流量的方法,包括:
接收将由交换机通过端口传输的多个流量单元,所述端口具有关联的队列;
从所述多个流量单元中提取特征;
将所述特征提供给第一引擎,以获得所述多个流量单元的类别;
使用与所述类别的流量模型相关联的第二引擎,获得针对所述类别在未来时刻以及针对传输所述多个流量单元的所述交换机的物理位置的预测流量容量的指示;
分配与所述预测流量容量的所述指示相对应的大小的队列;和
将所述至少一个流量单元分配给所述缓冲区。
2.根据权利要求1所述的方法,其中所述流量单元是数据包。
3.根据权利要求1所述的方法,进一步包括:
接收要传输的初始多个流量单元;
从所述初始多个流量单元中的每一个中提取特征以获得多个特征向量;
将所述多个特征向量聚类成多个类别;和
训练所述第一引擎以接收所述多个流量单元并输出来自所述多个类别中的所述类别。
4.根据权利要求1所述的方法,进一步包括:
基于分配给特定类别的所述多个特征向量的子集来训练所述第二引擎,使得所述第二引擎适合于根据所述流量模型提供针对所述类别的所述预测流量容量的所述指示。
5.根据权利要求1所述的方法,其中,所述预测流量容量是针对未来时刻t+τ来进行预测的,其中t是当前时刻并且τ是时间间隔。
6.根据权利要求1所述的方法,其中,所述预测流量容量是针对未来时刻t+τ来进行预测的,其中t是当前时刻并且τ是时间间隔,并且其中所述流量容量是基于在当前时刻和所述未来时刻的可用缓冲区大小来预测的。
7.根据权利要求1所述的方法,其中,所述预测流量容量是针对未来时刻t+τ来进行预测的,其中t是当前时刻并且τ是时间间隔,并且其中所述流量容量是基于在所述未来时刻的所述类别的优先级的拥塞队列的数量来预测的。
8.根据权利要求1所述的方法,其中,所述预测流量容量是针对未来时刻t+τ来进行预测的,其中t是当前时刻并且τ是时间间隔,并且其中所述流量容量基于在所述未来时刻的所述队列的归一化出队率来预测。
9.根据权利要求1所述的方法,其中,所述预测流量容量是针对未来时刻t+τ来进行预测的,其中t是当前时刻并且τ是时间间隔,并且其中所述流量容量基于与所述多个流量单元相关联的应用程序或站点的优先级来预测的。
10.根据权利要求1所述的方法,其中,所述预测流量容量是针对未来时刻t+τ来进行预测的,其中t是当前时刻并且τ是时间间隔,并且其中所述流量容量基于与所述类别相关联的系数来预测的。
11.根据权利要求1所述的方法,其中,所述预测流量容量是针对未来时刻t+τ来进行预测的,其中t是当前时刻并且τ是时间间隔,并且其中所述流量容量基于所述交换机的物理位置来预测的。
12.根据权利要求1所述的方法,其中,所述预测流量容量根据以下公式进行预测:
Ti c(t,t+τ,位置)=αc·1/Np'(t,t+τ,位置)·γl c'(t,t+τ,位置)·(B-Boc'(t,t+τ,位置))
其中:
i是所述端口的索引;
c是所述多个流量单元的类别;
t是当前时刻;
τ是与未来时刻的时间差;
αc是分配给c类别的系数;
位置是所述交换机在所述数据中心内的所述物理位置;
Np'(t,t+τ,位置)是以下各项的变体或组合:
Np(t,位置)是t时刻所述类别的优先级的拥塞队列的数量,和
Np(t+τ,位置)是所述交换机在t+τ时刻所述类别的优先级p的拥塞队列的数量;
B-Boc'(t,t+τ,位置)是以下各项的变体或组合:
B-Boc(t,位置)是t时刻所述交换机的剩余缓冲区,和
B-Boc(t+τ,位置)是t+τ时刻所述交换机的剩余缓冲区;和
γi c'(t,t+τ,位置)是以下各项的变体或组合:
γi c(t,位置)是所述交换机在t时刻c类别的所述队列的每端口归一化出队率,和
γi c(t+τ,位置)是所述交换机在t+τ时刻c类别的第i个队列的每端口归一化出队率。
13.根据权利要求1所述的方法,其中,所述队列不以先进先出的方式被清空。
14.根据权利要求12所述的方法,其中,所述多个流量单元同时从所述队列中出列。
15.一种计算机程序产品,包括保存程序指令的非瞬态计算机可读存储介质,所述程序指令在被处理器读取时使所述处理器执行以下操作:
接收将由交换机通过端口传输的多个流量单元,所述端口具有关联的队列;
从所述多个流量单元中提取特征;
将所述特征提供给第一引擎,以获得所述多个流量单元的类别;
使用与所述类别的流量模型相关联的第二引擎,获得针对所述类别在未来时刻以及针对传输所述多个流量单元的所述交换机的物理位置的预测流量容量的指示;
分配与所述预测流量容量的所述指示相对应的大小的队列;和
将所述至少一个流量单元分配给所述缓冲区。
16.根据权利要求15所述的计算机程序产品,其中,所述流量单元是数据包。
17.根据权利要求15所述的计算机程序产品,其中,所述程序指令进一步使得所述处理器执行以下操作:
接收要传输的初始多个流量单元;
从所述初始多个流量单元中的每一个中提取特征以获得多个特征向量;
将所述多个特征向量聚类成多个类别;和
训练所述第一引擎以接收所述多个流量单元并输出来自所述多个类别中的所述类别。
18.根据权利要求15所述的计算机程序产品,其中,所述程序指令进一步使得所述处理器执行以下操作:
基于分配给特定类别的所述多个特征向量的子集来训练所述第二引擎,使得所述第二引擎适合于根据所述流量模型提供针对所述类别的所述预测流量容量的所述指示。
19.根据权利要求15所述的计算机程序产品,其中,所述预测流量容量是针对未来时刻t+τ来进行预测的,其中t是当前时刻并且τ是时间间隔。
20.根据权利要求15所述的计算机程序产品,其中,所述预测流量容量是基于从包括以下各项的列表中选择的至少一项来预测的:
当前时刻和所述未来时刻的可用缓冲区大小;
在所述未来时刻所述类别的优先级的拥塞队列的数量;在所述未来时刻所述队列的归一化出队率;
与所述多个流量单元相关联的应用程序或站点的优先级;
与所述类别相关的系数;和
所述交换机的物理位置。
CN202280026905.9A 2021-05-12 2022-05-10 基于预测分析的缓冲区管理方法和系统 Pending CN117157958A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163187916P 2021-05-12 2021-05-12
US63/187,916 2021-05-12
PCT/IL2022/050482 WO2022238998A1 (en) 2021-05-12 2022-05-10 Method and system for buffer management based on predictive analytics

Publications (1)

Publication Number Publication Date
CN117157958A true CN117157958A (zh) 2023-12-01

Family

ID=84028445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280026905.9A Pending CN117157958A (zh) 2021-05-12 2022-05-10 基于预测分析的缓冲区管理方法和系统

Country Status (4)

Country Link
EP (1) EP4282144A1 (zh)
JP (1) JP2024518019A (zh)
CN (1) CN117157958A (zh)
WO (1) WO2022238998A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10652154B1 (en) * 2018-11-09 2020-05-12 Innovium, Inc. Traffic analyzer for autonomously configuring a network device
US20200167258A1 (en) * 2020-01-28 2020-05-28 Intel Corporation Resource allocation based on applicable service level agreement

Also Published As

Publication number Publication date
JP2024518019A (ja) 2024-04-24
EP4282144A1 (en) 2023-11-29
WO2022238998A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
US10764215B2 (en) Programmable broadband gateway hierarchical output queueing
US10129167B2 (en) Method to schedule multiple traffic flows through packet-switched routers with near-minimal queue sizes
US11099902B1 (en) Parallelized ingress compute architecture for network switches in distributed artificial intelligence and other applications
EP1774714B1 (en) Hierarchal scheduler with multiple scheduling lanes
US10931588B1 (en) Network switch with integrated compute subsystem for distributed artificial intelligence and other applications
EP2466824B1 (en) Service scheduling method and device
EP3504849B1 (en) Queue protection using a shared global memory reserve
US11328222B1 (en) Network switch with integrated gradient aggregation for distributed machine learning
US8149846B2 (en) Data processing system and method
US20070070895A1 (en) Scaleable channel scheduler system and method
US9705812B2 (en) Port-based fairness protocol for a network element
US10931602B1 (en) Egress-based compute architecture for network switches in distributed artificial intelligence and other applications
CN101547159A (zh) 一种避免网络拥塞的方法和设备
US11134021B2 (en) Techniques for processor queue management
US20150131446A1 (en) Enabling virtual queues with qos and pfc support and strict priority scheduling
US10862820B2 (en) Method for prioritizing network packets at high bandwidth speeds
EP2996293B1 (en) A packet scheduling networking device for deadline aware data flows
CN109792411B (zh) 用于管理端到端连接的设备和方法
US8930604B2 (en) Reliable notification of interrupts in a network processor by prioritization and policing of interrupts
KR100546968B1 (ko) 컴퓨터 네트워크에서의 패킷 전송 제어 방법 및 장치
US20120127858A1 (en) Method and apparatus for providing per-subscriber-aware-flow qos
CN117157958A (zh) 基于预测分析的缓冲区管理方法和系统
JP3575688B2 (ja) パケットスイッチ
US10924416B2 (en) Method for traffic shaping using a serial packet processing algorithm and a parallel packet processing algorithm
US9424088B1 (en) Multi-level deficit weighted round robin scheduler acting as a flat single scheduler

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination