网元数据回放的方法和装置转让专利

申请号 : CN201610251575.X

文献号 : CN107306199B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 熊广

申请人 : 中兴通讯股份有限公司

摘要 :

本发明涉及一种网元数据回放的方法,所述方法包括获取待回放的网元数据,所述网元数据包括多条话单消息;解码所述网元数据,获取每条话单消息的历史时间戳和网元号;对所述每条话单消息进行预处理,所述预处理包括将所述每条话单消息的历史时间戳替换为当前时间戳、将所述每条话单消息的网元号替换为目标网元号;对预处理后的话单消息进行编码;根据所述每条话单消息的历史时间戳或当前时间戳确定所述网元数据的实际速率;根据确定的所述实际速率将编码后的话单消息进行发送。上述回放网元数据的过程不再受复杂网元软硬件设备限制,解决了回放数据真实性不高,与现网真实数据特征不匹配的问题。

权利要求 :

1.一种网元数据回放的方法,所述方法包括:

获取待回放的网元数据,所述网元数据包括多条话单消息;

解码所述网元数据,获取每条话单消息的历史时间戳和网元号;

对所述每条话单消息进行预处理,所述预处理包括将所述每条话单消息的历史时间戳替换为当前时间戳、将所述每条话单消息的网元号替换为目标网元号;

对预处理后的话单消息进行编码;

根据所述每条话单消息的历史时间戳或当前时间戳确定所述网元数据的实际速率;

根据确定的所述实际速率将编码后的话单消息进行发送。

2.根据权利要求1所述的方法,其特征在于,所述对所述每条话单消息进行预处理,所述预处理包括将所述每条话单消息的历史时间戳替换为当前时间戳、将每条话单消息的网元号替换为目标网元号的步骤包括:计算首条话单消息的历史时间戳与当前时间的时间间隔,将所述每条话单消息的历史时间戳加上所述时间间隔转换为当前时间戳;

获取每条话单消息的网元类型,根据所述网元类型将每条话单消息的网元号替换为目标网元号。

3.根据权利要求1所述的方法,其特征在于,所述根据所述每条话单消息的历史时间戳或当前时间戳确定所述网元数据的实际速率的步骤包括:以首条话单消息的历史时间戳或当前时间戳为基准,递推预设时间,计算所述预设时间内的话单消息数,将计算得到的话单消息数值作为所述预设时间的实际速率。

4.根据权利要求1所述的方法,其特征在于,所述解码所述网元数据,获取每条话单消息的历史时间戳和网元号的步骤包括:对获取到的话单消息进行解码,所述话单消息包括消息头和消息体;

从所述消息头中解析出话单消息的网元号;

从所述消息体中解析出话单消息的历史时间戳。

5.根据权利要求1所述的方法,其特征在于,在所述对预处理后的话单消息进行编码的步骤之后还包括:将编码后的话单消息加入发送队列;

在所述根据确定的所述实际速率将编码后的话单消息进行发送的步骤之后还包括:将已发送的话单消息移出所述发送队列。

6.一种网元数据回放的装置,其特征在于,所述装置包括:获取模块,用于获取待回放的网元数据,所述网元数据包括多条话单消息;

编解码模块,用于解码所述网元数据,获取每条话单消息的历史时间戳和网元号;

预处理模块,用于对所述每条话单消息进行预处理,所述预处理包括将所述每条话单消息的历史时间戳替换为当前时间戳、将所述每条话单消息的网元号替换为目标网元号;

所述编解码模块还用于对预处理后的话单消息进行编码;

速率控制模块,用于根据所述每条话单消息的历史时间戳或当前时间戳确定所述网元数据的实际速率;

发送模块,用于根据确定的所述实际速率将编码后的话单消息进行发送。

7.根据权利要求6所述的装置,其特征在于,所述预处理模块包括:时间戳转换模块,用于计算首条话单消息的历史时间戳与当前时间的时间间隔,将所述每条话单消息的历史时间戳加上所述时间间隔转换为当前时间戳;

