一种业务数据包跟踪实现方法

文档序号:7617072阅读:239来源:国知局
专利名称:一种业务数据包跟踪实现方法
技术领域
本发明涉及通信领域,更确切地说是涉及一种业务数据包跟踪实现方法。
背景技术
在基于网络消息包交互的软件系统应用中,应用程序与应用程序之间通过基于网络通讯协议,如传输控制协议/网络协议TCP/IP(TransmissionControl Protocol/Internet Protocol)协议的消息包交互数据,现有IP网络协议抓包工具只能以IP网络协议数据包的方式进行跟踪,没有成熟的业务数据流跟踪方式。

发明内容
有鉴于此,本发明的主要目的在于提供一种业务数据包跟踪实现方法,以实现基于网络通讯交互的应用程序实时数据跟踪的功能。
为达到以上目的,本发明的技术方案是这样实现的本发明所述方法,包括如下步骤A、由被跟踪的宿主程序加载跟踪桩;B、启动跟踪程序,由该跟踪程序接收所述宿主程序的通讯地址,并向宿主程序发送跟踪请求;C、所述宿主程序中的跟踪桩依据该请求检测宿主程序,并在检测到宿主程序发送交互消息时向跟踪程序发送该交互消息的相关信息;D、跟踪程序收集所述交互消息的相关信息。
通过提供源代码封装类进行源代码级集成的方式加载跟踪桩;或者,通过提供动态链接库,以动态链接库的方式加载跟踪桩。
所述宿主程序的通讯地址包括宿主程序的IP地址及通讯端口。
宿主程序和跟踪桩存在于不同的物理位置上,两者之间以TCP协议进行通讯。
所述跟踪程序还接受用户发送的定制请求,并在收集到所述交互消息的相关信息后依据该定制请求进行处理。
所述定制请求为业务数据结构的解释,跟踪程序接受该定制请求后将其转换为可识别的二进制Dat文件,并在收集到所述交互消息的相关信息后按所述二进制Dat文件解释的结构展示信息。
所述跟踪程序还接受用户发送的定制请求并将其发送至跟踪桩,跟踪桩按该定制请求对交互消息的相关信息进行预处理后发送给跟踪程序。
所述定制请求包括主叫、被叫、控制块、程序内部模块、业务代表工号或消息号过滤条件,或包括这些条件任意组合。
所述方法进一步包括用户向跟踪程序发送包含跟踪开始时间及跟踪时长的定制请求,跟踪程序接受该定制请求以定时任务的方式启动和关闭跟踪流程。
跟踪程序还将服务器端的过滤条件设置消息发送至跟踪桩,跟踪桩接受该设置消息后依据设置消息中描述的设置条件检测宿主程序发出的交互消息,并对其过滤后发送至跟踪程序。
所述交互消息包括网络交互消息、宿主程序内部交互消息或日志消息。
跟踪桩通过设置在宿主程序内部的输出接口检测宿主程序的内部交互,接收内部交互消息或日志消息,并将其拷贝发送给跟踪程序。
所述跟踪桩接受所述跟踪请求后,通过握手机制与跟踪程序保持网络通讯连接。
步骤D后进一步包括,跟踪程序向跟踪桩发送停止跟踪消息,跟踪桩接受该消息后,断开同跟踪程序的连接。
跟踪桩接受所述跟踪请求后还与跟踪程序协商版本及消息字节序,和按确定的字节序发送交互消息相关信息;所述跟踪程序则根据协商的版本信息区分不同的操作系统消息字节序,将所述交互消息的相关信息转换为统一的字节序。
所述交互消息的相关信息是指该交互消息的拷贝或者该交互消息的某一字段信息。
所述被跟踪的宿主程序为多个,所述跟踪程序依据收集到的多个相关宿主程序交互消息的相关信息来确认消息交互时序。
本发明通过在宿主程序中增加以动态库或者源代码方式提供的跟踪桩,然后基于TCP协议将业务数据包发送到跟踪服务器。宿主程序和跟踪桩可以存在于不同的物理位置上,两者之间可以以TCP协议进行通讯,进而使跟踪的数据包可以被发送至远端跟踪服务器,以实现网络交互消息的远程跟踪。跟踪服务器也可以根据定制的业务逻辑解释并显示消息交互轨迹及消息内部信息,从而减少了分析IP数据包的工作量。跟踪程序也可以根据用户定制解释结构,将网络消息直观的展示给用户,方便业务消息的分析。同时跟踪服务器可以根据人工指定实时跟踪,跟踪服务器可以定制化宿主发送过滤后的数据包,从而减少网络流量。跟踪服务器也可以依据用户的指令进行定时跟踪。在跟踪服务器不进行跟踪的情况下,宿主服务器不会发送任何消息日志消息,从而不影响宿主服务器的性能。同时本方法还提供跨平台特性,跟踪桩可以将Unix、Windows两种不同字节序的消息包发送给跟踪程序,由跟踪程序根据跟踪桩所定义的版本信息,确认不同的字节序,并在同一界面展示窗口进行展示分析。所述的跟踪内容不限于网络交互消息,程序内部交互消息和日志消息也可以被跟踪。


