CN110365597A - 用于减少计算机网络中的拥塞的技术 - Google Patents
用于减少计算机网络中的拥塞的技术 Download PDFInfo
- Publication number
- CN110365597A CN110365597A CN201910231709.5A CN201910231709A CN110365597A CN 110365597 A CN110365597 A CN 110365597A CN 201910231709 A CN201910231709 A CN 201910231709A CN 110365597 A CN110365597 A CN 110365597A
- Authority
- CN
- China
- Prior art keywords
- endpoint
- request
- interconnection structure
- data
- equipment
- 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.)
- Granted
Links
- 238000005516 engineering process Methods 0.000 title abstract description 4
- 238000002347 injection Methods 0.000 claims abstract description 47
- 239000007924 injection Substances 0.000 claims abstract description 47
- 230000004044 response Effects 0.000 claims description 62
- 238000000034 method Methods 0.000 claims description 45
- 230000008859 change Effects 0.000 claims description 13
- 230000000670 limiting effect Effects 0.000 claims description 9
- 238000005259 measurement Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000009825 accumulation Methods 0.000 claims 2
- 238000004891 communication Methods 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000007246 mechanism Effects 0.000 description 19
- 230000003044 adaptive effect Effects 0.000 description 16
- 230000003068 static effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000007423 decrease Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000005764 inhibitory process Effects 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 229920006395 saturated elastomer Polymers 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000002401 inhibitory effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- GHBCIXGRCZIPNQ-UHFFFAOYSA-N 2-(2,2-diphenylacetyl)-6-methoxy-5-phenylmethoxy-3,4-dihydro-1h-isoquinoline-3-carboxylic acid Chemical compound COC1=CC=C2CN(C(=O)C(C=3C=CC=CC=3)C=3C=CC=CC=3)C(C(O)=O)CC2=C1OCC1=CC=CC=C1 GHBCIXGRCZIPNQ-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 206010016256 fatigue Diseases 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/127—Avoiding congestion; Recovering from congestion by using congestion prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/18—End to end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于减少计算机网络中的拥塞的技术。多个处理器通常用在计算系统中以解决非常大的复杂问题,例如人工智能中遇到的问题。这些处理器通常在解决这些复杂问题时通过互连结构(诸如,例如,一组网络连接和交换机)在彼此之间交换数据。由处理器注入互连结构的数据量有时会压垮互连结构,阻止某些处理器相互通信。为了解决这个问题,公开了一些技术,以使例如连接到互连结构的处理器能够协调和控制所注入的数据量,从而使互连结构不会被压垮。
Description
相关申请的交叉引用
本申请要求Glenn Dearth等人在2018年3月26日提交的、题为“网络注入速率限制(Network Injection Rate Limiting)”、序列号62/648,326的美国临时申请的权益,其与本申请共同转让并通过引用并入本文。
技术领域
本申请总地涉及互连架构,更具体地,涉及自适应地管理互连架构中的吞吐量的系统和方法。
背景技术
由于开发人员在应用程序中依赖于更多并行性,因此具有多个处理器的系统在各种行业中变得普遍。这些系统使用结构来并行连接多个设备,以解决非常大的复杂问题,例如您在人工智能(AI)计算中遇到的问题。在同一系统中互连多个设备(例如处理设备、存储器和网络设备)的交换机/交叉开关的集合被称为互连结构(interconnect fabric),并且被互连的设备被称为互连结构的端点。
发明内容
一方面提供了一种用于管理连接系统的端点的互连结构中的吞吐量的方法。该方法包括:监控端点之间的通过互连结构的数据请求;通过限制至少一个所述端点通过互连结构进行新的数据请求的能力来控制将新的数据注入到互连结构中的注入速率。限制所述能力包括基于注入阈值改变重新填充至少一个端点的信用计数器的再填充速率。
另一方面提供了一种用于管理连接系统的端点的互连结构中的吞吐量的设备。该设备包括:管线,被配置成监控所述端点之间的通过所述互连结构的数据请求;注入速率限制器,被配置为通过限制至少一个所述端点通过所述互连结构进行新的数据请求的能力来控制将新的数据注入到互连结构中的注入速率。限制所述能力包括基于注入阈值改变重新填充至少一个端点的信用计数器的再填充速率。
附图说明
现在结合附图参考以下说明,其中:
图1是根据本公开原理实现的互连结构的实施例的示意图;
图2是根据本公开原理实现的交换设备的实施例的框图;
图3是根据本公开原理实现的最后一跳显式拥塞通知(ECN)的实施例的框图;
图4是根据本公开原理实现的延迟指数移动平均块的实施例的框图;
图5是根据本公开原理实现的利特尔法则(Little's Law)估计器的实施例的框图;
图6是根据本公开原理实现的注入速率限制(IRL)子模块的实施例的框图;
图7是根据本公开原理的数据注入阈值递减的示意图;
图8是根据本公开原理执行的IRL方法的实施例的流程图;
图9是根据本公开原理执行的IRL方法的另一实施例的流程图;以及
图10是根据本公开原理的多个数据注入阈值的示意图。
具体实施方式
互连结构中的端点可以请求向结构中的任何端点读取和写入数据。由于每个端点请求数据的能力独立于其他端点,因此端点在将数据请求注入到结构中的能力方面可能是“贪婪的”。特别是,当许多端点同时在其请求中变得“贪婪”时,端点请求的总数据量可能会产生瞬态吞吐量峰值,其大量涌入(flood)互连结构。
可以在三个示例中识别这种类型的贪婪行为。第一种情况是当多个读取响应(其总体大小大于当前互连结构带宽)同时返回源端点。第二种情况是当多个数据写入请求(其总体大小大于当前结构带宽)被同时发送到目标端点。第三种情况是当端点同时接收到读取响应和写入请求时,响应和请求的总体大小大于当前结构带宽。当这些情况发生时,它不仅减慢了互连结构中当前的和未来的流量,而且还在互连结构流量中产生了巨大的带宽不平衡,例如在不同类型的流量(例如响应和请求)之间,以及在竞争的源端点之间。
当前,通常使用“漏桶(leaky bucket)”类型的方法来控制互连结构,该方法在互连结构被大量涌入/饱和时限制数据注入到结构中的速率(“注入速率”)。这种方法不能预测和避免潜在的瞬态吞吐量峰值和大量涌入,并且处理它们也很差,因为它只能使用不适应结构的变化状况的预定义参数来处理它们。
期望的是注入速率限制(IRL)机制,其可以观察变化的结构状况并使其注入速率适应变化的结构状况,从而它可以防止和处理诸如瞬时吞吐量峰值和大量涌入之类的不利情况。还期望的是一种能够管理端点的“贪婪”行为的IRL机制,以便在不牺牲其性能的情况下充分利用互连结构的带宽。
本文引入的是IRL方法和系统(“IRL概念”),其通过基于互连结构的变化状况控制端点经由互连结构进行新的数据请求的能力来管理注入速率。由于端点的“贪婪”行为是其进行新的数据请求的独立能力的直接结果,因此引入的IRL概念通过将端点的能力与变化的结构状况联系起来,来使端点的能力不再独立。此外,通过将端点的能力与变化的结构状况联系起来,引入的IRL概念有效地使其注入速率适应变化的结构状况。引入的IRL概念通过控制其请求/响应信用计数器的再填充速率来控制每个端点进行新的数据请求的能力。
引入的IRL概念可以以两种不同的模式操作。在第一“静态IRL”模式中,引入的IRL概念控制端点使用端点的信用计数器和数据注入阈值进行新的数据请求的能力。静态IRL将随机生成的数字与数据注入阈值进行比较,并在随机生成的数字小于注入阈值时递增信用计数器。当信用计数器具有大于或等于分组最大传输单元时,静态IRL允许将新的请求分组注入到互连结构中。因此,对于静态IRL,信用计数器的再填充速率和数据注入都是静态的,这允许互连结构的更稳定的操作并防止端点之间的干扰。使用随机生成的数字还允许静态IRL是伪非确定性的并且避免端点之间的系统同步效应。
在第二“自适应IRL”模式中,引入的IRL概念监控互连结构的拥塞级别,并基于互连结构的拥塞级别控制端点进行新的数据请求的能力。自适应IRL通过监控拥塞反馈和本地拥塞估计来确定互连结构的拥塞级别。拥塞反馈表示互连结构的当前拥塞,本地拥塞估计表示事务延迟。自适应IRL基于互连结构的拥塞级别来改变其数据注入阈值,并基于随机生成的数字与数据注入阈值之间的比较来递增信用计数器。因此,自适应IRL改变信用计数器被重新填充的速率,以适应互连结构的拥塞级别。这种适应性允许充分利用互连结构的带宽,而不会牺牲端点的性能,从而提高了互连结构的效率和性能。此外,使用随机生成的数字允许自适应IRL是伪非确定性的并且避免端点之间的系统同步效应。
IRL概念还可以通过采用多个阈值并基于阈值改变信用计数器被重新填充的量来控制数据注入到互连结构中。例如,当给定端点请求的数据量超过某个阈值,即在上升轨迹上与第一阈值(TH)相交时,重新填充信用计数器的量(再填充量)减少,并且当该量低于另一阈值,即,在向下轨迹上与第二TH相交时,再填充量恢复到其原始值。基于与所请求的量相交的特定阈值和与其相交的轨迹来改变再填充量。
图1示出了互连结构100的实施例的系统图。术语“互连结构”指的是连接多个端点/处理器的设备(例如交换机)的网络,这些端点/处理器使用相同的通信协议或链路彼此通信,该设备诸如由加利福尼亚州Santa Clara的公司提供的NVLinkTM。不应将互连结构与其他广泛的网络(例如可以连接多个系统和/或设备/节点的无线网络)混淆。
在所示实施例中,互连结构100包括由交换机110表示的交换机的网络,交换机110通过通信协议连接多个端点/处理器120。覆盖每个端点120和相应的交换机110的网络之间的连接的区域130被称为互连结构100的“边缘”,以及覆盖交换机110(例如,L1交换机)和其他交换机(未示出)(例如,L2交换机)之间的连接的区域140被称为互连结构的“核心”。本公开的IRL机制发生在互连结构100的边缘。互连结构100和端点120可以是一个或更多个服务器的一部分,例如在数据中心中的。端点120可以在单个服务器内,在单个机架内的多个服务器内,或者分布在多个服务器机架上。交换机110可以是的NVSwitch,端点120可以是处理单元,例如图形处理单元(GPU)和中央处理单元(CPU)、存储单元(例如存储器)和/或网络单元(例如网络接口卡)。
在所示实施例中,一些端点120被标记为源(Src)端点,并且一些端点被标记为目标(Dst)端点。源端点是向其他端点进行请求的端点,目的地/目标端点是此种请求所针对的端点。尽管它们被标记为这样,但是每个端点120可以对连接到互连结构的任何端点进行读取或写入请求,并且它们也可以响应于互连结构中的任何端点。如上所述,端点120可以在它们具有足够的请求信用时进行请求,请求信用在它们进行请求时分配。
图2示出了交换设备200的实施例的框图,例如图1中的交换机110之一,它耦合到互连结构。在所示实施例中,交换设备200连接到端点、GPU 230。设备200包括接收器(RX)240、入口管线250、IRL模块210、虚拟信道(VC)缓冲器220和交叉开关260。
接收器240被配置为从端点230接收分组(例如,响应和请求分组)并将它们传递到入口管线250。入口管线250被配置为从接收器240接收请求分组并将它们移动到IRL模块210和VC缓冲器220。VC缓冲器220连接到交叉开关260,其将来自端点230的请求分组发送到互连结构中的其他端点并从其接收响应分组。在所示实施例中,VC缓冲器220包括请求VC、独立硬件信用机制,例如便于请求分组移动的一组队列。
虽然IRL模块210可以存在于互连结构的任何交换设备中,但是仅启用位于互连结构的边缘处的那些设备。IRL模块210具有两个IRL实例212、214,其与交换设备200的相同端口(例如,端口0)相关联,并控制不同类别的流量的注入速率。基于其类别,每个分组仅与IRL实例212、214中的一个交互。分组的类别可以基于各种因素,例如分组的优先级和/或目的地。使用来自路由表(未示出)的信号将该类别添加到分组中。IRL实例212、214可以使用可以彼此交互的独立注入速率限制机制。在一个实施例中,注入速率限制机制使用基于首先触发哪个IRL实例来限制注入的策略进行交互。
每个IRL实例212、214包括两个单独的子模块216、218,它们分别独立地限制读取和写入事务的速率,以获得更大的灵活性和改进的拥塞控制。请求子模块216(请求速率限制器)通过抑制(throttle)请求带宽来控制写入事务,因为写入事务可以在请求上携带巨大的数据有效载荷。响应子模块218(响应速率限制器)通过抑制响应带宽来控制读取事务,因为读取事务可以在响应上携带巨大的数据有效载荷。虽然是独立的,但是请求子模块216和响应子模块218都通过抑制请求分组来控制源端点处的相应带宽;然而,在请求子模块216中检查请求分组的有效载荷,在响应子模块218中检查由请求生成的响应分组的有效载荷。但是在源端点处的间接抑制请求分组对于响应子模块218是优选的,因为在目标端点处直接抑制响应分组可能在返回到无拥塞源端点的响应与返回拥塞源端点的响应之间产生不必要的阻塞。子模块216、218的输出为“或”运算,使得请求虚拟信道220可以被子模块之一抑制。
使用子模块216、218,以两种方式控制互连结构的带宽。第一种方式是静态IRL,它使用“漏桶”机制控制带宽。可以通过软件对静态带宽控制进行编程,以将带宽静态地限制在某个水平以下。第二种方式是自适应IRL,它控制带宽适应于互连结构的拥塞级别。
自适应带宽控制具有两个单独的拥塞检测和反馈机制,其馈送控制算法。第一种机制是最后一跳(last-hop)显式拥塞通知(ECN),它利用来自互连结构的响应报头上携带的拥塞反馈位。第二种机制是利特尔法则(Little's Law)估计器,其通过计算事务延迟来执行拥塞的本地估计。这两种机制共同作用以用于自适应带宽控制。最后一跳ECN在图3-图4中示出,在图5中示出了利特尔法则估计器。
图3是网络级别的最后一跳ECN 300的实施例的框图。在所示实施例中,当请求分组在到达其目标端点(TGT GPU)之前到达最后一跳交换机310时,使用延迟指数移动平均(EMA)块312检测拥塞信息,并将其保存为存储器314(例如内部交换机存储器)中的后向显式拥塞通知(BECN)位,其跟踪/维持事务状态。将BECN字段添加到响应分组(Rsp)以从最后一跳交换机310传输拥塞信息。
当目标端点发送响应分组时,保存在存储器314中的BECN位的值被传送到响应头部。可以理解,BECN位在互连结构中的任何其他位置都没有被修改。在第一跳交换机320的出口管线322处,响应分组的BECN位由出口管线322提取并沿其传递到入口管线324中的IRL模块。
图4是包括延迟EMA块405(例如图3中的312)的最后一跳EMA 400的示意图。延迟EMA 405通过计算在入口管线406和最后一跳交换机(例如图3中的310)的出口管线410之间观察到的延迟平均值Lavg,然后将其与可编程延迟阈值(latency_threshold)412进行比较,来检测结构拥塞。通过对入口管线406中的分组加时间戳并通过找到分组中的时间戳和全局开关时间的差异来确定通过交叉开关(Xbar)408到出口管线410的传输时间,来测量延迟平均值。在所示实施例中,PortStat机制用作平均算法的输入。PortStat机制是交换机的端口中的一个模块,其测量分组通过交换机的延迟。无论分组在结构中之前的行程如何,这种延迟测量都是通过当前的交换机进行的。
下面的方程式1中指数移动平均(EMA)算法用于计算延迟平均值。
Lavg=Lavg+(L–Lavg)>>S 方程式1
在方程式1中,L表示分组时间戳机制测量的延迟,S表示可编程的偏移。
如果Lavg的值大于延迟阈值(latency_threshold)的值,则BECN位被设置为1,否则BECN位被设置为0。延迟阈值412是取决于因素(例如源流量配置文件,目标响应灵敏度)以及一般结构属性(例如大小和预期流量模式)的可编程阈值。BECN位保存在出口存储器420(例如图3中的314)中,其具有其他报头信息,并应用于入口管线处的来自目标端点的响应分组。由于延迟测量仅在最后一跳交换机的出口管线410上是活动的,因此请求虚拟信道仅需要单个延迟EMA模块。
图5是通过计算事务延迟来执行拥塞的本地估计的利特尔法则估计器500的图。事务延迟Ltrans使用方程式2计算,如下所示:
Li=NiTi 方程式2
在方程式2中,L表示事务延迟,N表示未完成的事务/请求,T表示平均到达间隔时间。
无论事务的大小如何,简单计数器510都跟踪未完成事务的数量。当第一跳交换机发送请求分组时递增计数器510,而当第一跳交换机接收到响应分组时递减计数器510。当接近饱和时,计数器反压请求分组虚拟信道。
EMA算法块520用于计算响应到达之间的平均时间,即“平均到达间隔时间”。EMA算法块520平滑到达时间。块520使用寄存器来存储当前的平均到达间隔时间。复位时寄存器设置为零,表示没有上次响应。该初始条件防止第一响应产生非常大的时间。
在接收到有效响应报头时,使用方程式3计算平均到达间隔时间:
Ti+1=Ti+(t-Ti)>>S 方程式3
在方程式3中,t表示自上次响应以来的时长,S表示EMA偏移。
当未完成事务N为零时,重置计数器。
可以通过迭代方法来避免方程式2中的乘法以节省硬件复杂性。迭代方法使用累加器,当没有响应到达时,累加器递增Ni。设t是两个响应到达之间的时长,在时长t期间累加器累加Nit值。对于到达请求,事务延迟530更新为:
Li+1=(Ni+1)Ti 方程式4,
使用方程式2,方程式4可以被重写为:
Li+1=Li+Ti 方程式5。
对于到达响应,可以将事务延迟计算为:
Li+1=(Ni-1)Ti+1
=NiTi+1-Ti+1 方程式6,
使用方程式2和方程式3以及在累加器Nit中累加的值,方程式6可以被重写为:
=(Ni)(Ti+(t-Ti)>>S)-Ti+1
=NiTi+(Nit-NiTi)>>S-Ti+1
Li+1=Li+(Nit-Li)>>S-Ti+1 方程式7。
在请求/响应报头两者都到达的周期中,请求和响应的方程式被组合并且EMA术语被取消:
Li+1=Li+1+(Nit-Li+1)>>S 方程式8
在方程式7和方程式8中累加器用于事务延迟更新之后,累加器的值被重置为Ni。将计算的事务延迟与相应的可编程阈值542、544进行比较,以生成拥塞信号,以馈送相应的响应IRL子模块或请求IRL子模块。
应当理解,在某些情况下,交换机可以将结构中的多个响应塌缩(collapse)成单个响应,并且由于迭代延迟计算,准确地测量塌缩响应的响应到达间隔时间可能是困难的。这样,在一个实施例中,为每个IRL实例提供未塌缩机制。未塌缩机制使用与利特尔法则未完成事务计数器大小相同的计数器。在有效响应中,报头中塌缩的响应的数目将被添加到塌缩响应计数器中。塌缩响应的BECN位直接发送到IRL子模块而不经过未塌缩,因为接收到的BECN位的数目不计算在内。在每个可编程周期中,计数器向IRL发送1个未塌缩的响应,并递减1,直到计数器达到0。
图6示出了请求IRL子模块600的实施例,其包括静态限制器610和自适应限制器620。由于请求IRL子模块和响应IRL子模块的设计类似,因此仅示出了请求IRL子模块。IRL子模块在位于互连结构边缘处的设备上启用,例如图2中的交换机200。
静态限制器610使用以静态再填充速率重新填充的信用计数器(req_irl_credit计数器)612来限制端点发送新的数据请求的能力。通过将随机数发生器(RNG)614(LFSR)的输出与数据注入阈值(LFSR_wm)616进行比较来实现信用计数器612的再填充速率。
当请求分组被注入到请求虚拟信道中时,从源端点的相应信用计数器中减去与请求分组的大小相对应的请求信用的数目及其响应信用的数目。例如,对于读取请求分组,与读取请求分组的大小相对应的请求信用的数目和与要生成的读取响应分组的大小相对应的响应信用的数目(其包括从目标端点读取的数据的大小),分别从源端点的请求信用计数器和响应信用计数器中减去;对于写入请求分组,与写入请求分组的大小相对应的请求信用的数目(包括要写入到目标端点的数据的大小)以及与要生成的写入响应分组的大小相对应的响应信用的数目,分别从源端点的请求信用计数器和响应信用计数器中减去。
当信用计数器612的值小于分组最大传输单元(MTU)时,静态限制器610对请求虚拟信道进行抑制,从而防止新的数据请求分组被注入到互连结构中。当信用计数器612的值大于或等于分组MTU时,静态限制器610允许将新的数据请求分组注入到互连结构中。可以理解,MTU表示可以在单个网络层事务中传送的最大协议数据单元(PDU)的大小。
在每个周期,将RNG 614的值与数据注入阈值616进行比较。如果来自RNG 614的值小于阈值616,则信用计数器612递增N,直到达到可编程的最大值(不一定与初始值相同)。增量大小N不需要是可编程的,而是取决于如何测量分组大小。例如,只要跟踪测量大小与观察测量和应用控制的点一致,内部分组微片(flit)大小可以与外部线上(on-the-wire)微片大小不同。这解释了交换机核心和NVlink之间的时钟差异。如果RNG 714的值大于阈值,则信用计数器保持原样。
自适应限制器620基于互连结构的拥塞级别自适应地限制端点发出新的数据请求的能力。自适应限制器620利用信用计数器612和上述数据注入阈值616。尽管在静态限制器610的操作期间数据注入TH 616保持不变,但是自适应限制器620基于互连结构的拥塞级别来改变数据注入TH 616的值。改变数据注入TH 616改变了信用计数器612被重新填充的速率(“再填充速率”),因为仅当RNG 614生成的值没有越过数据注入TH 616时,信用计数器612被重新填充,如上所述。当数据注入TH 616增加时,再填充速率增加,因为RNG 614的值不太可能越过数据注入TH 616。并且当数据注入TH 616减小时,再填充速率减小,因为RNG614的值更可能将越过数据注入TH 616。
递增计时器622用于周期性地增加数据注入TH 616。递增计时器622周期性地将数据注入TH 616大约每N个周期增加可编程量,例如1。数据注入TH 616受可编程最大值的约束,其可能小于可用带宽的100%。在一个实施例中,使用另一TH比较来实现N。使用额外的TH比较引入了一些短期增量速率的随机性,同时保持固定的长期率以帮助系统的振荡行为。例如,16位RNG的周期为65535个周期。通过将比较TH设置为2184,这个基于水印的定时模块将平均每65535/2184=30个周期触发。
应当理解,在递增信用计数器612和数据注入TH 616的过程中利用随机数生成将短期随机性结合到过程中,同时仍遵守长期目标(例如,对于观察到的注入速率为30%,虽然每10个周期可能不总是注入3个微片,但平均每100个周期注入30个微片)。引入的短期随机性使得两个进程都是伪非确定性的而不是确定性的,并且允许它们避免节点之间的任何系统同步效应(例如,2个节点被抑制为50%注入速率,但是两者同时选择空闲或注入分组)。使用中断计时器(blackout timer,BT)624递减数据注入TH 616。BT 624基于拥塞反馈和利特尔法则(LL)估计器的输出来控制注入TH 616的递减。拥塞反馈是由最后一跳ECN(如图3中的300)计算的BECN位626,并通过响应分组传送,并且LL估计器的输出是来自LL估计器(如图5中的500)的LL信号630。
每个周期BT 624按可编程量进行倒计数。当BT 624大于0时,IRL处于中断时段,并且到达的响应分组不会导致任何递减。在中断时段期间,BECN计数器628(BECN_cnt)对于每个到达的响应递增1,其中BECN位626设置为1。BECN计数器628在最大值处饱和。
当BT 624达到0时,中断时段结束。BT 624保持为0,直到下一个响应分组到达。使用BECN计数器628的值和利特尔法则信号630(例如串联的)来查找递减移位值S。数据注入TH 616的新值被计算为:
注入TH新=注入TH旧-(注入TH旧>>S) 方程式9
利特尔法则信号630是由利特尔法则估计器(如图5中的500)计算的局部拥塞估计。通过可编程本地拥塞阈值与事务延迟之间的比较来确定本地拥塞估计,其是使用多个未完成事务和响应到达间隔时间(即,数据请求分组的响应的到达之间的平均时间)来计算的。在一个实施例中,值的串联产生2位索引以查找4条目递减移位表632。表632可以用范围例如3到9的移位值编程。一旦数据注入TH 616递减,BT 624和BECN计数器628两者都被复位。
图7示出了数据注入TH 616递减的示例。在所示的示例中,BT 624从5倒计数到0。直到它达到0,响应到达不会导致任何递减。然而,它们使BECN计数器628递增。在所示的示例中,当第二响应712到达时BECN计数器628递增到1并且在1处保持饱和,这是该示例的最大值。
当第四响应714到达时,BT 624到期并且数据注入TH递减被触发。如图所示,第四响应714的到达也重置BT 624和BECN计数器628。当第五响应715到达时,由于BT 624尚未达到零,所以第五响应715的到达不会使数据注入TH 616递减。相反,它使BECN计数器628递增。
图8示出了注入速率限制方法800的实施例的流程图。方法800可以由位于互连结构的边缘处的交换设备执行,例如图2中的交换机200。方法800在步骤805开始。
在步骤810,初始化互连结构和与其连接的端点。步骤810包括使得位于互连结构的边缘处的交换设备能够执行注入速率限制。步骤810中还包括参数化互连结构并基于互连结构的参数选择IRL模式。
互连结构的参数之一是“基本(base)”源到目的地结构延迟。基本延迟是IRL应用的参考延迟。在一个实施例中,使用交换机驱动器从配置参数表访问基本延迟。由于每个结构拓扑的基本延迟可能不同,因此在软件中维护所有可能的结构拓扑的表可能会出现代码维护问题。这样,在所示实施例中,使用IRL延迟ping机制来确定基本延迟。
利用内置硬件IRL ping机制,当互连结构空闲时,例如,当互连结构主要服务于ping分组以测量网络延迟并且服务很少甚至没有服务其他类型的分组时,硬件可以“范围寻找”当前拓扑的基本延迟。IRL ping机制周期性地将事务(例如,ping分组)发送到结构上。如果是,它会快照(snap)当前的切换时间戳。ping分组是一个简单的读取请求分组,当与任何其他事务一样返回时,它变为简单的读取响应。由于其有效负载最小,因此ping分组不会影响任何端点。它唯一的行为是转发到选定的目标,并在到达目标交换端口时,作为响应环路回到事务源。当ping响应返回到源时,它是加有时间戳的,并计算请求时间和响应时间之间的差。此增量时间可以由相应的IRL实例原始消耗或过滤(Exp_Mov_Avg)。
使用内置硬件IRL ping机制的一个重要优点是延迟测量不需要限制为通电初始化。在系统处于操作状态时,还可以动态使用IRL ping机制来确定延迟。这将允许使用更复杂的IRL适应机制。一旦确定了各种感兴趣的延迟,软件/标识号(ucode)(例如在系统主处理器或监控结构行为/性能的交换机芯片中的嵌入式微控制器上运行的那些)可以使用它们来配置各种IRL设置。
基于诸如互连结构的基本延迟和互连结构的拓扑之类的参数,选择IRL模式。在所示实施例中,选择静态IRL或自适应IRL。可以理解,IRL模式选择也可以基于运营商的目标或目的,例如防止选择静态IRL所针对的端点之间的干扰,或者选择自适应IRL所针对的互连结构使用的效率。
在步骤820,监控互连结构上的端点之间的数据。每个设备使用相应管线(诸如图3中的322、324)接收与直接连接的端点相关联的数据。数据包括请求分组以及响应分组,请求分组例如读取请求分组(其请求从另一端点读取数据)以及写入请求分组(其请求将数据写入另一端点)。同样在步骤820期间,从源端点的相应信用计数器(例如图6中的612)中减去对应于请求分组和响应分组的大小的请求信用的数目。
在步骤830,使用静态IRL限制器和自适应IRL限制器(例如图6中的610、620)来控制将数据注入到互连结构中的注入速率。基于在步骤610选择的IRL模式,可以使用不同的限制器来静态地或自适应地限制直接连接的端点进行新的数据请求的能力。如上所述,静态IRL可以通过使用静态数据注入阈值伪非确定性地重新填充信用计数器来控制注入速率,并且自适应IRL可以通过使用适应于互连结构的拥塞级别的数据注入阈值伪非确定性地重新填充信用计数器来控制注入速率。方法800在步骤835结束。
图9示出了注入速率限制方法900的另一实施例的流程图。方法900可以由位于互连结构的边缘的IRL设备执行,例如图2中的交换机200。方法900开始于步骤905。
在步骤910,初始化互连结构和与其连接的端点。步骤910包括使得位于互连结构的边缘处的交换设备能够执行注入速率限制。910中还包括参数化互连结构。确定诸如基本延迟和数据注入阈值的参数。与方法800不同,方法900在一种模式下操作,因此在步骤910不进行IRL模式选择。
在步骤920,监控互连结构上的端点之间的数据。每个设备使用相应管线(诸如图3中的322、324)监控与直接连接的端点相关联的请求分组和响应分组。数据请求可以是读取请求分组或写入请求分组。
在步骤920期间,对于被注入互连结构的每个请求分组,每个请求分组的请求数据量被累积在累加器中。在步骤920期间,对于源端点,还从相应的信用计数器(例如,请求信用计数器或响应信用计数器)中减去对应于请求分组和响应分组的大小的请求信用的数目。
在步骤930,控制将数据注入互连结构的注入速率。在所示实施例中,IRL子模块基于累加器的值与多个数据注入TH之间的比较来限制直接连接的端点进行新的数据请求的能力。图10示出了如何使用两个向上和两个向下数据注入阈值来执行步骤930。
当第一向上TH(向上wm1)1010在向上轨迹上相交时,返回到源端点的或其信用计数器的信用量从全量减少第一可编程量。当第二向上TH 1020在向上的轨迹上相交时,该量进一步减少并且不返还任何信用。
当在预定义时间段(例如,一个周期)内没有进行新的请求时,累加器的值递减一个可编程量。当累加器的值在向下轨迹上与第一(高)向下TH 1030相交时,信用返还量增加一个可编程量。当该值在向下轨迹上与第二(低)向下TH 1040相交时,信用返还量恢复到全(初始)量。向下轨迹水印的目的是允许应用的滞后功能。
在一个实施例中,基于相应请求的往返时间(RTT)将信用返回到源端点。当在到达路由块之前在第一跳交换机的入口管线中检测到请求时,信用返还过程不会开始,直到路由块开始从其缓冲器弹出分组。当信用可用时,每RTT时间返回一个适当的数字。在该实施例中,读取和写入控制环相对独立。方法900在步骤935结束。
上述装置、系统或方法的一部分可以体现在各种数字数据处理器或计算机中或由其执行,其中计算机被编程或存储软件指令序列的可执行程序,以执行这些方法的步骤的一个或个更多个。这些程序的软件指令可以表示算法并且以机器可执行的形式编码在非暂时性数字数据存储介质上,例如磁盘或光盘、随机存取存储器(RAM)、磁性硬盘、闪存和/或只读存储器(ROM),以使各种类型的数字数据处理器或计算机能够执行上述方法中的一个或更多个的一个、多个或所有步骤或本文所述的功能、系统或装置。
所公开的实施例的部分可涉及具有非暂时性计算机可读介质的计算机存储产品,所述非暂时性计算机可读介质上具有用于执行各种计算机实现的操作的程序代码,所述计算机实现的操作体现装置、设备的一部分或执行本文所述的方法的步骤。本文使用的非暂时性是指除了暂时的传播信号之外的所有计算机可读介质。非暂时性计算机可读介质的示例包括但不限于:磁性介质(诸如硬盘、软盘和磁带);光盘介质(如CD-ROM盘);磁光介质(如光磁软盘);以及专门配置用于存储和执行程序代码的硬件设备(例如ROM和RAM设备)。程序代码的示例包括机器代码(诸如由编译器产生的)和包含可由计算机使用解释器执行的更高级代码的文件。
本申请所涉及领域的技术人员将理解,可以对所描述的实施例进行其他和进一步的添加、删除、替换和修改。
Claims (37)
1.一种用于管理连接系统的端点的互连结构中的吞吐量的方法,包括:
监控所述端点之间的通过所述互连结构的数据请求;以及
通过限制至少一个所述端点通过所述互连结构进行新的数据请求的能力来控制将新的数据注入到所述互连结构中的注入速率,
其中所述限制包括基于注入阈值改变再填充速率,其中以所述再填充速率来重新填充所述至少一个所述端点的信用计数器。
2.如权利要求1所述的方法,其中,所述改变包括通过减小适应于所述互连结构的拥塞级别的所述注入阈值来自适应地降低所述再填充速率。
3.如权利要求1所述的方法,其中,所述改变包括通过周期性地增加所述注入阈值来增加所述再填充速率。
4.如权利要求1所述的方法,其中,所述改变包括当随机生成的数字小于所述注入阈值时递增所述信用计数器。
5.如权利要求1所述的方法,其中,当所述信用计数器的值大于或等于分组的最大传输单元时,将所述新的数据请求注入到所述互连结构中,并且当所述信用计数器的所述值小于所述最大传输单元时,阻止所述新的数据请求注入到所述互连结构中。
6.如权利要求1所述的方法,其中,所述信用计数器包括请求信用计数器和响应信用计数器,并且所述限制包括使用所述响应信用计数器限制所述至少一个所述端点通过所述互连结构进行新的数据读取请求的能力,所述数据读取请求的能力独立于所述至少一个所述端点通过所述互连结构进行新的数据写入请求的能力。
7.如权利要求2所述的方法,其中,所述拥塞级别是基于拥塞反馈和本地拥塞估计来确定的。
8.如权利要求2所述的方法,其中,所述减小包括当中断时段结束且当对数据请求的响应到达时减小所述注入阈值。
9.如权利要求7所述的方法,其中,使用在中断时段期间的所述拥塞反馈的累积和所述本地拥塞估计来确定所述注入阈值减小的量。
10.如权利要求7所述的方法,其中,所述拥塞反馈是通过计算所述数据请求的延迟平均值并将所述延迟平均值与可编程延迟阈值进行比较来确定的。
11.如权利要求7所述的方法,其中,所述拥塞反馈是由数据请求的目标端点之前的最后一个交换机计算的。
12.如权利要求7所述的方法,其中,所述本地拥塞估计是通过计算事务延迟并将所述事务延迟与本地拥塞阈值进行比较来确定的。
13.如权利要求12所述的方法,其中,基于基本延迟来设置所述本地拥塞阈值,所述基本延迟是ping分组从所述端点中的一个端点到达所述端点中的另一个端点并且当所述互连结构空闲时返回到所述一个端点所用的时间段。
14.如权利要求12所述的方法,其中,所述事务延迟是基于所述数据请求中的未完成请求的数量和对所述未完成请求的响应的到达之间的平均时间来计算的。
15.如权利要求12所述的方法,其中,迭代地计算所述事务延迟而不使用乘法。
16.如权利要求13所述的方法,其中,在初始化所述注入速率时测量所述基本延迟。
17.如权利要求1所述的方法,其中,所述注入速率包括将新的第一流量类别数据注入到所述互连结构中的第一注入速率以及将新的第二流量类别数据注入到所述互连结构中的第二注入速率。
18.如权利要求17所述的方法,其中,所述第一注入速率和所述第二注入速率与所述互连结构的相同端口相关联。
19.一种用于管理连接系统的端点的互连结构中的吞吐量的设备,包括:
管线,被配置为监控所述端点之间的通过所述互连结构的数据请求;以及
注入速率限制器,被配置为通过限制至少一个所述端点通过所述互连结构进行新的数据请求的能力来控制将新的数据注入到所述互连结构中的注入速率,
其中所述限制包括基于注入阈值改变再填充速率,其中以所述再填充速率来重新填充所述至少一个所述端点的信用计数器。
20.如权利要求19所述的设备,其中,所述改变包括通过减小适应于所述互连结构的拥塞级别的所述注入阈值来自适应地降低所述再填充速率。
21.如权利要求19所述的设备,其中,所述改变包括通过周期性地增加所述注入阈值来增加所述再填充速率。
22.如权利要求19所述的设备,其中,所述改变包括当随机生成的数字小于所述注入阈值时递增所述信用计数器。
23.如权利要求19所述的设备,其中,当所述信用计数器的值大于或等于分组的最大传输单元时,将所述新的数据请求注入到所述互连结构中,并且当所述信用计数器的所述值小于所述最大传输单元时,阻止所述新的数据请求注入到所述互连结构中。
24.如权利要求19所述的设备,其中,所述信用计数器包括请求信用计数器和响应信用计数器,并且所述限制包括使用所述响应信用计数器限制所述至少一个所述端点通过所述互连结构进行新的数据读取请求的能力,所述数据读取请求的能力独立于所述至少一个所述端点通过所述互连结构进行新的数据写入请求的能力。
25.如权利要求20所述的设备,其中,所述拥塞级别是基于拥塞反馈和本地拥塞估计来确定的。
26.如权利要求20所述的设备,其中,所述减小包括当中断时段结束且当对数据请求的响应到达时减小所述注入阈值。
27.如权利要求25所述的设备,其中,使用在中断时段期间的所述拥塞反馈的累积和所述本地拥塞估计来确定所述注入阈值减小的量。
28.如权利要求25所述的设备,所述拥塞反馈是通过计算所述数据请求的延迟平均值并将所述延迟平均值与可编程延迟阈值进行比较来确定的。
29.如权利要求25所述的设备,其中,所述拥塞反馈是由数据请求的目标端点之前的最后一个交换机计算的。
30.如权利要求25所述的设备,其中,所述本地拥塞估计是通过计算事务延迟并将所述事务延迟与本地拥塞阈值进行比较来确定的。
31.如权利要求30所述的设备,其中,所述本地拥塞阈值是基于基本延迟来设置的,所述基本延迟是ping分组从所述端点中的一个端点到达所述端点中的另一个端点并且当所述互连结构空闲时返回到所述一个端点所用的时间段。
32.如权利要求31所述的设备,其中,所述基本延迟是在初始化所述注入速率限制器时测量的。
33.如权利要求30所述的设备,其中,所述事务延迟是基于所述数据请求中的未完成请求的数量和对所述未完成请求的响应的到达之间的平均时间来计算的。
34.如权利要求30所述的设备,其中,所述事务延迟是迭代计算的,而不使用乘法。
35.如权利要求24所述的设备,其中,所述限制包括使用所述请求信用计数器限制至少一个所述端点通过所述互连结构进行新的数据写入请求的能力,所述数据写入请求的能力独立于至少一个所述端点进行所述新的数据读取请求的能力。
36.如权利要求19所述的设备,其中,所述注入速率包括将新的第一流量类别数据注入到所述互连结构中的第一注入速率以及将新的第二流量类别数据注入到所述互连结构中的第二注入速率。
37.如权利要求36所述的设备,其中,所述第一注入速率和所述第二注入速率与所述互连结构的相同端口相关联。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862648326P | 2018-03-26 | 2018-03-26 | |
US62/648,326 | 2018-03-26 | ||
US16/277,349 | 2019-02-15 | ||
US16/277,349 US11082347B2 (en) | 2018-03-26 | 2019-02-15 | Techniques for reducing congestion in a computer network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110365597A true CN110365597A (zh) | 2019-10-22 |
CN110365597B CN110365597B (zh) | 2024-05-24 |
Family
ID=67983264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910231709.5A Active CN110365597B (zh) | 2018-03-26 | 2019-03-26 | 用于减少计算机网络中的拥塞的技术 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11082347B2 (zh) |
CN (1) | CN110365597B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309571A (zh) * | 2020-02-12 | 2020-06-19 | 深圳华锐金融技术股份有限公司 | 业务数据控制方法、装置、计算机设备和存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GR20180100189A (el) * | 2018-05-03 | 2020-01-22 | Arm Limited | Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming |
WO2020236283A1 (en) * | 2019-05-23 | 2020-11-26 | Cray Inc. | System and method for dynamic allocation of reduction engines |
US11824792B2 (en) * | 2021-08-24 | 2023-11-21 | Hewlett Packard Enterprise Development Lp | Method and system for dynamic quota-based congestion management |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6424624B1 (en) * | 1997-10-16 | 2002-07-23 | Cisco Technology, Inc. | Method and system for implementing congestion detection and flow control in high speed digital network |
US20050078603A1 (en) * | 2003-10-08 | 2005-04-14 | Yoshio Turner | Network congestion control |
US20050226150A1 (en) * | 2004-03-30 | 2005-10-13 | Santos Jose R | Congestion control system |
CN1689278A (zh) * | 2001-12-18 | 2005-10-26 | 思科技术公司 | 网络拥塞控制方法和装置 |
CN101253729A (zh) * | 2005-10-11 | 2008-08-27 | 思科技术公司 | 后向拥塞通知的方法和设备 |
US20080298248A1 (en) * | 2007-05-28 | 2008-12-04 | Guenter Roeck | Method and Apparatus For Computer Network Bandwidth Control and Congestion Management |
US20100088437A1 (en) * | 2008-10-06 | 2010-04-08 | Mellanox Technologies Ltd | Infiniband adaptive congestion control adaptive marking rate |
CN101803316A (zh) * | 2007-09-26 | 2010-08-11 | 国际商业机器公司 | 用于数据中心以太网架构的在虚拟道上的适应性拥塞控制的方法、系统和计算机程序产品 |
CN102595503A (zh) * | 2012-02-20 | 2012-07-18 | 南京邮电大学 | 一种基于无线多媒体传感器网络的拥塞控制方法 |
US20120230177A1 (en) * | 2011-03-09 | 2012-09-13 | Froese Edwin L | Congestion abatement in a network interconnect |
US20130100816A1 (en) * | 2011-10-25 | 2013-04-25 | Vmware, Inc. | Network congestion management based on communication delay |
WO2013095664A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Traffic control on an on-chip network |
US20140269274A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Credit-based flow control in lossless ethernet networks |
US20140301197A1 (en) * | 2013-04-05 | 2014-10-09 | International Business Machines Corporation | Virtual quantized congestion notification |
CN105745885A (zh) * | 2013-12-20 | 2016-07-06 | 英特尔公司 | 用于高性能结构内的灵活信用交换的方法和系统 |
CN105900386A (zh) * | 2014-02-05 | 2016-08-24 | 英特尔公司 | 具有线速和分组数据速率匹配的以太网分组数据的可靠传输 |
US20160359973A1 (en) * | 2015-06-04 | 2016-12-08 | Advanced Micro Devices, Inc. | Source-Side Resource Request Network Admission Control |
CN106444387A (zh) * | 2016-12-02 | 2017-02-22 | 国家电网公司 | 双自由度拥塞控制方法及装置 |
CN107005484A (zh) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | 用于在高性能网络结构中进行中等粒度自适应路由的技术 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10257098B1 (en) * | 2015-12-29 | 2019-04-09 | Amazon Technologies, Inc. | Credit mechanisms for packet policing |
US9971390B1 (en) * | 2016-01-05 | 2018-05-15 | Apple Inc. | Processor energy consumption rate limiting system |
US10917349B2 (en) * | 2017-08-11 | 2021-02-09 | Marvell Israel (M.I.S.L) Ltd. | Congestion avoidance in a network switch device |
-
2019
- 2019-02-15 US US16/277,349 patent/US11082347B2/en active Active
- 2019-03-26 CN CN201910231709.5A patent/CN110365597B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6424624B1 (en) * | 1997-10-16 | 2002-07-23 | Cisco Technology, Inc. | Method and system for implementing congestion detection and flow control in high speed digital network |
CN1689278A (zh) * | 2001-12-18 | 2005-10-26 | 思科技术公司 | 网络拥塞控制方法和装置 |
US20050078603A1 (en) * | 2003-10-08 | 2005-04-14 | Yoshio Turner | Network congestion control |
US20050226150A1 (en) * | 2004-03-30 | 2005-10-13 | Santos Jose R | Congestion control system |
CN101253729A (zh) * | 2005-10-11 | 2008-08-27 | 思科技术公司 | 后向拥塞通知的方法和设备 |
US20080298248A1 (en) * | 2007-05-28 | 2008-12-04 | Guenter Roeck | Method and Apparatus For Computer Network Bandwidth Control and Congestion Management |
CN101803316A (zh) * | 2007-09-26 | 2010-08-11 | 国际商业机器公司 | 用于数据中心以太网架构的在虚拟道上的适应性拥塞控制的方法、系统和计算机程序产品 |
US20100088437A1 (en) * | 2008-10-06 | 2010-04-08 | Mellanox Technologies Ltd | Infiniband adaptive congestion control adaptive marking rate |
US20120230177A1 (en) * | 2011-03-09 | 2012-09-13 | Froese Edwin L | Congestion abatement in a network interconnect |
US20130100816A1 (en) * | 2011-10-25 | 2013-04-25 | Vmware, Inc. | Network congestion management based on communication delay |
WO2013095664A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Traffic control on an on-chip network |
CN102595503A (zh) * | 2012-02-20 | 2012-07-18 | 南京邮电大学 | 一种基于无线多媒体传感器网络的拥塞控制方法 |
US20140269274A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Credit-based flow control in lossless ethernet networks |
US20140301197A1 (en) * | 2013-04-05 | 2014-10-09 | International Business Machines Corporation | Virtual quantized congestion notification |
CN105745885A (zh) * | 2013-12-20 | 2016-07-06 | 英特尔公司 | 用于高性能结构内的灵活信用交换的方法和系统 |
CN105900386A (zh) * | 2014-02-05 | 2016-08-24 | 英特尔公司 | 具有线速和分组数据速率匹配的以太网分组数据的可靠传输 |
CN107005484A (zh) * | 2014-12-27 | 2017-08-01 | 英特尔公司 | 用于在高性能网络结构中进行中等粒度自适应路由的技术 |
US20160359973A1 (en) * | 2015-06-04 | 2016-12-08 | Advanced Micro Devices, Inc. | Source-Side Resource Request Network Admission Control |
CN106444387A (zh) * | 2016-12-02 | 2017-02-22 | 国家电网公司 | 双自由度拥塞控制方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309571A (zh) * | 2020-02-12 | 2020-06-19 | 深圳华锐金融技术股份有限公司 | 业务数据控制方法、装置、计算机设备和存储介质 |
CN111309571B (zh) * | 2020-02-12 | 2021-08-31 | 深圳华锐金融技术股份有限公司 | 业务数据控制方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110365597B (zh) | 2024-05-24 |
US11082347B2 (en) | 2021-08-03 |
US20190297018A1 (en) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110365597A (zh) | 用于减少计算机网络中的拥塞的技术 | |
Gibbens et al. | Resource pricing and the evolution of congestion control | |
La et al. | Charge-sensitive TCP and rate control in the Internet | |
La et al. | Utility-based rate control in the Internet for elastic traffic | |
KR101468833B1 (ko) | 계층적 프로파일 스케줄링 및 쉐이핑 | |
US11218413B2 (en) | Congestion control management method derived from packets at a network adapter | |
CN107948103B (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
CN110166367A (zh) | 一种分组网络中控制流量的方法及装置 | |
US20110007631A1 (en) | Network Communication | |
JPS63176046A (ja) | 輻湊制御型パケット交換方法及びその装置 | |
WO2005086435A1 (en) | A method for congestion management of a network, a signalling protocol, a switch, an end station and a network | |
JP2001024678A (ja) | データ伝送ネットワーク中で輻輳を予測して制御する方法およびノード | |
US8004970B2 (en) | Method, system and program product for setting a transmission rate in a network | |
US9705807B2 (en) | Distributed counters and meters in packet-switched system | |
CN110290428A (zh) | 一种拥塞控制方法、装置、终端及存储介质 | |
CN104995883B (zh) | 用信号通知拥塞的方法 | |
Anderson et al. | PCP: Efficient Endpoint Congestion Control. | |
CN112787950B (zh) | 一种公平网络流量管控方法及装置 | |
CN109802898A (zh) | 多链路数据传输方法、接收装置及存储介质 | |
Salah et al. | Performance analysis and comparison of interrupt-handling schemes in gigabit networks | |
CN117857472A (zh) | 报文发送方法、数据处理器、计算机设备及存储介质 | |
CN109274550A (zh) | 一种iSCSI自适应IO队列深度匹配方法 | |
CN112260962B (zh) | 一种带宽控制方法及装置 | |
CN107920028B (zh) | 一种数据包发送方法、装置及设备 | |
CN116828538A (zh) | 算力资源分配方法、装置、存储介质及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |