一种TCP协议报文过滤方法及装置制造方法及图纸

技术编号:26041187 阅读:19 留言:0更新日期:2020-10-23 21:20
本发明专利技术提出了一种TCP协议报文过滤方法及装置,涉及报文处理技术领域。该方法包括:获取报文,并对报文进行预筛选处理,以筛选出需要进行过滤的目标报文,从而提高后续过滤处理的效率。然根据预先创建的白名单匹配表中预先设置的至少一个待过滤白名单字符串对目标报文进行白名单匹配,得到匹配结果,最后根据匹配结果和/或白名单匹配表对目标报文进行过滤处理。若匹配结果表示匹配通过则可以直接放行该目标报文。而若匹配结果表示匹配不通过,则可以继续根据匹配结果以及白名单匹配表对目标报文进行进一步的过滤处理,从而可以保证在报文出现粘包的情况下,能够精确的根据报文内容进行过滤,而不会因为粘包导致部分数据被忽略处理。

【技术实现步骤摘要】
一种TCP协议报文过滤方法及装置
本专利技术涉及报文处理
,具体而言,涉及一种TCP协议报文过滤方法及装置。
技术介绍
对于网络协议中的TCP协议,是一个面向流的数据处理协议,报文内容没有边界,需要上层应用自定义协议边界来处理。基于上述原因,在底层协议栈处理一些基于TCP协议的上层应用协议,如http协议的报文内容,在需要处理一些白名单过滤的模块开发时,往往会在复杂的外部网络环境中,由于报文的粘包、半包导致出现一些漏包处理问题。对这些出现粘包、半包的报文不易进行分析,也不易进行追踪处理,而未被正确处理的报文,则又会进一步影响系统的可用性,对于一些黑名单处理模块则会影响其系统的安全性。
技术实现思路
本专利技术的目的在于提供一种TCP协议报文过滤方法及装置,用以改善现有技术中由于报文的粘包和半包导致的漏包处理的问题。第一方面,本申请实施例提供一种TCP协议报文过滤方法,该方法包括:获取报文,并对报文进行预筛选处理,以获取目标报文,根据预先创建的白名单匹配表中预先设置的至少一个待过滤白名单字符串对目标报文进行白名单匹配,得到匹配结果。最后根据匹配结果和/或白名单匹配表对目标报文进行过滤处理。上述实现过程中,先对报文进行预筛选处理,以筛选出需要进行过滤的目标报文,可以将不是过滤处理的其他报文筛选掉,从而提高后续过滤处理的效率。然后可以根据白名单匹配表中预先设置的至少一个待过滤白名单字符串对目标报文进行白名单匹配,若匹配结果表示匹配通过则可以直接放行该目标报文。而若匹配结果表示匹配不通过,则可以继续根据匹配结果以及白名单匹配表对目标报文进行进一步的过滤处理,从而可以保证在报文出现粘包的情况下,能够精确的根据报文内容进行过滤,而不会因为粘包导致部分数据被忽略处理。在本专利技术的一些实施例中,对报文进行预筛选处理,以获取目标报文的步骤,包括:获取报文的协议类型。若协议类型为目标类型,则获取报文的目标端口号。若目标端口号为预设端口号,则获取报文的长度。若长度不小于预设长度,则确定报文为目标报文。上述实现过程中,获取报文后可以根据报文的类型以及端口等信息进行初步的预筛选处理,使得可以获取到待过滤的目标报文,后续可以直接对目标报文进行匹配过滤处理,从而提高过滤速度。在本专利技术的一些实施例中,根据预先创建的白名单匹配表中预先设置的至少一个待过滤白名单字符串对目标报文进行白名单匹配,得到匹配结果的步骤,包括:获取目标报文的报文数据。若至少一个待过滤白名单字符串中存在报文数据的子串,则确定匹配结果为全匹配。若至少一个待过滤白名单字符串中不存在报文数据的子串,则确定匹配结果为未匹配。上述实现过程中,若至少一个待过滤白名单字符串中存在目标报文的报文数据的子串,也就是说匹配结果为全匹配,则表示该目标报文符合过滤放行的规则,则可以放行该目标报文。在本专利技术的一些实施例中,根据匹配结果和/或白名单匹配表对目标报文进行过滤处理的步骤,包括:若匹配结果为未匹配,则获取目标报文的标识字符,查找白名单匹配表中是否存在标识字符。若不存在,则根据至少一个待过滤白名单字符串以及目标报文的报文数据进行头部匹配处理。若头部匹配处理中匹配上的报文数据的最大匹配长度大于等于预设值,则获取头部匹配的匹配信息,将匹配信息以及匹配上的报文数据存储至白名单匹配表中后,放行目标报文。上述实现过程中,白名单匹配表中不存在标识字符,则表示之前没有与该目标报文相同的报文进行过滤处理,而又因为匹配结果显示该目标报文不完整,因此可以对该目标报文进行头部匹配处理,以获取其匹配上的报文数据以及匹配信息,便于后续对与该目标报文相同的报文进行处理,以避免过滤过程中出现漏包的情况。在本专利技术的一些实施例中,根据匹配结果和/或白名单匹配表对目标报文进行过滤处理的步骤,还包括:查找白名单匹配表中是否存在标识字符。若存在,则获取白名单匹配表中与标识字符对应的匹配上的报文数据以及其匹配信息。若匹配信息中的匹配类型为头部匹配,则根据至少一个待过滤白名单字符串以及目标报文的报文数据进行尾部匹配处理。若尾部匹配处理的最大匹配长度大于等于预设值,则获取头部匹配的匹配信息以及尾部匹配的匹配信息。根据头部匹配的匹配信息以及尾部匹配的匹配信息计算匹配值。若匹配值大于等于预设匹配值,则放行目标报文。上述实现过程中,设置标识字符可以对相同的报文进行标识,以在获取到与之前进行过滤过的报文相同的目标报文后,可以根据之前匹配的匹配信息以及对目标报文进行的本次匹配进行综合判断,判断其是否已接收到所有相同的报文,从而保证可以精准的对粘包以及半包的情况进行过滤处理。在本专利技术的一些实施例中,根据头部匹配的匹配信息以及尾部匹配的匹配信息计算匹配值的步骤之后,包括:若匹配值小于预设匹配值,则将标识字符对应的匹配上的报文数据以及目标报文的尾部匹配报文数据拼接得到拼接报文数据。判断拼接报文数据与至少一个待过滤白名单字符串是否一致,若一致,则放行目标报文。在本专利技术的一些实施例中,将标识字符对应的报文数据以及目标报文的尾部匹配报文数据拼接得到拼接报文数据的步骤之后,包括:若拼接报文数据为至少一个待过滤白名单字符串的子串,则将白名单匹配表中与标识字符对应的匹配上的报文数据更新为拼接报文数据。将白名单匹配表中与标识字符对应的匹配信息中的匹配类型修改为中部匹配,并放行目标报文。第二方面,本申请实施例提供一种TCP协议报文过滤装置,装置包括:报文预处理模块,用于获取报文,并对报文进行预筛选处理,以获取目标报文。初步匹配模块,用于根据预先创建的白名单匹配表中预先设置的至少一个待过滤白名单字符串对目标报文进行白名单匹配,得到匹配结果。过滤模块,用于根据匹配结果和/或白名单匹配表对目标报文进行过滤处理。在本专利技术的一些实施例中,报文预处理模块包括:协议类型获取单元,用于获取报文的协议类型。端口获取单元,用于若协议类型为目标类型,则获取报文的目标端口号。长度获取单元,用于若目标端口号为预设端口号,则获取报文的长度。目标报文确定单元,用于若长度不小于预设长度,则确定报文为目标报文。在本专利技术的一些实施例中,初步匹配模块包括:目标报文数据获取单元,用于获取目标报文的报文数据。第一匹配结果确定单元,用于若至少一个待过滤白名单字符串中存在报文数据的子串,则确定匹配结果为全匹配。第二匹配结果确定单元,用于若至少一个待过滤白名单字符串中不存在报文数据的子串,则确定匹配结果为未匹配。在本专利技术的一些实施例中,过滤模块包括:标识获取单元,用于若匹配结果为未匹配,则获取目标报文的标识字符。标识查找单元,用于查找白名单匹配表中是否存在标识字符。头部匹配单元,用于若不存在,则根据至少一个待过滤白名单字符串以及目标报文的报文数据进行头部匹配处理。第一匹配信息获取单元,用于若头部匹配处理中匹配上的报文数据的最大匹配长度大于等于预设值,则获取头部匹配的匹配信息。放行单元,用于将匹配信息以及匹配上的报文数据存储至白名单匹配表中后,放行目标报文。在本专利技术的一些实施例中,过滤模块还包括:标识查找单本文档来自技高网...

