流表管理系统可以包括通信地耦接到网络接口卡的硬件存储器模块。硬件存储器模块被配置为存储包括多个网络流条目的流表。网络接口卡进一步包括被配置为存储一组最近活跃的网络流的流表年龄缓存以及被配置为使用流表年龄缓存来管理被存储在硬件存储器模块中的流表中的相应网络流条目在流表中保留的持续时间的流表管理模块。在一些实施方式中,关于流表中的每个相应流的年龄信息被存储在硬件存储器模块中的与流表分离的年龄状态表中。储器模块中的与流表分离的年龄状态表中。储器模块中的与流表分离的年龄状态表中。
【技术实现步骤摘要】
【国外来华专利技术】对于DRAM访问优化的流表老化
相关申请的交叉引用
[0001]本申请是于2019年8月23日提交的美国专利申请16/549,695的延续,该美国专利申请要求于2019年5月17日提交的美国临时专利申请62/849,594的提交日期的权益,它们的公开内容通过引用被结合在本文中。
技术介绍
[0002]硬件组件,诸如网络接口卡(NIC)、网络路由器、交换机或服务器,可以访问用于存储关于网络流量处理的指令的流表。通常基于每个网络流(network flow)来处理网络流量。当与流相关联的数据包(data packet)进入网络组件时,网络组件可以在流表或流表缓存中查找该流,以确定如何处理进入的数据包。例如,如果该流被存储在流表缓存中,则流表本身不需要被访问。流表可以驻留在耦接到网络组件的动态随机存取存储器(DRAM)模块中,而流表缓存通常驻留在网络组件本身中。如果该流未被存储在流表缓存中,与存储全流表的存储器相比,该流表缓存通常具有相对少量的高速存储器,则网络组件查询全流表以用于处理指令。如果流不在全流表中,则网络组件可以查询其中结合该流的较大计算设备或远程计算设备,以确定应该如何处理与这种流相关联的包。然后,网络组件可以将查询的结果添加到流表和/或流表缓存,用于处理与该流相关联的将来的包。
[0003]在一些情况下,如果与特定流相关联的包没有被网络组件处理,则被存储在流表中的流可能随时间推移而变得过时。因此,流表中的条目可以受益于被例行清除以为新流创建空间或提示对给定流的流处理指令的新查询。确定流表条目是否和何时应该被认为过时并且因此被移除的过程被称为流表老化(aging)。其中流表被存储在DRAM中的用于流表老化的当前系统通常很大程度上依赖于访问已经具有带宽限制的流表DRAM。DRAM的连续访问可以克服这些带宽限制并且导致故障或不可接受的延迟。因此,需要一种管理流表中的流条目以减轻网络组件与存储这种网络组件的流表的存储器模块之间的带宽约束的改进方法。
技术实现思路
[0004]至少一个方面涉及一种管理流表的方法。所述方法包括提供耦接到网络组件的硬件存储器模块。所述硬件存储器模块存储包括多个条目的流表。每个条目对应于网络流。所述方法还包括在所述网络组件上提供流表年龄缓存,所述流表年龄缓存被配置为存储一组最近活跃的网络流。所述方法还包括在所述网络组件上提供流表管理模块,所述流表管理模块被配置为管理所述流表中的相应条目在所述流表中保留的持续时间。
[0005]在一些实施方式中,在所述网络组件处理与网络流相关联的数据包时,所述流表管理模块通过用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存,并且周期性地对所述流表中的所述条目进行扫描,来管理所述流表中的相应条目在所述流表中保留的持续时间。
[0006]在所述方法的一些实施方式中,所述扫描包括,对于所述流表中的每个条目,在所
述流表年龄缓存中查找与所述条目相关联的所述网络流。响应于在所述流表年龄缓存中找到与所述条目相关联的所述网络流,更新被存储在所述存储器模块中的所述网络流的计时器信息。在所述方法的一些实施方式中,响应于在所述流表年龄缓存中未找到与所述条目相关联的所述网络流,所述扫描包括,基于被存储在所述硬件存储器模块中的信息来评估所述条目的年龄,并且响应于所述条目的所述年龄超过与所述网络流相关联的阈值时间值而从所述流表移除所述条目。
[0007]在一些实施方式中,所述流表管理模块基于与条目相关联的所述网络流的状态以及与所述网络流的可能状态对应的相应年龄阈值来确定每个条目的所述年龄。在一些实施方式中,所述流表管理模块被配置为通过将为流条目存储的最后活跃计时器值和计时器值进行比较来评估所述流条目的所述年龄,并且以小于与所述可能状态相关联的最小年龄阈值的倍的周期来扫描所述条目。
[0008]在一些实施方式中,与所述流表的所述条目中的每个条目相关联的年龄信息以与所述流表分离的数据结构被存储在所述硬件存储器模块中。在一些实施方式中,所述网络组件是网络接口卡。
[0009]在一些实施方式中,更新所述网络流的计时器信息包括重置所述网络流的年龄计时器。在一些实施方式中,更新所述网络流的所述计时器信息包括修改所述网络流的状态,从而修改与所述网络流相关联的所述阈值时间值。在一些实施方式中,所述网络流的所述可能状态包括传输控制协议(TCP)流状态,所述TCP流状态至少包括启动状态、已建立状态、终止状态和已关闭状态。在一些实施方式中,用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存包括,基于与所述网络流相关联地处理的所述包的类型,将所述网络流的所述状态从所述可能状态中的第一状态改变到所述可能状态中的第二状态。
[0010]在一些实施方式中,所述流表管理模块被配置为维持多比特时钟并且对于所述流表中的每个流条目维持由与所述多比特时钟中使用的相同比特数表示的最后活跃时间值。在这种实施方式中,评估流表条目的所述年龄可以包括,将所述硬件存储器模块中的所述条目的所述最后活跃时间和所述多比特时钟的当前值进行比较。在一些实施方式中,如果在所述比较期间,为所述流表条目存储的所述最后活跃时间值与所述多比特时钟的所述比特匹配,则确定所述流条目已经超过所述阈值。
[0011]至少一个方面涉及一种流表管理系统。所述系统包括硬件存储器模块,所述硬件存储器模块被配置为存储包括多个网络流条目的流表。所述系统还包括通信地耦接到所述硬件存储器模块的网络组件。所述网络组件进一步包括存储器和处理器。所述存储器存储被配置为存储一组最近活跃的网络流的流表年龄缓存。所述处理器被配置为执行流表管理模块,所述流表管理模块被配置为管理被存储在所述硬件存储器模块中的所述流表中的相应网络流条目在所述流表中保留的持续时间。
[0012]在一些实施方式中,所述流表管理系统可以包括通信地耦接到网络接口卡的硬件存储器模块。所述硬件存储器模块被配置为存储包括多个网络流条目的流表。所述网络接口卡进一步包括被配置为存储一组最近活跃的网络流的流表年龄缓存以及被配置为使用所述流表年龄缓存来管理被存储在所述硬件存储器模块中的所述流表中的相应网络流条目在所述流表中保留的持续时间的流表管理模块。在一些实施方式中,关于所述流表中的
每个相应流的年龄信息被存储在所述硬件存储器模块中的与所述流表分离的年龄状态表中。
[0013]所述流表管理模块通过在所述网络组件处理与网络流相关联的数据包时用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存,来管理所述流表中的相应条目在所述流表中保留的所述持续时间。所述流表管理模块进一步被配置为周期性地对所述流表中的所述网络流条目进行扫描。周期性地对所述流表中的所述网络流条目进行所述扫描包括,在所述流表年龄缓存中查找与每个条目相关联的所述网络流。在一些实施方式中,响应于在所述流表年龄缓存中找到所述网络流,所述流表管理模块更新被存储在所述硬件存储器模块中的所述网络流的计时器信息。在一些实施方式中,响应于在所述流表年龄缓存中未找到与条目相关联的所述网络流,所述本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种管理流表的方法,其特征在于,包括:提供耦接到网络组件的硬件存储器模块,所述硬件存储器模块存储包括多个条目的流表,每个条目对应于网络流;在所述网络组件上提供流表年龄缓存,所述流表年龄缓存被配置为存储一组最近活跃的网络流;在所述网络组件上提供流表管理模块,所述流表管理模块被配置为通过以下方式来管理所述流表中的相应条目在所述流表中保留的持续时间:在所述网络组件处理与网络流相关联的数据包时,用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存;周期性地对所述流表中的所述条目进行扫描,所述扫描对于所述流表中的每个条目包括:在所述流表年龄缓存中查找与所述条目相关联的所述网络流;响应于在所述流表年龄缓存中找到与所述条目相关联的所述网络流,更新被存储在所述存储器模块中的所述网络流的计时器信息;以及响应于在所述流表年龄缓存中未找到与所述条目相关联的所述网络流,基于被存储在所述硬件存储器模块中的信息来评估所述条目的年龄,并且响应于所述条目的所述年龄超过与所述网络流相关联的阈值时间值而从所述流表移除所述条目。2.根据权利要求1所述的方法,其特征在于,所述流表管理模块基于与条目相关联的所述网络流的状态以及与所述网络流的可能状态对应的相应年龄阈值来评估每个条目的所述年龄。3.根据权利要求2所述的方法,其特征在于,所述流表管理模块被配置为通过将相关联地存储的最后活跃计时器值和计时器进行比较来评估流条目的所述年龄,并且以小于与所述可能状态相关联的最小年龄阈值的倍的周期来扫描所述条目。4.根据权利要求1所述的方法,其特征在于,与所述流表的所述条目中的每个条目相关联的年龄信息以与所述流表分离的数据结构被存储在所述硬件存储器模块中。5.根据权利要求1所述的方法,其特征在于,所述网络组件包括服务器的网络接口卡。6.根据权利要求1所述的方法,其特征在于,更新所述网络流的计时器信息包括重置所述网络流的年龄计时器。7.根据权利要求1所述的方法,其特征在于,更新所述网络流的所述计时器信息包括修改所述网络流的状态,从而修改与所述网络流相关联的所述阈值时间值。8.根据权利要求7所述的方法,其特征在于,所述网络流的所述可能状态包括TCP流状态,所述TCP流状态至少包括启动状态、已建立状态、终止状态和已关闭状态。9.根据权利要求7所述的方法,其特征在于,用指示与所述网络流相关联的活动的信息来更新所述流表年龄缓存包括,基于与所述网络流相关联地处理的所述包的类型,将所述网络流的所述状态从所述可能状态中的第一状态改变到所述可能状态中的第二状态。10.根据权利要求7所述的方法,其特征在于,所述流表管理模块被配置为维持多比特时钟并且对于所述流表中的每个流条目维持由与所述多比特时钟中使用的相同比特数表示的最后活跃时间值,并且其中,评估流表条目的所述年龄包括,将所述硬件存储器模块中
的所述条目的所述最后活跃时间和所述多比特时钟的当前值进行比较。11.根据权利要求10所述的方法,其特征在于,如果在所述比较期间,为所述流表条目存储的所述最后活跃时间值与所述多比特时钟的所述比特匹配,则确定所述流条目已经超过所述阈值。12.一种流表管理系统,其特征在于,包括:硬件存储器模块,所述硬件存储...
【专利技术属性】
技术研发人员:王炜煌,普拉尚特,
申请(专利权)人:谷歌有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。