网元号替换模块,用于获取每条话单消息的网元类型,根据所述网元类型将每条话单消息的网元号替换为目标网元号。

8.根据权利要求6所述的装置,其特征在于,所述速率控制模块还用于以首条话单消息的历史时间戳或当前时间戳为基准,递推预设时间,计算所述预设时间内的话单消息数,将计算得到的话单消息数值作为所述预设时间的实际速率。

9.根据权利要求6所述的装置,其特征在于,所述编解码模块还用于对获取到的话单消息进行解码,所述话单消息包括消息头和消息体;从所述消息头中解析出话单消息的网元号;从所述消息体中解析出话单消息的历史时间戳。

10.根据权利要求6所述的装置,其特征在于,所述装置还包括:加入模块,用于将编码后的话单消息加入发送队列;

移出模块,用于将已发送的话单消息移出所述发送队列。

说明书 :

网元数据回放的方法和装置

技术领域

[0001] 本发明涉及通信技术领域,特别是涉及一种网元数据回放的方法和装置。

背景技术

[0002] 网元数据回放在通讯系统调试、测试过程中起着十分重要的作用。目前通讯网元的数据回放大多是将采集到的网元数据不做修改以固定速率发送到指定服务器。这样会导致回放后数据看起来不真实,给灵活性带来很大限制,无法保证信令的真实顺序和时延,更无法反映出用户在一定时间段内的真实业务流程和使用习惯。有方法提出针对少量的信令数据回放时,计算出每条消息之间的间隔,按间隔发送还原真实速率。这种方式针对小数据量的信令数据尚可控,在目前海量数据的情况下(每秒十几万消息量,要计算发送十几万次间隔)就力不从心,发送性能完全达不到要求。

发明内容

[0003] 基于此,有必要针对上述问题,提供一种比较精准的网元数据回放的方法和装置。
[0004] 一种网元数据回放的方法,所述方法包括:
[0005] 获取待回放的网元数据,所述网元数据包括多条话单消息;
[0006] 解码所述网元数据,获取每条话单消息的历史时间戳和网元号;
[0007] 对所述每条话单消息进行预处理,所述预处理包括将所述每条话单消息的历史时间戳替换为当前时间戳、将所述每条话单消息的网元号替换为目标网元号;
[0008] 对预处理后的话单消息进行编码;
[0009] 根据所述每条话单消息的历史时间戳或当前时间戳确定所述网元数据的实际速率;
[0010] 根据确定的所述实际速率将编码后的话单消息进行发送。
[0011] 一种网元数据回放的装置,其特征在于,所述装置包括:
[0012] 获取模块,用于获取待回放的网元数据,所述网元数据包括多条话单消息;
[0013] 编解码模块,用于解码所述网元数据,获取每条话单消息的历史时间戳和网元号;
[0014] 预处理模块,用于对所述每条话单消息进行预处理,所述预处理包括将所述每条话单消息的历史时间戳替换为当前时间戳、将所述每条话单消息的网元号替换为目标网元号;
[0015] 所述编解码模块还用于对预处理后的话单消息进行编码;
[0016] 速率控制模块,用于根据所述每条话单消息的历史时间戳或当前时间戳确定所述网元数据的实际速率;
[0017] 发送模块,用于根据确定的所述实际速率将编码后的话单消息进行发送。
[0018] 上述网元数据回放的方法和装置,通过将解码出的网元数据中的每条话单消息的历史时间戳替换为当前时间戳,解决了回放网元数据真实性不高的问题;通过将每条话单消息的网元号替换为目标网元号,实现了可以根据不同的测试环境灵活的为每条话单消息配置合适的网元号;通过根据每条话单消息的历史时间戳或当前时间戳确定网元数据的实际速率,进而根据确定的实际速率将编码后的话单消息进行发送,通过还原现网环境中真实的实时消息吞吐量保证了信令的真实顺序和时延。上述回放网元数据的过程不再受复杂网元软硬件设备限制,解决了回放数据真实性不高,与现网真实数据特征不匹配的问题。

附图说明