【技术保护点】
1.一种TCP协议报文过滤方法,其特征在于,所述方法包括:/n获取报文,并对所述报文进行预筛选处理,以获取目标报文;/n根据预先创建的白名单匹配表中预先设置的至少一个待过滤白名单字符串对所述目标报文进行白名单匹配,得到匹配结果;/n根据所述匹配结果和/或所述白名单匹配表对所述目标报文进行过滤处理;/n其中,根据预先创建的白名单匹配表中预先设置的至少一个待过滤白名单字符串对所述目标报文进行白名单匹配,得到匹配结果的步骤,包括:/n获取所述目标报文的报文数据;/n若所述至少一个待过滤白名单字符串中存在所述报文数据的子串,则确定所述匹配结果为全匹配;/n若所述至少一个待过滤白名单字符串中不存在所述报文数据的子串,则确定所述匹配结果为未匹配;/n其中,根据所述匹配结果和/或所述白名单匹配表对所述目标报文进行过滤处理的步骤,包括:/n若所述匹配结果为未匹配,则获取所述目标报文的标识字符;/n查找所述白名单匹配表中是否存在所述标识字符;/n若不存在,则根据所述至少一个待过滤白名单字符串以及所述目标报文的报文数据进行头部匹配处理;/n若所述头部匹配处理中匹配上的报文数据的最大匹配长度大于等于预设值,则获取所述头部匹配的匹配信息;/n将所述匹配信息以及所述匹配上的报文数据存储至所述白名单匹配表中后,放行所述目标报文。/n...