图1为本发明所述方法的组网示意图;
图2为本发明所述方法的流程示意图;图3为跟踪桩和跟踪程序之间握手机制流程示意图。
具体实施例方式
本发明所述业务数据包跟踪实现方法的组网如图1所示,其中,宿主程序是指要求被跟踪的目标程序,该目标程序基于通讯协议的方式与其他程序进行消息交互。在宿主程序中加载跟踪桩,所述跟踪桩是指在宿主程序中进行加载的目标程序,用于接收跟踪程序的跟踪指令,保持跟踪桩和跟踪程序之间的网络通讯连接,将宿主程序的网络通讯消息发送给远端跟踪程序。该目标程序可以是源代码形式也可以是动态链接库的形式。跟踪程序向跟踪桩下发跟踪指令,并将跟踪桩发回的业务消息流进行保存展示。
本发明的核心思想如图2所示,包括如下步骤A、在宿主程序中加载跟踪桩;B、启动跟踪程序,所述跟踪程序接收被跟踪的宿主程序的通讯地址,并向宿主程序发送跟踪请求;C、跟踪桩接受所述请求,当检测到宿主程序发送交互消息时,依据所述请求向跟踪程序发送该交互消息的相关信息;D、跟踪程序收集所述交互消息的相关信息。
作为本发明的第一实施例所述的业务数据包跟踪实现方法,具体包括如下步骤A、在宿主程序中加载消息跟踪桩;可以通过提供源代码封装类进行源代码级集成的方式进行加载,也可以通过提供动态链接库,以动态链接库的方式加载。宿主程序和跟踪桩可以存在于不同的物理位置上,两者之间可以以TCP协议进行通讯。
B、启动跟踪程序,接收被跟踪的宿主程序的IP地址及通讯端口信息。
C、跟踪程序向宿主程序发送请求跟踪的消息命令,跟踪桩接受所述消息命令与跟踪程序进行通讯初始化及其他配置初始化。
D、跟踪桩和跟踪程序之间的保持网络通讯连接,当跟踪桩检测到宿主程序发送网络通讯消息时,向跟踪程序发送该网络通讯消息的拷贝。
E、跟踪程序收集到消息拷贝后保存。
跟踪桩和跟踪程序之间可以通过握手机制保持网络通讯连接,如图3所示跟踪桩接受跟踪程序发送的请求跟踪的消息命令后,跟踪桩向跟踪程序发送建立连接消息以建立连接。连接建立后,跟踪桩向跟踪程序发送心跳请求,跟踪程序接受所述心跳请求后向跟踪桩反馈心跳响应消息。
作为本发明的第二实施例,跟踪程序根据用户定制的业务数据结构展示跟踪到的消息拷贝。用户向跟踪程序发送定制请求,所述定制请求为业务数据结构的解释,包括消息结构定义和消息号定义两个文件,跟踪程序接受该定制请求,通过消息转换程序将用户定义的文件转换为跟踪程序可识别二进制Dat文件。跟踪程序收集到消息拷贝后依据所述二进制Dat文件解释的结构将所述消息拷贝进行展示。
作为本发明的第三实施例,用户向跟踪程序发送定制请求,所述定制请求包括跟踪开始时间及跟踪时长。跟踪程序接受所述用户定制请求后,以定时任务的方式启动和关闭跟踪流程。当跟踪程序采用插件方式时,为跟踪程序增加一个插件动态库,当接受用户定制请求后,跟踪程序只需要依用户请求在该插件中设置需要跟踪和停止跟踪的时间,即可以以定时任务的方式启动和关闭跟踪流程。
作为本发明的第四实施例,跟踪程序设置服务端过滤条件,确定哪些消息包发送到跟踪程序。将该过滤条件设置消息发送给对应的跟踪桩,跟踪桩接受所述设置消息,依据设置消息中描述的设置条件检查宿主程序发出的每个网络通讯消息的消息包,对其进行过滤,将过滤后的消息包发送给跟踪程序。跟踪程序收集到所述过滤后的消息包后将其保存。
作为本发明的第五实施例,跟踪程序也可以接受用户的消息过滤定制请求,跟踪程序将该定制请求发送至跟踪桩,跟踪桩依据该定制请求对宿主程序发出的每个网络通讯消息的消息包进行过滤处理,将预处理后的相关信息发送至跟踪程序进行保存。跟踪程序也可以自己接受用户的消息过滤定制请求,将收集到的消息依该请求进行过滤处理后保存或展示。所述用户的消息过滤定制请求包括用户设置的各种过滤条件,如主叫、被叫、控制块、程序内部模块、业务代表工号、消息号等,或这些条件的灵活组合。
作为本发明的第六实施例,跟踪内容不限于网络交互消息,宿主程序内部交互消息和日志消息也可以被跟踪。在宿主程序内部设置输出接口,跟踪桩通过该输出接口检测宿主程序内部交互,接收该内部交互消息和日志消息,向跟踪程序发送内部交互消息和日志消息的拷贝。
作为本发明的第七实施例,跟踪程序可同时跟踪多个跟踪桩,并可以通过跟踪桩和跟踪程序各自的本地时间,对跟踪得到的消息进行排序,以此实现多进程、多设备的消息时序跟踪分析。跟踪程序接收多个被跟踪的宿主程序的通讯地址,并向多个宿主程序发送跟踪请求;所述宿主程序中的跟踪桩接受所述请求,依据该请求检测宿主程序,当检测到宿主程序发送交互消息时,向跟踪程序发送该交互消息的相关信息;跟踪程序依据收集到的多个相关宿主程序的交互消息的相关信息来确认消息交互时序。
本发明所述的业务数据包跟踪实现方法具有跨平台特性。跟踪程序向宿主程序发送请求跟踪的消息命令,跟踪桩接受所述消息命令与跟踪程序进行通讯初始化及其他配置初始化,以此完成版本、消息字节序的确定。跟踪桩可以将Unix、Windows两种不同字节序的消息包发送给跟踪程序,由跟踪程序根据跟踪桩所定义的版本信息,区分不同的操作系统消息字节序,然后转换消息为统一的字节序并展示给用户。
当跟踪程序采用插件方式时,当需要新增客户端功能时,只需要在客户端依据已经定义的插件模板设置相应的扩展功能动态库,即可在跟踪程序中通过注册功能增加相应的功能。
权利要求
1.一种业务数据包跟踪实现方法,其特征在于,包括如下步骤A、由被跟踪的宿主程序加载跟踪桩;B、启动跟踪程序,由该跟踪程序接收所述宿主程序的通讯地址,并向宿主程序发送跟踪请求;C、所述宿主程序中的跟踪桩依据该请求检测宿主程序,并在检测到宿主程序发送交互消息时向跟踪程序发送该交互消息的相关信息;D、跟踪程序收集所述交互消息的相关信息。
2.如权利要求1所述的方法,其特征在于,通过提供源代码封装类进行源代码级集成的方式加载跟踪桩;或者,通过提供动态链接库,以动态链接库的方式加载跟踪桩。
3.如权利要求1所述的方法,其特征在于,所述宿主程序的通讯地址包括宿主程序的IP地址及通讯端口。
4.如权利要求1所述的方法,其特征在于,宿主程序和跟踪桩存在于不同的物理位置上,两者之间以TCP协议进行通讯。
5.如权利要求1所述的方法,其特征在于,所述跟踪程序还接受用户发送的定制请求,并在收集到所述交互消息的相关信息后依据该定制请求进行处理。
6.如权利要求5所述的方法,其特征在于,所述定制请求为业务数据结构的解释,跟踪程序接受该定制请求后将其转换为可识别的二进制Dat文件,并在收集到所述交互消息的相关信息后按所述二进制Dat文件解释的结构展示信息。
7.如权利要求1所述的方法,其特征在于,所述跟踪程序还接受用户发送的定制请求并将其发送至跟踪桩,跟踪桩按该定制请求对交互消息的相关信息进行预处理后发送给跟踪程序。
8.如权利要求7所述的方法,其特征在于,所述定制请求包括主叫、被叫、控制块、程序内部模块、业务代表工号或消息号过滤条件,或包括这些条件任意组合。
9.如权利要求1所述的方法,其特征在于,所述方法进一步包括用户向跟踪程序发送包含跟踪开始时间及跟踪时长的定制请求,跟踪程序接受该定制请求以定时任务的方式启动和关闭跟踪流程。
10.如权利要求1所述的方法,其特征在于,跟踪程序还将服务器端的过滤条件设置消息发送至跟踪桩,跟踪桩接受该设置消息后依据设置消息中描述的设置条件检测宿主程序发出的交互消息,并对其过滤后发送至跟踪程序。
11.如权利要求1所述的方法,其特征在于,所述交互消息包括网络交互消息、宿主程序内部交互消息或日志消息。
12.如权利要求11所述的方法,其特征在于,跟踪桩通过设置在宿主程序内部的输出接口检测宿主程序的内部交互,接收内部交互消息或日志消息,并将其拷贝发送给跟踪程序。
13.如权利要求1至12中任一项所述的方法,其特征在于,所述跟踪桩接受所述跟踪请求后,通过握手机制与跟踪程序保持网络通讯连接。
14.如权利要求13所述的方法,其特征在于,步骤D后进一步包括,跟踪程序向跟踪桩发送停止跟踪消息,跟踪桩接受该消息后,断开同跟踪程序的连接。
15.如权利要求1所述的方法,其特征在于,跟踪桩接受所述跟踪请求后还与跟踪程序协商版本及消息字节序,和按确定的字节序发送交互消息相关信息;所述跟踪程序则根据协商的版本信息区分不同的操作系统消息字节序,将所述交互消息的相关信息转换为统一的字节序。
16.如权利要求1所述的方法,其特征在于,所述交互消息的相关信息是指该交互消息的拷贝或者该交互消息的某一字段信息。
17.如权利要求1所述的方法,其特征在于,所述被跟踪的宿主程序为多个,所述跟踪程序依据收集到的多个相关宿主程序交互消息的相关信息来确认消息交互时序。
全文摘要
本发明公开一种业务数据包跟踪实现方法,该方法由被跟踪的宿主程序加载跟踪桩;启动跟踪程序后由该跟踪程序接收所述宿主程序的通讯地址,并向宿主程序发送跟踪请求;所述宿主程序中的跟踪桩依据该请求检测宿主程序,并在检测到宿主程序发送交互消息时向跟踪程序发送该交互消息的相关信息;跟踪程序收集所述交互消息的相关信息。通过本发明实现基于网络通讯交互的应用程序实时数据跟踪的功能。
文档编号H04L12/24GK1848752SQ20051006313
公开日2006年10月18日 申请日期2005年4月4日 优先权日2005年4月4日
发明者王剑锋 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1