[0019] 图1为一个实施例中网元数据回放的方法流程图;
[0020] 图2为一个实施例中对每条话单消息进行预处理的方法流程图;
[0021] 图3为一个实施例中解码网元数据的方法流程图;
[0022] 图4为一个实施例中网元数据回放的装置结构框图;
[0023] 图5为一个实施例中预处理模块的结构框图;
[0024] 图6为另一个实施例中网元数据回放的装置结构框图。

具体实施方式

[0025] 如图1所示,在一个实施例中,提出了一种网元数据回放的方法,该方法包括以下步骤:
[0026] 步骤102,获取待回放的网元数据,网元数据包括多条话单消息。
[0027] 在本实施例中,网元数据是指网元之间传递的数据,既包括控制面数据(信令数据),也包括媒体面用户数据。网元数据往往是海量的,存储形式为文本文件。网元数据是以一条条话单的形式进行保存的,所以获取的网元数据包括多条话单消息。在一个实施例中,网元数据的内容为十六进制。具体的,接收回放网元数据的请求,在配置文件中查找与该网元数据对应的路径参数,根据路径参数获取待回放的网元数据。网元数据是预先存储在数据库中的。
[0028] 步骤104,解码网元数据,获取每条话单消息的历史时间戳和网元号。
[0029] 在本实施例中,网元数据是以一条条话单的形式进行保存的,对获取到的网元数据进行解码即是对话单消息进行解码,解析出每条话单消息的业务时间即业务发生的历史时间戳、网元类型、网元号等信息。在一个实施例中,解码规则遵循3GPP标准协议,解码的对象为话单消息,每条话单消息都由两部分组成即消息头和消息体。那么解码的内容包括两块:消息头和消息体。其中,从消息头中解码出网元号和网元类型,从消息体中解码出所有涉及到业务发生时间的字段,包括:上报时间字段,开始时间字段、结束时间字段。可以选择其中一个时间字段作为上述的历史时间戳。优选的,话单消息的历史时间戳为上报时间字段。
[0030] 步骤106,对每条话单消息进行预处理,预处理包括将每条话单消息的历史时间戳替换为当前时间戳、将每条话单消息的网元号替换为目标网元号。
[0031] 在本实施例中,对解析出的话单消息进行预处理,为了提高网元数据回放的真实性,将每条话单消息的历史时间戳替换为当前时间戳,同时为了适配测试环境中的网元号,将每条话单消息的网元号替换为测试环境中的目标网元号。具体的,以首条话单消息的历史时间戳与当前时间的间隔,将每条话单消息的历史时间戳加上此间隔,使得历史时间戳变为了当前时间戳。首先找到话单消息中网元号的位置,然后根据每条话单消息的网元类型和网元号,在测试环境中为该网元号唯一匹配一个目标网元号,用该目标网元号替换之前的网元号。
[0032] 步骤108,对预处理后的话单消息进行编码。
[0033] 具体的,将话单消息进行预处理后,需要将处理后的话单信息重新进行编码,编码规则遵循3GPP标准协议,采用通用的TLV编码格式进行编码。其中TLV的意思是Type(类型)、Length(长度)、Value(值)。编码的数据长度可变,数据长度及值的具体意义可以通过类型进行确定。在一个实施例中,编码采用话单消息原始的编码方式即解码前的编码方式。编码具体包括编码话单消息的消息头、消息体,并且进行消息头和消息体的组包。在另一个实施例中,对话单消息进行编码后,将其加载进发送队列,以便后续进行发送。
[0034] 步骤110,根据每条话单消息的历史时间戳或当前时间戳确定网元数据的实际速率。
[0035] 在本实施例中,每条话单消息都有两个时间戳,历史时间戳和当前时间戳。计算实际速率可以选用历史时间戳,也可以选用当前时间戳,需要说明的是,时间戳的选用必须一致,即所有的话单消息都选用历史时间戳,或所有的话单消息都选用当前时间戳。具体的,以首条话单消息的历史时间戳或当前时间戳为基准,递推预设时间,然后计算该预设时间内的话单消息数,将计算得到的话单消息数值作为该预设时间内的实际速率。在一个实施例中,启动定时器,预设时间设为1秒,每秒扫描发送队列中的话单消息,以发送队列中首条话单消息的时间戳为基准,递推1秒,找出这1秒内的话单消息数,由此实时得到每秒的话单消息数,那么网元数据的实际速率就是话单消息数/每秒。
[0036] 步骤112,根据确定的实际速率将编码后的话单消息进行发送。
[0037] 在本实施例中,根据实时计算得到的实际速率将编码后的话单消息按照原始方式发送到指定的服务器。这里的原始方式是指网元数据的原始传输协议即现网中网元数据的传输协议,比如TCP,UDP。在一个实施例中,将编码后的话单消息加载进发送队列,然后将发送队列中的话单消息根据实时确定的实际速率进行发送,并将已发送的话单消息移出发送队列,检测发送队列是否为空,若否,则继续发送,直至所有的话单消息发送完毕,若是,则停止发送。
[0038] 在本实施例中,通过将解码出的网元数据中的每条话单消息的历史时间戳替换为当前时间戳,解决了回放网元数据真实性不高的问题;通过将每条话单消息的网元号替换为目标网元号,实现了可以根据不同的测试环境灵活的为每条话单消息配置合适的网元号;通过根据每条话单消息的历史时间戳或当前时间戳确定网元数据的实际速率,进而根据确定的实际速率将编码后的话单消息进行发送,通过还原现网环境中真实的实时消息吞吐量保证了信令的真实顺序和时延。上述回放网元数据的过程不再受复杂网元软硬件设备限制,解决了回放数据真实性不高,与现网真实数据特征不匹配的问题。
[0039] 如图2所示,在一个实施例中,对每条话单消息进行预处理,预处理包括将每条话单消息的历史时间戳替换为当前时间戳、将每条话单消息的网元号替换为目标网元号的步骤包括:
[0040] 步骤106a,计算首条话单消息的历史时间戳与当前时间的时间间隔,将每条话单消息的历史时间戳加上时间间隔转换为当前时间戳。
[0041] 在本实施例中,每条话单消息都有一个历史时间戳,该历史时间戳是指该话单消息的业务发生的原始时间,为了提高网元数据回放的真实性,需要将原来的历史时间戳替换为当前的时间戳。具体的,首先找出首条话单消息的历史时间戳,计算首条话单消息的历史时间戳与当前时间的时间间隔,然后将所有的话单消息的历史时间戳都加上该时间间隔即将原来的历史时间戳转换为了当前时间戳。
[0042] 步骤106b,获取每条话单消息的网元类型,根据网元类型将每条话单消息的网元号替换为目标网元号。
[0043] 在本实施例中,对每条话单消息进行解码,可以从每条话单消息的消息头部分解析出该话单消息的网元类型,然后根据获取到的网元类型和网元号将每条话单消息的网元号替换为测试环境中的目标网元号。
[0044] 在一个实施例中,根据每条话单的历史时间戳或当前时间戳计算网元数据的实际速率的步骤包括:以首条话单消息的历史时间戳或当前时间戳为基准,递推预设时间,计算预设时间内的话单消息数,将计算得到的话单消息数值作为预设时间的实际速率。
[0045] 具体的,为了还原现网环境中真实的实时消息吞吐量保证信令的真实顺序和时延,需要根据网元数据实际速率将话单消息发送到目标服务器。实际速率的计算是在保证已有话单消息间时延及顺序一致的前提下,通过以首条话单的历史时间戳或当前时间戳为基准,递推预设时间(比如1秒),然后计算该预设时间内的话单消息数,计算得到的话单消息数值就是该预设时间内的实际速率,即话单消息数/预设时间,然后将该预设时间内的话单消息数批量(一次性)的发送给对应的目标服务器。
[0046] 在一个实施例中,解码网元数据,获取每条话单消息的历史时间戳和网元号的步骤包括:对获取到的话单消息进行解码,话单消息包括消息头和消息体。从消息头中解析出话单消息的网元号;从消息体中解析出话单消息的历史时间戳。
[0047] 在本实施例中,话单消息包括消息头和消息体,解码网元数据就是对每条话单消息的消息头和消息体进行解码,从消息头中解析出话单消息的网元号,从消息体中解析出话单消息的历史时间戳。在另一个实施例中,还可以从消息头中解析出话单消息的网元类型。
[0048] 在一个实施例中,在对预处理后的话单消息进行编码的步骤之后还包括:将编码后的话单消息加入发送队列。在根据确定的实际速率将编码后的话单消息进行发送的步骤之后还包括:将已发送的话单消息移出发送队列。
[0049] 具体的,在对预处理后的话单消息进行编码后,将编码后的话单消息加载进发送队列,然后对发送队列中的话单消息进行扫描,并以首条话单消息的时间戳为基准,递推预设时间(比如1秒),根据话单消息的时间戳获取在该预设时间内的所有话单消息数,并将发送队列中的该预设时间内的所有话单消息批量进行发送,发送完成后,将已发送的话单消息移出该发送队列,检测发送队列是否为空,若否,则继续发送,直至所有的话单消息发送完毕,若是,则停止发送。
[0050] 如图3所示,在一个实施例中,网元数据回放的流程如下:
[0051] 步骤301,获取待回放的网元数据,网元数据包括多条话单消息。
[0052] 步骤302,解码网元数据,获取每条话单消息的历史时间戳和网元号。
[0053] 步骤303,对每条话单消息进行预处理,预处理包括将每条话单消息的历史时间戳替换为当前时间戳、将每条话单消息的网元号替换为目标网元号。
[0054] 步骤304,对预处理后的话单消息进行编码,将编码后的话单消息加入发送队列。
[0055] 步骤305,根据每条话单消息的历史时间戳或当前时间戳确定网元数据的实际速率。
[0056] 步骤306,根据确定的实际速率将编码后的话单消息进行发送。
[0057] 步骤307,将已发送的话单消息移出发送队列。
[0058] 步骤308,判断发送队列是否为空,若是,则结束发送,若否,则继续执行步骤306。
[0059] 如图4所示,在一个实施例中,提出了一种网元数据回放的装置,该装置包括:
[0060] 获取模块402,用于获取待回放的网元数据,网元数据包括多条话单消息。
[0061] 编解码模块404,用于解码网元数据,获取每条话单消息的历史时间戳和网元号。
[0062] 预处理模块406,用于对每条话单消息进行预处理,预处理包括将每条话单消息的历史时间戳替换为当前时间戳、将每条话单消息的网元号替换为目标网元号。
[0063] 编解码模块404还用于对预处理后的话单消息进行编码。
[0064] 速率控制模块408,用于根据每条话单消息的历史时间戳或当前时间戳确定网元数据的实际速率;
[0065] 发送模块410,用于根据确定的实际速率将编码后的话单消息进行发送。
[0066] 如图5所示,在一个实施例中,预处理模块406包括:
[0067] 时间戳转换模块406a,用于计算首条话单消息的历史时间戳与当前时间的时间间隔,将每条话单消息的历史时间戳加上时间间隔转换为当前时间戳;
[0068] 网元号替换模块406b,用于获取每条话单消息的网元类型,根据网元类型将每条话单消息的网元号替换为目标网元号。
[0069] 在一个实施例中,速率控制模块408还用于以首条话单消息的历史时间戳或当前时间戳为基准,递推预设时间,计算预设时间内的话单消息数,将计算得到的话单消息数值作为预设时间的实际速率。
[0070] 在一个实施例中,编解码模块还用于对获取到的网元数据中的话单消息进行解码,话单消息包括消息头和消息体;从消息头中解析出话单消息的网元号;从消息体中解析出话单消息的历史时间戳。
[0071] 如图6所示,在一个实施例中,上述网元数据回放的装置还包括:
[0072] 加入模块412,用于将编码后的话单消息加入发送队列。
[0073] 移出模块414,用于将已发送的话单消息移出发送队列。
[0074] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0075] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0076] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。