本发明涉及一种缓存方法,尤其涉及一种基于软硬件协同设计的二级缓存方法,还涉及一种实现所述二级缓存方法的两阶段超时流表结构。
背景技术:
::软件定义网络(software-definednetwork,sdn)通过将控制平面和数据平面解耦来实现更加集中和灵活的网络管理,目前流行的控制平面和数据平面通信接口是openflow[1]。控制平面负责制定数据包转发策略,这些策略被实现为流规则。当需要时,控制平面将部分规则安装到数据平面的流表上。实际上,数据平面上的流表相当于控制平面生成的流规则的一个缓存。与传统网络不同,openflow中的网络策略通常更细粒度、更动态,这对数据平面上的高效规则缓存提出了很高的要求,需要维护一个大的流表。然而,高性能网络的交换机通常使用三元内容寻址存储器(ternarycontentaddressablememory,tcam)来实现流表,而tcam由于其高成本和高能耗而容量有限。目前的商业交换机中的tcam通常只能容纳数千条流规则,例如,broadcom为数据中心提供的可编程交换机的tcam只能容纳2000条openflow规则[2],远远小于非常短的时间窗口内的网络流数量。流表的有限容量正成为sdn交换机的主要性能瓶颈,引起了sdn界的极大关注。有效地利用有限的流表容量是缓解这一问题的研究方向之一,相关工作可分为三类。第一类依赖于流规则的压缩来减少存储需求。例如,工作[3]中的tag-in-tag使用更少的比特(bits)来唯一地标识流,在数据包头部携带路由信息,并使用两个更简单、更短的标签来替换流条目,从而删除冗余信息降低流条目的大小。第二类尝试在处理空间需求时赋予大象流更高的优先级。这类工作基于网络流分布的zipf’s的规律,即很小一部分流贡献了大部分的数据包或字节[4]。[5]中的工作提出了一个差分流缓存框架来利用这种流量特性。它的基本思想是将大象流(elephantflows)和小鼠流(miceflows)存储到不同的桶(buckets)中,在一定程度上保护了大象流不受小鼠流的影响。然而,这些方法本身也有一些缺点,包括大象流检测的错误率和开销。第三类工作尝试识别无用或不太有用的流,并及时将它们驱逐出去,从而为其他流腾出空间。flowmaster[6]通过预测一个流条目何时失效,并提前删除它以避免流表空间的浪费来管理流表空间。但预测失误的严重代价和预测难度限制了其有效性。[7]中的工作分析和观察到,许多没有价值的流规则被不必要地安装浪费了大量的流表空间。基于这一观察,他们提出了流规则的延迟安装和提前驱逐机制。一些工作尝试提出一个更好的超时机制来管理流表[8][9]。他们的基本思想是根据每个流规则各自的特点和当前tcam占用情况,自适应地为每个流规则分配适当的超时。一些工作试图从sdn的全局角度来解决这个问题,并提出了主动缓解机制来避免流表溢出。例如,[13]中的cpd根据历史信息预测下一个采样周期将进入网络的新流的数量,并结合当前流表占用主动地清除流规则,以避免流表溢出。根据申请人的理解,超时机制对于流表的利用和适当的流处理起着至关重要的作用,并且具有很大的改进潜力。因此,本发明开始于研究当前openflow协议中的超时机制。openflow目前使用两种固定的超时机制来管理流表,包括硬超时和空闲超时。硬超时机制在规则安装一段特定时间后驱逐流规则;如果在特定时间内没有数据包匹配规则,则空闲超时将驱逐流规则。openflow中的超时以秒为单位,例如,硬超时通常被设置为60s。这种保守的超时设置是为了尽可能减少对仍然在使用的流的驱逐。然而,研究表明,在数据中心中,网络流的持续时间差别很大,很大一部分流的持续时间不到几百毫秒[10]。保守的超时设置将导致延迟驱逐无效流条目,从而严重浪费流表空间。另一方面,如果设置一个小的固定超时可能会过早地驱逐流条目,从而导致同一条流规则被多次安装。在这两种情况下,由于不适当的超时而导致的额外流规则安装将导致显著的性能损失,因此需要更好的超时机制来解决这个问题。技术实现要素:为解决现有技术中的问题,本发明提供一种基于软硬件协同设计的二级缓存方法,还提供一种实现所述二级缓存方法的两阶段超时流表结构。本发明二级缓存方法包括如下步骤:s1:控制器收到交换机发送的数据包缓存缺失消息;s2:控制器根据流规则历史信息库中的流规则信息为该数据包相应的流规则分配一个超时,并更新流规则历史信息库中该流规则的相关信息;s3:控制器安装该流规则至交换机中的主存储模块,并根据流规则的动作域信息对数据包进行处理;s4:判断流规则在超时过期前是否命中数据包,如果是,则规则继续保留在主存储模块,循环执行步骤s4,如果否,执行下一步;s5:将流规则搁置交换机中的辅助存储模块中,并记录超时值;s6:判断流规则在辅助存储模块中是否命中数据包,如果是,将流规则移至主存储模块,且超时值不变,如果否,将流规则从交换机中驱逐,结束。本发明作进一步改进,在步骤s4执行后,步骤s5执行前,还包括数据包数目判断步骤a:判断流规则命中数据包的数目是否大于0,如果是,执行步骤s5,如果否,将流规则直接从交换机中驱逐,结束。本发明作进一步改进,所述交换机中的主存储模块和辅助存储模块为两个流表结构或通过存储器分区实现,当为流表结构时,所述主存储模块为主流表,所述辅助存储模块为辅助存储队列。本发明作进一步改进,所述辅助存储队列的流规则按照先进先出策略存入或移除。本发明作进一步改进,当主表的占用率达到设定的阈值时,缓存管理模块使用随机策略将流规则从主流表搁置到辅助存储队列。本发明作进一步改进,步骤s2中,流规则历史信息库由控制器中的一个数据库维护,每条流规则信息包括流规则的匹配域、流规则的动作域、最后一次安装时的超时值、最后一次超时过期的时间戳、此流规则已安装的次数。本发明作进一步改进,所述超时的分配方法为:如果是一个新的流规则,则基于真实网络流量总体特征为其分配一个初始超时;如果之前已经安装了相应的流规则,那么根据流规则历史信息库中记录的该流规则的历史信息和步骤s1的时间戳,为流规则分配一个适当的超时,所述超时接近该流规则的数据包到达间隔。本发明作进一步改进,控制器设置到达间隔阈值和最大超时,当流规则对应的数据包到达间隔小于所述到达间隔阈值时,该流规则的超时为最后一次安装时的超时值加上步骤s1的时间戳与该规则最后一次超时过期的时间戳之间的时间间隔,直至达到最大超时不再增加;否则,将超时值设置为初始超时值。本发明作进一步改进,所述数据包的处理方法为:c1:开始,查询交换机中的主流表,判断数据包对应的流规则是否命中,如果是,执行步骤c4,如果否,查询辅助存储队列,然后执行步骤c2;c2:判断是否命中,如果是,根据流规则的动作域处理数据包,将该流规则移至主流表,结束,如果否,向控制器发送数据包缓存缺失消息;c3:控制器为该数据包相应的流规则分配一个超时,并将该流规则安装至交换机的主流表;c4:交换机根据流规则的动作域处理数据包,结束。本发明还提供一种实现所述二级缓存方法的两阶段超时流表结构,包括相互连接的控制器和交换机,其中,所述控制器内设有流规则历史信息库和超时分配模块,所述流规则历史信息库用于存储流规则信息,所述超时分配模块用于根据流规则历史信息库中的流规则信息为当前处理的数据包对应的流规则分配超时;所述交换机包括二级存储模块和两级超时缓存管理模块,所述二级存储模块包括主存储模块和辅助存储模块,所述两级超时缓存管理模块用于根据控制器分配的超时及是否命中数据包管理主存储模块和辅助存储模块内的流规则。与现有技术相比,本发明的有益效果是:缓存命中率大大提高,显著减少规则安装次数,从而减少控制器的工作负载以及控制器与交换机之间的通信开销;采用两阶段超时机制还能够显著降低tcam查询的能耗,当tcam大小为2000时,两阶段超时机制将tcam查询能耗降低了47%左右,能够很好地识别和保持有用的流规则在流表中。附图说明图1为本发明框架结构图;图2为本发明流规则信息结构图;图3为本发明方法流程图;图4为数据包处理流程图;图5-6为在没有主动驱逐机制时,本发明与现有技术的缓存命中率、数据包丢弃率对比示意图;图7为在没有主动驱逐机制时,tcam查询能耗节省率示意图;图8-10为采用主动驱逐机制后,本发明与现有技术的缓存命中率、规则安装次数对比示意图;图10为采用主动驱逐机制后,tcam查询能耗节省率示意图;图11为对真实网络流数据包分布特征分析图。具体实施方式下面结合附图和实施例对本发明做进一步详细说明。本发明首先对应用到的技术进行说明:一、网络流特征分析本例使用来自应用互联网数据分析中心(caida)的真实网络数据包trace来分析网络流量的特征。不同trace的总体分布特征是相似的,所以这里只显示了其中一个trace文件的分析结果,该trace[15]是caida于2018年从真实网络中获得的。1.1数据包在流上的分布本例统计了具有不同数目的数据包的流的分布,如图11所示。大象流(每条流包含的数据包数目大于100)仅占所有流的1.9%,但它们包含的数据包却占了所有数据包的78.2%。另一方面,小鼠流(每条流的数据包数目少于10个)占所有流的89.9%,但它们包含的数据包仅占12%。因此,该trace遵循zipf’s分布规律。另一个值得注意的观察是,只有一个包的流大约占所有流的一半。显然,这些流浪费了流表的宝贵资源,应该尽快清除它们,为更多有用的流腾出空间。1.2数据包在流上的平均到达间隔分布影响适当超时的一个重要因素是流的数据包到达间隔模式。为此,本例对两个指标进行了基于仿真的统计:1)来自同一条流的数据包的平均的间隔到达时间,2)同一条流中两个相邻数据包间隔其他流数据包的平均数目。注意,对于这些指标来说,带有一个包的流是没有意义的,因此它们被排除在统计之外。本例得到了以下观察结果。首先,大多数大象流的数据包间隔到达时间都很短,这意味着在大多数情况下一个小的超时就足以防止它们被提前驱逐。其次,大量的小鼠流也有较短的间隔到达时间(10ms-50ms),这些小鼠流也只需要一个小的超时。但是也有相当多的小鼠流具有相对较长的到达间隔时间(从500ms到几秒不等),如果它们在流表中有较大的超时,则会给流表带来压力,且对缓存命中率带来的价值较小。第三,从关于平均间隔数据包数目的统计中,我们观察到大部分流是老鼠流且有很大的间隔,这意味着如果将这类流保留在流表中几乎没有任何价值且会严重浪费流表空间,因为其间隔太大足以处理很多其他流的数据包。总的来说,超时设置需要一个复杂的权衡。二、基于两阶段超时机制的两阶段超时流表结构2.1理想化模型在真实网络中,实时了解流的类型及其间隔到达模式是非常困难的。当前流表设计在流规则到达时安装它,在超时过期时将其删除,而不管相应的流是否已经结束。为了评估流表性能的潜力,并评估特定流表设计的有效性,本例提出了一个能够最大化流表空间性能的理想化模型。然而,这种理想化的流表在实践中永远无法实现,因为它依赖于对流未来信息的了解。它的唯一目的是作为与现实设计的比较。理想化模型(idealizedmodel):假设我们知道网络中所有的流的信息,包括每个流的到达时间,因此控制器可以根据流的到达顺序,在流到达之前安装相应的流规则,直到流表被填满。在处理好各自的数据包后,控制器及时将规则驱逐出去,避免流表溢出,为即将到达的新流提供空间。在这种情况下,缓存命中率为100%,由于不存在无效流条目长时间占用流表,因此流表空间得到了有效的利用。但是,这种机制可能会导致流规则安装的数量急剧增加,从而增加控制器的工作负载。该理想模型类似于[7]中构建的背包模型,但不同之处在于我们的粒度是流,而他们的粒度是数据包。2.2两阶段超时流表结构及方法设计在第一点对真实网络流量特征分析的基础上,本发明提出了一种新的两阶段超时(two-stagetimeout,tst)流表结构,如图1所示。该系统由两部分组成:1)位于控制器中的超时分配模块;2)位于交换机中的两阶段超时缓存管理模块。所述控制器内设有流规则历史信息库,所述流规则历史信息库用于存储流规则信息,所述超时分配模块用于根据流规则历史信息库中的流规则信息为当前处理的数据包对应的流规则分配超时。所述交换机设有二级存储模块,所述二级存储模块包括主存储模块和辅助存储模块,所述两级超时缓存管理模块用于根据控制器分配的超时及是否命中数据包管理主存储模块和辅助存储模块内的流规则。本例的交换机中的主存储模块和辅助存储模块为两个流表结构,所述主存储模块为主流表,所述辅助存储模块为辅助存储队列。当然,也可以通过存储器(tcam)分区实现两级存储。在接收到packet-in消息后,如果对应的流规则已经安装过,控制器将根据历史信息为该流规则分配一个特定的空闲超时,否则它将使用总体的网络流统计特征信息为第一次安装的流规则设置一个小的初始空闲超时。将规则安装到主流表(primarytable)后,超时过期将触发交换机中的管理模块将其搁置到一个名为inactiveflowqueue(ifq)的辅助存储队列中,并记录其超时。ifq为那些控制器给出的超时期望被违反的流规则提供了第二次机会。因此,如果规则仍然是活跃的,并且违反超时期望的程度并不严重,即相应的数据包在规则从ifq头部被删除之前到达,那么缓存管理模块将该规则提升回主表,并且使用保存的超时。根据先进先出(first-infirst-out,fifo)策略,只有当另一个规则即将被搁置到已满的ifq上时,位于ifq头部的规则才最终从交换机中移除。显然,被驱逐的规则最严重地违反了超时的期望,因此成为驱逐的最佳候选者是合理的。除了超时触发的搁置外,缓存管理模块的主动驱逐机制还在主表即将满时随机搁置规则,避免流表溢出,为即将到达的流腾出空间。流规则历史信息库由控制器中的一个数据库维护,每个规则信息的内容如图2所示。其中,match_field为规则的匹配域,action_field为规则的动作域,字段told表示其最后一次安装时的超时值,evict_time是其最后一次超时过期的时间戳,install_times存储了此规则已安装的次数。如图3所示,在上述框架下,接下来详细介绍每个组件的工作方法。当数据包遇到缓存缺失时,交换机将向控制器发送一条packet-in消息,控制器将尝试为相应的流规则分配适当的空闲超时。在tst的两阶段超时缓存管理机制下,每条流规则从被安装至交换机到被驱逐的完整实现流程如图3所示:s1:控制器收到交换机发送的数据包缓存缺失消息packet-in消息;s2:控制器根据流规则历史信息库中的流规则信息为该数据包相应的流规则分配一个超时,并更新流规则历史信息库中该流规则的相关信息,此处的超时为空闲超时;s3:控制器将规则安装至交换机的主流表(primarytable)中并根据规则的动作域信息对数据包进行处理,如转发或者丢弃;s4:判断流规则在超时过期前是否命中数据包,如果流规则在超时过期前再次命中数据包,则流规则继续保留在主流表中,如此循环执行步骤s4,如果否,执行下一步;s5:将流规则搁置交换机中的辅助存储ifq中,并记录超时值;s6:判断流规则在辅助存储模块中是否命中数据包,如果是,将流规则移至主流表,且超时值不变,如果否,将流规则从交换机中驱逐,结束。在步骤s4执行后,步骤s5执行前,还包括数据包数目判断步骤a:判断流规则命中数据包的数目是否大于0,如果是,执行步骤s5,如果否,将流规则直接从交换机中驱逐,结束。本例为避免只有一个数据包的流对辅助存储ifq的冲击,采用步骤a对规则匹配的数据包数目进行一个简单的判断,只有命中了数据包的过期规则才有资格暂时搁置在辅助存储中并记录其超时值,以便规则再次快速利用;对于搁置在ifq中的规则以fifo策略进行管理,若规则被驱逐前其相应数据包到达,则将规则移至主流表中且超时时间保持不变,否则在ifq溢出时驱逐在ifq中搁置时间最长的规则,它也是在未来最可能没有价值的规则。通过上述两阶段超时机制,tst能够将短生命周期的流尽快地驱逐出去,并有效地识别活跃流将其尽可能保留在缓存中,从而高效地利用流表空间。在步骤s2中,本例采用基于流规则历史信息的超时计算,具体处理算法如表1所示,如果是一个新的流,则基于真实网络流量总体特征为其分配一个初始空闲超时(tinit)。根据第一点对网络流量特性的分析结果,大约有一半的流只有一个数据包,为了尽快的排除这些流规则,本发明设置一个小的初始空闲超时,例如1ms。如果之前已经安装了相应的流规则,那么根据数据库中记录的它的历史信息和packet-in事件的时间戳(packetintime),为流规则设置一个适当的空闲超时,该超时应该接近它的数据包到达间隔。从第一点的分析可以看出,部分小鼠流的数据包到达间隔特别大,其间隔足以处理很多其他流的数据包。因此,为了避免浪费流表空间,不适合为这样的流增加超时。为了识别这类流,本发明设置一个到达间隔阈值(interval_threshold)。对于具有第一点中的特征的trace,可以将此阈值设置为3000ms。当流的数据包间隔小于该阈值时,规则的超时将根据间隔增加,以增加其保留在缓存中的机会。从本质上讲,计算出的空闲超时可以看作是流上数据包到达间隔的期望。否则,超时值将被设置为最小的初始超时值,以避免流表的浪费。为了避免超时的无限增加,本发明设置了最大超时(tmax)。对于第一点中的trace,分析表明大部分数据包的到达间隔小于3000ms,因此本例将tmax设置为3000ms。表1超时分配算法本例的两阶段超时缓存管理方法详述如下:a)两阶段缓存管理:这种两阶段超时缓存架构可以在两级流表中实现,也可以通过tcam分区实现。交换机中的两阶段超时缓存管理模块(简称管理模块)可以有效地管理两阶段流表架构。当主流表中的规则超时过期时,管理模块将该规则放置到ifq中,而不是直接将其删除,并记录其超时值。本质上,ifq为违反了控制器给出的预期超时的活跃流规则提供了第二次机会。如果违规没有那么严重,即此流的包在规则从ifq头部被驱逐之前到达,那么此规则将被提升回主表,超时时间与之前相同。第一点的分析表明,大象流的包到达间隔相对较小,因此在ifq的帮助下,大象流的规则可以尽可能地保存在缓存中。当ifq被填满时,fifo策略将驱逐违反其期望最严重的头部规则,该规则也是在未来中最可能的无用的规则。第一点中的网络流量分析表明,网络中只有一个包的流量约占所有流量的一半。为了减少它们对ifq的污染,主缓存中没有任何命中的规则将不会被搁置到ifq中,相反,它们将直接从交换机中被驱逐出去。这种过滤对有限容量ifq的利用具有非常积极的影响。b)防止流表溢出的主动驱逐机制:流表溢出会带来严重的后果,导致严重的数据包延迟或丢弃。为了避免溢出问题,本发明实施了一个主动的流规则驱逐机制。当主表的占用率达到设定的阈值(在我们的设置中为95%)时,缓存管理机制使用随机策略将规则从主表搁置到ifq。由于网络中小鼠流比例较高,这种随机策略比较有效。如图4所示,本例的每到达一个数据包的处理流程为:c1:开始,查询交换机中的主流表,判断数据包对应的流规则是否命中,如果是,执行步骤c4,如果否,查询辅助存储队列,然后执行步骤c2;c2:判断是否命中,如果是,根据流规则的动作域处理数据包,将该流规则移至主流表,结束,如果否,向控制器发送数据包缓存缺失消息;c3:控制器为该数据包相应的流规则分配一个超时,并将该流规则安装至交换机的主流表;c4:交换机根据流规则的动作域处理数据包,结束。三、实验评估如图5-图10所示,本例将本发明tst与openflow的硬超时(hard_timeout)、理想化模型(idealizedmodel)以及intelligenttimeoutmaster[9]和smarttime[12]这两种与超时相关的工作进行了比较。为了便于比较,本例重写了各项对比工作的代码并设置与相应工作的论文中相同的参数进行了实验。本例使用来自caida的真实网络数据包trace[15]进行仿真。这个trace包含大约110万条流,共包含大约2200万个数据包。在实验中,规则以响应式精确匹配的方式进行缓存。下面的指标用于性能比较:·缓存命中率(cachehitratio):在tcam中有匹配规则的数据包的比率。缓存缺失会增加数据包的延迟,因此在高性能网络中提高缓存命中率至关重要。·数据包丢弃率(discardedpacketratio):由于缓存缺失且流表已满而丢弃的数据包的比率。它反映了流表的溢出率。·规则安装次数(ruleinstallationtimes):控制器在收到packet-in消息后安装规则的次数,它反映控制器的工作负载以及控制器与交换机之间的通信开销。·tcam查询节能率(energysavingontcamquery):我们使用它来显示我们的方法在访问基于tcam的流表时的能耗节省情况。查询能耗节省率是根据主表和ifq中正在激活的tcam条目计算的。由于在所有的对比工作中,只有smarttime提出了主动驱逐机制,所以本例分别进行了两组实验,没有主动驱逐机制和有主动驱逐机制。在接下来的实验中,本例测试了不同大小的缓存(分别为1000、1500、2000、2500、3000个流条目),其中500个流条目用于我们的tst方案的主表。openflow硬超时设置为10秒(即下列图中的hard_timeout(10s))。另外,本例还统计了tst方法中在主表(primarytable)命中的数据包的比例,以评估tcam查询的能量消耗节省情况。3.1没有主动驱逐机制1)缓存命中率:理想化的模型总是可以达到100%的缓存命中率(通过展望未来),所以其结果没有显示出来。随着缓存大小的增加,每种方法的缓存命中率逐渐增加。tst的缓存命中率最高,比smarttime高20%左右,比intelligenttimeoutmaster高30%左右,比openflow硬超时机制高30%-40%左右。如图5所示。2)数据包丢弃率:tst中的主表虽小,但tst的丢包率明显低于其他工作。在缓存大小为2000的情况下,tst的丢包率比openflow硬超时机制低39%左右,比intelligenttimeoutmaster低约31%,比smarttime低22%左右。这表明,较小的初始超时加上辅助缓存ifq可以及时驱逐无效流规则,从而减少流表溢出。如图6所示。3)tcam查询的节能率:随着缓存大小的增加,tcam查询的节能率在tst中逐渐增加。在缓存大小为2000的情况下,主表的命中率约为43%,这意味着在主表较小的tcam中可以命中相当多的包。考虑到对这两个tcam(主表和ifq)的访问,tcam查询的能耗降低了32%左右。如图7所示。3.2有主动驱逐机制1)缓存命中率:在主动驱逐机制下,当缓存大小为2000时,tst的缓存命中率提高约23%,smarttime提高约39%。tst仍然比smarttime高出4%。在没有主动驱逐机制的情况下,tst相比smarttime较大的优势间接地反映了tst超时机制本身优于smarttime。如图8所示。与没有主动驱逐的方案相比,tst的边际明显扩大。其中,tst的缓存命中率约为74%,比openflow硬超时高出约60%,比intelligenttimeoutmaster高出约52%。在这些缓存命中数据包中,大约63%的数据包命中了tst中的主表,这大大节省了tcam的查询能耗。2)规则安装次数:通过主动驱逐机制,丢弃包的比率降低到零,但是规则安装可能会显著增加。本例将tst与smarttime以及理想化模型进行了比较,理想化模型的流规则安装次数最多,当缓存大小为2000时,tst的规则安装次数比smarttime少大约80万,比理想化模型少了约128万,如图9所示。与smarttime相比,tst减少了规则安装,同时提高了缓存命中率,这证明了两阶段超时缓存体系结构的有效性。3)tcam查询的节能率:在主动驱逐机制下,tst达到了更高的缓存命中率,同时命中主表的数据包比例也在增加,因此tcam查询的节能率也在增加。当缓存大小为2000时,主表的命中率约为63%,因此tst将tcam查询能耗降低约47%。如图10所示。上述实验结果证明了tst在高效利用流表空间方面的有效性,且tst中较小的主流表还表明,流表的低效率利用和管理而不是有限的流表容量是现有技术面临流表可伸缩性问题的主要原因。四、结论针对sdn交换机的流表可扩展性问题,本发明提出了一种基于两阶段超时(tst)机制的两阶段超时流表结构。tst包括两个核心模块,sdn控制器端超时计算模块和交换机端两阶段超时缓存管理模块。该机制在安装规则时根据流的历史信息为每条流设置一个自适应超时,并利用辅助缓存ifq提供第二次机会,以便将仍然处于活动状态的流规则保留在缓存中。这种机制使短生命流能够尽快被驱逐,并使活动流能够在ifq的帮助下得到更好的保留。本例使用来自caida的真实网络trace进行了实验,结果表明,在主动驱逐机制的情况下,总的流表大小为2000个条目时,tst的缓存命中率比openflow的硬超时机制高60%左右。此外,tst可以显著减少规则安装次数,从而减少控制器的工作负载以及控制器与交换机之间的通信开销。两阶段架构还使tst能够显著降低tcam查询的能耗。当tcam大小为2000时,tst将tcam查询能耗降低了47%左右。实验结果表明,tst能够很好地识别和保持有用的流规则在流表中。以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。附:参考文献[1]n.mckeownetal,openflow:enablinginnovationincampusnetworks.acmsigcommcomputercommunicationreview,38(2),2008:69-74[2]g.luetal,serverswitch:aprogrammableandhighperformanceplatformfordatacenternetworks.nsdi,2011.[3]banerjeesandkannank,tag-in-tag:efficientflowtablemanagementinsdnswitches.internationalconferenceonnetworkandservicemanagement.ieee,2014:109-117.[4]sarrarnetal,leveragingzipf’slawfortrafficoffloading.acmsigcommcomputercommunicationreview,2012,42(1):16-22.[5]b.-s.lee,r.kanagavelu,andk.aung,anefficientflowcachealgorithmwithimprovedfairnessinsoftware-defineddatacenternetworks.proc.cloudnet,nov.2013:18-24.[6]k.kannanands.banerjee,flowmaster:earlyevictionofdeadflowonsdnswitches.distributedcomputingandnetworking.springer,2014:484-498.[7]shirali-shahrezas,ganjaliy,delayedinstallationandexpeditedeviction:analternativeapproachtoreduceflowtableoccupancyinsdnswitches.ieee/acmtransactionsonnetworking,26(4),2018:1547-1561.[8]zhangl,wangs,xus,etal,timeoutx:anadaptiveflowtablemanagementmethodinsoftwaredefinednetworks.globalcommunicationsconference.ieee,2016.[9]zhuh,etal,intelligenttimeoutmaster:dynamictimeoutforsdn-baseddatacenters.ifip/ieeeinternationalsymposiumonintegratednetworkmanagement,2015.[10]t.benson,a.akella,andd.maltz,networktrafficcharacteristicsofdatacentersinthewild.imc,2010.[11]zhangletal,ahtm:achievingefficientflowtableutilizationinsoftwaredefinednetworks.globalcommunicationsconference.ieee,2014:1897-1902.[12]vishnoiaetal,effectiveswitchmemorymanagementinopenflownetworks.acm,2014:177-188.[13]jianfengxu,limingwang,chensongandzhenxu,proactivemitigationtotable-overflowinsoftware-definednetworking.ieeesymposiumoncomputersandcommunications(iscc),2018.[14]caida:centerforappliedinternetdataanalysis.http://www.caida.org/home.[15]thecaidaucsdanonymizedinternettraces-[20180315].http://www.caida.org/data/passive/passive_2018.xml.当前第1页12当前第1页12