CN112966166A - 一种请求语句以及应答语句的索引生成与匹配的方法及装置 - Google Patents
一种请求语句以及应答语句的索引生成与匹配的方法及装置 Download PDFInfo
- Publication number
- CN112966166A CN112966166A CN202110174341.0A CN202110174341A CN112966166A CN 112966166 A CN112966166 A CN 112966166A CN 202110174341 A CN202110174341 A CN 202110174341A CN 112966166 A CN112966166 A CN 112966166A
- Authority
- CN
- China
- Prior art keywords
- space
- request
- response
- data
- data space
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的请求语句以及应答语句的索引生成与匹配的方法,包括:获取网络数据写入网络数据空间;根据网络数据的数据来源从网络数据空间中分离得到请求数据空间与应答数据空间;处理请求数据空间与应答数据空间,得到与请求数据空间对应的第一连续空间和请求匹配值,以及与应答数据空间对应的第二连续空间和应答匹配值,第一连续空间存储有请求索引数据,第二连续空间存储有应答索引数据;确定相同的请求匹配值和应答匹配值对应的第一连续空间和第二连续空间,将第二连续空间中与第一连续空间对应的索引地址信息更新至第一连续空间的空白位置。本发明还提供一种请求语句以及应答语句的索引生成与匹配装置。本发明实现了请求与应答的索引生成与匹配。
Description
技术领域
本发明属于数据库技术领域,尤其涉及一种请求语句以及应答语句的索引生成与匹配的方法及装置。
背景技术
随着社会的发展,人们对各种信息以及数据的获取需求越来越高,所使用的网络也变得越来越错综复杂,使得客户端与服务器之间发生的请求与应答的流程也变得多样化。请求与应答是否能够正确地匹配在一起,决定了数据分析的正确性。
因此,能否正确地得到与请求对应的应答,对于企业解决一些频繁出现的系统故障有着极为重要的意义。
关于如何匹配所发出的请求与所接收到的对应应答,现有技术中比较通用的做法是对两者同时处理。然而,在某些特定的场景下,如请求与应答通过不同的交换机进行传输时,由于两者分别处于不同的传输链路中,不同的传输链路中充满着不同来源的数据,传输情况较为错综复杂。因此,从不同的交换机中获取对应的请求与应答的难度较大,导致请求与应答之间的匹配效果较差。
发明内容
本发明实施例提供了一种请求语句以及应答语句的索引生成与匹配的方法,旨在解决现有技术中,请求与应答通过不同的交换机进行传输而处在不同的传输链路中时,传输情况较为错综复杂,导致获取得到对应的请求与应答的难度较大,请求与应答之间的匹配效果较差的问题。
本发明是这样实现的,一种请求语句以及应答语句的索引生成与匹配的方法,包括以下步骤:
获取网络数据写入网络数据空间;
根据所述网络数据的数据来源从所述网络数据空间中分离得到请求数据空间与应答数据空间;
分别处理所述请求数据空间与所述应答数据空间,得到与所述请求数据空间对应的第一连续空间和请求匹配值,以及与所述应答数据空间对应的第二连续空间和应答匹配值,所述第一连续空间存储有请求索引数据,所述第二连续空间存储有应答索引数据;
确定相同的所述请求匹配值和所述应答匹配值分别对应的所述第一连续空间和所述第二连续空间,将所述第二连续空间中与所述第一连续空间对应的索引地址信息更新至所述第一连续空间中预留的空白位置处。
本发明还提供了一种请求语句以及应答语句的索引生成与匹配装置,其包括:
获取单元,用于获取网络数据写入网络数据空间;
分离单元,用于根据所述网络数据的数据来源从所述网络数据空间中分离得到请求数据空间与应答数据空间;
处理单元,用于分别处理所述请求数据空间与所述应答数据空间,得到与所述请求数据空间对应的第一连续空间和请求匹配值,以及与所述应答数据空间对应的第二连续空间和应答匹配值,所述第一连续空间存储有请求索引数据,所述第二连续空间存储有应答索引数据;
更新单元,用于确定相同的所述请求匹配值和所述应答匹配值分别对应的所述第一连续空间和所述第二连续空间,将所述第二连续空间中与所述第一连续空间对应的索引地址信息更新至所述第一连续空间中预留的空白位置处。
本发明实施例的有益效果是,实现了第一连续空间与第二连续空间之间的关联,根据更新于第一连续空间内的索引地址信息即可匹配得到对应的第二连续空间以及应答数据空间,实现处于相同连接下乃至不同连接下的请求与应答的正确匹配,提高匹配效率。通过采用分别处理请求与应答的双流技术,既适用于传统模式下对请求与应答的抓包分析,又能对特殊复杂场景下请求与应答的传输加以分析还原,实现对不同链路下错综复杂的请求与应答的索引生成与进一步的匹配,提升请求与应答的匹配效率与准确度。
附图说明
图1是本发明实施例的服务端与客户端之间的结构示意图;
图2是本发明实施例的请求语句以及应答语句的索引生成与匹配方法的流程示意图;
图3至图7是本发明实施例的请求语句以及应答语句的索引生成与匹配方法的流程示意图;
图8至图12是本发明实施例的请求语句以及应答语句的索引生成与匹配装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
请参阅图1至图3,本发明实施例的请求语句以及应答语句的索引生成与匹配方法包括以下步骤:
S1:获取网络数据写入网络数据空间;
S2:根据网络数据的数据来源从网络数据空间中分离得到请求数据空间与应答数据空间;
S3:分别处理请求数据空间与应答数据空间,得到与请求数据空间对应的第一连续空间和请求匹配值,以及与应答数据空间对应的第二连续空间和应答匹配值,第一连续空间存储有请求索引数据,第二连续空间存储有应答索引数据;
S4:确定相同的请求匹配值和应答匹配值分别对应的第一连续空间和第二连续空间,将第二连续空间中与第一连续空间对应的索引地址信息更新至第一连续空间中预留的空白位置处。
本发明实施例中,实现了第一连续空间与第二连续空间之间的关联,根据更新于第一连续空间内的索引地址信息即可匹配得到对应的第二连续空间以及应答数据空间。第一连续空间与第二连续空间也可以称为请求索引文件与应答索引文件,即,根据更新于请求索引文件内的应答索引文件的索引地址信息,即可准确地匹配得到对应的应答索引文件,实现处于相同连接下乃至不同连接下的请求与应答的正确匹配,提高匹配效率。
本发明实施例通过采用分别处理请求与应答的双流技术,既适用于传统模式下对请求与应答的抓包分析,又能对特殊复杂场景下请求与应答的传输加以分析还原,实现对不同链路下错综复杂的请求与应答的索引生成与进一步的匹配,提升请求与应答的匹配效率与准确度。
请参阅图1,图1为服务端(Date Base,DB)与客户端(Application,APP)之间的结构示意图,一个服务端与至少一个客户端通信连接并发生数据交互。服务端与客户端之间的交互是通过网络请求和网络应答建立的,并通过传输控制协议(TransmissionControlProtocol,TCP)进行数据传输交互,通过实时抓取并解析网络Dump包中的流量,可检测发现服务端与客户端的实时运行状态,实现对两者之间的运行状态的监控。
服务端与客户端之间正常的一次数据交互为:一次网络请求对应一次网络应答,完成一次请求与应答即为完成一次数据交互。例如,客户端对服务端发送一次网络请求,服务端对客户端回复一次网络应答,此时,服务端与客户端之间即完成一次数据交互,在同一个连接下的每一个请求与应答形成一一对应的关系。
可以理解,由于数据的形成会占据空间,因此空间也可以认为是数据的抽象形态结构,本发明实施例中以“空间”的概念指代文件、数据流、数据包等概念。请结合图2,在本发明实施例中,网络数据空间可以理解为上述的Dump包,即网络数据空间在本发明实施例中为“数据包”的形态结构。在其他实施例中,网络数据空间还可以为其他存储有数据的形态结构,如文件、流、帧等,并不限于上述的Dump包的形态,在此不做具体限制。
在步骤S1中,对于同一连接下的请求与应答,可通过tcpdump等网络抓包工具在旁路上获取物理网卡的网络数据写入并生成Dump包,即网络数据空间,从旁路上获取网络数据可在得到网络数据的基础上,避免对主路传输数据的影响,保证数据的正常交互。Dump包中包含了请求包(request,Q包)与应答包(response,R包),请求包即上述的请求数据空间,应答包即上述的应答数据空间。
即,在本发明实施例中,请求数据空间与应答数据空间也均为数据包的形态结构。在其他实施例中,请求数据空间与应答数据空间也可以为其他存储有请求数据与应答数据的形态结构,在此不做具体限制。
可以理解,由于请求数据空间与应答数据空间的数据来源不同,如可能为不同的发起方(客户端或服务端)、不同的IP与端口(源地址与源端口,应答地址与应答端口)等等。
因此,在步骤S2中,可根据不同的数据来源自网络数据空间中分离得到请求数据空间与应答数据空间,而后分别处理请求数据空间与应答数据空间。在数据交互的过程中,请求是一个“流”,应答是一个“流”,因此分别处理请求数据空间与应答数据空间,即为分别处理两个“流”,通过对请求数据与应答数据的双流处理,避免同时处理请求数据与应答数据存在的其他问题。
在步骤S3中,处理请求数据空间与应答数据空间后,分别生成与请求数据空间与应答数据空间对应的流式文件以及匹配主键(MatchKey),流式文件即为对请求数据空间与应答数据空间分析处理后得到的结果。
其中,请求数据空间的流式文件为Q_Idx(请求索引文件),构成第一连续空间,应答数据空间的流式文件为R_Idx(应答索引文件),构成第二连续空间,更新后的第一连续空间为Q_Idx’。而匹配主键则为请求数据空间与应答数据空间用于匹配的特征值,每一请求数据空间与每一应答数据空间对应一个唯一的MatchKey,因此可用于匹配请求数据空间与应答数据空间,请求匹配值为请求数据空MatchKey,应答匹配值为应答数据空间的MatchKey。
可以理解,第一连续空间由请求索引文件构成,因此本发明实施例中,将文件等同于空间的话,第一连续空间也可以称为请求索引文件。同样地,第二连续空间由应答索引文件构成,因此第二连续空间也可以称为应答索引文件。
在一个实施例中,对请求数据空间与应答数据空间进行分析处理,可为分别获取请求数据空间与应答数据空间中的特征信息,如帧号、请求应答流、时间戳、报文长度等等,以上特征信息可在一定程度上表明请求数据空间与应答数据空间是否匹配。将以上特征信息从请求数据空间中分离组成第一连续空间,从应答数据空间分离组成第二连续空间,即可根据第一连续空间与第二连续空间,对请求数据空间与应答数据空间进行匹配,即根据请求索引文件与应答索引文件对请求包与应答包进行匹配。
在步骤S4中,根据第一连续空间的请求匹配值与第二连续空间的应答匹配值是否相同,作为判断第一连续空间与第二连续空间是否匹配的判断标准,即作为请求数据空间与应答数据空间是否匹配的判断标准。
当请求匹配值与应答匹配值相同时,认为与请求匹配值对应的第一连续空间和与应答匹配值对应的第二连续空间是匹配的,即认为请求包的流式文件与应答包的流式文件是匹配的。此时,将第二连续空间中与第一连续空间对应内容的位置,更新至第一连续空间中预留的空白位置处,如此,在将第二连续空间的内容更新至第一连续空间内的基础上,避免了更新对应的内容对第一连续空间原本所包含的数据的影响。
可以理解,上述相对应内容即为第二连续空间的索引地址信息,在第一连续空间中根据该索引地址信息即可确定第二连续空间以及应答数据空间的详细信息,仅在第一连续空间内即可记录请求与应答的对应关系,做到同一连接及不同连接下的请求与应答的顺序匹配。
本发明实施例中,请求数据空间与应答数据空间的匹配过程采用二级指针,通过将请求数据空间与应答数据空间做一一映射,彼此关联,并最终实现原地更新,只需要得到某一帧请求数据空间的信息,即可找出与其对应的应答数据空间的信息,提高了匹配效率。
值得注意的是,由于客户端发出请求,但服务端并不一定会对应地回复应答,但若是客户端接收到来自服务端的应答,就一定存在由服务端发出的请求。因此,在本发明实施例中,是将应答数据空间的第二连续空间的内容,记录更新到请求数据空间的第一连续空间中,保证根据第二连续空间可匹配得到对应的第一连续空间,而不能做相反的操作,即将请求数据空间的第一连续空间的内容,记录更新到应答数据空间的第二连续空间中,不然会存在第一连续空间无法匹配得到对应的第二连续空间的问题,导致系统紊乱。
以上为对请求与应答处于同一个连接的描述,针对请求与应答处于不同连接下的情况,对请求与应答采用连接ID加以区分。具体地,连接ID由IP和port(端口)通过特定算法转换而来,特定算法为:
CNID=M+F(localhost,localport);
其中,F可以是一个函数,根据源IP、源端口生成一个uint64_t数值作为唯一的连接ID,并可以确保这个连接ID值总是唯一的。通过连接ID,即可找出处于不同连接下的对应的请求与应答。
实施例二
更进一步地,请参阅图4,步骤S2具体包括以下步骤:
S21:将数据来源为客户端发起的网络数据分离为请求数据空间,将数据来源为服务端应答的网络数据分离为应答数据空间;
S22:判断所得到的多个请求数据空间中是否存在相同的请求数据空间、以及多个应答数据空间中是否存在相同的应答数据空间;
S23:若是,则将相同的请求数据空间划分为同一个请求数据空间,将相同的应答数据空间划分为同一个应答数据空间;
S24:若否,则将不同的请求数据空间划分为不同的请求数据空间,将不同的应答数据空间划分为不同的应答数据空间。
具体地,请结合实施例一中对请求数据空间与应答数据空间的描述,由于要分别处理请求数据空间与应答数据空间,因此,在本发明实施例中,在写入网络数据并形成网络数据空间后,首先需要从网络数据空间中分离不同来源的请求数据空间与应答数据空间以便于分流处理。
可以理解,请求由客户端发起,而应答则由服务端针对请求进行回复,因此,可通过判断网络数据是由客户端发起的还是服务端应答的,作为对网络数据是请求数据(请求数据空间)还是应答数据(应答数据空间)的区分,过程较为简单,可有效地区分请求数据空间与应答数据空间。具体地,可根据网络数据中带有的客户端或服务端的特征信息进行区分。
另外,在现实的数据交互中,可能会因为网络延迟或网络故障等情况,导致客户端反复发送同样的请求,或是反复接收到同样的应答,而针对于同样的请求或同样的应答,仅需处理其中一个请求或应答即可。
因此,在区分得到请求数据空间与应答数据空间后,由于多个请求数据空间可能会存在相同的请求数据空间(即多个请求中可能会存在相同的请求),以及多个应答数据空间中可能会存在相同的应答数据空间(即多个应答中可能会存在相同的应答),则还需要判断多个请求数据空间中是否存在相同的请求数据空间,以及多个应答数据空间中是否存在相同的应答数据空间。
然后,将相同的请求数据空间划分为同一个请求数据空间(即将相同的请求包划分为同一个请求包)并存储,将相同的应答数据空间划分为同一个应答数据空间(即将相同的应答包划分为同一个应答包)并存储,以减少对数据的重复处理过程,提升数据处理效率。同时,将不同的请求数据空间划分为不同的请求数据空间存储,将不同的应答数据空间划分为不同的应答数据空间存储,保证对所有不同的请求与应答的有效处理。
由于请求数据空间与应答数据空间中均包括有源地址与源端口以及目的地址与目的端口,但请求数据空间中的源地址与源端口的位置在目的地址与目的端口之前,而应答数据空间中的源地址与源端口的位置在目的地址与目的端口之后。因此,在一个实施例中,还可通过请求数据空间与应答数据空间的源地址与源端口以及目的地址与目的端口的先后顺序,来区分请求数据空间与应答数据空间,增加区分请求数据空间与应答数据空间的多样性与适用性。
实施例三
更进一步地,请参阅图5,步骤S22具体包括以下步骤:
S221:检测每一个请求数据空间与应答数据空间的数据顺序信息、数据大小信息与数据确认信息;
S222:若当前的请求数据空间的数据顺序信息等于上一个请求数据空间的数据顺序信息加上上一个请求数据空间的数据大小信息,则判定当前的请求数据空间与上一个请求数据空间不同;
S223:若当前的请求数据空间的数据确认信息等于上一个请求数据空间的数据确认信息,则判定当前的请求数据空间与上一个请求数据空间相同;
S224:若当前的应答数据空间的数据顺序信息等于上一个应答数据空间的数据顺序信息加上上一个应答数据空间的数据大小信息,则判定当前的应答数据空间与上一个应答数据空间不同;
S225:若当前的应答数据空间的数据确认信息等于上一个应答数据空间的数据确认信息,则判定当前的应答数据空间与上一个应答数据空间相同。
具体地,如何判断当前的请求数据空间与前一个请求数据空间是否相同,以及当前的应答数据空间与前一个应答数据空间是否相同,可通过验证请求数据空间与应答数据空间中的具备唯一性的特征信息来实现,如两个请求数据空间或两个应答数据空间的两组特征信息之间符合某种规律或算法,进而根据特征信息之间的关系来判断两个请求数据空间或应答数据空间相同或不同。
在本发明实施例中,特征信息包括但不限于上述的数据顺序信息、数据大小信息与数据确认信息等信息,其中,数据顺序信息为序号(seq),数据大小信息为字节大小(size),数据确认信息为确认号(ack)。
下文中,结合序号(seq)、字节大小(size)与确认号(ack)对上述步骤S222至步骤S225进行说明,以Q(n)作为当前接收到的请求数据空间的指代说明,以Q(n-1)作为接收到的前一个请求数据空间的指代说明,以R(n)作为当前接收到的应答数据空间的指代说明,以R(n-1)作为接收到的前一个应答数据空间的指代说明。
对于步骤S222,若当前的请求数据空间Q(n)与前一个请求数据空间Q(n-1)满足公式:Q(n)seq=Q(n-1)seq+Q(n-1)size,则Q(n)≠Q(n-1)。
上述公式可以理解为,当前的请求数据空间Q(n)的顺序信息Q(n)seq,等于上一个请求数据空间Q(n-1)的顺序信息Q(n-1)seq,加上上一个请求数据空间Q(n-1)的数据大小信息Q(n-1)size,则判定当前的请求数据空间Q(n)与上一个请求数据空间Q(n-1)不同,即Q(n)≠Q(n-1)。
对于步骤S223,若当前的请求数据空间Q(n)与前一个请求数据空间Q(n-1)满足公式:Q(n)ack=Q(n-1)ack,则Q(n)=Q(n-1)。
上述公式可以理解为,当前的请求数据空间Q(n)的确认信息Q(n)ack等于上一个请求数据空间Q(n-1)的确认信息Q(n-1)ack,则判定当前的请求数据空间Q(n)与上一个请求数据空间Q(n-1)相同,即Q(n)=Q(n-1)。
对于步骤S224,若当前的应答数据空间R(n)与前一个应答数据空间R(n-1)满足公式;R(n)seq=R(n-1)seq+R(n-1)size,则R(n)≠R(n-1)。
上述公式可以理解为,当前的应答数据空间R(n)的顺序信息R(n)seq,等于上一个应答数据空间R(n-1)的顺序信息R(n-1)seq,加上上一个应答数据空间R(n-1)的数据大小信息R(n-1)size,则判定当前的应答数据空间R(n)与上一个应答数据空间R(n-1)不同,即R(n)≠R(n-1)。
对于步骤S225,若当前的应答数据空间R(n)与前一个应答数据空间R(n-1)满足公式:R(n)ack=R(n-1)ack,则R(n)=R(n-1)。
上述公式可以理解为,当前的应答数据空间R(n)的确认信息R(n)ack,等于上一个应答数据空间R(n-1)的确认信息R(n-1)ack,则判定当前的应答数据空间R(n)与上一个应答数据空间R(n-1)相同,即R(n)=R(n-1)。
进一步地,若当前的请求数据空间Q(n)与当前的应答数据空间R(n)满足公式:R(n)ack=Q(n)seq+Q(n)size,则R(n)与Q(n)匹配。
上述公式可以理解为,当前的应答数据空间R(n)的确认信息R(n)ack,等于当前的请求数据空间Q(n)的序号Q(n)seq,加上当前的请求数据空间Q(n)的字节大小Q(n)size,则判定当前的应答数据空间R(n)与当前的请求数据空间Q(n)匹配。
在其他实施例中,数据顺序信息、数据大小信息以及数据确认信息还可以为其他可用以判断多个请求数据空间是否相同,或多个应答数据空间是否相同的特征信息数据,在此不做具体限制。
实施例四
更进一步地,请参阅图6,步骤S3具体包括以下步骤:
S31:分别获取请求数据空间的请求特征信息、请求顺序信息、请求大小信息,以及应答数据空间中的应答特征信息与应答确认信息;
S32:根据请求特征信息与应答特征信息区分得到第一连续空间与第二连续空间;
S33:在第一连续空间末尾预留一段空白位置;
S34:生成对应第二连续空间的索引地址信息;
S35:将请求顺序信息与请求大小信息的和作为请求匹配值,并将应答确认信息作为应答匹配值。
具体地,在步骤S31与步骤S32中,若想要从请求数据空间和与之对应的应答数据空间中,得到用于进行索引生成的第一连续空间与第二连续空间,以及用于进行匹配的请求匹配值与应答匹配值,则可依靠于请求数据空间和与之对应的应答数据空间中存在对应关系且具备唯一性的特征信息,即请求特征信息与应答特征信息。请求特征信息与应答特征信息中记录了表明是请求数据空间与应答数据空间的各种特征,可有效地从请求数据空间与应答数据空间中,对应地筛选得到第一连续空间与第二连续空间。
在发明实施例中,特征信息包括但不限于帧号、请求应答流、时间戳、报文长度等信息,以上信息均为具备特征且唯一的信息。即,可根据帧号、请求应答流、时间戳、报文长度等信息从请求数据空间(请求包)中筛选得到第一连续空间(请求索引文件),第一连续空间包括但不限于上述请求特征信息,或从应答数据空间(应答包)中筛选得到第二连续空间(应答索引文件),第二连续空间包括但不限于上述应答特征信息。
在筛选得到第一连续空间与第二连续空间的同时,生成对应第二连续空间的索引地址信息,根据该索引地址信息即可准确地进行索引,以得到对应的第二连续空间与应答数据空间的位置以及其他详细信息。
由于第一连续空间本身也存储有数据,为避免索引地址信息影响第一连续空间内的数据,因此在生成第一连续空间的同时,即在数据尾端预留一端空白位置,用以偏移更新第二连续空间的索引地址信息,即直接将索引地址信息写入该空白位置内。当进行请求数据空间与应答数据空间的匹配时,直接在请求数据空间的第一连续空间的末尾处查看索引地址信息,即可匹配得到索引地址信息对应的应答数据空间,较为方便,并且便于对索引地址信息的查找,以及与应答数据空间的匹配。
在其他实施例中,空白位置也可以预留于第一连续空间的其他位置,并不限于上述的第一连续空间的末尾,在不影响第一连续空间的自身数据的前提下具体设置即可。
值得注意的是,将索引地址信息偏移更新至第一连续空间末尾的空白位置,索引地址信息的偏移量即相当于第一连续空间本身数据的字节大小(长短)。
在一个实施例中,预留的空白位置如可以为在第一连续空间末尾预留的空白字符,空白位置的大小则为空白字符的字节大小,还根据常见的索引地址信息的大小对需要预留的空白位置的大小进行估算,有效利用第一连续空间的存储空间。
在一个实施例中,索引地址信息包括对应第二连续空间生成的文件编码,建立文件编码与第二连续空间的对应关系并关联在一起,再将文件编码形式的索引地址信息更新于第一连续空间的末尾,文件编码的形式较为简单,并且也容易根据其来查找得到第二连续空间以及应答数据空间。索引地址信息更新至第一连续空间后,索引地址信息还包括自身的行偏移,以在下次查找匹配时,便于根据行偏移直接定位到索引地址信息的所在位置。
在本发明实施例中,请求顺序信息为请求序号Q(n)seq,请求大小信息为请求字节大小Q(n)size,应答确认信息为应答确认号R(n)ack。请结合上述实施例三中关于请求数据空间Q(n)与应答数据空间R(n)是否匹配的描述,若请求数据空间Q(n)与应答数据空间R(n)满足公式:R(n)ack=Q(n)seq+Q(n)size,则R(n)与Q(n)匹配。
在此,即为若一个请求数据空间Q(n)的请求匹配值与一个应答数据空间R(n)的应答匹配值相等,则证明该请求数据空间Q(n)与该应答数据空间R(n)匹配。
在其他实施例中,并不限于将请求顺序信息与请求大小信息的和作为请求匹配值,也并不限于将应答确认信息作为应答匹配值,只要是请求数据空间与应答数据空间内具备特征、具备唯一性并满足特定运算关系的值即可。
更多地,在一个实施例中,第一连续空间包括的信息、第二连续空间包括的信息及更新有第二连续空间内容的第一连续空间包括的信息分别如下:
第一连续空间包括的信息:行长、连接ID、帧ID、数据流向、请求发起时间、MatchKey、Dump文件ID、Dump文件偏移量、帧数据长度等;
第二连续空间包括的信息:行长、连接ID、帧ID、数据流向、应答回复时间、MatchKey、Dump文件ID、Dump文件偏移量、帧数据长度等;
更新后的第一连续空间包括的信息:行长、连接ID、帧ID、数据流向、请求发起时间、MatchKey、Dump文件ID、Dump文件偏移量、帧数据长度、第二连续空间的文件编码、第二连续空间的行偏移等。
其中,第二连续空间的文件编码与行偏移即为索引地址信息,且索引地址信息所处的位置为第一连续空间的末尾预留的空白位置。
实施例五
更进一步地,请参阅图7,步骤S4具体包括以下步骤:
S41:获取所有的请求匹配值形成请求匹配集合;
S42:获取所有的应答匹配值形成应答匹配集合;
S43:逐一将请求匹配值在应答匹配集合内匹配得到相同的应答匹配值;
S44:将应答匹配值对应的第二连续空间的索引地址信息更新至第一连续空间的空白位置。
具体地,所写入的所有网络数据在区分为请求数据空间与应答数据空间后,都具有唯一的请求匹配值与唯一的应答匹配值,可根据请求匹配值与应答匹配值是否相等来作为请求数据空间与应答数据空间是否匹配的判断,以有效地匹配所接收到的所有的请求数据空间与应答数据空间。
在本发明实施例中,将所有请求数据空间的所有请求匹配值(MatchKey)放到请求匹配集合A,将所有应答数据空间的所有应答匹配值(MatchKey)放到集合B,用请求匹配集合A里的请求匹配值逐一遍历应答匹配集合B,避免对请求数据空间的遗漏,直到查找到相同的请求匹配值与应答匹配值,这个相同的请求匹配值与应答匹配值所对应的请求数据空间和应答数据空间即为匹配的。
而后,将第二连续空间的索引地址信息(包括第二连续空间的文件编码及行偏移)保存到第一连续空间文件中,如此,第一连续空间的每一行记录了网络数据空间每一帧的请求信息,第二连续空间的每一行记录了网络数据空间每一帧的应答信息,而通过将第二连续空间的索引地址信息加载到第一连续空间,即在第一连续空间中记录了第二连续空间的信息,以实现原地更新。
实施例六
请参阅图8,本发明实施例的请求语句以及应答语句的索引生成与匹配装置100,包括:
获取单元10,用于获取网络数据写入网络数据空间;
分离单元20,用于根据网络数据的数据来源从网络数据空间中分离得到请求数据空间与应答数据空间;
处理单元30,用于分别处理请求数据空间与应答数据空间,得到与请求数据空间对应的第一连续空间和请求匹配值,以及与应答数据空间对应的第二连续空间和应答匹配值,第一连续空间存储有请求索引数据,第二连续空间存储有应答索引数据;
更新单元40,用于确定相同的请求匹配值和应答匹配值分别对应的第一连续空间和第二连续空间,将第二连续空间中与第一连续空间对应的索引地址信息更新至第一连续空间中预留的空白位置处。
本发明实施例中,实现了第一连续空间与第二连续空间之间的关联,根据更新于第一连续空间内的索引地址信息即可匹配得到对应的第二连续空间以及应答数据空间。第一连续空间与第二连续空间也可以称为请求索引文件与应答索引文件,即,根据更新于请求索引文件内的应答索引文件的索引地址信息,即可准确地匹配得到对应的应答索引文件,实现处于相同连接下乃至不同连接下的请求与应答的正确匹配,提高匹配效率。
本发明实施例通过采用分别处理请求与应答的双流技术,既适用于传统模式下对请求与应答的抓包分析,又能对特殊复杂场景下请求与应答的传输加以分析还原,实现对不同链路下错综复杂的请求与应答的索引生成与进一步的匹配,提升请求与应答的匹配效率与准确度。
请参阅图1,图1为服务端(Date Base,DB)与客户端(Application,APP)之间的结构示意图,一个服务端与至少一个客户端通信连接并发生数据交互。服务端与客户端之间的交互是通过网络请求和网络应答建立的,并通过传输控制协议(TransmissionControlProtocol,TCP)进行数据传输交互,通过实时抓取并解析网络Dump包中的流量,可检测发现服务端与客户端的实时运行状态,实现对两者之间的运行状态的监控。
服务端与客户端之间正常的一次数据交互为:一次网络请求对应一次网络应答,完成一次请求与应答即为完成一次数据交互。例如,客户端对服务端发送一次网络请求,服务端对客户端回复一次网络应答,此时,服务端与客户端之间即完成一次数据交互,在同一个连接下的每一个请求与应答形成一一对应的关系。
可以理解,由于数据的形成会占据空间,因此空间也可以认为是数据的抽象形态结构,本发明实施例中以“空间”的概念指代文件、数据流、数据包等概念。请结合图2,在本发明实施例中,网络数据空间可以理解为上述的Dump包,即网络数据空间在本发明实施例中为“数据包”的形态结构。在其他实施例中,网络数据空间还可以为其他存储有数据的形态结构,如文件、流、帧等,并不限于上述的Dump包的形态,在此不做具体限制。
对于同一连接下的请求与应答,可通过tcpdump等网络抓包工具在旁路上获取物理网卡的网络数据写入并生成Dump包,即网络数据空间,从旁路上获取网络数据可在得到网络数据的基础上,避免对主路传输数据的影响,保证数据的正常交互。Dump包中包含了请求包(request,Q包)与应答包(response,R包),请求包即上述的请求数据空间,应答包即上述的应答数据空间。
即,在本发明实施例中,请求数据空间与应答数据空间也均为数据包的形态结构。在其他实施例中,请求数据空间与应答数据空间也可以为其他存储有请求数据与应答数据的形态结构,在此不做具体限制。
可以理解,由于请求数据空间与应答数据空间的数据来源不同,如可能为不同的发起方(客户端或服务端)、不同的IP与端口(源地址与源端口,应答地址与应答端口)等等。
因此,可根据不同的数据来源自网络数据空间中分离得到请求数据空间与应答数据空间,而后分别处理请求数据空间与应答数据空间。在数据交互的过程中,请求是一个“流”,应答是一个“流”,因此分别处理请求数据空间与应答数据空间,即为分别处理两个“流”,通过对请求数据与应答数据的双流处理,避免同时处理请求数据与应答数据存在的其他问题。
而处理请求数据空间与应答数据空间后,分别生成与请求数据空间与应答数据空间对应的流式文件以及匹配主键(MatchKey),流式文件即为对请求数据空间与应答数据空间分析处理后得到的结果。
其中,请求数据空间的流式文件为Q_Idx(请求索引文件),构成第一连续空间,应答数据空间的流式文件为R_Idx(应答索引文件),构成第二连续空间,更新后的第一连续空间为Q_Idx’。而匹配主键则为请求数据空间与应答数据空间用于匹配的特征值,每一请求数据空间与每一应答数据空间对应一个唯一的MatchKey,因此可用于匹配请求数据空间与应答数据空间,请求匹配值为请求数据空MatchKey,应答匹配值为应答数据空间的MatchKey。
可以理解,第一连续空间由请求索引文件构成,因此本发明实施例中,将文件等同于空间的话,第一连续空间也可以称为请求索引文件。同样地,第二连续空间由应答索引文件构成,因此第二连续空间也可以称为应答索引文件。
在一个实施例中,对请求数据空间与应答数据空间进行分析处理,可为分别获取请求数据空间与应答数据空间中的特征信息,如帧号、请求应答流、时间戳、报文长度等等,以上特征信息可在一定程度上表明请求数据空间与应答数据空间是否匹配。将以上特征信息从请求数据空间中分离组成第一连续空间,从应答数据空间分离组成第二连续空间,即可根据第一连续空间与第二连续空间,对请求数据空间与应答数据空间进行匹配,即根据请求索引文件与应答索引文件对请求包与应答包进行匹配。
具体根据第一连续空间的请求匹配值与第二连续空间的应答匹配值是否相同,作为判断第一连续空间与第二连续空间是否匹配的判断标准,即作为请求数据空间与应答数据空间是否匹配的判断标准。
当请求匹配值与应答匹配值相同时,认为与请求匹配值对应的第一连续空间和与应答匹配值对应的第二连续空间是匹配的,即认为请求包的流式文件与应答包的流式文件是匹配的。此时,将第二连续空间中与第一连续空间对应内容的位置,更新至第一连续空间中预留的空白位置处,如此,在将第二连续空间的内容更新至第一连续空间内的基础上,避免了更新对应的内容对第一连续空间原本所包含的数据的影响。
可以理解,上述相对应内容即为第二连续空间的索引地址信息,在第一连续空间中根据该索引地址信息即可确定第二连续空间以及应答数据空间的详细信息,仅在第一连续空间内即可记录请求与应答的对应关系,做到同一连接及不同连接下的请求与应答的顺序匹配。
本发明实施例中,请求数据空间与应答数据空间的匹配过程采用二级指针,通过将请求数据空间与应答数据空间做一一映射,彼此关联,并最终实现原地更新,只需要得到某一帧请求数据空间的信息,即可找出与其对应的应答数据空间的信息,提高了匹配效率。
值得注意的是,由于客户端发出请求,但服务端并不一定会对应地回复应答,但若是客户端接收到来自服务端的应答,就一定存在由服务端发出的请求。因此,在本发明实施例中,是将应答数据空间的第二连续空间的内容,记录更新到请求数据空间的第一连续空间中,保证根据第二连续空间可匹配得到对应的第一连续空间,而不能做相反的操作,即将请求数据空间的第一连续空间的内容,记录更新到应答数据空间的第二连续空间中,不然会存在第一连续空间无法匹配得到对应的第二连续空间的问题,导致系统紊乱。
以上为对请求与应答处于同一个连接的描述,针对请求与应答处于不同连接下的情况,对请求与应答采用连接ID加以区分。具体地,连接ID由IP和port(端口)通过特定算法转换而来,特定算法为:
CNID=M+F(localhost,localport);
其中,F可以是一个函数,根据源IP、源端口生成一个uint64_t数值作为唯一的连接ID,并可以确保这个连接ID值总是唯一的。通过连接ID,即可找出处于不同连接下的对应的请求与应答。
实施例七
更进一步地,请参阅图9,分离单元20具体包括:
分离模块21,用于将数据来源为客户端发起的网络数据分离为请求数据空间,将数据来源为服务端应答的网络数据分离为应答数据空间;
第一判断模块22,用于判断所得到的多个请求数据空间中是否存在相同的请求数据空间、以及多个应答数据空间中是否存在相同的应答数据空间;
第一划分模块23,用于若是,则将相同的请求数据空间划分为同一个请求数据空间,将相同的应答数据空间划分为同一个应答数据空间;
第二划分模块24,用于若否,则将不同的请求数据空间划分为不同的请求数据空间,将不同的应答数据空间划分为不同的应答数据空间。
具体地,请结合实施例六中对请求数据空间与应答数据空间的描述,由于要分别处理请求数据空间与应答数据空间,因此,在本发明实施例中,在写入网络数据并形成网络数据空间后,首先需要从网络数据空间中分离不同来源的请求数据空间与应答数据空间以便于分流处理。
可以理解,请求由客户端发起,而应答则由服务端针对请求进行回复,因此,可通过判断网络数据是由客户端发起的还是服务端应答的,作为对网络数据是请求数据(请求数据空间)还是应答数据(应答数据空间)的区分,过程较为简单,可有效地区分请求数据空间与应答数据空间。具体地,可根据网络数据中带有的客户端或服务端的特征信息进行区分。
另外,在现实的数据交互中,可能会因为网络延迟或网络故障等情况,导致客户端反复发送同样的请求,或是反复接收到同样的应答,而针对于同样的请求或同样的应答,仅需处理其中一个请求或应答即可。
因此,在区分得到请求数据空间与应答数据空间后,由于多个请求数据空间可能会存在相同的请求数据空间(即多个请求中可能会存在相同的请求),以及多个应答数据空间中可能会存在相同的应答数据空间(即多个应答中可能会存在相同的应答),则还需要判断多个请求数据空间中是否存在相同的请求数据空间,以及多个应答数据空间中是否存在相同的应答数据空间。
然后,将相同的请求数据空间划分为同一个请求数据空间(即将相同的请求包划分为同一个请求包)并存储,将相同的应答数据空间划分为同一个应答数据空间(即将相同的应答包划分为同一个应答包)并存储,以减少对数据的重复处理过程,提升数据处理效率。同时,将不同的请求数据空间划分为不同的请求数据空间存储,将不同的应答数据空间划分为不同的应答数据空间存储,保证对所有不同的请求与应答的有效处理。
由于请求数据空间与应答数据空间中均包括有源地址与源端口以及目的地址与目的端口,但请求数据空间中的源地址与源端口的位置在目的地址与目的端口之前,而应答数据空间中的源地址与源端口的位置在目的地址与目的端口之后。因此,在一个实施例中,还可通过请求数据空间与应答数据空间的源地址与源端口以及目的地址与目的端口的先后顺序,来区分请求数据空间与应答数据空间,增加区分请求数据空间与应答数据空间的多样性与适用性。
实施例八
更进一步地,请参阅图10,第一判断模块22具体包括:
检测子模块221,用于检测每一个请求数据空间与应答数据空间的数据顺序信息、数据大小信息与数据确认信息;
第一判定子模块222,用于若当前的请求数据空间的数据顺序信息等于上一个请求数据空间的数据顺序信息加上上一个请求数据空间的数据大小信息,则判定当前的请求数据空间与上一个请求数据空间不同;
第二判定子模块223,用于若当前的请求数据空间的数据确认信息等于上一个请求数据空间的数据确认信息,则判定当前的请求数据空间与上一个请求数据空间相同;
第三判定子模块224,用于若当前的应答数据空间的数据顺序信息等于上一个应答数据空间的数据顺序信息加上上一个应答数据空间的数据大小信息,则判定当前的应答数据空间与上一个应答数据空间不同;
第四判定子模块225,用于若当前的应答数据空间的数据确认信息等于上一个应答数据空间的数据确认信息,则判定当前的应答数据空间与上一个应答数据空间相同。
具体地,如何判断当前的请求数据空间与前一个请求数据空间是否相同,以及当前的应答数据空间与前一个应答数据空间是否相同,可通过验证请求数据空间与应答数据空间中的具备唯一性的特征信息来实现,如两个请求数据空间或两个应答数据空间的两组特征信息之间符合某种规律或算法,进而根据特征信息之间的关系来判断两个请求数据空间或应答数据空间相同或不同。
在本发明实施例中,特征信息包括但不限于上述的数据顺序信息、数据大小信息与数据确认信息等信息,其中,数据顺序信息为序号(seq),数据大小信息为字节大小(size),数据确认信息为确认号(ack)。
下文中,结合序号(seq)、字节大小(size)与确认号(ack)对上述模块进行说明,以Q(n)作为当前接收到的请求数据空间的指代说明,以Q(n-1)作为接收到的前一个请求数据空间的指代说明,以R(n)作为当前接收到的应答数据空间的指代说明,以R(n-1)作为接收到的前一个应答数据空间的指代说明。
若当前的请求数据空间Q(n)与前一个请求数据空间Q(n-1)满足公式:Q(n)seq=Q(n-1)seq+Q(n-1)size,则Q(n)≠Q(n-1)。
上述公式可以理解为,当前的请求数据空间Q(n)的顺序信息Q(n)seq,等于上一个请求数据空间Q(n-1)的顺序信息Q(n-1)seq,加上上一个请求数据空间Q(n-1)的数据大小信息Q(n-1)size,则判定当前的请求数据空间Q(n)与上一个请求数据空间Q(n-1)不同,即Q(n)≠Q(n-1)。
若当前的请求数据空间Q(n)与前一个请求数据空间Q(n-1)满足公式:Q(n)ack=Q(n-1)ack,则Q(n)=Q(n-1)。
上述公式可以理解为,当前的请求数据空间Q(n)的确认信息Q(n)ack等于上一个请求数据空间Q(n-1)的确认信息Q(n-1)ack,则判定当前的请求数据空间Q(n)与上一个请求数据空间Q(n-1)相同,即Q(n)=Q(n-1)。
若当前的应答数据空间R(n)与前一个应答数据空间R(n-1)满足公式:R(n)seq=R(n-1)seq+R(n-1)size,则R(n)≠R(n-1)。
上述公式可以理解为,当前的应答数据空间R(n)的顺序信息R(n)seq,等于上一个应答数据空间R(n-1)的顺序信息R(n-1)seq,加上上一个应答数据空间R(n-1)的数据大小信息R(n-1)size,则判定当前的应答数据空间R(n)与上一个应答数据空间R(n-1)不同,即R(n)≠R(n-1)。
若当前的应答数据空间R(n)与前一个应答数据空间R(n-1)满足公式:R(n)ack=R(n-1)ack,则R(n)=R(n-1)。
上述公式可以理解为,当前的应答数据空间R(n)的确认信息R(n)ack,等于上一个应答数据空间R(n-1)的确认信息R(n-1)ack,则判定当前的应答数据空间R(n)与上一个应答数据空间R(n-1)相同,即R(n)=R(n-1)。
进一步地,若当前的请求数据空间Q(n)与当前的应答数据空间R(n)满足公式:R(n)ack=Q(n)seq+Q(n)size,则R(n)与Q(n)匹配。
上述公式可以理解为,当前的应答数据空间R(n)的确认信息R(n)ack,等于当前的请求数据空间Q(n)的序号Q(n)seq,加上当前的请求数据空间Q(n)的字节大小Q(n)size,则判定当前的应答数据空间R(n)与当前的请求数据空间Q(n)匹配。
在其他实施例中,数据顺序信息、数据大小信息以及数据确认信息还可以为其他可用以判断多个请求数据空间是否相同,或多个应答数据空间是否相同的特征信息数据,在此不做具体限制。
实施例九
更进一步地,请参阅图11,处理单元30具体包括:
第一获取模块31,用于分别获取请求数据空间的请求特征信息、请求顺序信息、请求大小信息,以及应答数据空间中的应答特征信息与应答确认信息;
区分模块32,用于根据请求特征信息与应答特征信息区分得到第一连续空间与第二连续空间;
预留模块33,用于在第一连续空间末尾预留一段空白位置;
第一生成模块34,用于生成对应第二连续空间的索引地址信息;
第二生成模块35,用于将请求顺序信息与请求大小信息的和作为请求匹配值,并将应答确认信息作为应答匹配值。
具体地,若想要从请求数据空间和与之对应的应答数据空间中,得到用于进行索引生成的第一连续空间与第二连续空间,以及用于进行匹配的请求匹配值与应答匹配值,则可依靠于请求数据空间和与之对应的应答数据空间中存在对应关系且具备唯一性的特征信息,即请求特征信息与应答特征信息。请求特征信息与应答特征信息中记录了表明是请求数据空间与应答数据空间的各种特征,可有效地从请求数据空间与应答数据空间中,对应地筛选得到第一连续空间与第二连续空间。
在发明实施例中,特征信息包括但不限于帧号、请求应答流、时间戳、报文长度等信息,以上信息均为具备特征且唯一的信息。即,可根据帧号、请求应答流、时间戳、报文长度等信息从请求数据空间(请求包)中筛选得到第一连续空间(请求索引文件),第一连续空间包括但不限于上述请求特征信息,或从应答数据空间(应答包)中筛选得到第二连续空间(应答索引文件),第二连续空间包括但不限于上述应答特征信息。
在筛选得到第一连续空间与第二连续空间的同时,生成对应第二连续空间的索引地址信息,根据该索引地址信息即可准确地进行索引,以得到对应的第二连续空间与应答数据空间的位置以及其他详细信息。
由于第一连续空间本身也存储有数据,为避免索引地址信息影响第一连续空间内的数据,因此在生成第一连续空间的同时,即在数据尾端预留一端空白位置,用以偏移更新第二连续空间的索引地址信息,即直接将索引地址信息写入该空白位置内。当进行请求数据空间与应答数据空间的匹配时,直接在请求数据空间的第一连续空间的末尾处查看索引地址信息,即可匹配得到索引地址信息对应的应答数据空间,较为方便,并且便于对索引地址信息的查找,以及与应答数据空间的匹配。
在其他实施例中,空白位置也可以预留于第一连续空间的其他位置,并不限于上述的第一连续空间的末尾,在不影响第一连续空间的自身数据的前提下具体设置即可。
值得注意的是,将索引地址信息偏移更新至第一连续空间末尾的空白位置,索引地址信息的偏移量即相当于第一连续空间本身数据的字节大小(长短)。
在一个实施例中,预留的空白位置如可以为在第一连续空间末尾预留的空白字符,空白位置的大小则为空白字符的字节大小,还根据常见的索引地址信息的大小对需要预留的空白位置的大小进行估算,有效利用第一连续空间的存储空间。
在一个实施例中,索引地址信息包括对应第二连续空间生成的文件编码,建立文件编码与第二连续空间的对应关系并关联在一起,再将文件编码形式的索引地址信息更新于第一连续空间的末尾,文件编码的形式较为简单,并且也容易根据其来查找得到第二连续空间以及应答数据空间。索引地址信息更新至第一连续空间后,索引地址信息还包括自身的行偏移,以在下次查找匹配时,便于根据行偏移直接定位到索引地址信息的所在位置。
在本发明实施例中,请求顺序信息为请求序号Q(n)seq,请求大小信息为请求字节大小Q(n)size,应答确认信息为应答确认号R(n)ack。请结合上述实施例三中关于请求数据空间Q(n)与应答数据空间R(n)是否匹配的描述,若请求数据空间Q(n)与应答数据空间R(n)满足公式:
R(n)ack=Q(n)seq+Q(n)size,则R(n)与Q(n)匹配。
在此,即为若一个请求数据空间Q(n)的请求匹配值与一个应答数据空间R(n)的应答匹配值相等,则证明该请求数据空间Q(n)与该应答数据空间R(n)匹配。
在其他实施例中,并不限于将请求顺序信息与请求大小信息的和作为请求匹配值,也并不限于将应答确认信息作为应答匹配值,只要是请求数据空间与应答数据空间内具备特征、具备唯一性并满足特定运算关系的值即可。
更多地,在一个实施例中,第一连续空间包括的信息、第二连续空间包括的信息及更新有第二连续空间内容的第一连续空间包括的信息分别如下:
第一连续空间包括的信息:行长、连接ID、帧ID、数据流向、请求发起时间、MatchKey、Dump文件ID、Dump文件偏移量、帧数据长度等;
第二连续空间包括的信息:行长、连接ID、帧ID、数据流向、应答回复时间、MatchKey、Dump文件ID、Dump文件偏移量、帧数据长度等;
更新后的第一连续空间包括的信息:行长、连接ID、帧ID、数据流向、请求发起时间、MatchKey、Dump文件ID、Dump文件偏移量、帧数据长度、第二连续空间的文件编码、第二连续空间的行偏移等。
其中,第二连续空间的文件编码与行偏移即为索引地址信息,且索引地址信息所处的位置为第一连续空间的末尾预留的空白位置。
实施例十
更进一步地,请参阅图12,更新单元40具体包括:
第二获取模块41,用于获取所有的请求匹配值形成请求匹配集合;
第三获取模块42,用于获取所有的应答匹配值形成应答匹配集合;
匹配模块43,用于逐一将请求匹配值在应答匹配集合内匹配得到相同的应答匹配值;
更新模块44,用于将应答匹配值对应的第二连续空间的索引地址信息更新至第一连续空间的空白位置。
具体地,所写入的所有网络数据在区分为请求数据空间与应答数据空间后,都具有唯一的请求匹配值与唯一的应答匹配值,可根据请求匹配值与应答匹配值是否相等来作为请求数据空间与应答数据空间是否匹配的判断,以有效地匹配所接收到的所有的请求数据空间与应答数据空间。
在本发明实施例中,将所有请求数据空间的所有请求匹配值(MatchKey)放到请求匹配集合A,将所有应答数据空间的所有应答匹配值(MatchKey)放到集合B,用请求匹配集合A里的请求匹配值逐一遍历应答匹配集合B,避免对请求数据空间的遗漏,直到查找到相同的请求匹配值与应答匹配值,这个相同的请求匹配值与应答匹配值所对应的请求数据空间和应答数据空间即为匹配的。
而后,将第二连续空间的索引地址信息(包括第二连续空间的文件编码及行偏移)保存到第一连续空间文件中,如此,第一连续空间的每一行记录了网络数据空间每一帧的请求信息,第二连续空间的每一行记录了网络数据空间每一帧的应答信息,而通过将第二连续空间的索引地址信息加载到第一连续空间,即在第一连续空间中记录了第二连续空间的信息,以实现原地更新。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种请求语句以及应答语句的索引生成与匹配的方法,其特征在于,包括以下步骤:
获取网络数据写入网络数据空间;
根据所述网络数据的数据来源从所述网络数据空间中分离得到请求数据空间与应答数据空间;
分别处理所述请求数据空间与所述应答数据空间,得到与所述请求数据空间对应的第一连续空间和请求匹配值,以及与所述应答数据空间对应的第二连续空间和应答匹配值,所述第一连续空间存储有请求索引数据,所述第二连续空间存储有应答索引数据;
确定相同的所述请求匹配值和所述应答匹配值分别对应的所述第一连续空间和所述第二连续空间,将所述第二连续空间中与所述第一连续空间对应的索引地址信息更新至所述第一连续空间中预留的空白位置处。
2.如权利要求1所述的请求语句以及应答语句的索引生成与匹配的方法,其特征在于,所述根据所述网络数据的数据来源,从所述网络数据空间中分离得到请求数据空间与应答数据空间的步骤,具体包括以下步骤:
将数据来源为客户端发起的所述网络数据分离为请求数据空间,将数据来源为服务端应答的所述网络数据分离为应答数据空间;
判断所得到的多个所述请求数据空间中是否存在相同的所述请求数据空间、以及多个所述应答数据空间中是否存在相同的所述应答数据空间;
若是,则将相同的所述请求数据空间划分为同一个所述请求数据空间,将相同的所述应答数据空间划分为同一个所述应答数据空间;
若否,则将不同的所述请求数据空间划分为不同的所述请求数据空间,将不同的所述应答数据空间划分为不同的所述应答数据空间。
3.如权利要求2所述的请求语句以及应答语句的索引生成与匹配的方法,其特征在于,所述判断所得到的多个所述请求数据空间中是否存在相同的所述请求数据空间、以及多个所述应答数据空间中是否存在相同的所述应答数据空间的步骤,具体包括以下步骤:
检测每一个所述请求数据空间与所述应答数据空间的数据顺序信息、数据大小信息与数据确认信息;
若当前的所述请求数据空间的数据顺序信息等于上一个所述请求数据空间的数据顺序信息加上上一个所述请求数据空间的数据大小信息,则判定当前的所述请求数据空间与上一个所述请求数据空间不同;
若当前的所述请求数据空间的数据确认信息等于上一个所述请求数据空间的数据确认信息,则判定当前的所述请求数据空间与上一个所述请求数据空间相同;
若当前的所述应答数据空间的数据顺序信息等于上一个所述应答数据空间的数据顺序信息加上上一个所述应答数据空间的数据大小信息,则判定当前的所述应答数据空间与上一个所述应答数据空间不同;
若当前的所述应答数据空间的数据确认信息等于上一个所述应答数据空间的数据确认信息,则判定当前的所述应答数据空间与上一个所述应答数据空间相同。
4.如权利要求1所述的请求语句以及应答语句的索引生成与匹配的方法,其特征在于,所述分别处理所述请求数据空间与所述应答数据空间,得到与所述请求数据空间对应的第一连续空间和请求匹配值,以及与所述应答数据空间对应的第二连续空间和应答匹配值的步骤,具体包括以下步骤:
分别获取所述请求数据空间的请求特征信息、请求顺序信息、请求大小信息,以及所述应答数据空间中的应答特征信息与应答确认信息;
根据所述请求特征信息与所述应答特征信息区分得到第一连续空间与第二连续空间;
在所述第一连续空间末尾预留一段空白位置;
生成对应所述第二连续空间的索引地址信息;
将所述请求顺序信息与所述请求大小信息的和作为请求匹配值,并将所述应答确认信息作为应答匹配值。
5.如权利要求4所述的请求语句以及应答语句的索引生成与匹配的方法,其特征在于,所述确定相同的所述请求匹配值和所述应答匹配值分别对应的所述第一连续空间和所述第二连续空间,将所述第二连续空间的索引地址信息更新至所述第一连续空间的步骤,具体包括以下步骤:
获取所有的所述请求匹配值形成请求匹配集合;
获取所有的所述应答匹配值形成应答匹配集合;
逐一将所述请求匹配值在所述应答匹配集合内匹配得到相同的所述应答匹配值;
将所述应答匹配值对应的所述第二连续空间的所述索引地址信息更新至所述第一连续空间的所述空白位置。
6.一种请求语句以及应答语句的索引生成与匹配装置,其特征在于,包括:
获取单元,用于获取网络数据写入网络数据空间;
分离单元,用于根据所述网络数据的数据来源从所述网络数据空间中分离得到请求数据空间与应答数据空间;
处理单元,用于分别处理所述请求数据空间与所述应答数据空间,得到与所述请求数据空间对应的第一连续空间和请求匹配值,以及与所述应答数据空间对应的第二连续空间和应答匹配值,所述第一连续空间存储有请求索引数据,所述第二连续空间存储有应答索引数据;
更新单元,用于确定相同的所述请求匹配值和所述应答匹配值分别对应的所述第一连续空间和所述第二连续空间,将所述第二连续空间中与所述第一连续空间对应的索引地址信息更新至所述第一连续空间中预留的空白位置处。
7.如权利要求6所述的请求语句以及应答语句的索引生成与匹配装置,其特征在于,所述分离单元具体包括:
分离模块,用于将数据来源为客户端发起的所述网络数据分离为请求数据空间,将数据来源为服务端应答的所述网络数据分离为应答数据空间;
第一判断模块,用于判断所得到的多个所述请求数据空间中是否存在相同的所述请求数据空间、以及多个所述应答数据空间中是否存在相同的所述应答数据空间;
第一划分模块,用于若是,则将相同的所述请求数据空间划分为同一个所述请求数据空间,将相同的所述应答数据空间划分为同一个所述应答数据空间;
第二划分模块,用于若否,则将不同的所述请求数据空间划分为不同的所述请求数据空间,将不同的所述应答数据空间划分为不同的所述应答数据空间。
8.如权利要求7所述的请求语句以及应答语句的索引生成与匹配装置,其特征在于,所述第一判断模块具体包括:
检测子模块,用于检测每一个所述请求数据空间与所述应答数据空间的数据顺序信息、数据大小信息与数据确认信息;
第一判定子模块,用于若当前的所述请求数据空间的数据顺序信息等于上一个所述请求数据空间的数据顺序信息加上上一个所述请求数据空间的数据大小信息,则判定当前的所述请求数据空间与上一个所述请求数据空间不同;
第二判定子模块,用于若当前的所述请求数据空间的数据确认信息等于上一个所述请求数据空间的数据确认信息,则判定当前的所述请求数据空间与上一个所述请求数据空间相同;
第三判定子模块,用于若当前的所述应答数据空间的数据顺序信息等于上一个所述应答数据空间的数据顺序信息加上上一个所述应答数据空间的数据大小信息,则判定当前的所述应答数据空间与上一个所述应答数据空间不同;
第四判定子模块,用于若当前的所述应答数据空间的数据确认信息等于上一个所述应答数据空间的数据确认信息,则判定当前的所述应答数据空间与上一个所述应答数据空间相同。
9.如权利要求6所述的请求语句以及应答语句的索引生成与匹配装置,其特征在于,所述处理单元具体包括:
第一获取模块,用于分别获取所述请求数据空间的请求特征信息、请求顺序信息、请求大小信息,以及所述应答数据空间中的应答特征信息与应答确认信息;
区分模块,用于根据所述请求特征信息与所述应答特征信息区分得到第一连续空间与第二连续空间;
预留模块,用于在所述第一连续空间末尾预留一段空白位置;
第一生成模块,用于生成对应所述第二连续空间的索引地址信息;
第二生成模块,用于将所述请求顺序信息与所述请求大小信息的和作为请求匹配值,并将所述应答确认信息作为应答匹配值。
10.如权利要求9所述的请求语句以及应答语句的索引生成与匹配装置,其特征在于,所述更新单元具体包括:
第二获取模块,用于获取所有的所述请求匹配值形成请求匹配集合;
第三获取模块,用于获取所有的所述应答匹配值形成应答匹配集合;
匹配模块,用于逐一将所述请求匹配值在所述应答匹配集合内匹配得到相同的所述应答匹配值;
更新模块,用于将所述应答匹配值对应的所述第二连续空间的所述索引地址信息更新至所述第一连续空间的所述空白位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110174341.0A CN112966166B (zh) | 2021-02-07 | 2021-02-07 | 一种请求语句以及应答语句的索引生成与匹配的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110174341.0A CN112966166B (zh) | 2021-02-07 | 2021-02-07 | 一种请求语句以及应答语句的索引生成与匹配的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112966166A true CN112966166A (zh) | 2021-06-15 |
CN112966166B CN112966166B (zh) | 2023-09-05 |
Family
ID=76284287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110174341.0A Active CN112966166B (zh) | 2021-02-07 | 2021-02-07 | 一种请求语句以及应答语句的索引生成与匹配的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112966166B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08328983A (ja) * | 1995-05-30 | 1996-12-13 | Fuji Xerox Co Ltd | ネットワーク管理情報検索方式 |
CN101997918A (zh) * | 2010-11-11 | 2011-03-30 | 清华大学 | 异构san环境中的海量存储资源按需分配的实现方法 |
CN109450795A (zh) * | 2018-11-09 | 2019-03-08 | 浙江大学 | 一种面向服务网络的服务路由器及服务网络系统 |
CN110995754A (zh) * | 2019-12-19 | 2020-04-10 | 福建新大陆支付技术有限公司 | 一种数据报文索引的管理方法和装置以及设备 |
CN111211990A (zh) * | 2019-12-31 | 2020-05-29 | 北京旋极信息技术股份有限公司 | 一种数据包处理方法和装置 |
CN111225002A (zh) * | 2020-03-18 | 2020-06-02 | 深圳市腾讯计算机系统有限公司 | 一种网络攻击溯源方法、装置、电子设备和存储介质 |
CN111656386A (zh) * | 2020-04-22 | 2020-09-11 | 支付宝(杭州)信息技术有限公司 | 管理账本系统中的交易请求 |
-
2021
- 2021-02-07 CN CN202110174341.0A patent/CN112966166B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08328983A (ja) * | 1995-05-30 | 1996-12-13 | Fuji Xerox Co Ltd | ネットワーク管理情報検索方式 |
CN101997918A (zh) * | 2010-11-11 | 2011-03-30 | 清华大学 | 异构san环境中的海量存储资源按需分配的实现方法 |
CN109450795A (zh) * | 2018-11-09 | 2019-03-08 | 浙江大学 | 一种面向服务网络的服务路由器及服务网络系统 |
CN110995754A (zh) * | 2019-12-19 | 2020-04-10 | 福建新大陆支付技术有限公司 | 一种数据报文索引的管理方法和装置以及设备 |
CN111211990A (zh) * | 2019-12-31 | 2020-05-29 | 北京旋极信息技术股份有限公司 | 一种数据包处理方法和装置 |
CN111225002A (zh) * | 2020-03-18 | 2020-06-02 | 深圳市腾讯计算机系统有限公司 | 一种网络攻击溯源方法、装置、电子设备和存储介质 |
CN111656386A (zh) * | 2020-04-22 | 2020-09-11 | 支付宝(杭州)信息技术有限公司 | 管理账本系统中的交易请求 |
Non-Patent Citations (1)
Title |
---|
范雪琦: "大规模网络流量高精度采集与分析关键技术研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, vol. 2018, no. 11, pages 139 - 47 * |
Also Published As
Publication number | Publication date |
---|---|
CN112966166B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277570A (zh) | 数据的安全监测方法和装置、电子设备、可读介质 | |
US9455873B2 (en) | End-to-end analysis of transactions in networks with traffic-altering devices | |
CN107273267A (zh) | 基于elastic组件的日志分析方法 | |
CN108197200A (zh) | 日志追踪方法、装置、计算机设备和存储介质 | |
US8965968B2 (en) | Computer-readable medium storing system visualization processing program, method and device | |
CN111030888B (zh) | 域名系统dns容量测量方法、装置、设备及介质 | |
US8505098B2 (en) | Method for recording, recovering, and replaying real traffic | |
WO2015039473A1 (en) | Verification data processing method and device and storage medium | |
CN114389792B (zh) | 一种web日志nat前后关联方法及系统 | |
CN112532614A (zh) | 一种用于电网终端的安全监测方法和系统 | |
CN110830500B (zh) | 网络攻击追踪方法、装置、电子设备及可读存储介质 | |
CN112804348A (zh) | 云监测中心对边缘计算节点上报数据的重复性判定方法 | |
CN112966166B (zh) | 一种请求语句以及应答语句的索引生成与匹配的方法及装置 | |
CN112769635B (zh) | 多粒度特征解析的服务识别方法及装置 | |
CN115296904B (zh) | 域名反射攻击检测方法及装置、电子设备、存储介质 | |
CN101175120B (zh) | 用于识别通过双向语言介质进行交谈的双方的方法和设备 | |
CN111130941B (zh) | 一种网络错误检测方法、装置以及计算机可读存储介质 | |
CN114172958A (zh) | 隐私计算节点、系统、方法、装置以及存储介质 | |
CN113766046A (zh) | 迭代流量跟踪方法、dns服务器及计算机可读存储介质 | |
CN113472813A (zh) | 一种安防资产识别方法及系统 | |
JP2021129203A (ja) | 通信解析装置、通信解析プログラム及び通信解析方法 | |
CN110995887A (zh) | 一种id关联方法和装置 | |
CN116708708B (zh) | 一种基于分布式的无纸化会议的构建方法及系统 | |
JP2015097330A (ja) | サービス推定装置及び方法 | |
CN116094940B (zh) | 一种vrrp脑裂抑制方法、系统、设备及存储介质 |
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 |