一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

对于DRAM访问优化的流表老化的制作方法

2022-03-02 01:46:18 来源:中国专利 TAG:

对于dram访问优化的流表老化
相关申请的交叉引用
1.本技术是于2019年8月23日提交的美国专利申请16/549,695的延续,该美国专利申请要求于2019年5月17日提交的美国临时专利申请62/849,594的提交日期的权益,它们的公开内容通过引用被结合在本文中。


背景技术:

2.硬件组件,诸如网络接口卡(nic)、网络路由器、交换机或服务器,可以访问用于存储关于网络流量处理的指令的流表。通常基于每个网络流(network flow)来处理网络流量。当与流相关联的数据包(data packet)进入网络组件时,网络组件可以在流表或流表缓存中查找该流,以确定如何处理进入的数据包。例如,如果该流被存储在流表缓存中,则流表本身不需要被访问。流表可以驻留在耦接到网络组件的动态随机存取存储器(dram)模块中,而流表缓存通常驻留在网络组件本身中。如果该流未被存储在流表缓存中,与存储全流表的存储器相比,该流表缓存通常具有相对少量的高速存储器,则网络组件查询全流表以用于处理指令。如果流不在全流表中,则网络组件可以查询其中结合该流的较大计算设备或远程计算设备,以确定应该如何处理与这种流相关联的包。然后,网络组件可以将查询的结果添加到流表和/或流表缓存,用于处理与该流相关联的将来的包。
3.在一些情况下,如果与特定流相关联的包没有被网络组件处理,则被存储在流表中的流可能随时间推移而变得过时。因此,流表中的条目可以受益于被例行清除以为新流创建空间或提示对给定流的流处理指令的新查询。确定流表条目是否和何时应该被认为过时并且因此被移除的过程被称为流表老化(aging)。其中流表被存储在dram中的用于流表老化的当前系统通常很大程度上依赖于访问已经具有带宽限制的流表dram。dram的连续访问可以克服这些带宽限制并且导致故障或不可接受的延迟。因此,需要一种管理流表中的流条目以减轻网络组件与存储这种网络组件的流表的存储器模块之间的带宽约束的改进方法。


技术实现要素:

