网络报文解析方法及装置与流程

专利2024-12-04  67



1.本发明涉及数据处理技术领域,尤其涉及一种网络报文解析方法及装置。


背景技术:

2.随着各项数据安全法律法规的出台,数据安全愈发重要,而个人敏感数据或重要数据通常会通过数据库类应用进行传输,出于数据安全检测的需求,数据库协议还原就显得尤其重要。通常将敏感数据或重要数据承载在数据库协议块中,至少一个数据库协议块组成数据库应答信息,将数据库应答信息以网络报文的形式在网络中传输。
3.现有技术中,在接收到网络报文时,对网络报文进行解析,由于数据库协议块和网络报文并不是一一对应的,且网络报文的结束位置是变化的,多数情况下网络报文结束在数据库协议块内部,所以在解析网络报文时,会出现解析得到的数据库协议块不完整的情况,若解析得到的数据库协议块不完整,则将解析得到的不完整的数据库协议块和当前解析位置作为临时信息进行存储,待接收到后续的网络报文时继续进行解析。
4.但上述现有技术中,若解析得到的不完整的数据库协议块太多,就会导致临时信息占用较大的存储资源,从而增大了存储资源的开销。


技术实现要素:

5.针对现有技术中的问题,本发明实施例提供一种网络报文解析方法及装置。
6.具体地,本发明实施例提供了以下技术方案:
7.第一方面,本发明实施例提供了一种网络报文解析方法,包括:
8.对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;
9.确定解析得到的数据长度是否小于完整的数据库协议块的长度;
10.在确定解析得到的数据长度小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置。
11.进一步地,所述对当前网络报文进行解析,包括:
12.对环形队列中的所述当前网络报文进行解析;所述预设标记设置在所述环形队列上。
13.进一步地,在所述将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置之后,所述方法还包括:
14.在所述环形队列中写入下一网络报文时,从所述预设标记的当前位置开始继续进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。
15.进一步地,所述方法还包括:
16.在确定解析得到的数据长度等于完整的数据库协议块的长度时,将所述预设标记停止在所述当前解析位置,直至所述环形队列中写入下一网络报文时,从所述当前解析位
置开始继续对所述下一网络报文进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。
17.进一步地,所述方法还包括:
18.在确定解析得到的数据长度等于完整的数据库协议块的长度时,输出解析得到的数据,并从所述环形队列中删除所述当前网络报文。
19.进一步地,所述方法还包括:
20.在确定解析得到的数据长度大于完整的数据库协议块的长度时,确定解析得到的数据长度是否等于n倍的完整的数据库协议块的长度;所述n为大于1的整数;
21.在确定解析得到的数据长度不等于n倍的完整的数据库协议块的长度时,丢弃解析得到的数据中的目标数据,并将所述预设标记从当前解析位置移动至所述当前网络报文中所述目标数据的起始位置,直至所述环形队列中写入下一网络报文时,从所述预设标记的当前位置开始继续进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤;
22.所述目标数据为解析得到的数据中不完整的数据库协议块。
23.进一步地,所述方法还包括:
24.在确定解析得到的数据长度大于完整的数据库协议块的长度时,确定解析得到的数据长度是否等于n倍的完整的数据库协议块的长度;所述n为大于1的整数;
25.在确定解析得到的数据长度不等于n倍的完整的数据库协议块的长度时,输出解析得到的数据中所有完整的数据库协议块;
26.在确定解析得到的数据长度等于n倍的完整的数据库协议块的长度时,输出解析得到的数据,并从所述环形队列中删除所述当前网络报文。
27.进一步地,所述对环形队列中的当前网络报文进行解析,包括:
28.从所述预设标记的预设读位置开始对所述环形队列中的当前网络报文进行解析;
29.所述将预设标记实时移动至当前解析位置,包括:
30.将所述预设标记从所述预设读位置实时移动至所述当前解析位置。
31.进一步地,所述方法还包括:
32.接收网络报文;
33.将所述网络报文写入所述环形队列中。
34.进一步地,所述预设标记包括游标。
35.第二方面,本发明实施例还提供了一种网络报文解析装置,包括:
36.第一解析单元,用于对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;
37.第一确定单元,用于确定解析得到的数据长度是否小于完整的数据库协议块的长度;
38.移动单元,用于在确定解析得到的数据长度小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置。
39.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所
述网络报文解析方法。
40.第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述网络报文解析方法。
41.第五方面,本发明实施例还提供了一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面所述网络报文解析方法。
42.本发明实施例提供的网络报文解析方法及装置,对当前网络报文进行解析,并实时移动预设标记至当前解析位置,若确定解析得到的数据长度小于完整的数据库协议块的长度,则丢弃解析得到的数据,也就是丢弃不完整的数据库协议块,并将预设标记回退至对当前网络报文进行解析的开始位置。即本发明增加了预设标记,无需存储解析得到的不完整的数据库协议块,只需基于是否解析得到完整的数据库协议块来对应移动预设标记的位置即可,从而在降低存储资源开销的同时,能够直观地看到网络报文的解析位置。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是本发明提供的网络报文解析方法的流程示意图之一;
45.图2是本发明实施例提供的环形队列的结构示意图之一;
46.图3是本发明提供的网络报文解析方法的流程示意图之二;
47.图4是本发明实施例提供的环形队列的结构示意图之二;
48.图5是本发明提供的网络报文解析方法的流程示意图之三;
49.图6是本发明实施例提供的环形队列的结构示意图之三;
50.图7是本发明提供的网络报文解析装置的结构示意图;
51.图8是本发明提供的电子设备的实体结构示意图。
具体实施方式
52.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
53.图1是本发明提供的网络报文解析方法的流程示意图之一,如图1所示,该网络报文解析方法包括以下步骤:
54.步骤101、对当前网络报文进行解析,并将预设标记实时移动至当前解析位置。
55.其中,预设标记可以为游标,游标可以当作一个指针,可以指定网络报文中的任何位置,并允许用户对指定位置的数据进行处理。
56.可选地,对环形队列中的所述当前网络报文进行解析;所述预设标记设置在所述环形队列上。
57.其中,网络报文可以存储在队列中,原则上队列形式可以为环形、空心矩形、空心
三角形等任意形式,以下以环形队列为例进行解释说明。
58.环形队列是基于队列实现,逻辑上首尾相接的数据结构;进行数据处理的基本单位是网络报文,而进行数据库应答信息处理的基本单位是数据库协议块,至少一个数据库协议块组成数据库应答信息,将数据库应答信息携带在网络报文中;当前解析位置为实时的解析位置。
59.示例地,电子设备在向服务器发送数据请求时,服务器会基于该数据请求确定对应的应答数据(例如,用户敏感数据或重要数据),并将对应的应答数据携带在至少一个数据库协议块中,至少一个数据库协议块组成数据库应答信息,通过网络报文的形式发送给电子设备;由电子设备将接收到的网络报文写入环形队列中,并对环形队列中的当前网络报文进行解析,同时将预设标记实时移动至当前解析位置,即预设标记随着解析位置的改变而改变。
60.需要说明的是,在接收到网络报文时,可以将网络报文直接存储在预设存储空间中,也可以写入环形队列中,本发明对此不作限定。
61.步骤102、确定解析得到的数据长度是否小于完整的数据库协议块的长度。
62.其中,确定解析得到的数据长度是否小于完整的数据库协议块的长度,具体实现中可以为确定解析得到的数据的字节数是否小于预设字节数,其中,预设字节数用于表示一个完整的数据库协议块;还可以为确定解析得到的数据的比特数是否小于预设比特数,预设比特数用于表示一个完整的数据库协议块,下面描述均以确定解析得到的数据的字节数是否小于预设字节数为例进行说明。
63.示例地,在对当前网络报文解析结束时,将解析得到的数据的字节数与预设字节数进行比较,在确定解析得到的数据的字节数小于预设字节数时,说明解析得到的数据不是一个完整的数据库协议块,也就说明当前网络报文中不包括一个完整的数据库协议块;在确定解析得到的数据的字节数等于预设字节数时,说明解析得到的数据是一个完整的数据库协议块,也就说明当前网络报文中包括一个完整的数据库协议块;在确定解析得到的数据的字节数大于预设字节数时,说明解析得到的数据可能包括至少一个完整的数据库协议块,也可能同时包括至少一个完整的数据库协议块和不完整的数据库协议块。
64.需要说明的是,基于解析得到的数据长度是否小于完整的数据库协议块的长度的确定结果的不同,下述执行的步骤也不同;在确定解析得到的数据长度是否小于完整的数据库协议块的长度时,则执行下述步骤103;在确定解析得到的数据长度等于完整的数据库协议块的长度时,则执行下述步骤104;在确定解析得到的数据长度大于完整的数据库协议块的长度时,则执行下述步骤105和步骤106。
65.步骤103、在确定解析得到的数据长度是否小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置。
66.示例地,在确定解析得到的数据的字节数小于预设字节数时,说明解析得到的数据不是一个完整的数据库协议块,此时需要将解析得到的数据丢弃,不进行存储,同时将预设标记从当前解析位置回退至对当前网络报文进行解析的开始位置。
67.进一步地,在所述将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置之后,网络报文解析方法还包括以下步骤:
68.在所述环形队列中写入下一网络报文时,从所述预设标记的当前位置开始继续进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。
69.示例地,在确定解析得到的数据的字节数小于预设字节数时,将预设标记从当前解析位置回退至对当前网络报文进行解析的开始位置之后,在监测到环形队列中写入下一网络报文时,从预设标记的当前位置(当前网络报文进行解析的开始位置)开始继续对后续网络报文进行解析,同时实时移动预设标记至当前解析位置,并将针对本次解析得到的数据的字节数与预设字节数进行比较,即返回至上述步骤102,并基于比较结果执行对应的步骤,如此循环,对每个写入环形队列中的网络报文进行解析。
70.图2是本发明实施例提供的环形队列的结构示意图之一,如图2所示,斜线部分为当前网络报文,点状部分为数据库协议块,可以看出图2中当前网络报文只包括部分数据库协议块(不完整的数据库协议块),所以,在将当前网络报文解析完成后,将解析得到的数据丢弃,并将预设标记回退至当前网络报文的起始位置,预设标记的回退位置如图2中的箭头所示。
71.需要说明的是,预设字节数可基于具体的数据库协议块的结构来确定,针对不同的数据库协议块的结构,可设置对应的预设字节数,所以,本发明可适用于多种数据库协议块的结构,可实现不同数据库协议块的解析,具备通用性。
72.本发明实施例提供的网络报文解析方法,对当前网络报文进行解析,并实时移动预设标记至当前解析位置,若确定解析得到的数据长度小于完整的数据库协议块的长度,则丢弃解析得到的数据,也就是丢弃不完整的数据库协议块,并将预设标记回退至对当前网络报文进行解析的开始位置。即本发明增加了预设标记,无需存储解析得到的不完整的数据库协议块,只需基于是否解析得到完整的数据库协议块来对应移动预设标记的位置即可,从而在降低存储资源开销的同时,能够直观地看到网络报文的解析位置。
73.可选地,图3是本发明提供的网络报文解析方法的流程示意图之二,如图3所示,在步骤102之后,该网络报文解析方法还包括以下步骤:
74.步骤104、在确定解析得到的数据长度等于完整的数据库协议块的长度时,将所述预设标记停止在所述当前解析位置,直至所述环形队列中写入下一网络报文时,从所述当前解析位置开始继续对所述下一网络报文进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。
75.其中,下一网络报文写入环形队列的当前网络报文之后。
76.示例地,在确定解析得到的数据的字节数等于预设字节数时,说明当前网络报文中包含一个完整的数据库协议块,此时将预设标记停留在当前网络报文解析完成之后的位置,也就是当前解析位置,直至监测到环形队列中写入下一网络报文时,从预设标记所在的当前解析位置开始继续对下一网络报文进行解析,同时实时移动预设标记至当前解析位置,并将针对下一网络报文解析得到的数据的字节数与预设字节数进行比较,即返回至上述步骤102,并基于比较结果执行对应的步骤,如此循环,对每个写入环形队列中的网络报文进行解析。
77.本发明实施例提供的网络报文解析方法,在确定解析得到的数据长度等于完整的
数据库协议块的长度时,将预设标记停留在当前网络报文解析完成之后的位置,便于在接收到下一网络报文时,从预设标记所在的当前解析位置开始继续对下一网络报文进行解析,以确保能够解析得到完整的数据库协议块,而且不需要存储解析得到的不完整的数据库协议块,只需移动预设标记位置即可,简化了网络报文的解析过程,同时也降低了存储资源的开销。
78.可选地,在确定解析得到的数据长度等于完整的数据库协议块的长度时,输出解析得到的数据,并从所述环形队列中删除所述当前网络报文。
79.示例地,在确定解析得到的数据的字节数等于预设字节数时,还需要将解析得到的数据进行输出,若解析得到的数据中包含用户敏感数据或者重要数据时,还可以提示用户解析得到的数据中包含用户敏感数据或者重要数据,便于对用户敏感数据或者重要数据进行安全检测和防护;另外,由于环形队列中的当前网络报文已经被解析完成,所以可以调用读方法将处理过的当前网络报文移出环形队列,便于在接收到下一网络报文时,将下一网络报文写入环形队列中,如此循环,使得接收到的每个网络报文都可以写入环形队列中。
80.图4是本发明实施例提供的环形队列的结构示意图之二,如图4所示,斜线部分为当前网络报文,点状部分为数据库协议块,可以看出图4中当前网络报文包括一个完整的数据库协议块,所以,在将当前网络报文解析完成后,将解析得到的数据(完整的数据库协议块)输出,并将预设标记停留在当前网络报文解析的结束位置,预设标记当前的位置如图4中的箭头所示,等待下一网络报文写入环形队列,继续对下一网络报文进行解析。
81.本发明实施例提供的网络报文解析方法,在确定解析得到的数据长度等于完整的数据库协议块的长度时,输出解析得到的数据,若解析得到的数据中包含用户敏感数据或者重要数据时,可以提示用户解析得到的数据中包含用户敏感数据或者重要数据,便于对用户敏感数据或者重要数据进行安全检测和防护;另外,将处理过的当前网络报文移出环形队列,便于在接收到下一网络报文时,将下一网络报文写入环形队列中,以实现每个网络报文的解析。
82.可选地,图5是本发明提供的网络报文解析方法的流程示意图之三,如图5所示,在步骤102之后,该网络报文解析方法还包括以下步骤:
83.步骤105、在确定解析得到的数据长度大于完整的数据库协议块的长度时,确定解析得到的数据长度是否等于n倍的完整的数据库协议块的长度。
84.其中,所述n为大于1的整数。
85.示例地,在确定解析得到的数据的字节数大于预设字节数时,说明解析得到的数据可能包括至少一个完整的数据库协议块,也可能同时包括至少一个完整的数据库协议块和不完整的数据库协议块,所以需要将解析得到的数据的字节数与n倍的预设字节数进行比较,在确定解析得到的数据的字节数不等于n倍的预设字节数时,说明解析得到的数据中既包括完整的数据库协议块,又包括不完整的数据库协议块;也就是当前网络报文中既包括完整的数据库协议块,又包括不完整的数据库协议块;在确定解析得到的数据的字节数等于n倍的预设字节数时,说明解析得到的数据中只包括完整的数据库协议块,也就是当前网络报文中只包括完整的数据库协议块。
86.需要说明的是,基于解析得到的数据长度与n倍的完整的数据库协议块的长度比较的结果不同,下述执行的步骤也不同,在确定解析得到的数据长度不等于n倍的完整的数
据库协议块的长度时,则执行下述步骤106;在确定解析得到的数据长度等于n倍的完整的数据库协议块的长度时,则直接输出解析得到的数据,并从环形队列中删除当前网络报文。
87.步骤106、在确定解析得到的数据长度不等于n倍的完整的数据库协议块的长度时,丢弃解析得到的数据中的目标数据,并将所述预设标记从当前解析位置移动至所述当前网络报文中所述目标数据的起始位置,直至所述环形队列中写入下一网络报文时,从所述预设标记的当前位置开始继续进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。
88.其中,所述目标数据为解析得到的数据中不完整的数据库协议块。
89.示例地,在确定解析得到的数据的字节数不等于n倍的预设字节数时,此时需要将解析得到的数据中的目标数据丢弃,不进行存储,该目标数据为解析得到的数据中除从起始位置起的所有整数倍的预设字节数对应的数据之外的数据,即目标数据为解析得到的数据中不完整的数据库协议块信息;同时将预设标记从当前解析位置回退至当前网络报文中目标数据的起始位置,便于在接收到下一网络报文时,从预设标记所在的当前位置开始继续对网络报文进行解析,同时将实时移动预设标记至当前解析位置,并将针对当前网络报文中的剩余网络报文和下一网络报文解析得到的数据的字节数与预设字节数进行比较,即返回至上述步骤102,并基于比较结果执行对应的步骤,如此循环,对每个写入环形队列中的网络报文进行解析。
90.图6是本发明实施例提供的环形队列的结构示意图之三,如图6所示,斜线部分为当前网络报文,网格部分为下一网络报文,点状部分为数据库协议块1,蜂窝状部分为数据库协议块2,可以看出图6中当前网络报文包括一个完整的数据库协议块和一个不完整的数据库协议块,所以,在将当前网络报文解析完成后,将解析得到的不完整的数据库协议块丢弃,也就是丢弃斜线部分对应的数据库协议块2的不完整部分,并将预设标记回退至数据库协议块2的起始位置,预设标记的回退位置如图6中的箭头所示。
91.本发明实施例提供的网络报文解析方法,在确定解析得到的数据长度不等于n倍的完整的数据库协议块的长度时,将解析得到的数据中的目标数据丢弃,不进行存储,降低了存储资源的开销;同时将预设标记回退至当前网络报文中目标数据的起始位置,便于在接收到下一网络报文时,从预设标记所在的当前位置开始继续对网络报文进行解析,以确保能够解析得到完整的数据库协议块。
92.可选地,在确定解析得到的数据长度大于完整的数据库协议块的长度时,确定解析得到的数据长度是否等于n倍的完整的数据库协议块的长度;所述n为大于1的整数;
93.在确定解析得到的数据长度不等于n倍的完整的数据库协议块的长度时,输出解析得到的数据中所有完整的数据库协议块;
94.在确定解析得到的数据长度等于n倍的完整的数据库协议块的长度时,输出解析得到的数据,并从所述环形队列中删除所述当前网络报文。
95.示例地,在确定解析得到的数据的字节数不等于n倍的预设字节数时,还需要将解析得到的数据中从起始位置起的所有整数倍的预设字节数对应的数据进行输出,即输出解析得到的数据中的完整的数据库协议块;若完整的数据库协议块中包含用户敏感数据或者重要数据时,还可以提示用户输出的数据中包含用户敏感数据或者重要数据,便于对用户敏感数据或者重要数据进行安全检测和防护。
96.示例地,在确定解析得到的数据的字节数等于n倍的预设字节数时,还需要将解析得到的数据进行输出,若解析得到的数据中包含用户敏感数据或者重要数据时,还可以提示用户解析得到的数据中包含用户敏感数据或者重要数据,便于对用户敏感数据或者重要数据进行安全检测和防护;另外,由于环形队列中的当前网络报文已经被解析完成,所以可以调用读方法将处理过的当前网络报文移出环形队列,便于在接收到下一网络报文时,将下一网络报文写入环形队列中,如此循环,使得接收到的每个网络报文都可以写入环形队列中。
97.可选地,该网络报文解析方法还包括以下步骤:
98.接收网络报文,将所述网络报文写入所述环形队列中。
99.示例地,电子设备可以接收服务器发送的每个网络报文,在接收到网络报文时,调用写方法将网络报文写入至环形队列中,便于在环形队列中对网络报文进行解析;在具体应用时,可采用peek_clear表示将预设标记移动至预设读位置,采用peek_has_n表示判断预设标记的预设读位置后是否包括预设字节数的数据,采用peek_get_n表示从预设标记的预设读位置开始读取预设字节数的数据,采用peek_unget表示实时向前移动预设标记。
100.可选地,对环形队列中的当前网络报文进行解析具体可通过以下方式实现:
101.从所述预设标记的预设读位置开始对所述环形队列中的当前网络报文进行解析,并将所述预设标记从所述预设读位置实时移动至所述当前解析位置。
102.其中,预设读位置为在环形队列中开始写入网络报文的起始位置。
103.示例地,在执行网络报文解析方法之前,可以将预设标记设置在预设读位置,这样当环形队列中从预设读位置开始写入当前网络报文时,就可以从预设标记所在的预设读位置开始对网络报文进行解析,并将预设标记从预设读位置开始实时移动至当前解析位置。
104.本发明实施例提供的网络报文解析方法,在对网络报文进行解析之前,将预设标记设置在预设读位置,这样当环形队列中从预设读位置开始写入当前网络报文时,就可以从预设标记所在的预设读位置开始对网络报文进行解析,实现了通过预设标记实现对网络报文的解析。
105.综上可知,本发明将接收到的网络报文写入环形队列中,由环形队列负责网络报文的数据处理,通过预设标记负责数据库协议块的解析,预设标记一直指向完整的数据库协议块的起始位置或者结束位置,从而将网络报文和数据库协议块的处理独立开来;当解析得到不完整的数据库协议块时,将预设标记回退至上一个完整的数据库协议块解析完成的位置,进而避免了临时信息的存储,节省了内存的开销,优化了提取数据库协议块的方法。
106.图7是本发明提供的网络报文解析装置的结构示意图,如图7所示,该网络报文解析装置包括第一解析单元701、确定单元702和移动单元703;其中:
107.第一解析单元701,用于对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;
108.第一确定单元702,用于确定解析得到的数据长度是否小于完整的数据库协议块的长度;
109.移动单元703,用于在确定解析得到的数据长度是否小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前
网络报文进行解析的开始位置。
110.本发明实施例提供的网络报文解析装置,对环形队列中的当前网络报文进行解析,并实时移动预设标记至当前解析位置,若确定解析得到的数据长度小于完整的数据库协议块的长度,则丢弃解析得到的数据,也就是丢弃不完整的数据库协议块,并将预设标记回退至对当前网络报文进行解析的开始位置。即本发明增加了预设标记,无需存储解析得到的不完整的数据库协议块,只需基于是否解析得到完整的数据库协议块来对应移动预设标记的位置即可,在降低存储资源开销的同时,能够直观地看到网络报文的解析位置。
111.基于上述任一实施例,所述第一解析单元701具体用于:
112.对环形队列中的所述当前网络报文进行解析;所述预设标记设置在所述环形队列上。
113.基于上述任一实施例,所述装置还包括:
114.第二解析单元,用于在所述环形队列中写入下一网络报文时,从所述预设标记的当前位置开始继续进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。
115.基于上述任一实施例,所述装置还包括:
116.第三解析单元,用于在确定解析得到的数据长度等于完整的数据库协议块的长度时,将所述预设标记停止在所述当前解析位置,直至所述环形队列中写入下一网络报文时,从所述当前解析位置开始继续对所述下一网络报文进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。
117.基于上述任一实施例,所述装置还包括:
118.第一输出单元,用于在确定解析得到的数据长度等于完整的数据库协议块的长度时,输出解析得到的数据,并从所述环形队列中删除所述当前网络报文。
119.基于上述任一实施例,所述装置还包括:
120.第二确定单元,用于在确定解析得到的数据长度大于完整的数据库协议块的长度时,确定解析得到的数据长度是否等于n倍的完整的数据库协议块的长度;所述n为大于1的整数;
121.第四解析单元,用于在确定解析得到的数据长度不等于n倍的完整的数据库协议块的长度时,丢弃解析得到的数据中的目标数据,并将所述预设标记从当前解析位置移动至所述当前网络报文中所述目标数据的起始位置,直至所述环形队列中写入下一网络报文时,从所述预设标记的当前位置开始继续进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤;
122.所述目标数据为解析得到的数据中不完整的数据库协议块。
123.基于上述任一实施例,所述装置还包括:
124.第三确定单元,用于在确定解析得到的数据长度大于完整的数据库协议块的长度时,确定解析得到的数据长度是否等于n倍的完整的数据库协议块的长度;所述n为大于1的整数;
125.第二输出单元,用于在确定解析得到的数据长度不等于n倍的完整的数据库协议
块的长度时,输出解析得到的数据中从起始位置起的所有完整的数据库协议块;
126.第三输出单元,用于在确定解析得到的数据长度等于n倍的完整的数据库协议块的长度时,输出解析得到的数据,并从所述环形队列中删除所述当前网络报文。
127.基于上述任一实施例,所述装置还包括:
128.接收单元,用于接收网络报文;
129.写入单元,用于将所述网络报文写入所述环形队列中。
130.基于上述任一实施例,所述第一解析单元701具体用于:
131.从所述预设标记的预设读位置开始对所述环形队列中的当前网络报文进行解析;
132.所述将预设标记实时移动至当前解析位置,包括:
133.将所述预设标记从所述预设读位置实时移动至所述当前解析位置。
134.基于上述任一实施例,所述预设标记包括游标。
135.图8是本发明提供的电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:
136.对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;
137.确定解析得到的数据长度是否小于完整的数据库协议块的长度;
138.在确定解析得到的数据长度是否小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置。
139.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
140.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的网络报文解析方法,该方法包括:
141.对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;
142.确定解析得到的数据长度是否小于完整的数据库协议块的长度;
143.在确定解析得到的数据长度是否小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置。
144.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的网络报文解析方法,该方法包括:
145.对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;
146.确定解析得到的数据长度是否小于完整的数据库协议块的长度;
147.在确定解析得到的数据长度是否小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置。
148.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
149.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
150.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种网络报文解析方法,其特征在于,包括:对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;确定解析得到的数据长度是否小于完整的数据库协议块的长度;在确定解析得到的数据长度小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置。2.根据权利要求1所述的网络报文解析方法,其特征在于,所述对当前网络报文进行解析,包括:对环形队列中的所述当前网络报文进行解析;所述预设标记设置在所述环形队列上。3.根据权利要求2所述的网络报文解析方法,其特征在于,在所述将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置之后,所述方法还包括:在所述环形队列中写入下一网络报文时,从所述预设标记的当前位置开始继续进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。4.根据权利要求2所述的网络报文解析方法,其特征在于,所述方法还包括:在确定解析得到的数据长度等于完整的数据库协议块的长度时,将所述预设标记停止在所述当前解析位置,直至所述环形队列中写入下一网络报文时,从所述当前解析位置开始继续对所述下一网络报文进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤。5.根据权利要求2所述的网络报文解析方法,其特征在于,所述方法还包括:在确定解析得到的数据长度等于完整的数据库协议块的长度时,输出解析得到的数据,并从所述环形队列中删除所述当前网络报文。6.根据权利要求2所述的网络报文解析方法,其特征在于,所述方法还包括:在确定解析得到的数据长度大于完整的数据库协议块的长度时,确定解析得到的数据长度是否等于n倍的完整的数据库协议块的长度;所述n为大于1的整数;在确定解析得到的数据长度不等于n倍的完整的数据库协议块的长度时,丢弃解析得到的数据中的目标数据,并将所述预设标记从当前解析位置移动至所述当前网络报文中所述目标数据的起始位置,直至所述环形队列中写入下一网络报文时,从所述预设标记的当前位置开始继续进行解析,将所述预设标记实时移动至当前解析位置,并返回至所述确定解析得到的数据长度是否小于完整的数据库协议块的长度的步骤;所述目标数据为解析得到的数据中不完整的数据库协议块。7.根据权利要求2所述的网络报文解析方法,其特征在于,所述方法还包括:在确定解析得到的数据长度大于完整的数据库协议块的长度时,确定解析得到的数据长度是否等于n倍的完整的数据库协议块的长度;所述n为大于1的整数;在确定解析得到的数据长度不等于n倍的完整的数据库协议块的长度时,输出解析得到的数据中所有完整的数据库协议块;在确定解析得到的数据长度等于n倍的完整的数据库协议块的长度时,输出解析得到的数据,并从所述环形队列中删除所述当前网络报文。8.根据权利要求2所述的网络报文解析方法,其特征在于,所述对环形队列中的当前网
络报文进行解析,包括:从所述预设标记的预设读位置开始对所述环形队列中的当前网络报文进行解析;所述将预设标记实时移动至当前解析位置,包括:将所述预设标记从所述预设读位置实时移动至所述当前解析位置。9.根据权利要求2-8任一项所述的网络报文解析方法,其特征在于,所述方法还包括:接收网络报文;将所述网络报文写入所述环形队列中。10.根据权利要求2-8任一项所述的网络报文解析方法,其特征在于,所述预设标记包括游标。11.一种网络报文解析装置,其特征在于,包括:第一解析单元,用于对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;第一确定单元,用于确定解析得到的数据长度是否小于完整的数据库协议块的长度;移动单元,用于在确定解析得到的数据长度小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将所述预设标记从所述当前解析位置移动至对所述当前网络报文进行解析的开始位置。12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至10任一项所述网络报文解析方法。13.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至10任一项所述网络报文解析方法。14.一种计算机程序产品,其上存储有可执行指令,其特征在于,该指令被处理器执行时使处理器实现如权利要求1至10中任一项所述网络报文解析方法。

技术总结
本发明实施例提供一种网络报文解析方法,涉及数据处理技术领域,其中方法包括:对当前网络报文进行解析,并将预设标记实时移动至当前解析位置;确定解析得到的数据长度是否小于完整的数据库协议块的长度;在确定解析得到的数据长度小于完整的数据库协议块的长度时,丢弃解析得到的数据,并将预设标记从所述当前解析位置移动至对当前网络报文进行解析的开始位置。本发明增加了预设标记,无需存储解析得到的不完整的数据库协议块,只需基于是否解析得到完整的数据库协议块来对应移动预设标记的位置即可,从而在降低存储资源开销的同时,能够直观地看到网络报文的解析位置。能够直观地看到网络报文的解析位置。能够直观地看到网络报文的解析位置。


技术研发人员:刘诗源 姜染石 谈文彬
受保护的技术使用者:奇安信网神信息技术(北京)股份有限公司
技术研发日:2022.06.17
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-10690.html

最新回复(0)