流表处理方法、装置、计算机设备和存储介质与流程

    专利2022-07-07  137


    本申请涉及数据通信技术领域,特别是涉及一种流表处理法、装置、计算机设备和存储介质。



    背景技术:

    随着数据通信技术的发展,出现了通过流表实现数据转发的技术。通过流表进行数据转发的方式,能够使进入交换机、路由器、防火墙、网络内容分析等设备的数据包通过查询流表来获得转发的目的地,以控制数据包传输的路径。采用流表进行数据转发势必涉及到流表的管理,及时对流表进行释放能够避免资源的浪费。传统流表处理方法,一般是针对特定的数据流设置固定的流老化时间,当对应的数据流在一段时间内没有收到数据包时,则释放相应的数据流。

    然而,传统流表处理方法中,通过固定的流老化时间对数据流进行老化的方式,无法兼顾每一数据流的特性,也无法在适当的时间释放数据流,造成较大的资源浪费,导致系统的处理能力下降。



    技术实现要素:

    基于此,有必要针对上述技术问题,提供一种能够在适当的时间新建或者释放数据流的流表处理方法、装置、计算机设备和存储介质。

    一种流表处理方法,所述方法包括:

    接收目标数据包;

    获取与所述目标数据包对应的数据流,得到目标数据流;

    检测所述目标数据流对应的会话状态,并按照所述会话状态,为所述目标数据流设置对应的目标老化时间;

    按照所述目标老化时间,释放预设流表中的目标数据流。

    上述流表处理方法中,接收目标数据包,获取与目标数据包对应的目标数据流,检测目标数据流对应的会话状态,并按照会话状态,为目标数据流设置对应的目标老化时间,如此根据不同目标数据流对应的不同会话状态,为不同目标数据流设置不同的目标老化时间,可以兼顾每一数据流的特性,按照每一数据流对应的目标老化时间,在需要释放预设流表中的目标数据流的时候,及时释放对应的目标数据流,避免资源浪费。同时,也可以避免在不应当释放数据流的时候过早的对相应数据流进行释放,以避免无法查找到相应的数据流而反复重建并导致后续处理异常的现象,避免系统资源的浪费,提高系统的处理能力。

    在其中一个实施例中,所述获取与所述目标数据包对应的数据流,得到目标数据流,包括:

    在所述预设流表中查找与所述目标数据包对应的数据流,得到所述目标数据流;

    若所述预设流表中不存在与所述目标数据包对应的数据流,则在所述预设流表中为所述目标数据包创建对应的目标数据流。

    上述实施例中,在获取目标数据流的过程中,在预设流表中存在对应的目标数据流的情况下,直接从预设流表中调用目标数据流,无需新建数据流,可避免系统冗余,节省系统资源。而在预设流表中不存在对应的目标数据流的情况下,才在预设流表中创建对应的目标数据流,且新建的目标数据流存储于预设流表中,可供后续调用,能够避免资源浪费,减小重建数据流在数据传输量较大的情况下进一步加重并发冲突的影响,提高系统的处理能力。

    在其中一个实施例中,所述按照所述会话状态,为所述目标数据流设置对应的目标老化时间,包括:

    检测所述会话状态对应的数据帧密度;

    按照所述数据帧密度,为所述目标数据流设置对应的目标老化时间。

    在其中一个实施例中,所述按照所述数据帧密度,为所述目标数据流设置对应的目标老化时间,包括:

    获取预设的老化时间映射关系,所述老化时间映射关系中存储有数据帧密度与数据流对应的老化时间;

    按照所述数据帧密度,在所述老化时间映射关系中查找与所述数据帧密度对应的老化时间,并将与所述数据帧密度对应的老化时间确定为所述目标老化时间。

    上述实施例中,检测会话状态对应的数据帧密度,按照数据帧密度,为目标数据流设置对应的目标老化时间,可以针对不同目标数据流对应的数据帧密度设定不同的老化时间,使得目标数据流在需要老化时,能及时释放对应的目标数据流,同时避免在不应当释放数据流的时候过早的对相应数据流进行释放,避免资源浪费,提高系统的处理能力。

    在其中一个实施例中,所述按照所述会话状态,为所述目标数据流设置对应的目标老化时间,包括:

    检测所述会话状态中的协议类型,得到所述目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议;

    检测所述第一目标协议与所述第二目标协议是否一致,得到对应的协议对比结果;

    按照所述协议对比结果,为所述目标数据流设置对应的目标老化时间。

    在其中一个实施例中,所述按照所述协议对比结果,为所述目标数据流设置对应的目标老化时间,包括:

    若所述协议对比结果为所述第一目标协议与所述第二目标协议一致,则按照所述第二目标协议对应的老化时间映射关系,为所述目标数据流设置对应的目标老化时间;

    若所述协议对比结果为所述第一目标协议与所述第二目标协议不一致,则按照所述第一目标协议对应的老化时间映射关系,为所述目标数据流设置对应的目标老化时间。

    上述实施例中,检测会话状态中的协议类型,得到目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议,并检测第一目标协议与第二目标协议是否一致,得到对应的协议对比结果,按照协议对比结果,为目标数据流设置对应的目标老化时间。可以针对不同目标数据流对应的协议类型设定不同的老化时间,使得目标数据流在每一对应的协议类型上有更细致的老化时间对应,可以及时释放对应的目标数据流,同时避免在不应当释放数据流的时候过早的对相应数据流进行释放,避免资源浪费,提高系统的处理能力。

    在其中一个实施例中,所述按照所述目标老化时间,释放预设流表中的目标数据流,包括:

    获取当前时间戳,以及获取接收到的最后一个目标数据包对应的目标时间戳;

    若所述当前时间戳与所述目标时间戳之间的时间差大于所述目标老化时间,则释放所述预设流表中的目标数据流。

    上述实施例中,获取当前时间戳,以及获取接收到的最后一个目标数据包对应的目标时间戳,能够在当前时间戳与目标时间戳之间的时间差大于目标老化时间时,及时释放对应的目标数据流,避免在不应当释放数据流的时候过早的对相应数据流进行释放,避免资源浪费,提高系统的处理能力。

    一种流表处理装置,所述装置包括:

    数据包接收模块,用于接收目标数据包;

    数据流确定模块,用于获取与所述目标数据包对应的数据流,得到目标数据流;

    老化时间设置模块,用于检测所述目标数据流对应的会话状态,并按照所述会话状态,为所述目标数据流设置对应的目标老化时间;

    流表处理模块,用于按照所述目标老化时间,释放预设流表中的目标数据流。

    一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

    一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。

    上述流表处理方法、装置、计算机设备和存储介质,接收目标数据包,获取与目标数据包对应的目标数据流,检测目标数据流对应的会话状态,并按照会话状态,为目标数据流设置对应的目标老化时间,如此根据不同目标数据流对应的不同会话状态,为不同目标数据流设置不同的目标老化时间,可以兼顾每一数据流的特性,按照每一数据流对应的目标老化时间,在需要释放预设流表中的目标数据流的时候,及时释放对应的目标数据流,避免资源浪费,提高系统的处理能力。

    附图说明

    图1为一个实施例中流表处理方法的流程示意图;

    图2为一个实施例中步骤s200的一种可实施方式的流程示意图;

    图3为一个实施例中步骤s300的一种可实施方式的流程示意图;

    图4为一个实施例中tcp数据包状态迁移过程示意图;

    图5为一个实施例中步骤s300的一种可实施方式的流程示意图;

    图6为一个实施例中协议识别状态迁移过程示意图;

    图7为一个实施例中步骤s400的一种可实施方式的流程示意图;

    图8为一个实施例中流表处理装置的结构框图;

    图9为一个实施例中计算机设备的内部结构图。

    具体实施方式

    为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

    在一个实施例中,如图1所示,提供了一种流表处理方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:

    步骤s100,接收目标数据包。

    步骤s200,获取与目标数据包对应的数据流,得到目标数据流。

    步骤s300,检测目标数据流对应的会话状态,并按照会话状态,为目标数据流设置对应的目标老化时间。

    步骤s400,按照目标老化时间,释放预设流表中的目标数据流。

    其中,会话状态是指一个终端与交互系统进行通讯的状态,可选地,传输的数据帧密度可以代表一种会话状态,数据包对应的应用协议也可以看作是一种会话状态。预设流表是指存储有数据流的集合。

    具体地,在接收到目标数据包后,查找或者新建与目标数据包对应的目标数据流。在得到目标数据流后,检测目标数据流对应的会话状态,并按照对应的会话状态,为不同的目标数据流设置不同的目标老化时间,最后,针对相应目标数据流,按照目标老化时间对相应的目标数据流进行老化,及时释放预设流表中的目标数据流。

    上述流表处理方法中,接收目标数据包,获取与目标数据包对应的目标数据流,检测目标数据流对应的会话状态,并按照会话状态,为目标数据流设置对应的目标老化时间,如此根据不同目标数据流对应的不同会话状态,为不同目标数据流设置不同的目标老化时间,可以兼顾每一数据流的特性,按照每一数据流对应的目标老化时间,在需要释放预设流表中的目标数据流的时候,及时释放对应的目标数据流,避免资源浪费。同时,也可以避免在不应当释放数据流的时候过早的对相应数据流进行释放,以避免无法查找到相应的数据流而反复重建并导致后续处理异常的现象,避免系统资源的浪费,提高系统的处理能力。

    在一个实施例中,如图2所示,为步骤s200的一种可实施方式的流程示意图,包括以下步骤:

    步骤s210,在预设流表中查找与目标数据包对应的数据流,得到目标数据流。

    步骤s220,若预设流表中不存在与目标数据包对应的数据流,则在预设流表中为目标数据包创建对应的目标数据流。

    具体地,在接收到目标数据包后,先在预设流表中查找是否存在与该目标数据包对应的数据流,如果存在,则无需新建数据流,可直接将预设流表中对应的数据流确定为目标数据流,避免系统冗余,节省系统资源。若预设流表中查找不存在与该目标数据包对应的数据流,则需要为目标数据包新建对应的目标数据流,并将创建的目标数据流存入预设流表,以供后续调用,在后续再次接收到相应的数据包时,调用对应的数据流表,无需再次重建数据流,避免资源浪费,减小重建数据流在数据传输量较大的情况下进一步加重并发冲突的影响。

    上述实施例中,在获取目标数据流的过程中,在预设流表中存在对应的目标数据流的情况下,直接从预设流表中调用目标数据流,无需新建数据流,可避免系统冗余,节省系统资源。而在预设流表中不存在对应的目标数据流的情况下,才在预设流表中创建对应的目标数据流,且新建的目标数据流存储于预设流表中,可供后续调用,能够避免资源浪费,减小重建数据流在数据传输量较大的情况下进一步加重并发冲突的影响,提高系统的处理能力。

    在一个实施例中,如图3所示,为步骤s300的一种可实施方式的流程示意图,包括以下步骤:

    步骤s311,检测会话状态对应的数据帧密度。

    步骤s312,按照数据帧密度,为目标数据流设置对应的目标老化时间。

    其中,数据帧密度是指当前会话中单位时间内传输的数据帧的数量,可以为10帧/s、50帧/s、10帧/ks不等。

    其中,预设流表中的每一数据流的工作时间有一定的时间规律的,例如,当数据帧密度为10帧/s时,平均两帧数据之间的时差为0.1秒,则可以为目标数据流设置一个较小的目标老化时间。例如,考虑到数据传输的不稳定性,可以将目标老化时间设置为1秒,如此以1秒为界限,原本应该每隔0.1秒进行一次数据帧的传输,在(1 0.1)秒后仍未发生数据的传输,便可认为该目标数据流需要被释放。同样地,数据帧密度为10帧/ks时,平均两帧数据之间的时差为100秒,则可以为目标数据流设置一个较大的目标老化时间。例如,考虑到数据传输的不稳定性,可以将目标老化时间设置为500秒,如此以500秒为界限,原本应该每隔100秒进行一次数据帧的传输,在(500 100)秒后仍未发生数据的传输,便可认为该目标数据流需要被释放。

    具体地,按照上述分析,不同的数据帧密度需要对应设置不同的目标老化时间,因此,可以按照数据帧密度,为目标数据流设置对应的目标老化时间。

    可选地,获取预设的老化时间映射关系,老化时间映射关系中存储有数据帧密度与数据流对应的老化时间;按照数据帧密度,在老化时间映射关系中查找与数据帧密度对应的老化时间,并将与数据帧密度对应的老化时间确定为目标老化时间。

    具体地,获取数据帧密度与老化时间之间的老化时间映射关系。按照数据帧密度,在老化时间映射关系中查找对应的数据帧密度,并将老化时间映射关系中与数据帧密度对应的老化时间确定为目标老化时间。

    如图4所示,为tcp数据包状态迁移过程示意图。具体地,对tcp流进行状态跟踪,在收到目标数据包(例如,tcp数据包)后,根据数据包的五元组,在预设流表中查找对应的数据流是否存在,若存在,则从预设流表中直接调用目标数据流,若不存在,则需要新建目标数据流。接着,判断tcp中的标志位,根据标志位设置数据流的状态。其中,标志位中的syn包表示建立连接、ack包表示响应、fin包表示关闭连接、reset包表示连接重置。a.若当前数据包的tcp标记位为syn时,表示建立连接,则将该数据包对应的数据流设置为synreceive状态,此时需要给对应的数据流设置一个较小的老化时间,如果监控的网络中有synflood攻击,可以迅速的将数据流老化掉,避免创建大量无效的流表。b.若再一次收到的tcp数据包的标记位为syn,并且数据包对应的当前数据流的状态为establish、fin或者reset状态,则可以认为当前找到的数据流为上一条已经结束的数据流,需要删除该数据流,为该数据流设置一个较小的老化时间,迅速的将该数据流老化掉,同时为当前数据包创建新的数据流。c.若当前数据包的tcp标记位中包含ack,表示响应,则将数据包对应的数据流设置为establish状态,此时可以认为是一个正常的tcp连接,需要给数据流设置一个较长的老化时间。d.若当前数据包的tcp标记位中包含fin,表示关闭连接,则将数据包对应的数据流设置为fin状态,此时可以认为该tcp连接可能很快就要结束,需要将tcp连接的老化时间设置为fin状态对应的较小的老化时间。在两端数据发送完毕后,可以将数据流迅速老化。e.如果当前数据包的tcp标记为中包含reset,则将数据包对应的数据流设置为reset状态,此时可以认为有一端要尝试强行结束当前连接,需要将tcp连接的老化时间设置为reset状态对应的较小的老化时间。在reset状态的后面几个交互包结束后,可以将数据流迅速老化。

    示例地,当数据流收到的最后一个数据包的时间戳加上老化时间已经比当前时间更早时,则说明该数据流需要老化,此时可以将数据流的结构进行释放。例如,数据流收到的最后一个数据包的时间戳10:00:00,老化时间为30秒,当前时间为10:00:40,最后一个数据包的时间戳加上老化时间为10:00:30,说明在10:00:30时便需要将该数据流进行老化,而现在已经是10:00:40了,此时刻直接将该数据流的结构进行释放,避免资源浪费。

    上述实施例中,检测会话状态对应的数据帧密度,按照数据帧密度,为目标数据流设置对应的目标老化时间,可以针对不同目标数据流对应的数据帧密度设定不同的老化时间,使得目标数据流在需要老化时,能及时释放对应的目标数据流,同时避免在不应当释放数据流的时候过早的对相应数据流进行释放,避免资源浪费,提高系统的处理能力。

    在一个实施例中,如图5所示,为步骤s300的一种可实施方式的流程示意图,包括以下步骤:

    步骤s321,检测会话状态中的协议类型,得到目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议。

    步骤s322,检测第一目标协议与第二目标协议是否一致,得到对应的协议对比结果。

    步骤s323,按照协议对比结果,为目标数据流设置对应的目标老化时间。

    其中,协议类型是指实现网络应用的协议的类型。

    具体地,协议类型的识别是一个不断细化的过程,比如上一个数据包可能只能将数据流确认为qq,而当前数据包中的特征字段可以将数据包的协议类型细化成qq视频。当协议类型相同时,可以延续采用之前的协议类型对应的老化时间的要求,而当协议类型发生变化后,需要将具体的老化时间设置为当前最新的协议类型对应的老化时间。因此,需要检测目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议,比较第一目标协议与第二目标协议是否一致,得到对应的协议对比结果,按照协议对比结果,为目标数据流设置不同的目标老化时间。

    可选地,若协议对比结果为第一目标协议与第二目标协议一致,则按照第二目标协议对应的老化时间映射关系,为目标数据流设置对应的目标老化时间;若协议对比结果为第一目标协议与第二目标协议不一致,则按照第一目标协议对应的老化时间映射关系,为目标数据流设置对应的目标老化时间。

    具体地,若协议对比结果为第一目标协议与第二目标协议一致,说明两个数据包对应的协议类型相同,当前数据包可以延续采用之前的协议类型对应的老化时间的要求。而若协议对比结果为第一目标协议与第二目标协议不一致,说明两个数据包对应的协议类型不同,协议类型发生变化,需要将具体的老化时间设置为当前最新的协议类型对应的老化时间。

    如图6所示,为协议识别状态迁移过程。具体地,本步骤根据协议类型对数据流进行状态跟踪,具体过程为:在收到目标数据包后,查找或新建对应的流表后,需要对数据包进行协议识别。具体地,由于协议识别是一个不断细化的过程,例如,上一个包可能只能将数据流确认为qq(第二目标协议),当前包根据其中的特征字段可以将数据包的协议细化成qq视频(第一目标协议)。因此,需要将协议类型识别的结果和当前数据流上已经记录的上一次的协议类型识别结果进行对比,看是否有变化。如果协议类型有变化,则根据当前协议识别的结果,检查新的协议类型或者细化的协议类型是否有老化的时间要求,如果有的话,则根据新协议类型设置数据流的老化时间。

    上述实施例中,检测会话状态中的协议类型,得到目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议,并检测第一目标协议与第二目标协议是否一致,得到对应的协议对比结果,按照协议对比结果,为目标数据流设置对应的目标老化时间。可以针对不同目标数据流对应的协议类型设定不同的老化时间,使得目标数据流在每一对应的协议类型上有更细致的老化时间对应,可以及时释放对应的目标数据流,同时避免在不应当释放数据流的时候过早的对相应数据流进行释放,避免资源浪费,提高系统的处理能力。

    在一个实施例中,如图7所示,为步骤s400的一种可实施方式的流程示意图,包括以下步骤:

    步骤s410,获取当前时间戳,以及获取接收到的最后一个目标数据包对应的目标时间戳。

    步骤s420,若当前时间戳与目标时间戳之间的时间差大于目标老化时间,则释放预设流表中的目标数据流。

    其中,最后一个目标数据包是指距离当前时间最近的一个数据包。目标时间戳是指目标数据流中对应的最后一个目标数据包的接收时间。

    具体地,在获取到当前时间戳与目标时间戳后,用当前时间戳对应的时间减去目标时间戳对应的时间,得到一个时间差。若该时间差大于目标老化时间,则释放预设流表中的目标数据流。

    例如,目标老化时间为30秒,当前时间戳对应的时间为10:00:20,目标时间戳对应的时间为10:00:00时,时间差为10:00:20-10:00:00=20秒,时间差小于目标老化时间,此时不释放预设流表中的目标数据流,可以避免不必要的数据流释放和老化。而当目标老化时间为30秒,当前时间戳对应的时间为10:00:40,目标时间戳对应的时间为10:00:00时,时间差为10:00:40-10:00:00=40秒,此时,时间差大于目标老化时间,释放预设流表中的目标数据流。

    特别地,随着移动应用流量越来越多,大量的移动应用会通过自己的心跳机制,来维护一个终端设备和服务端之间的长连接,使用固定的老化时间,可能会导致一个应用的连接对应的流结构体不停地被新建和老化,通过合理的设置数据流的老化时间,在存在长连接的情况下,可以避免不必要的数据流释放和老化,防止长连接被截断,避免资源浪费。

    上述实施例中,获取当前时间戳,以及获取接收到的最后一个目标数据包对应的目标时间戳,能够在当前时间戳与目标时间戳之间的时间差大于目标老化时间时,及时释放对应的目标数据流,同时,对于长连接流量,避免在不应当释放数据流的时候过早的对相应数据流进行释放导致的长连接截断,避免资源浪费,提高系统的处理能力。

    应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

    在一个实施例中,如图8所示,提供了一种流表处理装置,包括数据包接收模块801、数据流确定模块802、老化时间设置模块803和流表处理模块804,其中:

    数据包接收模块801,用于接收目标数据包;

    数据流确定模块802,用于获取与目标数据包对应的数据流,得到目标数据流;

    老化时间设置模块803,用于检测目标数据流对应的会话状态,并按照会话状态,为目标数据流设置对应的目标老化时间;

    流表处理模块804,用于按照目标老化时间,释放预设流表中的目标数据流。

    在其中一个实施例中,数据流确定模块802还用于在预设流表中查找与目标数据包对应的数据流,得到目标数据流;若预设流表中不存在与目标数据包对应的数据流,则在预设流表中为目标数据包创建对应的目标数据流。

    在其中一个实施例中,老化时间设置模块803还用于检测会话状态对应的数据帧密度;按照数据帧密度,为目标数据流设置对应的目标老化时间。

    在其中一个实施例中,老化时间设置模块803还用于获取预设的老化时间映射关系,老化时间映射关系中存储有数据帧密度与数据流对应的老化时间;按照数据帧密度,在老化时间映射关系中查找与数据帧密度对应的老化时间,并将与数据帧密度对应的老化时间确定为目标老化时间。

    在其中一个实施例中,老化时间设置模块803还用于检测会话状态中的协议类型,得到目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议;检测第一目标协议与第二目标协议是否一致,得到对应的协议对比结果;按照协议对比结果,为目标数据流设置对应的目标老化时间。

    在其中一个实施例中,老化时间设置模块803还用于若协议对比结果为第一目标协议与第二目标协议一致,则按照第二目标协议对应的老化时间映射关系,为目标数据流设置对应的目标老化时间;若协议对比结果为第一目标协议与第二目标协议不一致,则按照第一目标协议对应的老化时间映射关系,为目标数据流设置对应的目标老化时间。

    在其中一个实施例中,流表处理模块804还用于获取当前时间戳,以及获取接收到的最后一个目标数据包对应的目标时间戳;若当前时间戳与目标时间戳之间的时间差大于目标老化时间,则释放预设流表中的目标数据流。

    关于流表处理装置的具体限定可以参见上文中对于流表处理方法的限定,在此不再赘述。上述流表处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

    在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种流表处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

    本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

    在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

    接收目标数据包;

    获取与目标数据包对应的数据流,得到目标数据流;

    检测目标数据流对应的会话状态,并按照会话状态,为目标数据流设置对应的目标老化时间;

    按照目标老化时间,释放预设流表中的目标数据流。

    在一个实施例中,处理器执行计算机程序时还实现以下步骤:在预设流表中查找与目标数据包对应的数据流,得到目标数据流;若预设流表中不存在与目标数据包对应的数据流,则在预设流表中为目标数据包创建对应的目标数据流。

    在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测会话状态对应的数据帧密度;按照数据帧密度,为目标数据流设置对应的目标老化时间。

    在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设的老化时间映射关系,老化时间映射关系中存储有数据帧密度与数据流对应的老化时间;按照数据帧密度,在老化时间映射关系中查找与数据帧密度对应的老化时间,并将与数据帧密度对应的老化时间确定为目标老化时间。

    在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测会话状态中的协议类型,得到目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议;检测第一目标协议与第二目标协议是否一致,得到对应的协议对比结果;按照协议对比结果,为目标数据流设置对应的目标老化时间。

    在一个实施例中,处理器执行计算机程序时还实现以下步骤:若协议对比结果为第一目标协议与第二目标协议一致,则按照第二目标协议对应的老化时间映射关系,为目标数据流设置对应的目标老化时间;若协议对比结果为第一目标协议与第二目标协议不一致,则按照第一目标协议对应的老化时间映射关系,为目标数据流设置对应的目标老化时间。

    在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前时间戳,以及获取接收到的最后一个目标数据包对应的目标时间戳;若当前时间戳与目标时间戳之间的时间差大于目标老化时间,则释放预设流表中的目标数据流。

    在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

    接收目标数据包;

    获取与目标数据包对应的数据流,得到目标数据流;

    检测目标数据流对应的会话状态,并按照会话状态,为目标数据流设置对应的目标老化时间;

    按照目标老化时间,释放预设流表中的目标数据流。

    在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在预设流表中查找与目标数据包对应的数据流,得到目标数据流;若预设流表中不存在与目标数据包对应的数据流,则在预设流表中为目标数据包创建对应的目标数据流。

    在一个实施例中,计算机程序被处理器执行时还实现以下步骤:检测会话状态对应的数据帧密度;按照数据帧密度,为目标数据流设置对应的目标老化时间。

    在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取预设的老化时间映射关系,老化时间映射关系中存储有数据帧密度与数据流对应的老化时间;按照数据帧密度,在老化时间映射关系中查找与数据帧密度对应的老化时间,并将与数据帧密度对应的老化时间确定为目标老化时间。

    在一个实施例中,计算机程序被处理器执行时还实现以下步骤:检测会话状态中的协议类型,得到目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议;检测第一目标协议与第二目标协议是否一致,得到对应的协议对比结果;按照协议对比结果,为目标数据流设置对应的目标老化时间。

    在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若协议对比结果为第一目标协议与第二目标协议一致,则按照第二目标协议对应的老化时间映射关系,为目标数据流设置对应的目标老化时间;若协议对比结果为第一目标协议与第二目标协议不一致,则按照第一目标协议对应的老化时间映射关系,为目标数据流设置对应的目标老化时间。

    在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取当前时间戳,以及获取接收到的最后一个目标数据包对应的目标时间戳;若当前时间戳与目标时间戳之间的时间差大于目标老化时间,则释放预设流表中的目标数据流。

    本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

    以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

    以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。


    技术特征:

    1.一种流表处理方法,其特征在于,所述方法包括:

    接收目标数据包;

    获取与所述目标数据包对应的数据流,得到目标数据流;

    检测所述目标数据流对应的会话状态,并按照所述会话状态,为所述目标数据流设置对应的目标老化时间;

    按照所述目标老化时间,释放预设流表中的目标数据流。

    2.根据权利要求1所述的流表处理方法,其特征在于,所述获取与所述目标数据包对应的数据流,得到目标数据流,包括:

    在所述预设流表中查找与所述目标数据包对应的数据流,得到所述目标数据流;

    若所述预设流表中不存在与所述目标数据包对应的数据流,则在所述预设流表中为所述目标数据包创建对应的目标数据流。

    3.根据权利要求1所述的流表处理方法,其特征在于,所述按照所述会话状态,为所述目标数据流设置对应的目标老化时间,包括:

    检测所述会话状态对应的数据帧密度;

    按照所述数据帧密度,为所述目标数据流设置对应的目标老化时间。

    4.根据权利要求3所述的流表处理方法,其特征在于,所述按照所述数据帧密度,为所述目标数据流设置对应的目标老化时间,包括:

    获取预设的老化时间映射关系,所述老化时间映射关系中存储有数据帧密度与数据流对应的老化时间;

    按照所述数据帧密度,在所述老化时间映射关系中查找与所述数据帧密度对应的老化时间,并将与所述数据帧密度对应的老化时间确定为所述目标老化时间。

    5.根据权利要求1所述的流表处理方法,其特征在于,所述按照所述会话状态,为所述目标数据流设置对应的目标老化时间,包括:

    检测所述会话状态中的协议类型,得到所述目标数据包对应的第一目标协议,以及上一目标数据包对应的第二目标协议;

    检测所述第一目标协议与所述第二目标协议是否一致,得到对应的协议对比结果;

    按照所述协议对比结果,为所述目标数据流设置对应的目标老化时间。

    6.根据权利要求5所述的流表处理方法,其特征在于,所述按照所述协议对比结果,为所述目标数据流设置对应的目标老化时间,包括:

    若所述协议对比结果为所述第一目标协议与所述第二目标协议一致,则按照所述第二目标协议对应的老化时间映射关系,为所述目标数据流设置对应的目标老化时间;

    若所述协议对比结果为所述第一目标协议与所述第二目标协议不一致,则按照所述第一目标协议对应的老化时间映射关系,为所述目标数据流设置对应的目标老化时间。

    7.根据权利要求1所述的流表处理方法,其特征在于,所述按照所述目标老化时间,释放预设流表中的目标数据流,包括:

    获取当前时间戳,以及获取接收到的最后一个目标数据包对应的目标时间戳;

    若所述当前时间戳与所述目标时间戳之间的时间差大于所述目标老化时间,则释放所述预设流表中的目标数据流。

    8.一种流表处理装置,其特征在于,所述装置包括:

    数据包接收模块,用于接收目标数据包;

    数据流确定模块,用于获取与所述目标数据包对应的数据流,得到目标数据流;

    老化时间设置模块,用于检测所述目标数据流对应的会话状态,并按照所述会话状态,为所述目标数据流设置对应的目标老化时间;

    流表处理模块,用于按照所述目标老化时间,释放预设流表中的目标数据流。

    9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

    10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

    技术总结
    本申请涉及一种流表处理方法、装置、计算机设备和存储介质。该方法包括:接收目标数据包;获取与目标数据包对应的数据流,得到目标数据流;检测目标数据流对应的会话状态,并按照会话状态,为目标数据流设置对应的目标老化时间;按照目标老化时间,释放预设流表中的目标数据流。从而根据不同目标数据流对应的不同会话状态,为不同目标数据流设置不同的目标老化时间,可以兼顾每一数据流的特性,按照每一数据流对应的目标老化时间,在需要释放预设流表中的目标数据流的时候,及时释放对应的目标数据流,能够减小并发冲突,避免资源浪费。

    技术研发人员:雷彦章;聂军;田涛
    受保护的技术使用者:曙光网络科技有限公司
    技术研发日:2020.10.13
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8297.html

    最新回复(0)