CN108093048B - 一种用于获取应用交互数据的方法与装置 - Google Patents
一种用于获取应用交互数据的方法与装置 Download PDFInfo
- Publication number
- CN108093048B CN108093048B CN201711377445.1A CN201711377445A CN108093048B CN 108093048 B CN108093048 B CN 108093048B CN 201711377445 A CN201711377445 A CN 201711377445A CN 108093048 B CN108093048 B CN 108093048B
- Authority
- CN
- China
- Prior art keywords
- data
- application
- packet
- traffic
- session
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000003993 interaction Effects 0.000 title claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims abstract description 99
- 238000004458 analytical method Methods 0.000 claims abstract description 44
- 230000002452 interceptive effect Effects 0.000 claims abstract description 37
- 230000002159 abnormal effect Effects 0.000 claims description 32
- 238000007405 data analysis Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010223 real-time analysis Methods 0.000 claims description 7
- 230000015654 memory Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims 2
- 238000012423 maintenance Methods 0.000 abstract description 2
- 230000009467 reduction Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 15
- 230000005856 abnormality Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000003672 processing method Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明的目的是提供一种用于获取应用交互数据的方法与设备。本发明通过对应用服务器端的出入流量数据进行镜像并获取,然后基于所述出入流量数据中的每个流量数据包的数据传输相关信息,对离散的流量数据包进行时序上的还原,以生成一个或多个会话,最后,根据应用所对应的应用协议来对所述会话进行解析,以最终还原网络流量,生成所述应用的交互数据。与现有技术相比,本发明能够实现对网络流量实时、灵活、全面的分析,而无需影响应用服务器的性能、存储,对于服务器和运维而言完全透明。
Description
技术领域
本发明涉及网络技术领域,尤其涉及一种用于获取应用交互数据的技术。
背景技术
随着互联网应用的不断涌现,如何记录互联网应用中的服务器与用户端的交互数据成为了一个技术问题。
例如,若想记录PC端或手机端的游戏、购物等应用中,服务器与用户之间的所有交互信息,现有的方式是通过对服务器进行修改,以使得服务器在处理用户发送的网络请求的同时,将用户的网络请求和服务器的回复信息全都记录到本地磁盘。显然,由于磁盘读写的负担增大,这种方式会对服务器的性能造成很大的影响,对于例如游戏等需要服务器快速反馈的应用而言,这种方式降低了服务器的响应速度,影响了用户体验。同时,由于服务器会不停地在本地磁盘写入大量的数据,如果不及时进行数据迁移很快就会占满整个服务器磁盘,所以这种方式还需要搭配一个庞大的日志文件迁移合并的服务,对整个服务器集群的网络流量又会造成很大的负担。所以若采用上述方式存储所有的网络交互信息,对集群性能和成本的影响太大,实用性较低。
因此,如何在不影响服务器性能的前提下,获取互联网应用中服务器与用户端的完整的交互数据,进一步地,实现灵活的交互数据获取,以便于后续的数据分析,是本领域技术人员所亟待解决的问题。
发明内容
本发明的目的是提供一种用于获取应用交互数据的方法与设备。
根据本发明的一个实施例,提供了一种用于获取应用交互数据的方法,其中,该方法包括以下步骤:
将应用服务器的出入流量数据镜像并存储至镜像存储设备中;
从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;
基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;
根据所述应用所对应的应用协议,对所述会话进行解析,以生成所述应用的交互数据。
可选地,将应用服务器的出入流量数据镜像并存储至镜像存储设备中的步骤包括:
根据镜像采集指令,将应用服务器的出入流量数据镜像并存储至镜像存储设备中,其中,所述镜像采集指令中包括所需采集的出入流量数据的时间范围和/或应用服务器范围。
可选地,从所述镜像存储设备中读取并解析所述出入流量数据的步骤包括:
根据数据解析指令,从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息,其中,所述数据解析指令中包括所需要读取并解析的所述出入流量数据的时间范围、应用服务器范围、所对应的用户中的一种或多种。
可选地,该方法还包括:
根据所述镜像存储设备的存储方式,确定对所述出入流量数据的解析方式,其中,所述解析方式包括批量解析和/或实时解析。
可选地,将所述流量数据包进行分组的步骤包括:
基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组。
可选地,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话的步骤包括:
根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;
基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
可选地,对所述会话进行解析的步骤包括:
根据所述应用所对应的应用协议,确定所述会话所对应的内容长度;
根据所述内容长度与所述会话长度的关系,确定待解析的一个或多个流量数据包;
对所述流量数据包进行解析,以生成所述应用的交互数据。
可选地,该方法还包括:
根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;
其中,对所述会话进行解析,以生成所述应用的交互数据的步骤包括:
根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的交互数据。
可选地,该方法还包括:
基于所述数据传输相关信息,识别每个分组中所包含的异常数据包;
根据所述异常数据包,对与所述异常数据包相关联的一个或多个流量数据包进行处理。
根据本发明的另一个实施例,还提供了一种用于获取应用交互数据的解析设备,其中,该设备包括:
第一装置,用于将应用服务器的出入流量数据镜像并存储至镜像存储设备中;
第二装置,用于从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;
第三装置,用于基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;
第四装置,用于根据所述应用所对应的应用协议,对所述会话进行解析,以生成所述应用的交互数据。
可选地,所述第一装置用于:
根据镜像采集指令,将应用服务器的出入流量数据镜像并存储至镜像存储设备中,其中,所述镜像采集指令中包括所需采集的出入流量数据的时间范围和/或应用服务器范围。
可选地,所述第二装置用于:
根据数据解析指令,从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息,其中,所述数据解析指令中包括所需要读取并解析的所述出入流量数据的时间范围、应用服务器范围、所对应的用户中的一种或多种。
可选地,该设备还包括:
第五装置,用于根据所述镜像存储设备的存储方式,确定对所述出入流量数据的解析方式,其中,所述解析方式包括批量解析和/或实时解析。
可选地,所述第三装置用于:
基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组;
对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
可选地,所述第三装置用于:
基于所述数据传输相关信息,将所述流量数据包进行分组;
根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;
基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
可选地,所述第四装置用于:
根据所述应用所对应的应用协议,确定所述会话所对应的内容长度;
根据所述内容长度与所述会话长度的关系,确定待解析的一个或多个流量数据包;
对所述流量数据包进行解析,以生成所述应用的交互数据。
可选地,该设备还包括:
第六装置,用于根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;
其中,所述第四装置用于:
根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的交互数据。
可选地,该设备还包括:
第七装置,用于基于所述数据传输相关信息,识别每个分组中所包含的异常数据包,并根据所述异常数据包,对与所述异常数据包相关联的一个或多个流量数据包进行处理。
根据本发明的另一个实施例,还提供了一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机可读指令,当所述计算机可读指令被一个或多个设备执行时,使得所述设备执行如上述任一项所述的方法。
根据本发明的另一个实施例,还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述任一项所述的方法。
与现有技术相比,本发明提供了一种获取应用交互数据的方法,即通过对应用服务器端的出入流量数据进行镜像并获取,然后基于所述出入流量数据中的每个流量数据包的数据传输相关信息,对离散的流量数据包进行时序上的还原,以生成一个或多个会话,最后,根据应用所对应的应用协议来对所述会话进行解析,以最终还原网络流量,生成所述应用的交互数据。从而,本发明能够实现对网络流量实时、灵活、全面的分析,而无需影响应用服务器的性能、存储,对于服务器和运维而言完全透明。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明的一个优选实施例的一种用于获取应用交互数据的系统架构图;
图2示出根据本发明一个方面的一种用于获取应用交互数据的解析设备示意图;
图3示出根据本发明另一个方面的一种用于获取应用交互数据的方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称的“解析设备”,即为“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。
所述计算机设备包括用户设备和/或网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
本领域技术人员应能理解,一般情况下,本发明中所述的“解析设备”可以仅是网络设备,即由网络设备来执行相应的操作;在特殊情况下,也可以是由用户设备与网络设备或服务器相集成来组成,即由用户设备与网络设备相配合来执行相应的操作,例如,由用户设备向网络设备发送指令,以指示网络设备开始执行“获取应用交互数据”的相应操作。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
本领域技术人员应能理解,本发明可用于任意应用的交互数据的获取,在此,所获取的交互数据为应用意义上的交互数据,即交互数据能够对应于该应用中的具体应用含义。例如,游戏应用中的操作交互数据(如操作意义、操作对象、操作数量等)、购物应用中的购物交互数据(如购买物品、商家信息、买家信息等)。在此,所述应用包括移动应用以及非移动应用。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明的一个优选实施例的一种用于获取应用交互数据的系统架构图。
用户与应用服务器通过网络进行交互,以获取所述应用服务器所提供的应用服务。在上述交互过程中,用户的客户端与所述应用服务器之间产生了大量的出入流量数据,镜像存储设备通过在网络中的任一点上,对所述出入流量数据进行镜像,以获取所述出入流量数据。优选地,所述镜像存储设备可以根据指令,与需要获取的特定的一个或多个应用服务器相交互,以获取该应用服务器与用户之间的出入流量数据。
解析设备通过与所述镜像存储设备相交互,以获取所述出入流量数据并进行解析,从而,所述解析设备无需与所述应用服务器相交互,整个解析过程对于所述应用服务器是透明的,不会对所述应用服务器产生任何影响,从而也就不会影响到正常的应用服务。
图2示出根据本发明一个方面的一种用于获取应用交互数据的解析设备示意图;其中,所述解析设备包括第一装置1、第二装置2、第三装置3、第四装置4。
具体地,所述第一装置1将应用服务器的出入流量数据镜像并存储至镜像存储设备中;所述第二装置2从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;所述第三装置3基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;所述第四装置4根据所述应用所对应的应用协议,对所述会话进行解析,以生成所述应用的交互数据。
所述第一装置1将应用服务器的出入流量数据镜像并存储至镜像存储设备中。
具体地,所述第一装置1在网络中的任一点上,对所述应用服务器的出入流量数据进行镜像,以获取所述出入流量数据并将其存储之镜像存储设备中。优选地,所述第一装置1可以是分光装置,也可以是其他可以执行镜像操作的装置。优选地,所述镜像存储设备的存储方式包括但不限于分布式文件系统或者消息队列,所述第一装置1可以基于对所述出入流量数据的处理需求,以选择具有特定存储方式的镜像存储设备,以执行对出入流量数据的存储。
优选地,所述第一装置1可以根据镜像采集指令,将应用服务器的出入流量数据镜像并存储至镜像存储设备中,其中,所述镜像采集指令中包括所需采集的出入流量数据的时间范围和/或应用服务器范围。
具体地,所述第一装置1可以根据镜像采集指令,仅采集所述镜像采集指令中所需要采集的某个时间范围内和/或一个或多个应用服务器范围内的出入流量数据。其中,所述采集方式可以是:所述第一装置1先将所有的出入流量数据进行镜像,然后根据所述镜像采集指令将所需采集的时间范围和/或应用服务器范围的出入流量数据进行镜像;或者,所述第一装置1仅在所述时间范围内进行出入流量数据的镜像,和/或仅对所述应用服务器范围内的应用服务器的出入流量数据进行镜像。
优选地,所述镜像采集指令可以根据预定的、基于时间或事件或是人工实时指定的方式进行触发或确定。例如,当发生某些特定事件时,则触发对某一个或多个应用服务器的出入流量数据的获取,或当在某些时间时,启动对出入流量数据的获取等。
所述第二装置2从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息。
具体地,所述第二装置2通过与所述镜像存储设备相交互,以读取所述镜像存储设备中的出入流量数据;然后,所述第二装置2根据所述应用服务器所采用的数据传输协议,对所述出入流量数据中的每个流量数据包进行解析,以获取数据传输相关信息。
当所述第二装置2读取每条出入流量数据时,每条出入流量数据都是二进制的数据数组;然后,所述第二装置2解析这些二进制的数组,首先根据数据传输协议还原出,例如Ethernet头、IP头、TCP/UDP头以及在上述头之后的、所传输的数据部分。然后,所述第二装置2对上述信息进行进一步分析,以得到数据传输相关信息。
其中,所述数据传输相关信息包括但不限于每个流量数据包所对应的发送IP与端口、接收IP与端口、SEQ、ACK、数据包大小、flags、断偏移、所传输的数据部分(即需要后续分析的具体应用内容)等。在此,本领域技术人员应能理解,根据流量数据包所对应的不同类型,如TCP包或UDP包,其所对应的数据传输相关信息不同。例如,TCP流量数据包的数据传输相关信息可以包括发送IP与端口、接收IP与端口、SEQ、ACK、数据包大小、所传输的数据部分等;UDP流量数据包的数据传输相关信息可以包括发送IP与端口、接收IP与端口、flags、段偏移、所传输的数据部分等。
优选地,所述第二装置2可以根据数据解析指令,从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息,其中,所述数据解析指令中包括所需要读取并解析的所述出入流量数据的时间范围、应用服务器范围、所对应的用户中的一种或多种。
具体地,所述第二装置2可以根据预定的、基于时间或事件或是人工实时指定的方式进行触发或确定的数据解析指令,对所解析的出入流量数据进行限定,从而,所述第二装置2可以根据所述数据解析指令,对所解析的所述出入流量数据进行筛选,从而仅解析特定时间范围、特定应用服务器范围或特定的用户所对应的出入流量数据。
优选地,所述解析设备还包括第五装置(未示出),其中,所述第五装置根据所述镜像存储设备的存储方式,确定对所述出入流量数据的解析方式,其中,所述解析方式包括批量解析和/或实时解析。
具体地,所述第五装置通过系统缺省设置,得知所述镜像存储设备的存储方式;或者是与所述镜像存储设备相交互,以获取所述镜像存储设备的存储方式。例如,所述存储方式包括分布式文件系统或消息队列。
然后,所述第五装置根据不同的存储方式,确定对所述出入流量数据的不同解析方式。例如,当所述存储方式为分布式文件系统时,所对应的解析方式为批量解析;当所述存储方式为消息队列时,所对应的解析方式为批量解析或实时解析。
所述第三装置3基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
具体地,所述第三装置3基于所述数据传输相关信息中的一种或多种,对所述流量数据包进行分组;在此,所述分组方法包括但不限于:
方式1.基于所述流量数据包所对应的发送IP与接收IP进行分组。例如,若两个流量数据包的发送IP与接收IP相一致,则将这两个流量数据包划分为一组;或者,若第一流量数据包的发送IP与第二流量数据包的接收IP一致且第二流量数据包的发送IP与第一流量数据包的接收IP一致,则将所述第一流量数据包与所述第二流量数据包划分为一组。上述操作可以循环进行,例如,若第二流量数据包的发送IP与第三流量数据包的接收IP一致且第三流量数据包的发送IP与第二流量数据包的接收IP一致,则将所述第三流量数据包划分至所述第一数据包与所述第二数据包所对应的分组中,从而,直至将具有对应IP的多个流量数据包划分完成为止。
方式2.优选地,基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组,即若两个流量数据包的发送/接收的IP与端口信息对应,则将这两个流量数据包划分为一组。例如,若两个流量数据包的发送IP/发送端口与接收IP/接收端口相一致,则将这两个流量数据包划分为一组;或者,若第一流量数据包的发送IP/发送端口与第二流量数据包的接收IP/接收端口一致且第二流量数据包的发送IP/发送端口与第一流量数据包的接收IP/接收端口一致,则将所述第一流量数据包与所述第二流量数据包划分为一组。同样地,上述操作可以循环执行。
方式3.基于所述流量数据包所对应的连续性进行分组。例如,若两个TCP流量数据包,可以基于流量数据包的SEQ、ACK以及数据包大小的连续性进行分组,即发送方的SEQ+数据包大小等于接收方的ACK且发送方的ACK等于接收方的SEQ,则证明上述两个流量数据包满足连续性,可以将这两个流量数据包划分为一组;类似地,若是两个UDP流量数据包,则可以基于默认排序或基于流量数据包的包头(header)中的flags和段偏移(fragmentoffset)等进行分组。
本领域技术人员应能理解,上述分组方法可以单独执行,也可以将上述三种方式结合起来执行,以进一步优化分组的效率与效果。例如,可以仅单独执行方式1、方式2或方式3,从而仅执行分组;或者,可以将方式1与方式3进行结合,或是将方式1与方式2进行结合,以优化分组效率,同时完成分组+连续性确定,从而进一步完成排序。
当对所述流量数据包的分组完成后,所述第三装置3对每个分组中的所有流量数据包按照时间顺序进行排序,从而根据排序后的流量数据包,生成一个或多个会话。其中,所述会话可以是短会话,也可以是长回话,例如,若是游戏应用,则所述会话多为长回话,即一个报文会话流中包含大量的来回报文,能够持续十几分钟甚至几十分钟;若是一般应用,如购物应用,则所述会话多为短会话,即报文会话流中所包含的来回报文数量较少。
在此,若所述流量数据包中包含有时间信息,则根据所述时间信息依次排序即可。
若所述流量数据包中不含有时间信息,则可以根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
例如,若所述流量数据包为TCP包,则可以根据流量数据包的SEQ、ACK以及数据包大小来判断连续关系,即发送方的SEQ+数据包大小等于接收方的ACK且发送方的ACK等于接收方的SEQ,则证明上述两个流量数据包满足连续性;若所述流量数据包为UDP包,则可以根据流量数据包的包头(header)中的flags和段偏移(fragment offset)关系进行直接解析。
本领域技术人员应能理解,即使所述流量数据包中含有时间信息,也可以基于上述方法进行排序,从而无需使用流量数据包中的时间信息。
以下示出一段连续的流量数据包示例:
发送方IP:端口 | 接收方IP:端口 | SEQ | ACK | Size |
116.62.173.112:23 | 210.12.118.194:2648 | -1401430175 | -660031943 | 28 |
210.12.118.194:2648 | 116.62.173.112:23 | -660031943 | -1401430147 | 11 |
116.62.173.112:23 | 210.12.118.194:2648 | -1401430147 | -660031943 | 13 |
116.62.173.112:23 | 210.12.118.194:2648 | -1401430134 | -660031932 | 8 |
表1:连续流量数据包的数据传输相关信息
注:Size即表示数据包大小
优选地,所述解析设备还包括第七装置(未示出),其中,所述第七装置基于所述数据传输相关信息,识别每个分组中所包含的异常数据包,并根据所述异常数据包,对与所述异常数据包相关联的一个或多个流量数据包进行处理。
具体地,所述第七装置通过对所述数据传输相关信息进行分析,通过判断所述数据传输相关信息中的内容、大小、连续性等,以识别每个分组中所包含的异常数据包;其中,数据传输的异常包括但不限于丢包、数据传输错误等情况。
所述丢包即发送方发送的报文并未被接收方接收到,所述数据传输错误则为发送方发送的数据仅被接收方部分接收到等。上述数据传输异常均会导致报文会话流中产生问题报文,甚至后面的某些报文作废,因此,这些数据传输异常会在分组后的数据包的数据传输相关信息中进行体现,例如,产生了孤立的异常数据包,仅有发送数据包且没有接受数据包等。
当识别出所述异常数据包后,所述第七装置根据预定的处理方法或是根据所述异常数据包所对应的数量、特征等,确定对所述异常数据包的处理方法;然后,所述第七装置对与所述异常数据包相关联的一个或多个流量数据包进行处理。
在此,所述处理方法包括但不限于回退数据、删除异常数据包等。所述“与所述异常数据包相关联的一个或多个流量数据包”可以仅是对所述异常数据包进行处理,也可以是对与所述异常数据包以及与其相关的一个或多个相关流量数据包进行处理,以排除掉作废的部分。例如,若某段会话流中产生了数据传输错误,则可以将该段会话流全部删除,而非仅仅是删除在该段会话流中某个具体的异常数据包。
在此,本领域技术人员应能理解,所述第七装置可以是对全部的分组数据包进行处理,也可以是对部分的分组数据包进行处理,从而实现分布式的处理方式。
所述第四装置4根据所述应用所对应的应用协议,对所述会话进行解析,以生成所述应用的交互数据。
具体地,所述第四装置4根据所述应用所对应的应用协议,对于所生成的会话进行解析,其中,所述应用协议即为该应用所特有的协议,如游戏应用的游戏协议,购物应用的购物应用协议等。
根据所述应用协议,将所述会话的会话内容进行解析还原,从而生成该会话所对应的应用内容,以作为所述应用的交互数据,其中,所述交互数据即为应用意义上的数据还原,例如,游戏中的游戏操作数据,购物中的购物数据等。
本领域技术人员应能理解,若所述流量数据包并未加密,则可直接对所述会话进行解析,以生成所述交互数据;若所述流量数据包已加密,则可对所述会话中的流量数据包进行解密后,再执行普通的解析操作,以生成所述交互数据。
在此,一个应用中可以对应一种或多种应用协议。
以一个游戏应用为例,可以包含“玩家送花给别人”的应用协议、“执行交互任务”的应用协议、“购买道具”的应用协议等。以“玩家送花给别人”的应用协议(以下简称“送花协议”)为例,当生成该应用的会话以后,若该会话是对应于这一应用协议,则所解析出的交互数据需要包含“送花协议”中所规定的“receiverroleid”、“itemid”、“itemnum”、“message”这些几个信息,从而,所生成的交互数据的示例如下:
<message name="CGiveFlower"type="8534"maxsize="65535"cpri="1">
<property name="receiverroleid"type="long"/>收花人id
<property name="itemid"type="int"/>鲜花的物品id
<property name="itemnum"type="int"/>鲜花数量
<property name="message"type="string"/>留言
</message>
优选地,所述第四装置4根据所述应用所对应的应用协议,确定所述会话所对应的内容长度;根据所述内容长度与所述会话长度的关系,确定待解析的一个或多个流量数据包;对所述流量数据包进行解析,以生成所述应用的交互数据。
具体地,所述第四装置4根据所述应用所对应的应用协议,通过对所述会话进行解析,以确定所述对话所对应的内容长度;当所对应的内容长度与所述会话的报文长度的关系不同时,所对应的解析方法不同,即待解析的流量数据包不同:
若所述内容长度与所述会话长度相同,则直接对所述会话中的全部流量数据包进行解析;
若所述内容长度比所述会话长度长,则说明所述会话中所包含的内容不全,因此,将所述会话中的全部流量数据包进行解析后,获取与所述会话相对应的后续会话,并将后续会话的流量数据包进行解析后,与该会话的解析内容进行拼接,直至拼接后的内容与所述内容长度相同;
若所述内容长度比所述会话长度短,则所述该会话中有冗余的流量数据包,因此,根据所述内容长度,从所述会话中解析部分流量数据包,进一步地,还可以执行循环解析,以重新获得内容长度并解析。
从而,当完成对所述流量数据包的解析后,生成所述应用的交互数据。
优选地,所述解析设备还包括第六装置(未示出),其中,所述第六装置根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;所述第四装置4根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的交互数据。
具体地,所述第六装置根据所述应用的加密方式,确定所述密钥以及解密方法;在此,所述密钥可以是固定密钥或是动态密钥,所述密钥的获取方法包括但不限于直接获取所述应用所对应的密钥,或是通过对所述会话或者是所述应用服务器的出入流量数据的前几帧数据进行分析,以确定所述密钥和/或加密方式。
本领域技术人员应能理解,任意能够解密所述流量数据包的方法均适用于本发明。
当所述第六装置基于所述密钥对所述流量数据包进行解密之后,所述第四装置4获取到所述解密后的会话,并基于所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的交互数据。在此,基于应用所对应的编译信息的不同,所对应的解析方法也不同。
例如,若游戏应用的应用协议(或称游戏协议)为Protobuf,且加密方式为使用一个固定的密钥来进行加密,则所述第六装置先基于相应的密钥对流量数据包进行解密,然后基于Protobuf的格式对会话进行解析。
图3示出根据本发明另一个方面的一种用于获取应用交互数据的方法流程图。
具体地,在步骤S1中,所述解析设备将应用服务器的出入流量数据镜像并存储至镜像存储设备中;在步骤S2中,所述解析设备从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;在步骤S3中,所述解析设备基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;在步骤S4中,所述解析设备根据所述应用所对应的应用协议,对所述会话进行解析,以生成所述应用的交互数据。
在步骤S1中,所述解析设备将应用服务器的出入流量数据镜像并存储至镜像存储设备中。
具体地,在步骤S1中,所述解析设备在网络中的任一点上,对所述应用服务器的出入流量数据进行镜像,以获取所述出入流量数据并将其存储之镜像存储设备中。优选地,所述镜像存储设备的存储方式包括但不限于分布式文件系统或者消息队列,所述解析设备可以基于对所述出入流量数据的处理需求,以选择具有特定存储方式的镜像存储设备,以执行对出入流量数据的存储。
优选地,在步骤S1中,所述解析设备可以根据镜像采集指令,将应用服务器的出入流量数据镜像并存储至镜像存储设备中,其中,所述镜像采集指令中包括所需采集的出入流量数据的时间范围和/或应用服务器范围。
具体地,在步骤S1中,所述解析设备可以根据镜像采集指令,仅采集所述镜像采集指令中所需要采集的某个时间范围内和/或一个或多个应用服务器范围内的出入流量数据。其中,所述采集方式可以是:所述解析设备先将所有的出入流量数据进行镜像,然后根据所述镜像采集指令将所需采集的时间范围和/或应用服务器范围的出入流量数据进行镜像;或者,所述解析设备仅在所述时间范围内进行出入流量数据的镜像,和/或仅对所述应用服务器范围内的应用服务器的出入流量数据进行镜像。
优选地,所述镜像采集指令可以根据预定的、基于时间或事件或是人工实时指定的方式进行触发或确定。例如,当发生某些特定事件时,则触发对某一个或多个应用服务器的出入流量数据的获取,或当在某些时间时,启动对出入流量数据的获取等。
在步骤S2中,所述解析设备从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息。
具体地,在步骤S2中,所述解析设备通过与所述镜像存储设备相交互,以读取所述镜像存储设备中的出入流量数据;然后,所述解析设备根据所述应用服务器所采用的数据传输协议,对所述出入流量数据中的每个流量数据包进行解析,以获取数据传输相关信息。
当所述解析设备读取每条出入流量数据时,每条出入流量数据都是二进制的数据数组;然后,所述解析设备解析这些二进制的数组,首先根据数据传输协议还原出,例如Ethernet头、IP头、TCP/UDP头以及在上述头之后的、所传输的数据部分。然后,所述解析设备对上述信息进行进一步分析,以得到数据传输相关信息。
其中,所述数据传输相关信息包括但不限于每个流量数据包所对应的发送IP与端口、接收IP与端口、SEQ、ACK、数据包大小、flags、断偏移、所传输的数据部分(即需要后续分析的具体应用内容)等。在此,本领域技术人员应能理解,根据流量数据包所对应的不同类型,如TCP包或UDP包,其所对应的数据传输相关信息不同。例如,TCP流量数据包的数据传输相关信息可以包括发送IP与端口、接收IP与端口、SEQ、ACK、数据包大小、所传输的数据部分等;UDP流量数据包的数据传输相关信息可以包括发送IP与端口、接收IP与端口、flags、段偏移、所传输的数据部分等。
优选地,在步骤S2中,所述解析设备可以根据数据解析指令,从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息,其中,所述数据解析指令中包括所需要读取并解析的所述出入流量数据的时间范围、应用服务器范围、所对应的用户中的一种或多种。
具体地,在步骤S2中,所述解析设备可以根据预定的、基于时间或事件或是人工实时指定的方式进行触发或确定的数据解析指令,对所解析的出入流量数据进行限定,从而,所述解析设备可以根据所述数据解析指令,对所解析的所述出入流量数据进行筛选,从而仅解析特定时间范围、特定应用服务器范围或特定的用户所对应的出入流量数据。
优选地,所述方法还包括步骤S5(未示出),其中,在步骤S5中,所述解析设备根据所述镜像存储设备的存储方式,确定对所述出入流量数据的解析方式,其中,所述解析方式包括批量解析和/或实时解析。
具体地,在步骤S5中,所述解析设备通过系统缺省设置,得知所述镜像存储设备的存储方式;或者是与所述镜像存储设备相交互,以获取所述镜像存储设备的存储方式。例如,所述存储方式包括分布式文件系统或消息队列。
然后,所述解析设备根据不同的存储方式,确定对所述出入流量数据的不同解析方式。例如,当所述存储方式为分布式文件系统时,所对应的解析方式为批量解析;当所述存储方式为消息队列时,所对应的解析方式为批量解析或实时解析。
在步骤S3中,所述解析设备基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
具体地,在步骤S3中,所述解析设备基于所述数据传输相关信息中的一种或多种,对所述流量数据包进行分组;在此,所述分组方法包括但不限于:
方式1.基于所述流量数据包所对应的发送IP与接收IP进行分组。例如,若两个流量数据包的发送IP与接收IP相一致,则将这两个流量数据包划分为一组;或者,若第一流量数据包的发送IP与第二流量数据包的接收IP一致且第二流量数据包的发送IP与第一流量数据包的接收IP一致,则将所述第一流量数据包与所述第二流量数据包划分为一组。上述操作可以循环进行,例如,若第二流量数据包的发送IP与第三流量数据包的接收IP一致且第三流量数据包的发送IP与第二流量数据包的接收IP一致,则将所述第三流量数据包划分至所述第一数据包与所述第二数据包所对应的分组中,从而,直至将具有对应IP的多个流量数据包划分完成为止。
方式2.优选地,基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组,即若两个流量数据包的发送/接收的IP与端口信息对应,则将这两个流量数据包划分为一组。例如,若两个流量数据包的发送IP/发送端口与接收IP/接收端口相一致,则将这两个流量数据包划分为一组;或者,若第一流量数据包的发送IP/发送端口与第二流量数据包的接收IP/接收端口一致且第二流量数据包的发送IP/发送端口与第一流量数据包的接收IP/接收端口一致,则将所述第一流量数据包与所述第二流量数据包划分为一组。同样地,上述操作可以循环执行。
方式3.基于所述流量数据包所对应的连续性进行分组。例如,若两个TCP流量数据包,可以基于流量数据包的SEQ、ACK以及数据包大小的连续性进行分组,即发送方的SEQ+数据包大小等于接收方的ACK且发送方的ACK等于接收方的SEQ,则证明上述两个流量数据包满足连续性,可以将这两个流量数据包划分为一组;类似地,若是两个UDP流量数据包,则可以基于默认排序或基于流量数据包的包头(header)中的flags和段偏移(fragmentoffset)等进行分组。
本领域技术人员应能理解,上述分组方法可以单独执行,也可以将上述三种方式结合起来执行,以进一步优化分组的效率与效果。例如,可以仅单独执行方式1、方式2或方式3,从而仅执行分组;或者,可以将方式1与方式3进行结合,或是将方式1与方式2进行结合,以优化分组效率,同时完成分组+连续性确定,从而进一步完成排序。
当对所述流量数据包的分组完成后,在步骤S3中,所述解析设备对每个分组中的所有流量数据包按照时间顺序进行排序,从而根据排序后的流量数据包,生成一个或多个会话。其中,所述会话可以是短会话,也可以是长回话,例如,若是游戏应用,则所述会话多为长回话,即一个报文会话流中包含大量的来回报文,能够持续十几分钟甚至几十分钟;若是一般应用,如购物应用,则所述会话多为短会话,即报文会话流中所包含的来回报文数量较少。
在此,若所述流量数据包中包含有时间信息,则根据所述时间信息依次排序即可。
若所述流量数据包中不含有时间信息,则可以根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
例如,若所述流量数据包为TCP包,则可以根据流量数据包的SEQ、ACK以及数据包大小来判断连续关系,即发送方的SEQ+数据包大小等于接收方的ACK且发送方的ACK等于接收方的SEQ,则证明上述两个流量数据包满足连续性;若所述流量数据包为UDP包,则可以根据流量数据包的包头(header)中的flags和段偏移(fragment offset)关系进行直接解析。
本领域技术人员应能理解,即使所述流量数据包中含有时间信息,也可以基于上述方法进行排序,从而无需使用流量数据包中的时间信息。
以下示出一段连续的流量数据包示例:
表1:连续流量数据包的数据传输相关信息
注:Size即表示数据包大小
优选地,所述方法还包括步骤S7(未示出),其中,在步骤S7中,所述解析设备基于所述数据传输相关信息,识别每个分组中所包含的异常数据包,并根据所述异常数据包,对与所述异常数据包相关联的一个或多个流量数据包进行处理。
具体地,在步骤S7中,所述解析设备通过对所述数据传输相关信息进行分析,通过判断所述数据传输相关信息中的内容、大小、连续性等,以识别每个分组中所包含的异常数据包;其中,数据传输的异常包括但不限于丢包、数据传输错误等情况。
所述丢包即发送方发送的报文并未被接收方接收到,所述数据传输错误则为发送方发送的数据仅被接收方部分接收到等。上述数据传输异常均会导致报文会话流中产生问题报文,甚至后面的某些报文作废,因此,这些数据传输异常会在分组后的数据包的数据传输相关信息中进行体现,例如,产生了孤立的异常数据包,仅有发送数据包且没有接受数据包等。
当识别出所述异常数据包后,所述解析设备根据预定的处理方法或是根据所述异常数据包所对应的数量、特征等,确定对所述异常数据包的处理方法;然后,所述解析设备对与所述异常数据包相关联的一个或多个流量数据包进行处理。
在此,所述处理方法包括但不限于回退数据、删除异常数据包等。所述“与所述异常数据包相关联的一个或多个流量数据包”可以仅是对所述异常数据包进行处理,也可以是对与所述异常数据包以及与其相关的一个或多个相关流量数据包进行处理,以排除掉作废的部分。例如,若某段会话流中产生了数据传输错误,则可以将该段会话流全部删除,而非仅仅是删除在该段会话流中某个具体的异常数据包。
在此,本领域技术人员应能理解,所述解析设备可以是对全部的分组数据包进行处理,也可以是对部分的分组数据包进行处理,从而实现分布式的处理方式。
在步骤S4中,所述解析设备根据所述应用所对应的应用协议,对所述会话进行解析,以生成所述应用的交互数据。
具体地,在步骤S4中,所述解析设备根据所述应用所对应的应用协议,对于所生成的会话进行解析,其中,所述应用协议即为该应用所特有的协议,如游戏应用的游戏协议,购物应用的购物应用协议等。
根据所述应用协议,将所述会话的会话内容进行解析还原,从而生成该会话所对应的应用内容,以作为所述应用的交互数据,其中,所述交互数据即为应用意义上的数据还原,例如,游戏中的游戏操作数据,购物中的购物数据等。
本领域技术人员应能理解,若所述流量数据包并未加密,则可直接对所述会话进行解析,以生成所述交互数据;若所述流量数据包已加密,则可对所述会话中的流量数据包进行解密后,再执行普通的解析操作,以生成所述交互数据。
在此,一个应用中可以对应一种或多种应用协议。
以一个游戏应用为例,可以包含“玩家送花给别人”的应用协议、“执行交互任务”的应用协议、“购买道具”的应用协议等。以“玩家送花给别人”的应用协议(以下简称“送花协议”)为例,当生成该应用的会话以后,若该会话是对应于这一应用协议,则所解析出的交互数据需要包含“送花协议”中所规定的“receiverroleid”、“itemid”、“itemnum”、“message”这些几个信息,从而,所生成的交互数据的示例如下:
<message name="CGiveFlower"type="8534"maxsize="65535"cpri="1">
<property name="receiverroleid"type="long"/>收花人id
<property name="itemid"type="int"/>鲜花的物品id
<property name="itemnum"type="int"/>鲜花数量
<property name="message"type="string"/>留言
</message>
优选地,在步骤S4中,所述解析设备根据所述应用所对应的应用协议,确定所述会话所对应的内容长度;根据所述内容长度与所述会话长度的关系,确定待解析的一个或多个流量数据包;对所述流量数据包进行解析,以生成所述应用的交互数据。
具体地,在步骤S4中,所述解析设备根据所述应用所对应的应用协议,通过对所述会话进行解析,以确定所述对话所对应的内容长度;当所对应的内容长度与所述会话的报文长度的关系不同时,所对应的解析方法不同,即待解析的流量数据包不同:
若所述内容长度与所述会话长度相同,则直接对所述会话中的全部流量数据包进行解析;
若所述内容长度比所述会话长度长,则说明所述会话中所包含的内容不全,因此,将所述会话中的全部流量数据包进行解析后,获取与所述会话相对应的后续会话,并将后续会话的流量数据包进行解析后,与该会话的解析内容进行拼接,直至拼接后的内容与所述内容长度相同;
若所述内容长度比所述会话长度短,则所述该会话中有冗余的流量数据包,因此,根据所述内容长度,从所述会话中解析部分流量数据包,进一步地,还可以执行循环解析,以重新获得内容长度并解析。
从而,当完成对所述流量数据包的解析后,生成所述应用的交互数据。
优选地,所述方法还包括步骤S6(未示出),其中,在步骤S6中,所述解析设备根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;在步骤S4中,所述解析设备根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的交互数据。
具体地,在步骤S6中,所述解析设备根据所述应用的加密方式,确定所述密钥以及解密方法;在此,所述密钥可以是固定密钥或是动态密钥,所述密钥的获取方法包括但不限于直接获取所述应用所对应的密钥,或是通过对所述会话或者是所述应用服务器的出入流量数据的前几帧数据进行分析,以确定所述密钥和/或加密方式。
本领域技术人员应能理解,任意能够解密所述流量数据包的方法均适用于本发明。
当所述解析设备基于所述密钥对所述流量数据包进行解密之后,在步骤S4中,所述解析设备获取到所述解密后的会话,并基于所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的交互数据。在此,基于应用所对应的编译信息的不同,所对应的解析方法也不同。
例如,若游戏应用的应用协议(或称游戏协议)为Protobuf,且加密方式为使用一个固定的密钥来进行加密,则所述解析设备先基于相应的密钥对流量数据包进行解密,然后基于Protobuf的格式对会话进行解析。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (20)
1.一种用于获取应用交互数据的方法,其中,该方法包括以下步骤:
将应用服务器的出入流量数据镜像并存储至镜像存储设备中;
从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;
基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;
根据所述应用所对应的应用协议,对所述会话进行解析,生成所述会话对应的应用内容,以作为所述应用的交互数据,其中,所述交互数据为应用意义上的数据还原。
2.根据权利要求1所述的方法,其中,将应用服务器的出入流量数据镜像并存储至镜像存储设备中的步骤包括:
根据镜像采集指令,将应用服务器的出入流量数据镜像并存储至镜像存储设备中,其中,所述镜像采集指令中包括所需采集的出入流量数据的时间范围和/或应用服务器范围。
3.根据权利要求1所述的方法,其中,从所述镜像存储设备中读取并解析所述出入流量数据的步骤包括:
根据数据解析指令,从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息,其中,所述数据解析指令中包括所需要读取并解析的所述出入流量数据的时间范围、应用服务器范围、所对应的用户中的一种或多种。
4.根据权利要求1至3中任一项所述的方法,其中,该方法还包括:
根据所述镜像存储设备的存储方式,确定对所述出入流量数据的解析方式,其中,所述解析方式包括批量解析和/或实时解析。
5.根据权利要求1所述的方法,其中,将所述流量数据包进行分组的步骤包括:
基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组。
6.根据权利要求1所述的方法,其中,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话的步骤包括:
根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;
基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
7.根据权利要求1所述的方法,其中,对所述会话进行解析的步骤包括:
根据所述应用所对应的应用协议,确定所述会话所对应的内容长度;
根据所述内容长度与所述会话长度的关系,确定待解析的一个或多个流量数据包;
对所述流量数据包进行解析,以生成所述应用的交互数据。
8.根据权利要求1所述的方法,其中,该方法还包括:
根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;
其中,对所述会话进行解析,以生成所述应用的交互数据的步骤包括:
根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的交互数据。
9.根据权利要求1所述的方法,其中,该方法还包括:
基于所述数据传输相关信息,识别每个分组中所包含的异常数据包;
根据所述异常数据包,对与所述异常数据包相关联的一个或多个流量数据包进行处理。
10.一种用于获取应用交互数据的解析设备,其中,该设备包括:
第一装置,用于将应用服务器的出入流量数据镜像并存储至镜像存储设备中;
第二装置,用于从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息;
第三装置,用于基于所述数据传输相关信息,将所述流量数据包进行分组,并对每个分组中的所述流量数据包进行排序,以生成一个或多个会话;
第四装置,用于根据所述应用所对应的应用协议,对所述会话进行解析,生成所述会话对应的应用内容,以作为所述应用的交互数据,其中,所述交互数据为应用意义上的数据还原。
11.根据权利要求10所述的解析设备,其中,所述第一装置用于:
根据镜像采集指令,将应用服务器的出入流量数据镜像并存储至镜像存储设备中,其中,所述镜像采集指令中包括所需采集的出入流量数据的时间范围和/或应用服务器范围。
12.根据权利要求10所述的解析设备,其中,所述第二装置用于:
根据数据解析指令,从所述镜像存储设备中读取所述出入流量数据,并基于数据传输协议,解析出所述出入流量数据中的每个流量数据包的数据传输相关信息,其中,所述数据解析指令中包括所需要读取并解析的所述出入流量数据的时间范围、应用服务器范围、所对应的用户中的一种或多种。
13.根据权利要求10至12中任一项所述的解析设备,其中,该设备还包括:
第五装置,用于根据所述镜像存储设备的存储方式,确定对所述出入流量数据的解析方式,其中,所述解析方式包括批量解析和/或实时解析。
14.根据权利要求10所述的解析设备,其中,所述第三装置用于:
基于所述流量数据包所对应的发送/接收的IP与端口信息,对所述流量数据包进行分组;
对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
15.根据权利要求10所述的解析设备,其中,所述第三装置用于:
基于所述数据传输相关信息,将所述流量数据包进行分组;
根据所述流量数据包所对应的数据传输协议,结合所述数据传输相关信息,判断所述流量数据包之间的连续关系;
基于所述连续关系,对每个分组中的所述流量数据包进行排序,以生成一个或多个会话。
16.根据权利要求10所述的解析设备,其中,所述第四装置用于:
根据所述应用所对应的应用协议,确定所述会话所对应的内容长度;
根据所述内容长度与所述会话长度的关系,确定待解析的一个或多个流量数据包;
对所述流量数据包进行解析,以生成所述应用的交互数据。
17.根据权利要求10所述的解析设备,其中,该设备还包括:
第六装置,用于根据所述会话所对应的密钥,对所述会话中的流量数据包进行解密;
其中,所述第四装置用于:
根据所述应用所对应的应用协议,对已解密的所述会话进行解析,以生成所述应用的交互数据。
18.根据权利要求10所述的解析设备,其中,该设备还包括:
第七装置,用于基于所述数据传输相关信息,识别每个分组中所包含的异常数据包,并根据所述异常数据包,对与所述异常数据包相关联的一个或多个流量数据包进行处理。
19.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机可读指令,当所述计算机可读指令被一个或多个设备执行时,使得所述设备执行如权利要求1至9中任一项所述的方法。
20.一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711377445.1A CN108093048B (zh) | 2017-12-19 | 2017-12-19 | 一种用于获取应用交互数据的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711377445.1A CN108093048B (zh) | 2017-12-19 | 2017-12-19 | 一种用于获取应用交互数据的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108093048A CN108093048A (zh) | 2018-05-29 |
CN108093048B true CN108093048B (zh) | 2021-04-02 |
Family
ID=62177247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711377445.1A Active CN108093048B (zh) | 2017-12-19 | 2017-12-19 | 一种用于获取应用交互数据的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108093048B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109379236A (zh) * | 2018-12-04 | 2019-02-22 | 广东电网有限责任公司 | 一种网页用户交互操作回放方法 |
CN111988239B (zh) * | 2020-08-21 | 2022-07-15 | 哈尔滨工业大学 | 一种用于Android应用的软件纯净流量获取方法 |
CN114253815A (zh) * | 2020-09-22 | 2022-03-29 | Igg新加坡有限私人贸易公司 | 通信内容分析方法及装置 |
CN114679265B (zh) * | 2022-03-22 | 2024-03-01 | 奇安信科技集团股份有限公司 | 流量获取方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101795230A (zh) * | 2010-02-23 | 2010-08-04 | 西安交通大学 | 一种网络流量还原方法 |
CN101924781A (zh) * | 2009-06-15 | 2010-12-22 | 日电(中国)有限公司 | 终端设备及其QoS实施方法以及流分类器 |
CN102664789A (zh) * | 2012-04-09 | 2012-09-12 | 北京百度网讯科技有限公司 | 一种大规模数据的处理方法和系统 |
CN103067192A (zh) * | 2011-10-20 | 2013-04-24 | 北京天行网安信息技术有限责任公司 | 一种网络流量的分析系统及方法 |
CN107204965A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种密码破解行为的拦截方法及系统 |
CN107431642A (zh) * | 2015-02-10 | 2017-12-01 | 大交换机网络股份有限公司 | 用于控制交换机以捕获和监视网络流量的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9813447B2 (en) * | 2013-03-15 | 2017-11-07 | Extreme Networks, Inc. | Device and related method for establishing network policy based on applications |
-
2017
- 2017-12-19 CN CN201711377445.1A patent/CN108093048B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924781A (zh) * | 2009-06-15 | 2010-12-22 | 日电(中国)有限公司 | 终端设备及其QoS实施方法以及流分类器 |
CN101795230A (zh) * | 2010-02-23 | 2010-08-04 | 西安交通大学 | 一种网络流量还原方法 |
CN103067192A (zh) * | 2011-10-20 | 2013-04-24 | 北京天行网安信息技术有限责任公司 | 一种网络流量的分析系统及方法 |
CN102664789A (zh) * | 2012-04-09 | 2012-09-12 | 北京百度网讯科技有限公司 | 一种大规模数据的处理方法和系统 |
CN107431642A (zh) * | 2015-02-10 | 2017-12-01 | 大交换机网络股份有限公司 | 用于控制交换机以捕获和监视网络流量的系统和方法 |
CN107204965A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种密码破解行为的拦截方法及系统 |
Non-Patent Citations (1)
Title |
---|
网络流量数据的分析与管理系统研究;韦建文;《中国优秀硕士学位论文全文数据库信息科技辑I139-54》;20110715;正文第1-78页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108093048A (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108093048B (zh) | 一种用于获取应用交互数据的方法与装置 | |
EP3616064B1 (en) | Systems and methods for networked microservice modeling and visualization | |
CN110457199B (zh) | 性能测试的方法和装置 | |
US7296080B2 (en) | Method of simulating network communications | |
CN106815254B (zh) | 一种数据处理方法和装置 | |
US20110125748A1 (en) | Method and Apparatus for Real Time Identification and Recording of Artifacts | |
CN106878074B (zh) | 流量过滤方法及装置 | |
CN108156146B (zh) | 一种用于识别异常用户操作的方法与装置 | |
JPH09128342A (ja) | トランザクションのトレース装置 | |
US9544378B2 (en) | Correlation of activities across a distributed system | |
JP2017016650A (ja) | コンピュータネットワーク上の資産を検出および識別するための方法およびシステム | |
US10091073B2 (en) | Large-scale passive network monitoring using multiple tiers of ordinary network switches | |
CN109275045B (zh) | 基于dfi的移动端加密视频广告流量识别方法 | |
US8305908B2 (en) | System analysis method, system analysis apparatus, and computer readable storage medium storing system analysis program | |
CN112883011B (zh) | 实时数据处理方法和装置 | |
US10387370B2 (en) | Collecting test results in different formats for storage | |
CN108121637B (zh) | 一种用于记录应用日志的方法与装置 | |
CN104780346A (zh) | 轻量级的视频信息处理方法及系统 | |
CN108011850B (zh) | 数据包的重组方法及装置、计算机设备及可读介质 | |
CN104052679A (zh) | 网络流量的负载均衡方法和装置 | |
CN1812410B (zh) | 文件传输管理系统及方法 | |
CN102055620B (zh) | 监控用户体验的方法和系统 | |
CN109245963A (zh) | 网络终端类型的识别方法及相关设备 | |
US9098863B2 (en) | Compressed analytics data for multiple recurring time periods | |
JP2019083012A (ja) | アダプティブイベント集約 |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 1105, 11th Floor, Building 7, Zone 4, Wangjing Dongyuan, Chaoyang District, Beijing 100102 Patentee after: Beijing Gaia Interactive Entertainment Network Technology Group Co.,Ltd. Country or region after: China Address before: 100043 Room 802, 8th floor, building 2, North block, main building, No.65 Bajiao East Street, Shijingshan District, Beijing Patentee before: GAEAMOBILE CO.,LTD. Country or region before: China |