【技术特征摘要】
1.一种TCP协议报文过滤方法,其特征在于,所述方法包括:
获取报文,并对所述报文进行预筛选处理,以获取目标报文;
根据预先创建的白名单匹配表中预先设置的至少一个待过滤白名单字符串对所述目标报文进行白名单匹配,得到匹配结果;
根据所述匹配结果和/或所述白名单匹配表对所述目标报文进行过滤处理;
其中,根据预先创建的白名单匹配表中预先设置的至少一个待过滤白名单字符串对所述目标报文进行白名单匹配,得到匹配结果的步骤,包括:
获取所述目标报文的报文数据;
若所述至少一个待过滤白名单字符串中存在所述报文数据的子串,则确定所述匹配结果为全匹配;
若所述至少一个待过滤白名单字符串中不存在所述报文数据的子串,则确定所述匹配结果为未匹配;
其中,根据所述匹配结果和/或所述白名单匹配表对所述目标报文进行过滤处理的步骤,包括:
若所述匹配结果为未匹配,则获取所述目标报文的标识字符;
查找所述白名单匹配表中是否存在所述标识字符;
若不存在,则根据所述至少一个待过滤白名单字符串以及所述目标报文的报文数据进行头部匹配处理;
若所述头部匹配处理中匹配上的报文数据的最大匹配长度大于等于预设值,则获取所述头部匹配的匹配信息;
将所述匹配信息以及所述匹配上的报文数据存储至所述白名单匹配表中后,放行所述目标报文。


2.如权利要求1所述的方法,其特征在于,对所述报文进行预筛选处理,以获取目标报文的步骤,包括:
获取所述报文的协议类型;
若所述协议类型为目标类型,则获取所述报文的目标端口号;
若所述目标端口号为预设端口号,则获取所述报文的长度;
若所述长度不小于预设长度,则确定所述报文为所述目标报文。


3.如权利要求1所述的方法,其特征在于,根据所述匹配结果和/或所述白名单匹配表对所述目标报文进行过滤处理的步骤,还包括:
查找所述白名单匹配表中是否存在所述标识字符;
若存在,则获取所述白名单匹配表中与所述标识字符对应的匹配上的报文数据以及其匹配信息;
若所述匹配信息中的匹配类型为头部匹配,则根据所述至少一个待过滤白名单字符串以及所述目标报文的报文数据进行尾部匹配处理;
若所述尾部匹配处理的最大匹配长度大于等于预设值,则获取所述头部匹配的匹配信息以及所述尾部匹配的匹配信息;
根据所述头部匹配的匹配信息以及所述尾部匹配的匹配信息计算匹配值;
若所述匹配值大于等于预设匹配值,则放行所述目标报文。


4.如权利要求3所述的方法,其特征在于,根据所述头部...

【专利技术属性】
技术研发人员:赵熙
申请(专利权)人:南京云信达科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1