4.至少一个方面涉及一种管理流表的方法。所述方法包括提供耦接到网络组件的硬件存储器模块。所述硬件存储器模块存储包括多个条目的流表。每个条目对应于网络流。所述方法还包括在所述网络组件上提供流表年龄缓存,所述流表年龄缓存被配置为存储一组最近活跃的网络流。所述方法还包括在所述网络组件上提供流表管理模块,所述流表管理模块被配置为管理所述流表中的相应条目在所述流表中保留的持续时间。
5.在一些实施方式中,在所述网络组件处理与网络流相关联的数据包时,所述流表管理模块通过用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存,并且周期性地对所述流表中的所述条目进行扫描,来管理所述流表中的相应条目在所述流表中保留的持续时间。
6.在所述方法的一些实施方式中,所述扫描包括,对于所述流表中的每个条目,在所
述流表年龄缓存中查找与所述条目相关联的所述网络流。响应于在所述流表年龄缓存中找到与所述条目相关联的所述网络流,更新被存储在所述存储器模块中的所述网络流的计时器信息。在所述方法的一些实施方式中,响应于在所述流表年龄缓存中未找到与所述条目相关联的所述网络流,所述扫描包括,基于被存储在所述硬件存储器模块中的信息来评估所述条目的年龄,并且响应于所述条目的所述年龄超过与所述网络流相关联的阈值时间值而从所述流表移除所述条目。
7.在一些实施方式中,所述流表管理模块基于与条目相关联的所述网络流的状态以及与所述网络流的可能状态对应的相应年龄阈值来确定每个条目的所述年龄。在一些实施方式中,所述流表管理模块被配置为通过将为流条目存储的最后活跃计时器值和计时器值进行比较来评估所述流条目的所述年龄,并且以小于与所述可能状态相关联的最小年龄阈值的倍的周期来扫描所述条目。
8.在一些实施方式中,与所述流表的所述条目中的每个条目相关联的年龄信息以与所述流表分离的数据结构被存储在所述硬件存储器模块中。在一些实施方式中,所述网络组件是网络接口卡。
9.在一些实施方式中,更新所述网络流的计时器信息包括重置所述网络流的年龄计时器。在一些实施方式中,更新所述网络流的所述计时器信息包括修改所述网络流的状态,从而修改与所述网络流相关联的所述阈值时间值。在一些实施方式中,所述网络流的所述可能状态包括传输控制协议(tcp)流状态,所述tcp流状态至少包括启动状态、已建立状态、终止状态和已关闭状态。在一些实施方式中,用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存包括,基于与所述网络流相关联地处理的所述包的类型,将所述网络流的所述状态从所述可能状态中的第一状态改变到所述可能状态中的第二状态。
10.在一些实施方式中,所述流表管理模块被配置为维持多比特时钟并且对于所述流表中的每个流条目维持由与所述多比特时钟中使用的相同比特数表示的最后活跃时间值。在这种实施方式中,评估流表条目的所述年龄可以包括,将所述硬件存储器模块中的所述条目的所述最后活跃时间和所述多比特时钟的当前值进行比较。在一些实施方式中,如果在所述比较期间,为所述流表条目存储的所述最后活跃时间值与所述多比特时钟的所述比特匹配,则确定所述流条目已经超过所述阈值。
11.至少一个方面涉及一种流表管理系统。所述系统包括硬件存储器模块,所述硬件存储器模块被配置为存储包括多个网络流条目的流表。所述系统还包括通信地耦接到所述硬件存储器模块的网络组件。所述网络组件进一步包括存储器和处理器。所述存储器存储被配置为存储一组最近活跃的网络流的流表年龄缓存。所述处理器被配置为执行流表管理模块,所述流表管理模块被配置为管理被存储在所述硬件存储器模块中的所述流表中的相应网络流条目在所述流表中保留的持续时间。
12.在一些实施方式中,所述流表管理系统可以包括通信地耦接到网络接口卡的硬件存储器模块。所述硬件存储器模块被配置为存储包括多个网络流条目的流表。所述网络接口卡进一步包括被配置为存储一组最近活跃的网络流的流表年龄缓存以及被配置为使用所述流表年龄缓存来管理被存储在所述硬件存储器模块中的所述流表中的相应网络流条目在所述流表中保留的持续时间的流表管理模块。在一些实施方式中,关于所述流表中的
每个相应流的年龄信息被存储在所述硬件存储器模块中的与所述流表分离的年龄状态表中。
13.所述流表管理模块通过在所述网络组件处理与网络流相关联的数据包时用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存,来管理所述流表中的相应条目在所述流表中保留的所述持续时间。所述流表管理模块进一步被配置为周期性地对所述流表中的所述网络流条目进行扫描。周期性地对所述流表中的所述网络流条目进行所述扫描包括,在所述流表年龄缓存中查找与每个条目相关联的所述网络流。在一些实施方式中,响应于在所述流表年龄缓存中找到所述网络流,所述流表管理模块更新被存储在所述硬件存储器模块中的所述网络流的计时器信息。在一些实施方式中,响应于在所述流表年龄缓存中未找到与条目相关联的所述网络流,所述方法进一步包括,基于被存储在所述硬件存储器模块中的信息来评估所述条目的年龄,并且响应于所述条目的所述年龄超过与所述网络流相关联的阈值时间值而从所述流表移除所述条目。
14.在一些实施方式中,所述流表管理模块被配置为基于与条目相关联的所述网络流的状态以及与所述网络流的可能状态对应的相应年龄阈值来确定每个条目的所述年龄。在一些实施方式中,所述流表管理模块被配置为以小于与所述可能状态相关联的所述年龄阈值的最小值的四分之一的周期来扫描所述条目。
15.在一些实施方式中,与所述流表的所述条目中的每个条目相关联的所述年龄信息以与所述流表分离的数据结构被存储在所述硬件存储器模块中。
16.在一些实施方式中,更新所述网络流的计时器信息包括重置所述网络流的年龄计时器。在一些实施方式中,更新所述网络流的所述计时器信息包括修改所述网络流的状态,从而修改与所述网络流相关联的所述阈值时间值。在一些实施方式中,所述网络流的所述可能状态包括tcp流状态,所述tcp流状态至少包括启动状态、已建立状态、终止状态和已关闭状态。在一些实施方式中,用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存包括,基于与所述网络流相关联地处理的所述包的类型,将所述网络流的所述状态从所述可能状态中的第一状态改变到所述可能状态中的第二状态。
17.在一些实施方式中,所述流表管理模块被配置为维持多比特时钟并且对于所述流表中的每个流条目维持由与所述多比特时钟中使用的相同比特数表示的最后活跃时间值。在这种实施方式中,评估流表条目的所述年龄可以包括,将所述硬件存储器模块中的所述条目的所述最后活跃时间和所述多比特时钟的当前值进行比较。在一些实施方式中,如果在所述比较期间,为所述流表条目存储的所述最后活跃时间值与所述多比特时钟的所述比特匹配,则确定所述流条目已经超过所述阈值。
18.下面详细讨论这些和其它方面以及实施方式。前述信息和以下详细描述包括各种方面和实施方式的说明性示例,并且提供用于理解要求保护的方面和实施方式的性质和特性的概述或框架。附图提供了对各种方面和实施方式的说明和进一步的理解,并且被结合在本说明书中并且构成本说明书的一部分。
附图说明
19.附图不旨在按比例绘制。各个附图中相同的附图标记和标识指示相同的元素。为了清楚起见,在每个附图中不是每个组件都可以被标记。在图中:
20.图1是示出了根据说明性实施方式的流表管理系统的各个组件的框图;
21.图2示出了根据说明性实施方式的年龄状态表的示例;
22.图3示出了根据说明性实施方式的流表年龄缓存的示例;
23.图4是根据说明性实施方式的管理流表的方法的流程图;
24.图5a示出了根据说明性实施方式的流表计时器的示例;以及
25.图5b示出了使用图5a的流表计时器的年龄状态表的示例。
具体实施方式
26.本文中描述的技术一般涉及管理网络组件(诸如网络接口卡(nic)、路由器、交换机、服务器或任何其它网络组件)中的流表的方法。在公开的技术的各个实施例中,管理方法与耦接到存储器模块的网络组件结合使用,该存储器模块例如是随机存取存储器(ram),静态ram(sram),动态ram(dram),同步动态ram(sdram)或双倍数据速率ram(ddr ram),包括ddr2 ram、ddr3 ram、ddr4 ram,以及低功率ddr(lpddr)等。如本文中公开的,在各个实施例中,硬件存储器模块存储包括多个条目的流表,其中,每个条目对应于网络流。网络接口卡上的流表年龄缓存被维护并且被配置为存储一组最近活跃(active)的网络流。网络接口卡上的流表管理模块管理流表中的相应条目在流表中保留的持续时间。
27.在操作中,在网络组件处理与网络流相关联的数据包时,流表管理模块用指示与网络流相关联的活动的信息来更新流表年龄缓存。网络管理模块还对流表中的条目进行周期性扫描,将那些条目与流表年龄缓存中的条目进行比较。响应于在扫描期间在流表年龄缓存中找到与条目相关联的网络流,更新被存储在存储器模块中的网络流的计时器信息。计时器信息可以被直接存储在流表中或者被存储在单独的年龄状态表中。更新网络流的计时器信息可以包括重置与该流相关联的计时器或修改该网络流的状态,从而修改与该网络流相关联的阈值时间值。可以基于接收到的关于该流的包的类型来修改该流的状态。
28.响应于在流表年龄缓存中未找到与条目相关联的网络流,基于被存储在硬件存储器模块中的信息来评估条目的年龄(age)。如果条目的年龄超过与网络流相关联的阈值时间值,则从流表中移除该条目。在一些实施方式中,流表管理模块参考与条目相关联的网络流的状态以及与网络流的可能状态对应的相应年龄阈值来确定每个条目的年龄。在一些实施方式中,流状态与tcp协议或其它有状态通信协议中的流的状态对应。示例状态包括启动状态、已建立状态、终止状态和已关闭状态。在一些实施方式中,流表管理模块可以被配置为以小于与可能状态相关联的年龄阈值的最小值的四分之一的周期来扫描条目。
29.在公开的方法的一些实施方式中,流表管理模块可以被配置为维护用于评估流表中的条目的年龄的多比特时钟(multi-bit clock)。评估流表条目的年龄包括,将为硬件存储器模块中的条目存储的计时器信息与多比特时钟的比特数进行比较。在比较中使用的比特数可以是基于网络流的状态。在一些实施方式中,如果在比较期间,为流表条目存储的比特数的值和与流状态相关联的多比特时钟的比特数的值相匹配,则确定流条目已经超过阈值。
30.图1是示出了根据如本文中描述的技术的说明性实施方式的流表管理系统100的各个组件的框图。如图1所示,系统100包括耦接到网络组件150的(硬件)存储器模块120。存储器模块120存储流表130和年龄状态表140。网络组件150包括流表缓存160、年龄缓存170、
流表管理模块180和包处理引擎190,该包处理引擎190被配置为接收进入的数据包110并且产生经处理的数据包115。在一些实施方式中,网络组件150可以是服务器的网络接口卡(nic)。在一些实施方式中,网络组件150可以是路由器、交换机、防火墙、网络电器或任何其它网络组件。
31.包处理引擎190被配置为是网络组件150的主处理引擎。在各个实施例中,包处理引擎190可以被配置为执行包转发操作、加密或解密操作、防火墙功能、网络地址转换、物理存储器地址转换以及本领域普通技术人员已知的其它网络功能。包处理引擎190可以是专用集成电路(asic)或用计算机可执行指令编程的微处理器,在任一情况下都被配置用于网络包的有效处理。在一些实施方式中,包处理引擎190可以包括用于执行不同网络功能或并行处理多个包的多个asic或微处理器。
32.当进入的数据包110到达时,包处理引擎190被配置为确定对该包执行什么网络操作以及用什么参数(如果适用的话)。基于该包所属的网络流进行确定。网络流指的是组成两个端点之间的不同通信流的唯一数据包流。流通常由5元组的信息来识别。例如,对于tcp流,流的5元组信息通常包括源因特网协议(ip)地址、源端口号、目的ip地址、目的端口号和协议识别符。对于其它类型的流,可以使用其它报头数据字段来定义5元组。例如,对于一些协议,代替源端口号和目的端口号,5元组可以包括源mac地址和目的mac地址。如下面进一步描述的,为了确定包的适当指令,包处理引擎查询被存储在网络组件上的流表缓存160,或者,如果需要,查询被存储在存储器模块120中的流表130。
33.在网络组件150是nic的一些实施方式中,存储器模块120可以驻留在nic 150上或者驻留在作为nic的公共电路板上。存储器模块120和nic经由互连总线通信地耦接。
34.在一些实施方式中,存储器模块120可以包括例如随机存取存储器(ram),静态ram(sram),动态ram(dram),同步动态ram(sdram)或双倍数据速率ram(ddr ram),包括ddr2 ram、ddr3 ram、ddr4 ram,低功率ddr(lpddr),高带宽存储器(hbm),图形双倍数据速率(gddr)存储器,嵌入式dram(edram)等。
35.如图1的左侧所示,流表缓存160通信地耦接到存储器模块120中的流表130。在一些实施方式中,包处理引擎190被配置为首先查找用于流表缓存160中的流的数据包110的处理指令,该流表缓存160用作全流表130的部分的本地缓存版本。查找可以是直接基于与流相关联的5元组的信息,或者是基于5元组的哈希。如果流不位于流表缓存中,则包处理引擎可以向存储器模块120中的流表130传送查询。如果流不位于流表缓存160或流表130中,则包处理引擎190可以被配置为查询另一进程或设备,例如,在路由器的情况下查询网络控制器,或者在服务器的情况下查询服务器管理程序,以识别处理指令,然后可以将该处理指令保存在流表130和流表缓存160中。
36.当在流表130或流表缓存160中找到命中或者从外部进程或设备接收到指令时,包处理引擎获得关于如何处理数据包110的指令。例如,流的条目可以指示数据包应该由包处理引擎190实施的任何网络功能来处理。例如,在nic 150是网络路由器或交换机的一部分的实施方式中,流表条目可以仅指示通过哪个端口来转发包。对于某些类型的路由器,例如网关路由器,流表条目可以包括更复杂的指令,包括防火墙处理、网络地址转换或其它网络功能的执行。对于被结合到服务器中的nic,流表条目可以指示包处理引擎应该执行解密或物理存储器地址转换,以将包引导到在服务器上执行的特定虚拟机或容器。然后,包处理引
擎190执行在从流表缓存160或流表130检索的信息中指示的指令。
37.如图1所示,流表130和年龄状态表140是单独的数据结构。如下面进一步描述的,该实施方式可以提供每个数据结构的独立访问,用于处理对流表的查询以及由流表管理模块180执行的流表老化过程以用于分析。在一些实施方式中,流表130和年龄状态表140可以被组合为单个数据结构。具有用于组合的流表130和年龄状态表140的单个数据结构的该实施方式可能需要更多的带宽用于处理流表条目老化,每个老化查询可能导致返回比单独的年龄状态表的查询多得多的数据。具体地,当从年龄状态表140收集信息回到流表管理模块180用于分析时,为了降低处理需求,通常检索存储器的连续块,从而避免解析存储器部分需要的处理。因此,组合的流表/年龄状态表将导致相同数量的较大数据块的传输,或者更多的数据传输,其中,每个传输包括关于更少的流表条目的信息。因为流表可能包括多达1600万个条目或更多,所以将传输的数量和大小保持为最小以降低带宽、降低能量消耗并且改善执行速度是有价值的。维护独立的流表130和年龄状态表140可以帮助实现这些目标。
38.如图1的右侧所示,流表管理模块180通信地耦接到年龄缓存170和存储器模块120中的年龄状态表140。在一些实施方式中,流表管理模块180和流表缓存170可以连接到公共互连总线,作为存储年龄状态表140的存储器模块120。在一些实施方式中,流表管理模块180在与包处理引擎190相同的处理器上执行。在其它实施方式中,流表管理模块180可以在专用处理器上执行。下面相对于图2和图3提供进一步的细节。
39.图2示出了根据说明性实施方式的年龄状态表200的示例。如图2所示,年龄状态表200包括一系列条目208。对于每个条目,年龄状态表存储流id 210、计时器选择212和最后活跃值214。流id 210是流的识别符。在一些实施方式中,流id 210可以是数字,与流相关联的5元组数据,或哈希值,例如5元组的哈希。优选地,年龄状态表200具有与图1所示的流表130相同数量的条目,因为年龄状态表200被配置为跟踪流表130中列出的每个流的年龄。在一些实施方式中,计时器选择212可以是被选择来识别在评估流表中的对应条目是否过时和应该被移除时要应用哪个记时或年龄阈值的值。在一些实施方式中,最后活跃值214是指示何时最后确定特定流id 210是活跃的值。例如,最后活跃值214指示nic 150何时最后一次处理与特定流id 210相关联的数据包。最后活跃值可以是指示当接收到与流相关联的最近包时的实际时钟时间的值,或者它可以是与最后一次扫描流表年龄缓存170相关联的指示存在与流相关联的最近活动的计时器值。
40.在一些实施方式中,年龄状态表200可以包括附加的“静态”标志(未示出)。如果为给定条目设置了静态标志,则该条目将不会过时,而不管其状态或年龄。
41.在一些实施方式中,年龄状态表200可以放弃显式流id 210数据字段。相反,年龄状态表200的每一行可以逻辑地链接到流表的给定行,使得系统将年龄状态表200的第n行理解为总是与被存储在流表130的第n行中的流对应。
42.图3示出了根据说明性实施方式的流表年龄缓存300的示例。如图3所示,流表年龄缓存300包括多个条目308。对于每个条目,流表年龄缓存存储对应的流id 310、计时器选择312和可选的活跃标志316。流id 310是流的识别符,与流id 210一样,流id 310可以是数字,5元组信息,或哈希值,例如5元组信息的哈希值。在一些实施方式中,年龄状态表140、流表年龄缓存170、流表缓存160和流表130可以识别具有更大或更小元组(诸如4元组、6元组
等)的数据字段的流而不脱离本公开的范围。在一些实施方式中,流id 310是用作进入年龄状态表140和流表130的索引的数字或指针。计时器选择312识别什么定时阈值或年龄阈值应该应用到与对应的流id 310相关联的流。在一些实施方式中,活跃标志316是二进制值,其可以是0或1。例如,包处理引擎190可以在接收到与流相关联的包时将流的活跃标志316设置为1,并且流表管理模块180可以在更新年龄状态表140之后将活跃标志设置为0,以指示流中的最近活动。如果流表年龄缓存170被填充,则具有0的活跃标志值的条目可以被重写。如果没有条目具有0的活跃标志值,则流表年龄缓存可以立即被刷新到年龄状态表,从而将所有活跃标志值设置回0,从而提供新的空间以将流添加到流表年龄缓存170。替代地,如果在流表年龄缓存170中尚未存在与给定流相关联的条目,则包处理引擎可以仅在处理与该流相关联的包时向流表年龄缓存170添加条目。流表管理模块180可以在用最近使用的指示更新年龄状态表140之后删除与流相关联的条目。如果当包处理引擎190尝试向流表年龄缓存170添加新的流时,流表年龄缓存170是满的,则可以基于流表年龄缓存170的当前状态立即更新年龄状态表,并且可以刷新流表年龄缓存170。
43.图4是根据说明性实施方式的管理流表的方法400的流程图。方法400可以例如由图1所示的流表管理模块180使用年龄状态表140和流表年龄缓存170来执行。该方法包括提供耦接到网络接口卡的硬件存储器模块。硬件存储器模块存储包括多个条目的流表,每个条目对应于网络流(步骤410)。流表可以包括如图1所示的单独的流表和年龄状态表(例如,图2所示的年龄状态表200),或组合的流表/年龄状态表。方法400还包括在网络接口卡上提供流表年龄缓存,诸如图1所示的流表年龄缓存170或图3所示的流表年龄缓存300(步骤420)。流表年龄缓存被配置为存储一组最近活跃的网络流。方法400还包括在网络接口卡上提供流表管理模块,诸如流表管理模块180,该流表管理模块被配置为管理流表中的相应条目在流表中保留的持续时间(步骤430)。
44.在网络接口卡处理与网络流相关联的数据包时,方法400包括用指示与网络流相关联的活动的信息来更新流表年龄缓存(步骤440)。可以通过添加与网络流相关联的条目(如果在流表年龄缓存中尚未存在该条目),或者通过将与流相关联的活跃标志设置为指示最近活动的值(例如,值1),来更新流表年龄缓存。另外,取决于接收到的关于包的包的类型,可以更新与流相关联的计时器选择值。例如,在接收到tcp syn,ack包时,流的状态可以从syn已发送状态转换到已建立状态。在接收到tcp fin包时,流状态可以从已建立状态转换到关闭_等待状态。包处理引擎可以被配置为在被选择为与新状态对应的流表年龄缓存中设置计时器选择值。本领域普通技术人员将理解的是,某些tcp流状态比其它状态更瞬态。因此,相比处于更持久状态的流,可以为处于更瞬变状态的流设置更短的计时器。
45.方法400还包括对流表中的条目相对于流表年龄缓存中的条目周期性地进行扫描(步骤450)。可以由流表管理模块从被存储在存储器模块中的年龄状态表中检索条目块,并且在流表年龄缓存中查找每个检索到的条目来进行扫描。响应于在流表年龄缓存中找到与条目相关联的网络流(判定框460),方法400进一步包括更新被存储在存储器模块中的网络流的计时器信息(步骤470)。例如,流表管理模块可以在年龄状态表140中存储流的当前状态和进行扫描的时间。响应于在流表年龄缓存中未找到与条目相关联的网络流(判定框460),方法400包括基于被存储在硬件存储器模块中的信息来评估条目的年龄,并且响应于条目的年龄超过与网络流相关联的阈值时间值而从流表移除条目(步骤480)。流表条目可
以被流表管理模块180移除,清除流表中的条目,或者将流表条目标记为过时,如果新流被添加则允许它被重写,或者如果在该流被重写之前接收到该流的新包则使它被刷新。
46.在方法400的一些实施方式中,流表管理模块被配置为以小于或等于与可能状态相关联的年龄阈值的最小值的四分之一的周期重复扫描过程(步骤450-480)。在一些实施方式中,扫描频率与年龄比较中使用的比特数有关。因此,在一些实施方式中,扫描频率可以是
47.在方法400的一些实施方式中,流表管理模块被配置为通过维持周期性递增的多比特时钟计时器来跟踪流表条目的年龄。在一些实施方式中,每次扫描完成时,计时器递增。在其它实施方式中,基于预定时间量(例如,一个或多个微秒、秒、分钟等)的经过来周期性地递增时间。在其它实施方式中,流管理模块维持多个计时器,每个计时器与不同的计时器选择值相关联。例如,取决于流管理模块支持多少计时器选择值,第一计时器可以每x微秒递增,第二计时器可以每y秒递增,第三计时器可以每z分钟递增,等等。在其中维持多个计时器的实施方式中,在阶段480评估流表条目的年龄包括,将为硬件存储器模块中的流条目存储的计时器信息和与流相关联的计时器选择值对应的计时器的比特进行比较。在具有单个计时器的一些实施方式中,可以通过将为硬件存储器模块中的流条目存储的计时器信息和计时器的某些比特数(如由与流相关联的计时器选择值指示的)进行比较来评估流表条目的年龄。在利用单个计时器的一些其它实施方式中,可以首先将计时器值转换为与流的计时器选择值相关联的时间标度中的值,然后将转换后的时间值和为硬件存储器模块中的流存储的计时器信息进行比较。在这种实施方式中,在比较中使用的比特数、在比较中使用的计时器或者用于比较的时间标度(如果适用的话)可以是基于网络流的状态。在方法400的一些实施方式中,如果在比较期间,为流表条目存储的计时器值与可应用的计时器值匹配,则确定流条目已经超过年龄阈值。下面描述该比较过程的示例。
48.图5a示出了根据适合于在上述计时器方案中使用的说明性实施方式的流表计时器500的示例。如图5所示,计时器500是表中所示的三比特长计时器,其中,行中的8个可能的时间刻度从顶部行处的0-0-0、第二行处的0-0-1、第三行处的0-1-0
……
到底部行处的1-1-1,然后再次从顶部行处的0-0-0重复。在一些实施方式中,每次年龄状态表140的扫描完成时,计时器500递增。在扫描期间,如果在流表年龄缓存中找到年龄状态表140中的流条目,则该条目的最后活跃值214被更新为计时器的当前值。然后,计时器500可以用于通过将与流相关联的最后活跃值214和当前计时器值进行比较来确定特定流id的年龄。
49.图5b示出了使用流表计时器500的年龄状态表510的示例。如图5b所示,年龄状态表510包括两个流条目,条目520a和520b。年龄状态表条目520a包括流id 510a、计时器选择512a和最后活跃值514a。类似地,年龄状态表条目520b示出了流id 510b、计时器选择512b和最后活跃值514b。如图5b所示,条目520a具有0的计时器选择值512a,并且具有0-0-0的最后活跃值514a。条目520b具有1的计时器选择值512b和0-1-0的最后活跃值514b。在一些实施方式中,0的计时器选择值可以指示上述比较应该考虑计时器计数器500的两个最低有效比特,而1的计时器选择值指示比较应该考虑计时器计数器500的所有三个比特。
50.因此,对于具有0的计时器选择值的条目520a,假设没有接收到该流的新包,则流表管理模块180将认为条目520a在下一次扫描期间已经老化,其中,计时器计数器500的最
后两个比特与最后活跃值514a的最后两个比特匹配,在这种情况下为0-0。如图5a所示,计时器500的最后两个数字是每四个计数器值0-0。因此,在已经完成年龄状态表的四次扫描而没有为该流处理新包之后,条目520a将从流表中老化。相反,因为条目520b的计时器选择值是1,指示在比较中应该使用最后活跃值514b的所有三个比特,所以基于图5,显然最后活跃值的所有三个比特将每8个计数器值匹配计时器值一次。因此,具有1的计时器选择值的流可以保留在流表中,而没有任何活动两次,只要具有0的计时器选择值的流在年龄状态表140的对应条目中。
51.虽然图5a和图5b的讨论建议三比特计时器,但是显然采用附加比特的计时器可以允许附加的计时器选择值和不同的老化阈值。例如,通过向计时器添加第四比特和第三可能的计时器选择值,该第三可能的计时器选择值需要最后活跃值的四个比特来匹配计时器值的最后四个比特,可以添加第三定时阈值。该第三定时阈值将是第二定时阈值的两倍(计时器选择值为1)和第一定时阈值的四倍(计时器选择值为0)。向计时器添加第五比特将启用附加的、更长的阈值,等等。
52.虽然上述计时器体系结构提供了跟踪流表中的年龄的一种处理器和存储器有效方式,但是本文中公开的系统可以使用其它定时机制。例如,最后活跃值可以是识别由nic接收到与流相关联的最后一个包的特定时间的cpu或其它处理器时钟。计时器选择值可以是指示在条目老化之前可以无活动地经过的时间量(根据cpu时钟周期)的实际值。在这种实施方式中,在阶段480进行的比较可以是当前时钟时间和存储的时钟时间之间的差相对于由计时器选择值指示的阈值时间的比较。在又一实施方式中,计时器选择值可以是存储计时器选择值和实际老化阈值之间的对应关系的年龄阈值数据结构的索引。
53.如上面指示的,在一些实施方式中,流表管理模块可以维持多个等宽时钟(即,每个时钟使用相同的比特数来跟踪时间),其中,每个时钟对应于不同的时间标度。例如,第一时钟可以以微秒来跟踪时间,第二时钟可以以毫秒来跟踪时间,第三时钟可以以秒来跟踪时间,并且第四时钟可以以分钟来跟踪时间。每个时钟可以以单独的时间单位或时间单位块的增量来跟踪时间。例如,一个微秒时钟可以每1、5、10或25或任何其它数量的微秒递增。在一些实施方式中,第二微秒时钟可以以不同数量的微秒的增量来跟踪时间。基于期望由计时器跟踪的最大时间阈值以及期望跟踪这种时间的比特数(对应于精确程度)来选择用于每个计时器的时间增量。例如,对于用二比特计时器跟踪的100微秒的年龄阈值,计时器可以每25微秒递增。如果使用三比特计时器,则计时器将每12.5微秒递增,等等。被存储在年龄状态表中的最后活跃时间值由用于计时器的相同比特数表示。为了评估给定流是否应该被老化,流表管理模块可以识别如由为该流存储的计时器选择值指示的适当的计时器,并且将被存储在计时器中的值和指示的计时器的当前值进行比较。如果这些值匹配,则确定该流已经超过年龄阈值。
54.取决于应用,可以由各种方式来实施本文中描述的方法。例如,这些方法可以以硬件、固件、软件或其任意组合来实施。对于硬件实施方式,处理单元可以在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、电子设备、被设计为进行本文中描述的功能的其它电子单元或其组合内实施。
55.在各种实施例中,本教导的方法可以被实施为固件和/或软件程序以及以诸如c、c
、python等的常规编程语言编写的应用。如果被实施为固件和/或软件,则可以在存储有用于使得计算机进行上述方法的程序的非暂时性计算机可读介质上实施本文中描述的实施例。
56.本说明书中所描述的主题和操作的实施方式可以以数字电子电路来实施,或者以在有形介质、固件或硬件上所实施的计算机软件来实施,该计算机软件包括本说明书中所公开的结构及其结构等同物,或者以它们中的一个或多个的组合来实施。本说明书中所描述的主题的实施方式可以被实施为在有形介质上所实施的一个或多个计算机程序,即,在一个或多个计算机存储介质上所编码的一个或多个计算机程序指令的模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备、或它们中的一个或多个的组合,或者被包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备、或它们中的一个或多个的组合中。计算机存储介质还可以是一个或多个单独的组件或介质(例如,多个cd、盘或其他存储设备),或者被包括在一个或多个单独的组件或介质(例如,多个cd、盘或其他存储设备)中。计算机存储介质可以是有形的和非暂时性的。
57.虽然本说明书包含许多特定的实施方式细节,但是这些细节不应该被解释为对任何发明或可能被要求保护的范围的限制,而是应该被解释为对特定发明的特定实施方式特定的特征的描述。本说明书中在单独实施方式的情境中所描述的某些特征也可以组合地在单个实施方式中实施。相反,在单个实施方式的情境中所描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中被实施。此外,尽管上面可以将特征描述为以某些组合起作用并且甚至最初如这样要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变型。
58.类似地,虽然在附图中以特定顺序示出了操作,但是这不应该被理解为要求以所示的特定顺序或按顺序进行这样的操作,或者进行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上面所描述的实施方式中的各种系统组件的分离不应该被理解为在所有实施方式中都要求这样的分离,并且应该理解的是,描述的程序组件和系统通常可以被集成在单个软件产品中或者被打包到多个软件产品中。
59.对“或”的参考可以被解释为包括性的,使得使用“或”所描述的任何术语可以指示单个、多于一个和所有描述的术语中的任何一个。标签“第一”、“第二”、“第三”等不一定意味着指示顺序,并且通常仅用于区分相同或类似的项目或元素。
60.对在本公开中所描述的实施方式的各种修改对于本领域技术人员而言可以是显而易见的,并且在不脱离本公开的精神或范围的情况下,在本文中所限定的一般原理可以被应用于其他实施方式。因此,权利要求不旨在限于本文中所示的实施方式,而是要符合与本公开、本文中公开的原理和新颖特征一致的最宽范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献