CN110035011B - 具有灵活速率限制器的网络设备 - Google Patents
具有灵活速率限制器的网络设备 Download PDFInfo
- Publication number
- CN110035011B CN110035011B CN201811489165.4A CN201811489165A CN110035011B CN 110035011 B CN110035011 B CN 110035011B CN 201811489165 A CN201811489165 A CN 201811489165A CN 110035011 B CN110035011 B CN 110035011B
- Authority
- CN
- China
- Prior art keywords
- rate
- transmission
- packet
- data
- buffer
- 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.)
- Active
Links
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/215—Flow control; Congestion control using token-bucket
-
- 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
-
- 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/22—Traffic shaping
-
- 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/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/251—Cut-through or wormhole routing
-
- 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/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
Abstract
一种用于通信网络的网络设备,该网络设备包括被配置为向通信网络传输数据的端口,该端口被配置为以最大传输数据速率传输数据单元。设备还包括被配置为缓冲预备用于向通信网络传输的数据单元的传输缓冲器,和被配置为在数据单元预备用于传输之前对数据单元进行缓冲的分组缓冲器。分组缓冲器被配置为以快于最大传输数据速率的最大分组缓冲传输速率来输出数据单元。设备包括速率控制器,该速率控制器被配置为控制从分组缓冲器到传输缓冲器的数据的传输速率,使得在用于传输多个数据单元的一段时间上平均而言,从分组缓冲器到传输缓冲器的数据的传输速率最多等于最大传输数据速率,同时允许传输速率以一个或多个选定时间间隔超过最大传输数据速率。
Description
相关申请的交叉引用
本申请要求于2017年12月6日提交的共同未决、共同享有的美国临时专利申请No.62/595,448的权益,该申请在此通过全文引用并入本文。
技术领域
本公开涉及在网络中使用的数据设备。特别地,本公开涉及一种网络数据设备,该网络数据设备具有利用灵活速率限制器的传输阶段,以平均而言避免超过最大传输数据速率,同时避免欠载运行。
背景技术
本文提供的背景技术描述的目的是用于总体描述本公开的上下文。到背景技术章节所描述的工作的程度而言本公开的发明人的工作以及说明书中可能也不认为是在提交时的现有技术的各个方面,均不是明确或隐含地被承认为相对于本公开的现有技术。
网络设备运行在高数据速率和高带宽上。为了维持设备间的通信,重要的是要避免“欠载运行”状况,即,通常是在发射器(例如,端口)没有足够的数据用于传输的情况下传输已经开始之后发生的状况,因为欠载运行状况可能引起远端设备错误地认为会话传输完成了或者认为连接已经断开,这可能导致远端设备错误地在他那一端终止会话。同时,期望尽可能的最大程度利用连接的容量,即,期望尝试获得“全线速”,同时不超过端口的最大可能的传输速率。
发明内容
根据本公开的主题的实现,一种用于通信网络的网络设备包括:端口,被配置为向通信网络传输数据。端口被配置为以最大传输数据速率传输数据单元。网络设备还包括传输缓冲器,被配置为缓冲预备用于向通信网络传输的数据单元,以及分组缓冲器,被配置为在数据单元预备用于传输之前对数据单元进行缓冲。分组缓冲器还被配置为响应于读请求而以最大分组缓冲传输速率输出数据单元,最大分组缓冲传输速率快于最大传输数据速率。网络设备还包括速率控制器,被配置为控制从分组缓冲器到传输缓冲器的数据的传输速率,使得在用于传输多个数据单元的一段时间上平均而言,从分组缓冲器到传输缓冲器的数据的传输速率最多等于最大传输数据速率,同时允许传输速率以一个或多个选定时间间隔超过最大传输数据速率。
在这样的网络设备的第一实现中,速率控制器还被配置为根据不同于最大传输数据速率的速率限制参数来限制从分组缓冲器到传输缓冲器的数据的传输速率。
在这样的网络设备的上述第一实现中,不同于最大传输数据速率的限制参数可以是信元速率,信元速率支配在时间间隔期间的分组缓冲器访问的准许数量。
在这样的网络设备的第二实现中,速率控制器允许从分组缓冲器到传输缓冲器的数据的传输速率超过最大传输数据速率,以对准网络分组的头部部分和有效载荷部分。
在这样的网络设备的第三实现中,速率控制器包括:分组内速率限制器,被配置为控制网络分组内的数据的传输的速率;分组间线速速率限制器,被配置为控制网络分组之间的间距;以及分组间信元速率限制器,被配置为控制在时间间隔期间从分组缓冲器传输到传输缓冲器的数据信元的数量。
在第三实现的第一变化中,分组内速率限制器被配置为限制网络分组内的数据的传输的速率,以防止直通分组中的写前读出。
在第三实现的第二变化中,分组内速率限制器被配置为控制网络分组内的数据的传输的速率,以对准网络分组的头部部分和有效载荷部分。
在第三实现的第二变化的第一实例中,分组内速率限制器被配置为将网络分组内的数据的传输的速率增大到最大传输数据速率以上。在这样的第一实例中,分组间速率限制器被配置为将网络分组内的数据的传输的速率增大到最多为最大分组缓冲器传输速率。还是在第一实例中,分组间线速速率限制器增大网络分组之间的间隔,以按分组平均而言,将从分组缓冲器到传输缓冲器的数据的传输速率限制为最大传输数据速率,尽管将网络分组内的数据的传输的速率增大到高于最大传输数据速率。
在第三实现的第二变化的第二实例中,分组内速率限制器包括处理电路,处理电路当在令牌库中令牌可用时,允许数据的传输;当数据被传输时,从令牌库扣除令牌;根据规则,定期地向库增加令牌;以及在接收到开始新分组的请求时,将一个数量的额外令牌增加到库,该数量的额外令牌基于新分组的头部的大小和新分组的第一部分的大小。
在第三实现的第三变化中,分组间信元速率限制器被配置为将在时间间隔期间从分组缓冲器传输到传输缓冲器的数据信元的数量限制为在时间间隔期间的分组缓冲访问的最大准许数量。
在第三实现的第四变化中,分组内速率限制器、分组间线速速率限制器和分组间信元速率限速器中的每个相应的限速器包括相应的处理电路,相应的处理电路当在令牌的相应库中令牌可用时,允许数据的传输;当数据被传输时,从令牌的相应库中扣除令牌;并且针对分组内速率限制器、分组间线速速率限制器和分组间信元速率限速器中的相应的限速器,根据相应的规则,定期地将令牌增加到相应库。
根据本公开的主题的实现,一种操作耦合到通信网络的网络设备的方法包括:将数据经由传输缓冲器、从分组缓冲器到具有最大传输数据速率的端口传输出网络设备,分组缓冲器被配置为在数据单元预备用于传输之前对数据单元进行缓冲。分组缓冲器被配置为响应于读请求而以最大分组缓冲传输速率输出数据单元,最大分组缓冲传输速率快于最大传输数据速率。该方法还包括控制从分组缓冲器到传输缓冲器的数据的传输速率,使得在用于传输多个数据单元的一段时间上平均而言,从分组缓冲器到传输缓冲器的数据的传输速率最多等于最大传输数据速率,以及准许从分组缓冲器到传输缓冲器的数据的传输速率以一个或多个选定时间间隔超过最大传输数据速率,而不会引起在时间上平均的数据的受控制的传输速率超过最大传输数据速率。
在这样的方法的第一实现中,控制包括根据不同于最大传输数据速率的速率限制参数来限制从分组缓冲器到传输缓冲器的数据的传输速率。在第一实现的一个变化中,控制包括根据信元速率来限制从分组缓冲器到传输缓冲器的数据的传输速率,信元速率支配在时间间隔期间的分组缓冲器访问的准许数量。
在这样的方法的第二实现中,控制包括允许从分组缓冲器到传输缓冲器的数据的传输速率超过最大传输数据速率,以对准网络分组的头部部分和有效载荷部分。
在这样的方法的第三实现中,控制从分组缓冲器到传输缓冲器的数据的传输速率包括:控制网络分组内的数据的传输的速率;控制网络分组之间的间距;以及控制在时间间隔期间从分组缓冲器传输到传输缓冲器的数据信元的数量。
在这样的方法的第三实现的第一变化中,控制网络分组内的数据的传输的速率包括:限制控制分组内的数据的传输的速率,以防止直通分组中的写前读出。
在这样的方法的第三实现的第二变化中,控制网络分组内的数据的传输的速率包括:限制网络分组内的数据的传输的速率,以对准网络分组的头部部分和有效载荷部分。
在第二变化的实例中,控制网络分组内的数据的传输的速率包括:将网络分组内的数据的传输的速率增大到最大传输数据速率以上。在第二变化的这样的实例中,控制网络分组内的数据的传输的速率包括:将网络分组内的数据的传输的速率增大到最多最大分组缓冲器传输速率。可选地,在这样的实例中,控制网络分组之间的间距包括:增大网络分组之间的间隔,以按分组平均而言,将从分组缓冲器到传输缓冲器的数据的传输速率限制为最大传输数据速率,尽管网络分组内的数据的传输的速率增大到最大传输数据速率以上。
在这样的方法的第三实现的第三变化中,控制在时间间隔期间从分组缓冲器传输到传输缓冲器的数据信元的数量包括:将在时间间隔期间从分组缓冲器传输到传输缓冲器的数据信元的数量限制为在时间间隔期间的分组缓冲访问的最大准许数量。
附图说明
通过考虑以下结合附图的详细描述,本发明的其它特征、其性质和各种优势将是显而易见的,在附图中,相同附图标记贯穿全文表示相同部件,其中:
图1示出了根据本公开的主题的实现的网络设备的一部分的表示;以及
图2示出了根据本公开的主题的实现的操作网络设备的方法的流程图。
具体实施方式
为了在概率上确保在接近全线速时避免欠载运行,本公开的主题的实现提供了一种具有灵活速率限制器的网络设备,在一些实现中这样的网络设备诸如是网络交换,速率限制器将到网络设备外的传输平均来说限制到最大传输数据速率,同时允许传输接近前述速率,即接近全线速,并且甚至在短时间内超过最大传输数据速率。特别地,作为操作的一部分,灵活速率限制器在某些场景下(例如,当将分组提供到传输缓冲器之前将分组的不同部分缝合在一起时)允许最大传输速率在网络设备内部被超过,如下所述,以避免欠载运行。
传输缓冲器从分组缓冲器接收读请求的响应,用于转发到网络设备的端口,以输出到网络设备外。这样的响应处于分组的部分的形式。该部分可以是具有被定义的大小(例如,由总线宽度确定的)的“信元”,或者是更通用的数据的“块”。传输缓冲器接收要被传输的分组的相应块或信元的速率由传输直接存储器访问(TX DMA或TXD)电路来确定。根据本公开的主题的实现的网络设备具有作为TX DMA电路的一部分的灵活速率限制器。
根据本公开主题实现的灵活速率限制器包含三类不同的速率限制器。
第一类速率限制器可以指分组内速率限制器,并且调节网络分组中的数据从分组缓冲器流到网络设备的端口的速率。当分组的块或信元正在被传输时,分组内速率限制器在该块或信元内施加数据速率限制;分组内速率限制器不影响每单位时间内可能被传输的单元的数目。一般地,分组内速率限制器所准许的最大数据速率是端口的最大传输数据速率。然而,在少数场景中,分组内速率限制器允许“加速”,即,允许超过最大传输数据速率。
例如,在一些实现中,尽管在某些情况下,一个分组的所有块或信元没有都到达网络设备的传输缓冲器,就开始了该分组的块或信元到网络设备外的网络上的传输,这样的传输也被称为“直通”传输。同时,在这样的实现中,一旦数据开始流向端口,该端口期望以定期间隔(例如,每五个时钟周期)的数据的块或信元。因此,在一个实现中,第二个块或信元必须在第一个块或信元到达后的五个时钟周期内到达端口,第三个块或信元必须在第一个块或信元到达后的十个时钟周期内到达,等等。在任何时候违背前述要求都可能发生欠载运行,可能导致致命的分组错误。
在一些情况下,因为直通分组的头部块或信元以及有效负荷块或信元中的一个或另一个可能小于最大准许的块或信元的大小(其经常对应于总线宽度,例如,128字节),所以直通分组的头部块或信元可能没有与该分组的有效负荷块或信元对准。在前面段落描述的实现中,如果在块或信元之间的间隙将导致大于五个时钟周期的间隔,将会发生欠载运行情况。在这样的情况下,分组内速率限制器将允许更高的数据速率,即,允许从分组缓冲器到传输缓冲器之间的传输速率超过最大传输数据速率,使得头部和有效负荷可以被重新对准,即,变得更加紧密,从而使得在他们之间的间隙不会引起欠载运行情况。应当注意,针对这样的加速的发生,在一些实现中,分组缓冲器将不得不具有最大分组缓冲器传输速率,该最大分组缓冲器传输速率比最大传输数据速率更快。
第二类速率限制器可以指分组间线速速率限制器,并且这类速率限制器调节整体分组的传输速率,使得平均起来不超过最大传输速率,因为这也可能引起致命的分组错误。需要分组间线速速率限制器的一个原因是为了补偿以上描述的分组内被速率限制器所允许的本地加速。如果在特定分组的传输期间允许块或信元之间的加速,总体数据速率可以超过最大传输数据速率。因此,分组间线速速率限制器将随后的分组(这个分组可以是或者不是紧接着的分组)延迟,从而平均而言不超过最大传输数据速率。当然,可能存在其他引起数据速率超过最大传输数据速率的情况,并且在任何这样的情况下,分组间线速速率限制器将分组间隔开,以降低总体传输速率。
例如,对于较小的分组,可以在单个时钟周期期间处理多于一个块或信元。因为下一个分组可能是更大的,因此要花费更长时间来处理,在分组之间可能存在太大的间隙,从而可能引起欠载运行。在这样的情况下,分组间线速速率限制器可能将较小分组延迟一个量,这个延迟的量小到不会引起在延迟后的分组与该分组之前的分组之间的不可接受的间隙,但这个量又足够大到可防止在延迟后的分组与该延迟的分组之后的分组之间的不可接受的间隙(即,延迟足够长的时间段,以允许后续更大的分组的处理),这使得端口利用率在期望的参数内。
上述两类速率限制器均朝着满足带宽期望和限制的目标进行操作。在本公开的主题的实现中提供的第三类速率限制器朝着满足网络设备的硬件限制的目标进行操作。特别地,网络设备的实现可能受到限制的方面是在给定时间间隔中能够传输的块或信元的数量,这独立于在同一时间间隔中能够传输的数据量。分组间信元速率限制器被提供以用于此目的。
例如,对于小分组,数据速率小于最大传输数据速率可能是可行的,但因为每个分组是小的,因此每个信元是小的,然而每单位时间被传输的信元的数目可能超过最大信元速率。作为说明,在一个实现中,最大传输数据速率为400Gbps,具有1000M信元/秒(例如,十亿信元/秒)的最大信元速率,即,在一个时间间隔期间分组缓冲访问的最大准许数量。总线宽度是128B,因此最大信元大小是128B。如果小分组具有64B头部信元和1B有效负荷信元,并且存在20B分组间间隙,则信元速率将为:
尽管没有超过最大比特速率,但这个速率超过了最大信元速率。因此,分组间信元速率限制器被提供用于限制信元速率(尽管这可能使比特速率降低到最大传输数据速率以下)。由于限制分组内的信元速率可能引起欠载运行情况,所以仅在分组之间限制信元速率。
被包括在本公开的主题的实现中的各种不同的速率限制器包括根据“漏桶”模型来操作的处理电路,在该“漏桶”模型下,“令牌”的“桶”以某个速率被重填,而同时令牌随着数据流动而“漏出”该桶。数据仅仅可以在桶内存在令牌时流出。因此,重填速率决定了速率限制器所允许的速率。
在本公开的主题的实现中,速率限制器以分数比特的分辨率进行操作,即,每个令牌表示比特的一部分(因此,针对被准许流出的数据的每个比特,多个令牌会被消耗)。在一个实现中,每个令牌表示一个比特的1/32(即,0.03125比特)。
分组内速率限制器的一个实现按每个传输DMA时钟(TXD_clk)的周期重填令牌,如下(其中每个令牌表示1/32的比特):
Number_of_tokens=RndDn(port_speed_in_Gbps*1000*32)/TXD_clk_in_Mhz.
其中TXD_clk可以与分组缓冲器时钟相同。因此,例如,针对TXD_clk=PD_clk=810Mhz,每个时钟周期增加的令牌的数目在以下表中被示为端口速率的函数:
端口速率(Gbps) | 令牌(按32个令牌/比特) |
10 | 395 |
20 | 790 |
25 | 987 |
40 | 1580 |
50 | 1975 |
100 | 3950 |
200 | 7901 |
400 | 15802 |
在每个分组的开始,即,在对分组的第一个块或信元的“分组开始(SOP)”请求处,速率限制器“桶”将被加载与分组头部和分组的有效负荷的第一个块或信元相关联的额外数目的分数比特令牌(因为那些部分的数据已经确保被放置在分组缓冲器中)。那个初始数目的令牌用作额外令牌库,这个令牌库可以被用于对数据进行加速,以克服以上描述的分组的未对准。通常,令牌的初始数目等于头部和有效负荷的第一个块或信元中的字节的数目乘以每个字节的比特数目、再乘以每个比特的令牌的数目。例如,如果头部是128B,有效负荷的第一个块或信元是32B,(仍假设32令牌/比特)那么:
令牌的数目=8b/B×32个令牌/b×(128B+32B)=40960个令牌从此时开始,速率限制器将阻止要求比在桶中存在的令牌数更多数目的令牌的任何请求。在一些实现中,速率限制器包括针对令牌的最大积累数目的设置,以作为对传输缓冲器(TXFIFO)充满的情况的保护。实际上,最大数目的令牌在一些实现中受限于被用作令牌“桶”的计数器的大小。
针对每个令牌表示1/32比特的示例,分组间线速速率限制器的一个实现按每个时钟周期重填令牌如下:
Cfg_fraction_of_bits_per_cc=RndDn(port_speed_in_Gbps*1000*32/TXD_clk_in_Mhz)如果:
Cfg_IPG是在没有分组内加速的情况下分组之间的分组间间隙(如果存在分组内加速,可能低于20B);
Cfg_allowed_extra_inter_packet_fraction_of_bits是被允许在全线速速率之上,针对特定的端口,用于额外数目的分数比特的设置;
Pkt_size_in_fraction_of_bits是特定分组中的分数比特的数目;和
Diff_trans_vs_ideal是针对特定的分组,在实际被请求的分数比特的数目与分数比特的理想数目之间的差值,分数比特的理想数目与SOP信元请求和EOP(“分组结束”)信元请求之间的时间相关联;之后,令牌的数目被确定如下:
首先,Ideal_rate_count和Diff_trans_vs_ideal被初始化为“0”。然后,从SOP请求那一刻开始,直到发生EOP请求:
Ideal_rate_count=Ideal_rate_count_previous+Number_tokens_per_cc以保证在传输缓冲器充满的期间下,尽管令牌正在积累,存在环绕式保护。Number_tokens_per_cc从第一个时钟周期开始就被累加,意味着对于SOP时钟周期是EOP时钟周期的示例情况(即,单个信元的分组的情况),Ideal_rate_count_previous=0,并且Ideal_rate_count将等于Number_tokens_per_cc。
在EOP单元请求上:
Diff_trans_vs_ideal=
max(0,
Diff_trans_vs_ideal_previous+Pkt_size_in_tokens+cfg_IPG-Ideal_r
ate_count);
重置Ideal_rate_count
在EOP请求和下一个批准的SOP请求之间的每个时钟周期上:
Diff_trans_vs_ideal=
max(0,Diff_trans_vs_ideal_previous–Number_tokens_per_cc);
在以下情况下,SOP请求被批准:
Diff_trans_vs_ideal_previous<==Cfg_allowed_extra_inter_packet_tokens
实际计算与分组内速率限制器的情况是相同的,如下:
端口速率(Gbps) | 令牌(按32个令牌/比特) |
10 | 395 |
20 | 790 |
25 | 987 |
40 | 1580 |
50 | 1975 |
100 | 3950 |
200 | 7901 |
400 | 15802 |
信元速率限制器与分组间线速速率限制器类似地进行操作,除了令牌被量化成1/4096信元(即,0.0002441信元),而不是1/32比特,并且不存在分组间间隙。令牌的初始化数目为:
4×4096=16,384
针对400Gbps的端口,具有1000M信元/秒的信元速率限制:
RndDn((PortSpeed/400)×CellRate_for_400×granularity_tokens/txd_clk)=RndDn((PortSpeed/400)×1000×4096/810)
更一般地,例如,对于TXD_clk=PB_clk=810Mhz,每个时钟周期内所增加的令牌的数目在以下表中被示为端口速率的函数:
在本公开的主题的大部分实现中,针对网络设备的每个以太网端口,可能存在一个分组内速率限制器,一个分组间线速速率限制器,以及一个分组间信元速率限制器。
图1示出了结合本公开的主题的网络设备100的实现的传输或或传出部分。网络设备100包括至少一个分组缓冲器101,这样的分组缓冲器从传输直接存储器访问(TXDMA)电路102接收将要被传输出网络设备100的分组。分组缓冲器101可以是能够以不同类型的分组的延迟进行操作的单个存储设备,或者可以是多个存储设备111,多个存储设备中的每一个以单独的时延进行操作。响应于在103接收到的请求,分组缓冲器101向传输缓冲器104供应网络分组的块或信元,以用于在105传输出网络设备100。
在TX DMA电路102内,端口仲裁器112选择将要被服务的端口。之后,分组读逻辑132从分组描述符池122中选择描述符,该描述符标识要被取回的分组或分组的部分。在一些实现中,上述选择可以基于要被取回的信元的预定队列。分组读逻辑132在142将信元请求发送到请求决策逻辑152。在一些实现中,在142处的信元请求标识要被取回的分组或分组的部分,被请求的当前块或信元中的数据量,以及请求是SOP请求、EOP请求或是MP请求(即,“分组中间”请求,用于请求并非来自分组的开始或结束的数据块或数据信元)的标识。
请求决策逻辑152接收来自速率限制器电路162的输入,该速率限制器电路162包括以上讨论的三种类型的速率限制器,即,分组内速率限制器(分组内RL)1621,分组间线线速限制器(分组间RL)1622,以及分组间信元速率限制器(单元RL)1623。针对每个端口的设置被维持在1620,使得每个速率限制器1621、1622、1623可以确定针对任何端口的当前可用令牌的数目,并且向请求决策逻辑152提供该数目。
不管针对特定端口可用的令牌的数目有多少,除非在传输缓冲器104中存在可用的容量来接收和存储数据,否则数据不能够从分组缓冲器101传输到传输缓冲器104。因此,信元/字信用电路172也向请求决策逻辑152提供输入。信元/字信用电路172接收来自传输缓冲器104的输入182,其中当数据被传输出传输缓冲器104外时,传输缓冲器104递增在信元/字信用电路172中存储的一定数目的信用,并且在数据由传输缓冲器104接收时递减在信元/字信用电路172中存储的一定数目的信用。
图2示出了一种操作具有以上描述的速率限制器的网络设备的方法200的一个实现。(图2没有考虑信元/字信用电路172)。在201,接收针对网络分组的块或信元的请求。在202,确定该请求是否为分组开始请求。如果是,则在203确定在分组间线速速率限制器1622中是否存在足够的可用分组间令牌。如果不是,流程循环回203,直到在分组间线速速率限制器1622中足够的分组间令牌可用。
一旦在分组间线速速率限制器1622中足够的分组间令牌可用,或者如果在202确定请求不是分组开始请求,流程进行到204,其中确实是否在分组内速率限制器1621中是否足够的分组内令牌可用。如果不是,则流程循环回204,直到在分组内速率限制器1621中足够的分组内令牌可用。
一旦在分组内速率限制器1621中足够的分组内令牌可用,流程进行到205,其中确定在信元速率限制器1623中是否足够的信元速率令牌是可用的。如果不是,流程循环回205,直到在信元速率的速率限制器1623中足够的分组内令牌可用。一旦在信元速率限制器1623中是否足够的数据内令牌是可用的(如果循环被请求或者如果在没有循环时令牌是足够的),则在206,被请求的数据由分组缓冲器101传输到传输缓冲器104。
同时,与201-206平行地,根据上述解释的准则,在207令牌被重填到分组内速率限制器1621中,在208令牌被重填到分组间线速速率限制器1622中,以及在209令牌被重填到信元速率限制器1623中。在分组内速率限制器1621、分组间线速速率限制器1622和信元速率限制器1623中对令牌进行恒定重填(以合适的速率)允许在203、204、205处的循环最终结束,即使在进入相应循环时令牌的数目不足以继续进行传输。
因此,可以看出,提供了一种网络设备,该网络设备具有在分组内提供加速的速率限制机制,用以克服未对准、同时避免写前读出,具有在加速的情况下仍然对平均数据速率有完全控制,以避免欠载运行,并且该网络设备为可编程的,这种可编程是通过改变针对令牌产生的规则来进行,以允许在任一方向上调整速率限制。
如本文和后面的权利要求书中所使用的,“A和B中的一个”将被解释为“A或者B”。
注意,上述仅是本发明原理的说明,本发明可以通过不同于所描述的实现方式来实现,所描述的实现仅为了说明而非限制的目的被提出,本发明仅由所附权利要求来限定。
Claims (24)
1.一种用于通信网络的网络设备,所述网络设备包括:
端口,被配置为向所述通信网络传输数据,所述端口被配置为以最大传输数据速率传输数据单元;
传输缓冲器,被配置为缓冲预备用于向所述通信网络传输的所述数据单元;
分组缓冲器,被配置为在所述数据单元预备用于传输之前,对所述分组缓冲器中的所述数据单元进行缓冲,所述分组缓冲器还被配置为响应于读请求而以最大分组缓冲传输速率向所述传输缓冲器输出缓冲在所述分组缓冲器中的所述数据单元,所述最大分组缓冲传输速率快于所述最大传输数据速率;
速率控制器,被配置为控制从所述分组缓冲器到所述传输缓冲器的数据的传输速率,使得在用于传输多个数据单元的一段时间上平均而言,从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率等于或小于所述最大传输数据速率,同时允许从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率以一个或多个选定时间间隔超过所述最大传输数据速率。
2.根据权利要求1所述的网络设备,其中所述速率控制器还被配置为根据不同于所述最大传输数据速率的速率限制参数,来限制从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率。
3.根据权利要求2所述的网络设备,其中不同于所述最大传输数据速率的所述速率限制参数是信元速率,所述信元速率支配在时间间隔期间的分组缓冲器访问的准许数量。
4.根据权利要求1所述的网络设备,其中所述速率控制器允许从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率超过所述最大传输数据速率,以对准网络分组的头部部分和有效载荷部分。
5.根据权利要求1所述的网络设备,其中所述速率控制器包括:
分组内速率限制器,被配置为控制网络分组内的数据的传输的速率;
分组间线速速率限制器,被配置为控制网络分组之间的间距;以及
分组间信元速率限制器,被配置为控制在时间间隔期间从所述分组缓冲器传输到所述传输缓冲器的数据信元的数量。
6.根据权利要求5所述的网络设备,其中所述分组内速率限制器被配置为限制所述网络分组内的数据的传输的所述速率,以防止直通分组中的写前读出。
7.根据权利要求5所述的网络设备,其中所述分组内速率限制器被配置为控制所述网络分组内的数据的传输的所述速率,以对准所述网络分组的头部部分和有效载荷部分。
8.根据权利要求7所述的网络设备,其中所述分组内速率限制器被配置为将所述网络分组内的数据的传输的所述速率增大到所述最大传输数据速率以上。
9.根据权利要求8所述的网络设备,其中所述分组间速率限制器被配置为将所述网络分组内的数据的传输的所述速率增大到最多所述最大分组缓冲传输速率。
10.根据权利要求8所述的网络设备,其中所述分组间线速速率限制器增大网络分组之间的间隔,以按分组平均而言,将从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率限制为所述最大传输数据速率,尽管将所述网络分组内的数据的传输的所述速率增大到所述最大传输数据速率以上。
11.根据权利要求7所述的网络设备,其中:
所述分组内速率限制器包括处理电路,所述处理电路:
当在令牌库中令牌可用时,允许数据的传输;
当数据被传输时,从所述令牌库扣除令牌;
根据规则,定期地向所述库增加令牌;以及
在接收到开始新分组的请求时,将一个数量的额外令牌增加到所述库,所述一个数量的额外令牌基于所述新分组的头部的大小和所述新分组的第一部分的大小。
12.根据权利要求5所述的网络设备,其中:
所述分组间信元速率限制器被配置为将在所述时间间隔期间从所述分组缓冲器传输到所述传输缓冲器的数据信元的所述数量限制为在所述时间间隔期间的分组缓冲访问的最大准许数量。
13.根据权利要求5所述的网络设备,其中所述分组内速率限制器、所述分组间线速速率限制器和所述分组间信元速率限速器中的每个相应的限速器包括相应的处理电路,所述相应的处理电路:
当在令牌的相应库中令牌可用时,允许数据的传输;
当数据被传输时,从所述令牌的相应库中扣除令牌;以及
针对所述分组内速率限制器、所述分组间线速速率限制器和所述分组间信元速率限速器中的所述相应的限速器,根据相应的规则,定期地将令牌增加到所述相应库。
14.一种操作耦合到通信网络的网络设备的方法,所述方法包括:
将数据从分组缓冲器经由传输缓冲器传输到具有最大传输数据速率的端口以传出所述网络设备,所述分组缓冲器被配置为在数据单元预备用于传输之前对所述分组缓冲器中的所述数据单元进行缓冲,所述分组缓冲器还被配置为响应于读请求,而以最大分组缓冲传输速率向所述传输缓冲器输出缓冲在所述分组缓冲器中的所述数据单元,所述最大分组缓冲传输速率快于所述最大传输数据速率;
控制从所述分组缓冲器到所述传输缓冲器的数据的传输速率,使得在用于传输多个数据单元的一段时间上平均而言,从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率等于或小于所述最大传输数据速率,并且同时准许从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率以一个或多个选定时间间隔超过所述最大传输数据速率。
15.根据权利要求14所述的方法,其中所述控制包括:根据不同于所述最大传输数据速率的速率限制参数,来限制从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率。
16.根据权利要求15所述的方法,其中所述控制包括:根据信元速率来限制从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率,所述信元速率支配在时间间隔期间的分组缓冲器访问的准许数量。
17.根据权利要求14所述的方法,其中所述控制包括:允许从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率超过所述最大传输数据速率,以对准网络分组的头部部分和有效载荷部分。
18.根据权利要求14所述的方法,其中所述控制从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率包括:
控制网络分组内的数据的传输的速率;
控制网络分组之间的间距;以及
控制在时间间隔期间从所述分组缓冲器传输到所述传输缓冲器的数据信元的数量。
19.根据权利要求18所述的方法,其中所述控制网络分组内的数据的传输的速率包括:限制所述网络分组内的数据的传输的所述速率,以防止直通分组中的写前读出。
20.根据权利要求18所述的方法,其中所述控制网络分组内的数据的传输的速率包括:限制所述网络分组内的数据的传输的所述速率,以对准所述网络分组的头部部分和有效载荷部分。
21.根据权利要求20所述的方法,其中所述控制网络分组内的数据的传输的所述速率包括:将所述网络分组内的数据的传输的所述速率增大到所述最大传输数据速率以上。
22.根据权利要求21所述的方法,其中所述控制网络分组内的数据的传输的速率包括:将所述网络分组内的数据的传输的所述速率增大到最多所述最大分组缓冲传输速率。
23.根据权利要求21所述的方法,其中所述控制网络分组之间的间距包括:增大网络分组之间的间隔,以按分组平均而言,将从所述分组缓冲器到所述传输缓冲器的数据的所述传输速率限制为所述最大传输数据速率,尽管所述网络分组内的数据的传输的所述速率增大到所述最大传输数据速率以上。
24.根据权利要求18所述的方法,其中:
所述控制在时间间隔期间从所述分组缓冲器传输到所述传输缓冲器的数据信元的数量包括:将在所述时间间隔期间从所述分组缓冲器传输到所述传输缓冲器的数据信元的所述数量限制为在所述时间间隔期间的分组缓冲访问的最大准许数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762595448P | 2017-12-06 | 2017-12-06 | |
US62/595,448 | 2017-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110035011A CN110035011A (zh) | 2019-07-19 |
CN110035011B true CN110035011B (zh) | 2023-08-29 |
Family
ID=66658286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811489165.4A Active CN110035011B (zh) | 2017-12-06 | 2018-12-06 | 具有灵活速率限制器的网络设备 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10785159B2 (zh) |
CN (1) | CN110035011B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1557072A (zh) * | 2001-09-21 | 2004-12-22 | ���˹���Ѷ��� | 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统 |
CN1822588A (zh) * | 2005-01-24 | 2006-08-23 | 阿尔卡特公司 | 通信业务管理监控系统和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7298748B2 (en) * | 2001-09-28 | 2007-11-20 | Kabushiki Kaisha Toshiba | Method of packet transmission and wireless communication device |
US7366202B2 (en) * | 2003-12-08 | 2008-04-29 | Colubris Networks, Inc. | System and method for interference mitigation for wireless communication |
US7643420B2 (en) * | 2005-03-11 | 2010-01-05 | Broadcom Corporation | Method and system for transmission control protocol (TCP) traffic smoothing |
US7830796B2 (en) * | 2006-10-18 | 2010-11-09 | Ericsson Ab | Method and apparatus for traffic shaping |
US8792382B2 (en) * | 2008-12-17 | 2014-07-29 | Centurylink Intellectual Property Llc | System and method for tracking a line rate utilization |
GB201321148D0 (en) * | 2013-11-29 | 2014-01-15 | Bridgeworks Ltd | Data transfer |
US20170325120A1 (en) * | 2014-12-10 | 2017-11-09 | Nokia Solutions And Networks Oy | Quality of experience enforcement in communications |
-
2018
- 2018-12-03 US US16/207,476 patent/US10785159B2/en active Active
- 2018-12-06 CN CN201811489165.4A patent/CN110035011B/zh active Active
-
2020
- 2020-08-04 US US16/947,500 patent/US11329923B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1557072A (zh) * | 2001-09-21 | 2004-12-22 | ���˹���Ѷ��� | 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统 |
CN1822588A (zh) * | 2005-01-24 | 2006-08-23 | 阿尔卡特公司 | 通信业务管理监控系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US10785159B2 (en) | 2020-09-22 |
CN110035011A (zh) | 2019-07-19 |
US20200366615A1 (en) | 2020-11-19 |
US11329923B2 (en) | 2022-05-10 |
US20190173798A1 (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5787071A (en) | Hop-by-hop flow control in an ATM network | |
US8467295B2 (en) | System and methods for distributed quality of service enforcement | |
US6496516B1 (en) | Ring interface and ring network bus flow control system | |
KR100644445B1 (ko) | 다-임계값 리키 버킷을 사용하는 클래스-기초 속도 제어 | |
US9699095B2 (en) | Adaptive allocation of headroom in network devices | |
US6002667A (en) | Minimum guaranteed cell rate method and apparatus | |
JP4260631B2 (ja) | ネットワーク輻輳制御の方法および装置 | |
EP2642704B1 (en) | Reducing headroom | |
US7573821B2 (en) | Data packet rate control | |
US7414973B2 (en) | Communication traffic management systems and methods | |
US20160294696A1 (en) | Dynamic thresholds for congestion control | |
CN108540380B (zh) | 多子流网络传输方法及装置 | |
EP2093945B1 (en) | A method for realizing back pressure of masses of ports and the device thereof | |
EP1080560A1 (en) | Method and apparatus for forwarding packets from a plurality of contending queues to an output | |
US9197570B2 (en) | Congestion control in packet switches | |
US6771652B1 (en) | Method and system for controlling transmission of packets in computer networks | |
US20220417161A1 (en) | Head-of-queue blocking for multiple lossless queues | |
JP4317788B2 (ja) | シェーピング装置、フロー制御方法および通信ノード装置 | |
US20170289066A1 (en) | Facilitating communication of data packets using credit-based flow control | |
CN109995608B (zh) | 网络速率计算方法和装置 | |
CN110035011B (zh) | 具有灵活速率限制器的网络设备 | |
JP4409999B2 (ja) | 多重化パケット転送装置 | |
US6920111B1 (en) | Multiple update frequencies for counters in a multi-level shaping system | |
US7039011B1 (en) | Method and apparatus for flow control in a packet switch | |
US7304943B2 (en) | Apparatus and method for bandwidth control |
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 |