本申请涉及城市轨道交通技术领域,尤其涉及一种数据包筛选方法和装置。
背景技术:
目前,城市轨道交通信号系统包含多个相互直接或间接通信的子系统,诸如列车自动监控系统(automatictrainsupervisionsystem,ats)、计算机联锁(computerinterlocking,ci)系统、区域控制器(zonecontroller,zc)系统、车载控制系统(vehicleon-boardcontroller,vobc)等。各个子系统之间通过约定的通信协议进行数据包信息传递,完成系统之间的通信。
在信息传递过程中,为了实时的了解和掌握通信情况,需要对子系统之间的传递的数据包进行监测和分析。相关技术中一般是通过抓包分析工具从交换机中抓取数据包,并对数据包设置过滤条件,以获取用户所需要的数据包。
然而,在实现本申请的过程中发明人发现上述抓包分析工具仅基于数据包的包头信息对数据包进行筛选,例如,可ip地址、端口、协议、包长度、媒体访问控制地址(mediaaccesscontroladdress,mac)等进行数据包进行筛选。因此,在需要结合通信协议中的特定字段定位轨道交通信号系统中的问题时,用户需要通过分析子系统的日志文件以及配合抓包分析工具以及子系统通信协议文档分析问题,定位问题所需要的时间较长。因此,如何提高抓包分析工具筛选维度是目前亟需解决的问题。
技术实现要素:
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请目的在于提出一种数据包筛选方法和装置,在筛选数据包时,可根据预设字段对待处理的数据包进行筛选,扩展了数据包的筛选维度,提高了筛选数据包的灵活性。
为达上述目的,本申请第一方面实施例提出了一种数据包筛选方法,包括以下步骤:获取待处理的数据包;对所述数据包的包头进行解析,以得到所述数据包的包头信息;根据所述包头信息,获取与所述数据包对应的协议解析规则;根据所述协议解析规则对所述数据包的包体进行解析,以得到所述包体中各个字段的取值;获取与所述数据包对应的过滤规则,所述过滤规则包括预设字段的第一取值,其中,所述预设字段为所述数据包的包体中的字段;根据所述包体中各个字段的取值和过滤规则的预设字段,获取所述包体的预设字段的第二取值;判断所述第一取值和所述第二取值是否一致;若所述第一取值和所述第二取值一致,则所述数据包为目标数据包。
在本申请的一个实施例中,所述包头信息包括协议类型,所述根据所述包头信息,获取与所述数据包对应的协议解析规则,具体包括:根据预存的协议类型与协议解析规则之间的对应关系,获取与所述数据包对应的协议解析规则。
在本申请的一个实施例中,所述包头信息包括消息类型,在所述获取与所述数据包对应的过滤规则之前,还包括:判断所述消息类型是否为预设消息类型;若获知所述消息类型为预设消息类型,则执行所述获取与所述数据包对应的过滤规则的步骤。
在本申请的一个实施例中,在所述确定所述数据包为目标数据包之后,还包括:保存所述目标数据包中各个字段的取值;将所述目标数据包中各个字段的取值发送给订阅所述目标数据包的终端。
在本申请的一个实施例中,在所述获取待处理的数据包之前,所述方法还包括:提供配置界面,获取用户在所述配置界面设置的所述第一取值;在接收到保存设置的指令时,向所述过滤规则中写入所述第一取值。
本申请实施例的数据包筛选方法,在筛选数据包时,可根据预设字段对待处理的数据包进行筛选,扩展了数据包的筛选维度,提高了筛选数据包的灵活性。
为达上述目的,本申请第二方面实施例提出了一种数据包筛选装置,包括:第一获取模块,用于获取待处理的数据包;第一解析模块,用于对所述数据包的包头进行解析,以得到所述数据包的包头信息;第二获取模块,用于根据所述包头信息,获取与所述数据包对应的协议解析规则;第二解析模块,用于根据所述协议解析规则对所述数据包的包体进行解析,以得到所述包体中各个字段的取值;第三获取模块,用于获取与所述数据包对应的过滤规则,所述过滤规则包括预设字段的第一取值,其中,所述预设字段为所述数据包的包体中的字段;第四获取模块,用于根据所述包体中各个字段的取值和过滤规则的预设字段,获取所述包头的预设字段的第二取值;第一判断模块,用于判断所述第一取值和所述第二取值是否一致;确定模块,用于若所述第一取值和所述第二取值一致,则所述数据包为目标数据包。
在本申请一个实施例中,所述包头信息包括协议类型所述第二获取模块,具体用于:根据预存的协议类型与协议解析规则之间的对应关系,获取与所述包头信息对应的协议解析规则。
在本申请一个实施例中,所述包头信息包括消息类型,还包括:判断模块,用于判断所述消息类型是否为预设消息类型;其中,所述第二获取模块,用于在获知所述消息类型为预设消息类型时,获取与所述数据包对应的过滤规则。
在本申请一个实施例中,还包括:保存模块,用于保存所述目标数据包中各个字段的取值;发送模块,用于将所述目标数据包中各个字段的取值发送给订阅所述目标数据包的终端。
在本申请一个实施例中,所述装置还包括:提供模块,用于提供配置界面,获取用户在所述配置界面设置的所述第一取值;写入模块,用于在接收到保存设置的指令时,向所述过滤规则中写入所述第一取值。
本申请实施例的数据包筛选装置,在筛选数据包时,可根据预设字段对待处理的数据包进行筛选,扩展了数据包的筛选维度,提高了筛选数据包的灵活性。
为达上述目的,本申请第三方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现本申请第一方面实施例所述的数据包筛选方法。
为了实现上述目的,本申请第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请第一方面实施例所述的数据包筛选方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本申请一个实施例的数据包筛选方法的流程示意图;
图2是根据本申请另一个实施例的数据包筛选方法的流程示意图;
图3是根据本申请又一个实施例的数据包筛选方法的流程示意图;
图4是根据本申请一个具体实施例的数据包筛选系统的结构示意图;
图5是服务器中所执行的数据处理的流程示意图;
图6是客户端中所执行的数据处理的流程示意图;
图7是本申请一个实施例的数据包筛选装置的结构示意图;
图8是本申请另一个实施例的数据包筛选装置的结构示意图;
图9是本申请又一个实施例的数据包筛选装置的结构示意图;
图10是本申请再一个实施例的数据包筛选装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的数据包筛选方法和装置。
图1是根据本申请一个实施例的数据包筛选方法的流程示意图。
如图1所示,该数据包筛选方法包括以下步骤:
步骤101,获取待处理的数据包。
其中,需要说明的是,该实施例的数据包筛选方法由数据包筛选装置执行,该数据包筛选装置被设置在抓包分析工具,该抓包分析工具被设置在电子设备中。
其中,本实施例中的数据包为轨道交通信号系统中任意一个子系统向其他可通信的子系统发送的数据包。
步骤102,对数据包的包头进行解析,以得到数据包的包头信息。
作为一种示例性的实施方式,根据预先设置的包头解析规则,根据数据包的包头进行解析,以得到数据包的包头信息。
其中,预先设置的包头解析规则可以保存在数据包包头配置文件中。
步骤103,根据包头信息,获取与数据包对应的协议解析规则。
具体地,在获取数据包的包头信息后,可根据预存的包头信息与协议解析规则之间的对应关系,获取与包头信息对应的协议解析规则。
其中,包头信息可以包括但不限于数据包名称、消息类型、协议类型和接口类型。例如,包头信息还可以包括发送方、源ip地址、源端口、接收方、目的ip地址、目的端口、发送方标识、接收方标识、消息长度、消息类型等。
其中,需要理解的是,在获取数据包的包头信息后,在不同应用场景中,可以有多种方式根据包头信息,获取与数据包对应的协议解析规则,举例说明如下:
作为一种示例,可根据包头信息中的协议类型,获取与该数据包对应的协议解析规则。
具体而言,可根据预存的协议类型和协议解析规则之间的对应关系,获取与该协议类型对应的协议解析规则,所获取的协议规则即为数据包的协议解析规则。
作为另一种示例,可根据数据包信息中的消息类型,获取与该数据包对应的协议解析规则。
具体而言,可根据预存的消息类型和协议解析规则之间的对应关系,获取与该消息类型对应的协议解析规则,所获取的协议规则即为数据包的协议解析规则。
作为另一种示例,可根据消息类型和协议类型,获取与该数据包对应的协议解析规则。
具体地,可根据预存的消息类型、协议类型和协议解析规则之间的对应关系,获取与该消息类型和协议类型所对应的协议解析规则。
其中,与消息类型和协议类型所对应的协议解析规则,即为数据包的协议解析规则。
也就是说,在获取数据包的包头信息后,包头信息中的协议类型和/或消息类型,获取与该数据包对应的协议解析规则。
作为一种示例,可在数据包解析总配置文件中保存消息类型、协议类型与协议解析规则的对应关系。
例如:在云轨系统中存在vobc板卡信息帧,首先在数据包解析总配置文件中会包含vobc板卡信息帧的协议类型,信息类型和vobc板卡信息帧字段解析配置文件。其中,数据包包体字段解析配置文件中包含vobc板卡信息帧协议里面的所有应用层消息的字段,其中含有字段的长度大小、字节模式、数值显示的进制等等。
其中,需要说明的是,每种数据包信息帧在数据包总配置文件中都有相对应的名称信息以及数据包包体字段解析配置文件。
其中,需要理解的是,上述协议解析规则是根据数据包中包体的协议格式预先确定的。
其中,需要说明的是,对应不同消息类型的数据包而言,不同消息类型的数据包所对应的协议解析规则不同。
步骤104,根据协议解析规则对数据包的包体进行解析,以得到包体中各个字段的取值。
步骤105,获取与数据包对应的过滤规则,过滤规则包括预设字段的第一取值。
其中,预设字段为数据包的包体中的字段。
其中,过滤规则可以包括在过滤配置文件。
其中,需要理解的是,在实际应用中,对于不同分析者而言,不同分析者可根据需求设置过滤规则中对应预设字段的取值。
其中,需要理解的是,对于不同分析者而言,不同分析者所需要的目标数据包可能不同,为了满足分析者的各种分析需求,在获取待处理的数据包之前,分析者可根据需求设置过滤规则中的预设字段,以及为预设字段设置对应的取值。
步骤106,根据包体中各个字段的取值和过滤规则的预设字段,获取包体的预设字段的第二取值。
步骤107,判断第一取值和第二取值是否一致。
步骤108,若第一取值和第二取值一致,则数据包为目标数据包。
也就是说,如果判断获知数据包中包体中预设字段的取值和过滤规则中预设字段的取值一致,则确定该数据包为目标数据包。
本申请的实施例的数据包筛选方法,在筛选数据包时,可根据预设字段对待处理的数据包进行筛选,扩展了数据包的筛选维度,提高了筛选数据包的灵活性。
图2是根据本申请另一个实施例的数据包筛选方法的流程示意图。
如图2所示,该数据包筛选方法包括以下步骤:
步骤201,获取待处理的数据包。
步骤202,对数据包的包头进行解析,以得到数据包的包头信息。
步骤203,根据包头信息,获取与数据包对应的协议解析规则。
步骤204,根据协议解析规则对数据包的包体进行解析,以得到包体中各个字段的取值。
其中,需要说明的是,步骤201-步骤204与上述步骤101-步骤104相同,前述对步骤101-步骤104的解释说明也适用于步骤201-步骤204,此处不再赘述。
其中,包头信息可以包括但不限于消息类型和协议类型。
步骤205,判断消息类型否为预设消息类型,若是,执行步骤206。
其中,需要说明的是,预设消息类型是数据包筛选装置中预先设置的消息类型。例如,在获取待处理的数据包之前,分析者可根据需求预先设置消息类型。
其中,如果判断获知数据包的消息类型不为预设消息类型,则确定不存在与该数据包对应的过滤规则。也就是说,用户之前在数据包分析工具中未对该数据包设置过滤规则。
作为一种示例性的实施方式,为了方便后续用户在需要时可查看到该数据包中包体中的各个字段的取值,在确定数据包的数据包类型不为预设消息类型时,可将解析出的该数据包的包头信息以及包体信息均保存在数据库,以方便后续用户历史查看。
步骤206,获取与数据包对应的过滤规则,过滤规则包括预设字段的第一取值,其中,预设字段为数据包的包体中的字段。
步骤207,根据包体中各个字段的取值和过滤规则的预设字段,获取包体的预设字段的第二取值。
步骤208,判断第一取值和第二取值是否一致。
步骤209,若第一取值和第二取值一致,则确定数据包为目标数据包。
本申请实施例的数据包筛选方法,在根据预设字段对待处理的数据包进行筛选之前,确定数据包的数据包类型是否为预设消息类型,并在确定待处理数据包的消息类型为预设消息类型时,根据预设字段对待处理的数据包进行筛选,扩展了数据包的筛选维度,提高了筛选数据包的灵活性。
在本申请的一个实施例中,在基于图1所示的实施例的基础上,在确定数据包为目标数据包之后,如图3所示,还包括:
步骤301,保存目标数据包中各个字段的取值。
作为一种示例性的实施方式,可在数据库中保存目标数据包的数据包信息,数据包信息可以包括包头信息以及数据包协议里面定义的各个字段信息,例如,字段名称以及字段名称的取值。
其中,需要理解的是,数据库中保存有多个目标数据包的数据包信息,在需求者需要查看预设时间段内的目标数据包的详细信息时,需求者可在查询界面中设置查询预设时间段的目标数据,然后,在用户点击确认查询时,从数据库中获取预设时间段内的的目标数据包,并将预设时间段内的目标数据包的数据包信息反馈到需求者对应的终端。由此,使得需求者可清楚地了解该预设时间段内每个数据包中每个字段的意义以及其对应的取值,方便后了需求者基于字段以及字段的取值去定位问题,方便了后续需求者根据数据库中的数据包信息定位问题,以及了解对应系统的通信情况。
作为一种示例,在终端中显示多条查到的数据包的信息时,用户可通过双击或者右击查询具体的数据包协议信息。
另外,需要说明的是,由于数据库中保存了目标数据包的数据包信息(包头信息和和数据包协议里面定义的各个字段信息),因此,在查询的时候,用户可根据需求设置其他类型的查询条件,例如,用户可设置查询包长度为a的目标数据包,或者,查询物理地址为b的数据包。
步骤302,将目标数据包中各个字段的取值发送给订阅目标数据包的终端。
在本示例中,在分析者设置订阅某种类型的数据包后,在筛选出用户所订阅的数据包后,可将该订阅的数据包中各个字段的取值发送给对应的终端,以使得订阅者可实时了解所订阅的数据包中各个字段的取值情况。
基于上述任意一个实施例的基础上,为了方便轨道交通信号系统中不同分析者的不同需求,在使用数据包分析工具的过程中,用户可根据需求设置所需要的协议的特定字段的取值,因此,作为一种示例性的实施方式,在获取待处理的数据包之前,还可以提供配置界面,获取用户在配置界面中设置的第一取值;在接收到保存设置的指令时,向过滤规则中写入第一取值。由此,使得分析者可根据需求设置预设字段对应的取值,满足了不同分析者的个性化设置数据包的预设字段的取值的需求。
为了使得本领域的技术人员理解本申请的数据包筛选方法下面结合图4-图6进行详细介绍。
其中,需要说明的是,图4中以城市轨道交通信号系统中包括ats子系统、ci子系统、zc子系统和vobc子系统为例,然后,ats子系统、ci子系统、zc子系统和vobc子系统之间均通过同一个交换机进行数据传输,对应地,在服务器中设置有数据包分析工具,并可在服务器中部署mysql(一种关系型数据库管理系统)数据库,以通过该mysql数据库保存数据包分析工具所抓取的数据包信息。
然后,有多个主机与服务器连接,从而采用s/c(client/server,客户端/服务器端)模型,使得服务器端负责监测抓取与交换机相连的各个子系统之间的通信数据包,并通过数据库保存,客户端负责与服务器连接,接收服务器发来的数据包,并对数据进行解析和筛选,实现云轨数据包监测功能。
其中,数据库中保存的数据包,可以用于历史数据查询。
客户端分布于其他各个计算机上,只要配置好ip地址和端口就可以接收服务器发送的数据包信息,进行显示。客户端主要是人机界面的显示,用户可以根据需要对数据进行筛选,从而得到需要的数据。
其中,对于服务器而言,服务器中所执行的数据处理的流程示意图,如图5所示。
具体而言,服务器中的数据包分析工具监测各个子系统之间的通信数据包,实时的给客户端发送数据,并将数据存储在数据库中。
其中,对于客户端而言,客户端所执行的数据处理的流程示意图,如图6所示。
具体地,客户端接收服务器发送的数据,对其进行解析,然后再通过人机界面的选择,是否进行数据包过滤,然后对实时接收的数据包或者数据库查询得到的数据包进行筛选显示。
其中,在人机交互界面上可显示数据包的包头信息以及包体中各个字段中的取值。
其中,需要理解的是,对于数据库中保存的数据包数据,分析者可通过在查询界面中设置筛选条件查看自己需要的数据包信息。
其中,分析者根据需求可设置筛选某种类型的数据包,或者,设置筛选协议中某个字段为预设值的特定类型的数据包,该实施例对此不作限定。在实际应用中用户可根据需求自己设置筛选条件。
例如,用户可设置筛选消息类型为0x0201;消息名为ats时钟信息帧的数据包,在用户设置筛选条件后,可根据用户设置的筛选条件,从数据库中获取满足筛选条件的数据包,并在人机交互界面上为用户显示筛选出的数据包信息。
为了实现上述实施例,本申请还提出一种数据包筛选装置。
图7是本申请一个实施例的数据包筛选装置的结构示意图。
如图7所示,该数据包筛选装置包括第一获取模块110、第一解析模块120、第二获取模块130、第二解析模块140、第三获取模块150、第四获取模块160、第一判断模块170和确定模块180。
第一获取模块110,用于获取待处理的数据包。
第一解析模块120,用于对数据包的包头进行解析,以得到数据包的包头信息。
第二获取模块130,用于根据包头信息,获取与数据包对应的协议解析规则。
第二解析模块140,用于根据协议解析规则对数据包的包体进行解析,以得到包体中各个字段的取值。
第三获取模块150,用于获取与数据包对应的过滤规则,过滤规则包括预设字段的第一取值,其中,预设字段为数据包的包体中的字段。
第四获取模块160,用于根据包体中各个字段的取值和过滤规则的预设字段,获取包头的预设字段的第二取值。
第一判断模块170,用于判断第一取值和第二取值是否一致。
确定模块180,用于若第一取值和第二取值一致,则数据包为目标数据包。
在本申请一个实施例中,包头信息包括协议类型,第二获取模块130具体用于:根据预存的协议类型与协议解析规则之间的对应关系,获取与包头信息对应的协议解析规则。
在本申请另一个实施例中,包头信息包括消息类型,第二获取模块130具体用于:根据预存的消息类型与协议解析规则之间的对应关系,获取与包头信息对应的协议解析规则。
在本申请另一个实施例中,包头信息包括消息类型和协议类型,第二获取模块130具体用于:根据预存的消息类型、协议类型与协议解析规则之间的对应关系,获取与包头信息对应的协议解析规则。
在本申请的一个实施例中,在图7所示的基础上,如图8所示,包头消息包括消息类型,该装置还包括:
第二判断模块190,用于消息类型是否为预设消息类型。
其中,第二获取模块130,用于在获知消息类型为预设消息类型时,获取与数据包对应的过滤规则。
在本申请的一个实施例中,在图7所示的基础上,如图9所示,该装置还可以包括:
保存模块200,用于保存目标数据包中各个字段的取值。
发送模块210,用于将目标数据包中各个字段的取值发送给订阅目标数据包的终端。
在本申请的一个实施例中,在图7所示的基础上,如图10所示,该装置还可以包括:
提供模块220,用于提供配置界面,获取用户在配置界面设置的第一取值。
写入模块230,用于在接收到保存设置的指令时,向过滤规则中写入第一取值。
需要说明的是,前述对数据包筛选方法实施例的解释说明也适用于该实施例的数据包筛选装置,此处不再赘述。
本申请实施例的数据包筛选装置,在筛选数据包时,可根据预设字段对待处理的数据包进行筛选,扩展了数据包的筛选维度,提高了筛选数据包的灵活性。
为了实现上述实施例,本申请还提出一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述实施例的数据包筛选方法。
为了实现上述实施例,本申请还提出一种计算机可读存储介质其上存储有计算机程序,该程序被处理器执行时实现上述实施例的数据包筛选方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
1.一种数据包筛选方法,其特征在于,所述方法包括:
获取待处理的数据包;
对所述数据包的包头进行解析,以得到所述数据包的包头信息;
根据所述包头信息,获取与所述数据包对应的协议解析规则;
根据所述协议解析规则对所述数据包的包体进行解析,以得到所述包体中各个字段的取值;
获取与所述数据包对应的过滤规则,所述过滤规则包括预设字段的第一取值,其中,所述预设字段为所述数据包的包体中的字段;
根据所述包体中各个字段的取值和过滤规则的预设字段,获取所述包体的预设字段的第二取值;
判断所述第一取值和所述第二取值是否一致;
若所述第一取值和所述第二取值一致,则所述数据包为目标数据包。
2.如权利要求1所述的方法,其特征在于,所述包头信息包括协议类型,所述根据所述包头信息,获取与所述数据包对应的协议解析规则,具体包括:
根据预存的协议类型与协议解析规则之间的对应关系,获取与所述数据包对应的协议解析规则。
3.如权利要求1所述的方法,其特征在于,所述包头信息包括消息类型,在所述获取与所述数据包对应的过滤规则之前,还包括:
判断所述消息类型是否为预设消息类型;
若获知所述消息类型为预设消息类型,则执行所述获取与所述数据包对应的过滤规则的步骤。
4.如权利要求1所述的方法,其特征在于,在所述确定所述数据包为目标数据包之后,还包括:
保存所述目标数据包中各个字段的取值;
将所述目标数据包中各个字段的取值发送给订阅所述目标数据包的终端。
5.如权利要求1-4任一项所述的方法,其特征在于,在所述获取待处理的数据包之前,所述方法还包括:
提供配置界面,获取用户在所述配置界面设置的所述第一取值;
在接收到保存设置的指令时,向所述过滤规则中写入所述第一取值。
6.一种数据包筛选装置,其特征在于,所述装置包括:
第一获取模块,用于获取待处理的数据包;
第一解析模块,用于对所述数据包的包头进行解析,以得到所述数据包的包头信息;
第二获取模块,用于根据所述包头信息,获取与所述数据包对应的协议解析规则;
第二解析模块,用于根据所述协议解析规则对所述数据包的包体进行解析,以得到所述包体中各个字段的取值;
第三获取模块,用于获取与所述数据包对应的过滤规则,所述过滤规则包括预设字段的第一取值,其中,所述预设字段为所述数据包的包体中的字段;
第四获取模块,用于根据所述包体中各个字段的取值和过滤规则的预设字段,获取所述包头的预设字段的第二取值;
第一判断模块,用于判断所述第一取值和所述第二取值是否一致;
确定模块,用于若所述第一取值和所述第二取值一致,则所述数据包为目标数据包。
7.如权利要求6所述的装置,其特征在于,所述包头信息包括协议类型所述第二获取模块,具体用于:
根据预存的协议类型与协议解析规则之间的对应关系,获取与所述包头信息对应的协议解析规则。
8.如权利要求6所述的装置,其特征在于,所述包头信息包括消息类型,还包括:
判断模块,用于判断所述消息类型是否为预设消息类型;
其中,所述第二获取模块,用于在获知所述消息类型为预设消息类型时,获取与所述数据包对应的过滤规则。
9.如权利要求6所述的装置,其特征在于,还包括:
保存模块,用于保存所述目标数据包中各个字段的取值;
发送模块,用于将所述目标数据包中各个字段的取值发送给订阅所述目标数据包的终端。
10.如权利要求6-9任一项所述的装置,其特征在于,所述装置还包括:
提供模块,用于提供配置界面,获取用户在所述配置界面设置的所述第一取值;
写入模块,用于在接收到保存设置的指令时,向所述过滤规则中写入所述第一取值。
11.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-5中任一所述的数据包筛选方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的数据包筛选方法。
技术总结