CN112134806B - 一种流表老化时间调整方法、装置及存储介质 - Google Patents
一种流表老化时间调整方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112134806B CN112134806B CN202011055623.0A CN202011055623A CN112134806B CN 112134806 B CN112134806 B CN 112134806B CN 202011055623 A CN202011055623 A CN 202011055623A CN 112134806 B CN112134806 B CN 112134806B
- Authority
- CN
- China
- Prior art keywords
- aging time
- flow
- value
- unloading
- information table
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/028—Dynamic adaptation of the update intervals, e.g. event-triggered updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种流表老化时间调整方法、装置及存储介质,以实现提升智能网卡转发性能的目的。本公开引入卸载流表的老化时间信息表记录和维护每条流的老化时间和更新时间戳,在下发卸载流表时基于老化时间信息表中记录的老化时间设置卸载流表的老化时间,通过动态的监控流表的卸载次数和包命中率,基于预设算法根据网络流量分布情况变化自主学习和调整老化时间信息表中的流的老化时间,从而提高流表的命中率,提高智能网卡的转发性能。
Description
技术领域
本公开涉及通信技术领域,尤其涉及一种流表老化时间调整方法、装置及存储介质。
背景技术
OVS(Openvswitch)是开源的虚拟交换机。也是当前市场上云环境中部署份额最大的交换机,支持Openflow协议,OVSDB(Open vSwitch Database Management Protocol,开放虚拟交换机数据库管理协议)协议管理。OVS包含三个重要的组件:OVSDB-Server、OVS-vSwitchd以及OVS内核模块。
OVSDB-Server:OVS的数据库服务进程,用于存储虚拟交换机的配置信息(比如网桥、端口等),为控制器和OVS-vSwitchd提供OVSDB操作接口。
OVS-vSwitchd:OVS的核心组件,负责保存和管理控制器下发的所有流表,为OVS的内核模块提供流表查询功能,并为控制器提供OpenFlow协议的操作接口。
OVS内核模块:缓存某些常用流表,并负责数据包转发(由转发部分ForwardingPath负责),当遇到无法匹配的报文,该模块将向OVS-vSwitchd发送packet-in请求,获取报文处理指令。OVS内核模块可以实现多个datapath,每个datapath可以有多个vport。每个数据通路都包含一个Flow Table。
传统的OVS提供了灵活的虚拟化环境虚拟机接入和网络管理控制能力,但是由于其datapath在内核态,性能也越来越不能满足虚拟化环境需求。
网络设备厂商推出的智能网卡方案可以将ovs的数据面datapath甚至是控制面ovs-vswitchd、ovs-dbserver都卸载到智能网卡,当数据面卸载到智能网卡后,ovs的功能由硬件e-switch来实现,同时用户态的流表也能进行offload卸载,下发给e-switch从而提升数据转发的效率。
在初始化智能网卡时,统一设置offloaded流表的timeout老化时间,每条流表如果有包命中,老化计时会复位;如果计时到老化时间了,仍没有包命中,该条流表将会被删除。目前大多数支持硬件卸载的智能网卡,其offloaded的流表都是统一设置老化时间,不管网络流量分布特点是什么样的,一旦老化时间到,就会删除流表。这种处理方法使得流表命中率不高
网络流量分布可能是动态变化的,因此统一设置老化时间固定值,不能适应网络流量分布的变化,灵活性差,导致流表命中率不高。此外,e-switch的offloaded流表空间有限,设置固定的老化时间,如果流表占满,高流量的流表项将不能卸载。
发明内容
有鉴于此,本公开提供一种流表老化时间调整方法,以实现提升智能网卡转发性能的目的。
基于本公开实施例的一方面,提供了一种流表老化时间调整方法,所述方法包括:
在软转发层中建立老化时间信息表,在老化时间信息表中记录每一条流的流表老化时间、卸载次数、包命中次数达标值;
在下发某个流的卸载流表时,基于老化时间信息表中该流的老化时间确定该流的卸载流表的老化时间,并更新老化时间信息表中该流的卸载次数;
在更新老化时间信息表中该流的卸载次数后,判断该流卸载次数是否达到预设卸载次数门限,若达到则基于预设的算法调大该流的老化时间并同步更新卸载流表和老化时间信息表中该流的老化时间;
在卸载流表被老化时,判断卸载流表中的包命中次数是否小于老化时间信息表中的包命中次数达标值,若小于则基于预设的算法调小该流的老化时间并同步更新老化时间信息表中该流的老化时间。
进一步地,所述预设的算法为二分法,所述基于预设的算法调大或调小该流的老化时间的方法为:
基于初始设置的老化时间的最小值tmin和最大值tmax,引入低值low变量、中值mid变量、高值high变量,low变量初始值为tmin,high变量初始值为tmax,mid变量初始值为tmin和tmax的中值,老化时间信息表中老化时间由mid变量决定;
当需要调大该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给low变量,high变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值;
当需要调小该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给high变量,low变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值。
进一步地,老化时间信息表中还包括更新时间戳,用于对老化时间信息表中的记录进行老化处理。
进一步地,使用预设老化时间参数初始化老化时间信息表中的老化时间,使用预设的达标值参数初始化老化时间信息表中的包命中次数达标值。
进一步地,所述方法应用于智能网卡,所述卸载流表位于所述智能网卡的e-switch当中。
基于本公开实施例的另一方面,提供了一种流表老化时间调整装置,该装置包括:
TTL信息模块,用于建立和维护老化时间信息表,老化时间信息表用于记录每一条流当前的老化时间、卸载次数、包命中次数达标值,其中的卸载次数和包命中次数用于根据网络状态适时调整流表的老化时间;
硬转发模块,用于基于卸载流表对所接收的流的包进行转发,当流的首包匹配失败时,向软转发模块上送首包;
软转发模块,用于在接收到首包时,基于用户态流表进行包的转发,并生成卸载流表下发给硬转发模块;在下发某个流的卸载流表时,基于老化时间信息表中该流的老化时间确定该流的卸载流表的老化时间,并更新老化时间信息表中该流的卸载次数;
TTL调整模块,用于在更新老化时间信息表中该流的卸载次数后,判断该流卸载次数是否达到预设卸载次数门限,若达到则基于预设的算法调大该流的老化时间并同步更新卸载流表和老化时间信息表中该流的老化时间;以及在卸载流表被老化时,判断卸载流表中的包命中次数是否小于老化时间信息表中的包命中次数达标值,若小于则基于预设的算法调小该流的老化时间并同步更新老化时间信息表中该流的老化时间。
进一步地,所述TTL调整模块所采用的预设的算法为二分法,TTL调整模块基于预设的算法调大或调小该流的老化时间的方法为:
基于初始设置的老化时间的最小值tmin和最大值tmax,引入低值low变量、中值mid变量、高值high变量,low变量初始值为tmin,high变量初始值为tmax,mid变量初始值为tmin和tmax的中值,老化时间信息表中老化时间由mid变量决定;
当需要调大该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给low变量,high变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值;
当需要调小该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给high变量,low变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值。
本公开引入卸载流表的老化时间信息表记录和维护每条流的老化时间和更新时间戳,在下发卸载流表时基于老化时间信息表中记录的老化时间设置卸载流表的老化时间,通过动态的监控流表的卸载次数和包命中率,基于预设算法根据网络流量分布情况变化自主学习和调整老化时间信息表中的流的老化时间,从而提高流表的命中率,提高智能网卡的转发性能。
附图说明
为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公开实施例的这些附图获得其他的附图。
图1位智能网卡OVS硬件卸载原理示意图;
图2为本公开提供的流表老化时间调整方法的步骤流程图;
图3为本公开一实施例提供的一种流表老化时间调整装置的结构示意图;
图4为本公开一实施例提供的一种智能网卡的结构示意图。
具体实施方式
在本公开实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开实施例。本公开实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本公开中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
智能网卡中的e-switch是数据包硬件转发模块,类似于一个支持Openflow的硬件交换机,有自己的处理器IO processor处理数据包转发,并且目前通常有2个25G的物理网口。ARM cores是智能网卡的卡上嵌入式系统,可以安装Linux操作系统,这样可以将ovs-vswitchd和ovsdb-server运行在卡上,流表卸载效率更高,同时减少了对主机的CPU、内存等资源占用。
智能网卡OVS硬件卸载是指Openvswitch的datapath数据通道下沉到智能网卡硬件上,通过智能网卡叫做e-switch的硬件加速实现的交换机来进行数据包的快速转发。e-switch的快速转发基于由ovs-vswitchd的用户态流表级联简化后生成的卸载offloaded形式的流表(简称卸载流表)进行。智能网卡OVS硬件卸载原理如图1所示。
智能网卡e-switch中的卸载流表(Flow-table offloaded)在初始情况下是空的,当数据包到达智能网卡后,会先到e-switch中的卸载流表中进行匹配,首包未命中流表,类似于cache miss,首包会被上送到用户态ovs-vswitchd中进行用户态流表匹配,用户态流表是全的,经过流表匹配后,将首包转发出去,同时会触发用户态流表卸载offload操作,将该条流经过的流表进行级联简化生成offloaded形式的流表即卸载流表,并将该流的级联简化后的卸载流表下发到智能网卡硬件e-switch中。该条流的后续数据包来了之后,会直接在e-switch中命中对应的卸载流表,直接通过硬件转发出去,提高了转发效率。
通常,智能网卡在初始化时会统一设置一个固定的流表老化时间,当卸载流表超过设置的老化时间仍然没有包命中,未命中的卸载流表项会被老化删除掉。发明人在实际应用中,经过大量的统计分析工作后发现,由于网络环境流量分布千差万别,如果卸载流表都采用统一的老化时间会使得卸载流表的命中率降低,而且e-switch为卸载流表预留的空间有限,不能被卸载的流表只能通过用户态流表进行转发,即走慢速流程,这样无疑大大降低了智能网卡的转发性能。
鉴于发明人分析后获知的缺陷,本公开的目的之一是提供一种流表老化时间调整方法,以实现对每条流或者同一条流在不同时间段对应的卸载流表的老化时间在实际网络环境中进行动态调整,达到提高流表的命中率,提高智能网卡转发性能的目的。
图2为本公开提供的流表老化时间调整方法的步骤流程图,该方法可应用于任何具有数据转发功能的装置或设备-例如智能网卡当中,在本公开实施例中,流的转发分为软转发层和硬转发层,软转发层基于用户态流表进行包的转发,硬转发层基于卸载流表进行转发,卸载流表由软转发层生成并下发给硬转发层,该方法包括:
步骤201.在软转发层中建立老化时间信息表,在老化时间信息表中记录每一条流的流表老化时间、卸载次数、包命中次数达标值;
老化时间信息表用于记录每一条流当前的老化时间,其中的卸载次数和包命中次数用于根据网络状态适时调整流表的老化时间。
步骤202.在下发某个流的卸载流表时,基于老化时间信息表中该流的老化时间确定该流的卸载流表的老化时间,并更新老化时间信息表中该流的卸载次数;
步骤203.在更新老化时间信息表中该流的卸载次数后,判断该流卸载次数是否达到预设卸载次数门限,若达到则基于预设的算法调大该流的老化时间并同步更新卸载流表和老化时间信息表中该流的老化时间;
步骤204.在卸载流表被老化时,判断卸载流表中的包命中次数是否小于老化时间信息表中的包命中次数达标值,若小于则基于预设的算法调小该流的老化时间并同步更新老化时间信息表中该流的老化时间。
本公开一实施例中,使用预设老化时间参数初始化老化时间信息表中的老化时间,使用预设的达标值参数初始化老化时间信息表中的包命中次数达标值;
本公开一实施例中,老化时间信息表中还包括更新时间戳,用于对老化时间信息表中的记录进行老化处理。所述老化处理指基于更新时间戳判断记录存在的时间,在达到预设时间门限后删除对应记录。
本公开一实施例中,所述预设的算法为二分法,所述基于预设的算法调大或调小该流的老化时间的方法为:
基于初始设置的老化时间的最小值tmin和最大值tmax,引入低值low变量、中值mid变量、高值high变量,low变量初始值为tmin,high变量初始值为tmax,mid变量初始值为tmin和tmax的中值,老化时间信息表中老化时间由mid变量决定;
当需要调大该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给low变量,high变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值;
当需要调小该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给high变量,low变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值。
以下结合一具体实施例对本公开提供的方案进行描述,在执行本公开提供的方法之前,需要在用户态ovs-vswitchd组件中建立如表1的针对卸载流表的老化时间信息表:
流标识FID | 老化时间TTL | 卸载次数OTS | 达标值PCNT | 更新时间戳UTS |
Hash(flow1) | ttl1 | Otimes1 | PCNT1 | Timestamp1 |
Hash(flow2) | ttl2 | Otimes2 | PCNT2 | Timestamp2 |
… | … | … | … | … |
老化时间信息表中包括字段包括但不限于:流标识FID、老化时间TTL、卸载次数OTS、达标值PCNT、更新时间戳UTS。其中流标识FID用于标识一条流,为简便起见可以用流的一个hash值来表征,例如流flow1的流标识为hash(flow1);老化时间TTL(Time To Live)为该条流的流表老化时间;卸载次数OTS(Offload Times)为流表被卸载到e-switch中的次数即发生首包上送的次数;达标值PCNT(Packet Count)为卸载流表在老化时间范围内被命中的包数的达标值;更新时间戳UTS(Update_TimeStamp)为更新该条流表信息操作时的时间戳,该时间戳在每次进行卸载流表项的更新时都要进行记录刷新。
对于流表的老化时间,本公开实施例抛弃了智能网卡原有的统一设置idle_timeout老化时间配置参数方式,引入卸载流表TTL概念,因为每一条流根据网络环境不同,其老化时间TTL也应各异,本公开旨在构造一个自主学习方法来实现每条流或者同一条流在不同时间段的TTL在实际网络环境中工作时进行动态更新并逐渐收敛,达到自动适应环境的目的。该问题可以简化为寻找一个适当的老化时间,使得该条流既能提升命中率,不至于频繁老化而导致首包上送次数增加,又能兼顾智能网卡硬件offloaded流表存储容量限制,让老化时间尽可能小,从而让出空间给更需要的流进行offload流表。
步骤S201.设置流表老化时间TTL的初始化参数、达标值PCNT初始化参数。
为了对卸载流表的老化时间进行动态调整,需要确定一种调整的算法,为了提高寻找老化时间收敛的速度,本公开一实施例采用效率较高的二分法,当然还有其它可等同实现相同目的算法,本公开不做限定。
若采用二分法,首先需要设定卸载流表的老化时间TTL的上下限值,比如设置为{tmin=1s,tmax=60s},上下限值给出了卸载流表可能的最大取值范围。同时为实现二分查找,还需引入低值low变量、高值high变量、中值mid变量,且mid=(low+high)/2,来进行迭代计算老化时间。
另外老化时间信息表中,初始情况下每条流的老化时间都设置为一个固定的初始值ttl=mid0=(tmin+tmax)/2,而达标值PCNT初始情况下可以统一设置为一个固定值(如1000个),也可以在后续创建记录时根据流的相应特征条件进行区别对待分别生成两个值。更新时间戳字段可以都初始化为0。
步骤S202.一条流的包首先会被送到e-switch中进行卸载流表的匹配,若未命中卸载流表,则执行步骤203;若命中卸载流表,则基于命中的卸载流表进行转发并更新卸载流表中的包命中计数。
当智能网卡在一个全新的网络环境中开始运行时,e-switch中是没有一条卸载流表(应当理解为与流对应的流表项)的,一条新的报文流在首包匹配卸载流表失败的情况下,会通过首包上送触发用户态ovs-vswitchd下发相应的卸载流表,以加速该报文流后续包的转发。
当卸载流表被下发到e-switch后,每次有包命中被卸载流表会更新命中包计数。但如果在老化时间范围内,一直没有包命中,则该卸载流表会被老化掉。虽然同一条流,之前下发过卸载流表,但卸载流表老化被删除后,如果又接收到该流的包,则会再次触发首包上送处理过程。而本公开的主要目的就是根据网络的情况动态地调整下发的卸载流表中的老化时间,以提高卸载流表的命中率。
步骤S203.未命中卸载流表的首包被上送到用户态ovs-vswitchd,进行用户态流表匹配,匹配到的用户态流表经整合简化后,生成一条卸载流表下发给智能网卡的e-switch,同时更新老化时间信息表中该流对应的记录的卸载次数OTS字段值,并将下发时间记录在更新时间戳UTS字段当中。
首包被上送到用户态ovs-vswitchd组件实例后,进行用户态流表匹配,匹配完成后做相应的action动作域处理(将包转发出去或者drop等),最后会将该包的用户态流表匹配路径的所有流表整合简化,生成一条卸载流表下发给智能网卡的e-switch,所生成的卸载流表的老化时间由老化时间信息表中该流的老化时间TTL字段值决定。在下发卸载流表后,需要同时更新老化时间信息表中该流对应的卸载次数OTS字段值,更新方式可采用次数累加的方式,例如流flow1的流表被再次下发后其老化时间信息表中的卸载次数otimes1=otimes1+1。
如果是一条新流,第一次触发首包上送处理流程,则需要对应地在老化时间信息表中建立该流对应的记录,新建的老化时间信息记录中的老化时间TTL字段、达标值PCNT字段值采用步骤201中的初始化参数进行设置,卸载次数OTS和更新时间戳UTS都置0。
步骤S204.在更新该流的卸载次数字段值后,判断该流的卸载次数值是否达到预设的卸载次数门限值,如果达到,则基于预设的调整算法计算该流新的卸载流表的老化时间以增加该流的流表老化时间,并同步更新e-switch中该流的卸载流表的老化时间及老化时间信息表中该流对应记录的老化时间TTL。
例如预设的卸载次数门限为10,当老化时间信息表中记录的卸载次数值达到10次后,将触发老化时间TTL修改操作,将该流的老化时间增加,以避免该流的流表被频繁的卸载。若采用二分法进行调整,则调整的方式为向右二分查找,令low=mid,此时该mid值取自该流在老化时间信息表中对应记录的卸载次数OTS值,high值保持不变,并由此更新卸载流表的老化时间TTL值为:ttl=mid=(low+high)/2,同时将结果写入老化时间信息表中,并将otimes重置为0,更新时间戳。
步骤S205.当某条流在e-switch中的卸载流表老化时,判断该流的卸载流表中的命中包计数是否小于该流在老化时间信息表中的达标值PCNT,如果小于PCNT,则基于预设的调整算法计算该流新的卸载流表的老化时间以减小该流的流表老化时间,并更新老化时间信息表中该流对应记录的老化时间TTL。
e-swtich中的卸载流表会记录命中包数,当卸载流表发生老化时,将卸载流表中的命中包计数值与该流在老化时间信息表中的达标值PCNT进行对比,如果卸载流表的命中包计数值小于PCNT,说明该条流的命中率不高,需要调小老化时间,从而把空间资源让给命中率更高的流。假设预设调整算法采用二分法的话,需要向左二分查找,令high=mid,low值保持不变,其中mid取自老化时间信息表,并由此更新该流在老化时间信息表中的老化时间TTL值为:ttl=mid=(low+high)/2。
本公开中的两个针对流的门限值预设卸载次数门限和达标值的意义在于:卸载次数门限表征对首包上送次数或者叫触发慢速流程次数的容忍度;而达标值PCNT门限值则表征对卸载offloaded流表命中效率的容忍度。通过恰当调整这两个值,可以更适应具体的网络环境和更好的适配满足业务的需求。
通过该实施例上述步骤可知,根据网络环境中流随时间分布的不同,本公开的方案能实现每条流对应的offloaded卸载流表老化时间随时间和流量变化动态地进行更新,从而提高offloaded流表的命中率。这样在一段时间收敛后,只要相应的流其流量随时间的分布不剧烈变化,其老化时间TTL值便趋于稳定。在流量分布变化比较大后,也能让老化时间随流量变动情况进行动态调整。在下次启动智能网卡时,由于老化时间记录表中的信息是最新的,下发的offloaded流表的老化时间将不会是上面的初始值,而是最新的收敛值,这样就能实现对网络流的动态记忆能力。
另外需要说明的是,offloaded流表的老化时间信息表是维护在ovs-vswitchd处的,因此是用户态的,在存储空间上有更大的容量条件。维护的每条流的时间戳信息,提供给表空间过大时进行清理操作,对那些很长时间(比如数周)没有更新的表项,可以删除。
应当认识到,本公开的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本公开描述的方法、过程的操作,除非本公开另外指示或以其他方式明显地与上下文矛盾。本公开描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用),由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
还应当认识到,本公开所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本公开的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本公开所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本公开所述的方法和技术编程时,本公开还包括计算机本身。
图3为本公开一实施例提供的一种流表老化时间调整装置的结构示意图。该装置可应用于任何具有报文转发功能场景中,该装置300包括:
TTL信息模块310,用于建立和维护老化时间信息表,老化时间信息表用于记录每一条流当前的老化时间、卸载次数、包命中次数达标值,其中的卸载次数和包命中次数用于根据网络状态适时调整流表的老化时间。
进一步地,TTL信息模块310使用预设老化时间参数初始化老化时间信息表中的老化时间,使用预设的达标值参数初始化老化时间信息表中的包命中次数达标值。
硬转发模块320,用于基于卸载流表对所接收的流的包进行转发,当流的首包匹配失败时,向软转发模块330上送首包;
软转发模块330,用于在接收到首包时,基于用户态流表进行包的转发,并生成卸载流表下发给硬转发模块320;在下发某个流的卸载流表时,基于老化时间信息表中该流的老化时间确定该流的卸载流表的老化时间,并更新老化时间信息表中该流的卸载次数;
TTL调整模块340,用于在更新老化时间信息表中该流的卸载次数后,判断该流卸载次数是否达到预设卸载次数门限,若达到则基于预设的算法调大该流的老化时间并同步更新卸载流表和老化时间信息表中该流的老化时间;以及在卸载流表被老化时,判断卸载流表中的包命中次数是否小于老化时间信息表中的包命中次数达标值,若小于则基于预设的算法调小该流的老化时间并同步更新老化时间信息表中该流的老化时间。
进一步地,TTL调整模块340所采用的预设的算法为二分法,TTL调整模块340基于预设的算法调大或调小该流的老化时间的方法为:
基于初始设置的老化时间的最小值tmin和最大值tmax,引入低值low变量、中值mid变量、高值high变量,low变量初始值为tmin,high变量初始值为tmax,mid变量初始值为tmin和tmax的中值,老化时间信息表中老化时间由mid变量决定;
当需要调大该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给low变量,high变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值;
当需要调小该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给high变量,low变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值。
在本公开一实施例中,所述装置300应用于智能网卡,所述的软转发模块330的功能主要由智能网卡中的ovs-vswitchd组件完成,硬转发模块320的功能主要由e-switch来完成。
图4为本公开一实施例提供的一种智能网卡的结构示意图,该设备400包括:诸如中央处理单元(CPU)的处理器410、总线420、网络接口440以及计算机可读存储介质430。其中,处理器410、网络接口和计算机可读存储介质430之间可以通过总线420相互通信。计算机可读存储介质430内可存储本公开提供的方法的计算机程序,当计算机程序被处理器410执行时即可实现本公开提供的方法的相应步骤功能。
以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种流表老化时间调整方法,其特征在于,所述方法包括:
在软转发层中建立老化时间信息表,在老化时间信息表中记录每一条流的流表老化时间、卸载次数、包命中次数达标值;
在下发某个流的卸载流表时,基于老化时间信息表中该流的老化时间确定该流的卸载流表的老化时间,并更新老化时间信息表中该流的卸载次数;
在更新老化时间信息表中该流的卸载次数后,判断该流卸载次数是否达到预设卸载次数门限,若达到则基于预设的算法调大该流的老化时间并同步更新卸载流表和老化时间信息表中该流的老化时间;
在卸载流表被老化时,判断卸载流表中的包命中次数是否小于老化时间信息表中的包命中次数达标值,若小于则基于预设的算法调小该流的老化时间并同步更新老化时间信息表中该流的老化时间。
2.根据权利要求1所述的方法,其特征在于,所述预设的算法为二分法,所述基于预设的算法调大或调小该流的老化时间的方法为:
基于初始设置的老化时间的最小值tmin和最大值tmax,引入低值low变量、中值mid变量、高值high变量,low变量初始值为tmin,high变量初始值为tmax,mid变量初始值为tmin和tmax的中值,老化时间信息表中老化时间由mid变量决定;
当需要调大该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给low变量,high变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值;
当需要调小该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给high变量,low变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值。
3.根据权利要求1所述的方法,其特征在于,
老化时间信息表中还包括更新时间戳,用于对老化时间信息表中的记录进行老化处理。
4.根据权利要求1所述的方法,其特征在于,
使用预设老化时间参数初始化老化时间信息表中的老化时间,使用预设的达标值参数初始化老化时间信息表中的包命中次数达标值。
5.根据权利要求1所述的方法,其特征在于,
所述方法应用于智能网卡,所述卸载流表位于所述智能网卡的e-switch当中。
6.一种流表老化时间调整装置,其特征在于,该装置包括:
TTL信息模块,用于建立和维护老化时间信息表,老化时间信息表用于记录每一条流当前的老化时间、卸载次数、包命中次数达标值,其中的卸载次数和包命中次数用于根据网络状态适时调整流表的老化时间;
硬转发模块,用于基于卸载流表对所接收的流的包进行转发,当流的首包匹配失败时,向软转发模块上送首包;
软转发模块,用于在接收到首包时,基于用户态流表进行包的转发,并生成卸载流表下发给硬转发模块;在下发某个流的卸载流表时,基于老化时间信息表中该流的老化时间确定该流的卸载流表的老化时间,并更新老化时间信息表中该流的卸载次数;
TTL调整模块,用于在更新老化时间信息表中该流的卸载次数后,判断该流卸载次数是否达到预设卸载次数门限,若达到则基于预设的算法调大该流的老化时间并同步更新卸载流表和老化时间信息表中该流的老化时间;以及在卸载流表被老化时,判断卸载流表中的包命中次数是否小于老化时间信息表中的包命中次数达标值,若小于则基于预设的算法调小该流的老化时间并同步更新老化时间信息表中该流的老化时间。
7.根据权利要求6所述的装置,其特征在于,所述TTL调整模块所采用的预设的算法为二分法,TTL调整模块基于预设的算法调大或调小该流的老化时间的方法为:
基于初始设置的老化时间的最小值tmin和最大值tmax,引入低值low变量、中值mid变量、高值high变量,low变量初始值为tmin,high变量初始值为tmax,mid变量初始值为tmin和tmax的中值,老化时间信息表中老化时间由mid变量决定;
当需要调大该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给low变量,high变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值;
当需要调小该流的老化时间时,将该流在老化时间信息表中的老化时间赋值给high变量,low变量值不变,重新计算两变量值的中值并赋值给mid变量后用mid变量值替换老化时间信息表中该流的老化时间字段值。
8.根据权利要求6所述的装置,其特征在于,
TTL信息模块使用预设老化时间参数初始化老化时间信息表中的老化时间,使用预设的达标值参数初始化老化时间信息表中的包命中次数达标值。
9.根据权利要求6所述的装置,其特征在于,
所述装置应用于智能网卡,所述的软转发模块的功能主要由智能网卡中的ovs-vswitchd组件完成,硬转发模块的功能主要由e-switch来完成。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序当被处理器执行时实现如权利要求1至5中任一项的方法步骤功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011055623.0A CN112134806B (zh) | 2020-09-30 | 2020-09-30 | 一种流表老化时间调整方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011055623.0A CN112134806B (zh) | 2020-09-30 | 2020-09-30 | 一种流表老化时间调整方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112134806A CN112134806A (zh) | 2020-12-25 |
CN112134806B true CN112134806B (zh) | 2022-04-01 |
Family
ID=73844816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011055623.0A Active CN112134806B (zh) | 2020-09-30 | 2020-09-30 | 一种流表老化时间调整方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112134806B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113746893B (zh) * | 2021-07-16 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种基于fpga的智能网卡数据转发方法、系统及终端 |
US11870828B2 (en) | 2021-09-30 | 2024-01-09 | 17Live Japan Inc. | System, method and computer-readable medium for rendering a streaming |
CN114553762B (zh) * | 2022-01-30 | 2023-12-26 | 阿里巴巴(中国)有限公司 | 一种对流表中的流表项处理的方法及装置 |
CN114500418B (zh) * | 2022-02-11 | 2023-10-20 | 珠海星云智联科技有限公司 | 数据统计方法及相关装置 |
CN114915587B (zh) * | 2022-05-10 | 2023-12-22 | 深圳星云智联科技有限公司 | 流表老化管理方法及相关设备 |
CN116074247B (zh) * | 2023-03-06 | 2023-06-23 | 天翼云科技有限公司 | 硬件流表老化方法、软件流表老化方法、装置及电子设备 |
CN117724906B (zh) * | 2024-02-18 | 2024-06-07 | 珠海星云智联科技有限公司 | 用于硬件卸载后软失效处理的方法、计算机设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026492A (zh) * | 2007-01-26 | 2007-08-29 | 华为技术有限公司 | 老化原始流的方法及装置、网流输出器和网流系统 |
CN101370016A (zh) * | 2008-10-17 | 2009-02-18 | 成都市华为赛门铁克科技有限公司 | 一种数据流表的老化方法、装置和系统 |
US7941527B1 (en) * | 2007-11-19 | 2011-05-10 | Cisco Technology, Inc. | Tuning aging parameters for flows in flow-based systems |
US8169910B1 (en) * | 2007-10-24 | 2012-05-01 | Juniper Networks, Inc. | Network traffic analysis using a flow table |
CN106453099A (zh) * | 2016-10-21 | 2017-02-22 | 杭州华三通信技术有限公司 | 一种流表信息的恢复方法及装置 |
CN107222412A (zh) * | 2017-06-08 | 2017-09-29 | 全球能源互联网研究院 | 一种基于网络拓扑判定的sdn混合模式流表下发方法及装置 |
CN111211939A (zh) * | 2019-12-31 | 2020-05-29 | 国家计算机网络与信息安全管理中心 | 一种基于网络处理器实现流表高效计数的装置和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9559959B2 (en) * | 2012-03-09 | 2017-01-31 | Nec Corporation | Control apparatus, communication system, switch controlling method and program |
CN104426815B (zh) * | 2013-08-27 | 2019-07-09 | 中兴通讯股份有限公司 | 一种sdn中流表下发的方法和系统、of控制器和of交换机 |
CN105407073A (zh) * | 2014-09-10 | 2016-03-16 | 中兴通讯股份有限公司 | 一种基于开放流OpenFlow协议的流表老化方法、设备和系统 |
-
2020
- 2020-09-30 CN CN202011055623.0A patent/CN112134806B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026492A (zh) * | 2007-01-26 | 2007-08-29 | 华为技术有限公司 | 老化原始流的方法及装置、网流输出器和网流系统 |
US8169910B1 (en) * | 2007-10-24 | 2012-05-01 | Juniper Networks, Inc. | Network traffic analysis using a flow table |
US7941527B1 (en) * | 2007-11-19 | 2011-05-10 | Cisco Technology, Inc. | Tuning aging parameters for flows in flow-based systems |
CN101370016A (zh) * | 2008-10-17 | 2009-02-18 | 成都市华为赛门铁克科技有限公司 | 一种数据流表的老化方法、装置和系统 |
CN106453099A (zh) * | 2016-10-21 | 2017-02-22 | 杭州华三通信技术有限公司 | 一种流表信息的恢复方法及装置 |
CN107222412A (zh) * | 2017-06-08 | 2017-09-29 | 全球能源互联网研究院 | 一种基于网络拓扑判定的sdn混合模式流表下发方法及装置 |
CN111211939A (zh) * | 2019-12-31 | 2020-05-29 | 国家计算机网络与信息安全管理中心 | 一种基于网络处理器实现流表高效计数的装置和方法 |
Non-Patent Citations (1)
Title |
---|
一种基于预测与动态调整负载因子的SDN流表优化算法;史少平等;《计算机科学》;20170115(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112134806A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112134806B (zh) | 一种流表老化时间调整方法、装置及存储介质 | |
US10318467B2 (en) | Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system | |
US12001681B2 (en) | Distributed storage system and data processing method | |
US11797182B2 (en) | Management of file system requests in a distributed storage system | |
US10866911B2 (en) | Method and apparatus for establishing connection in non-volatile memory system | |
WO2021238248A1 (zh) | 一种网络流量的分类处理方法、装置、设备及介质 | |
KR101826725B1 (ko) | 네트워크 장치 흐름 룩업 관리를 위한 기술 | |
US10129181B2 (en) | Controlling the reactive caching of wildcard rules for packet processing, such as flow processing in software-defined networks | |
CN110753131A (zh) | 微服务分布式限流方法及装置、存储介质和电子设备 | |
US20200364080A1 (en) | Interrupt processing method and apparatus and server | |
CN112104486A (zh) | 一种基于Kubernetes容器的网络端点切片的方法及其系统 | |
US10990532B2 (en) | Object storage system with multi-level hashing function for storage address determination | |
US10560385B2 (en) | Method and system for controlling network data traffic in a hierarchical system | |
EP3995971A1 (en) | Access request processing method, apparatus, device, and storage medium | |
JP2018527668A (ja) | データトラフィックを制限するための方法及びシステム | |
US20150220438A1 (en) | Dynamic hot volume caching | |
KR20130137539A (ko) | 데이터 컷-스루를 수행하기 위한 시스템 | |
WO2024183410A1 (zh) | 硬件流表老化方法、软件流表老化方法、装置及电子设备 | |
US10802762B1 (en) | Systems and methods for asynchronous writing of synchronous write requests based on a dynamic write threshold | |
CN114691547B (zh) | 部署实例的方法、实例管理节点、计算节点和计算设备 | |
US20180324038A1 (en) | Software defined storage (sds) system with network tiering | |
US20170147518A1 (en) | Scanning memory for de-duplication using rdma | |
US20170177273A1 (en) | Statistics management for scale-out storage | |
US11954505B2 (en) | Distributed data storage system with dormant hardware activation | |
CN106484310B (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 |