CN101272218A - 一种记录通信终端诊断数据的方法 - Google Patents
一种记录通信终端诊断数据的方法 Download PDFInfo
- Publication number
- CN101272218A CN101272218A CNA2007100891576A CN200710089157A CN101272218A CN 101272218 A CN101272218 A CN 101272218A CN A2007100891576 A CNA2007100891576 A CN A2007100891576A CN 200710089157 A CN200710089157 A CN 200710089157A CN 101272218 A CN101272218 A CN 101272218A
- Authority
- CN
- China
- Prior art keywords
- diagnostic data
- descriptor
- data bag
- bag
- data
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种记录通信终端诊断数据的方法,包括以下步骤:采集外部设备和通信终端之间交互的诊断数据包;记录诊断数据包,并生成该诊断数据包的描述信息,记录该描述信息。通过本发明记录通信终端诊断数据的方法能够快速确定数据包范围,而使得读取数据非常高效,并且避免了个别数据读取异常导致其他数据失效,大大提高了可靠性,同时又保证了测试数据的完整性。
Description
技术领域
本发明涉及通信设备测试技术,尤其涉及一种记录通信终端诊断数据的方法。
背景技术
在通信网络系统的开发和实际应用过程中,不可避免要对网络系统进行测试。最重要的测试方法之一,是让通信终端做不同类型的呼叫,记录下信令交互、信号强弱、网络及终端状态、事件等信息。通过这些信息就可以评估包括通信终端在内的整个网络系统的质量,分析和诊断系统中存在的故障。所有与通信终端交互、用以测试和诊断网络系统的数据,在不同的通信终端文档对其的命名有所不同,这里统称为诊断数据(Diagnostic Data)。
通信终端提供特定的接口以及相应的接口控制协议,以便外部设备获取诊断数据,接口控制协议规定了诊断数据的格式和交换方式。如图1所示,通信终端和外部设备之间交互的诊断数据交换单元称为诊断数据包(DiagnosticPacket),诊断数据包以类型编号区分包含的数据信息。诊断数据包的格式按长度是否固定分为定长和变长两大类,其中变长的诊断数据包一般通过长度域,直接或间接确定数据包的范围。
参见图2所示,为几种常见的诊断数据包格式。其中,第一种格式201是没有长度指示的诊断数据包示例,长度由类型可以确定;第二种格式202和第三种203格式是有长度指示的诊断数据包示例,从图中可以看出,数据部分的内容没有什么限制,也可以是和诊断数据包一样的格式;第四种格式204示出了诊断数据包的一种通用格式归纳,其中类型域、长度域、数据域本身的类型、长度、包含的内容、以及各域之间的相对位置没有统一标准,由具体接口控制协议规定。
测试过程中采集的诊断数据包作为以后处理和分析的数据来源,记录到文件中至关重要。随着通信技术的发展,诊断数据的类型越来越丰富,通信终端在单位时间内产生的诊断数据包越来越多,目前已经超过一百个每秒并且还在随通信终端性能的提高而增加。在类型和数量增加的同时,诊断数据包的大小也不断增加,目前数量级已达到一千字节以上。此外,多载频网络的逐渐普及,使得多个通信终端同时测试变得越来越频繁,在使用多通信终端进行相同的测试时,每增加一个通信终端,诊断数据包的数量就要增加一倍。总而言之,测试产生的诊断数据越来越多,大量的诊断数据要求有高效的方法来记录。最高效的记录方法之一就是直接把诊断数据包依次写入文件,而在读取文件时,按照记录的顺序依次读取数据包。其中,定长数据包根据类型确定范围;变长数据包则还需结合长度域确定范围,一旦当前数据包范围正确界定,其后数据包的起始位置也就随之确定。
测试过程中,由于诊断数据的记录速度非常快,在测试环境恶劣的情况下(如设备所在的车船剧烈颠簸)往往会出现文件读写操作异常,从而造成文件数据损坏。即使记录的过程是完全正常的,存储设备的损坏、病毒的破坏也可能造成文件数据的损坏。通常,损坏只存在于个别数据包,但是按照上述方法记录的诊断数据文件,读取后一个数据包依赖于前一个数据包的正确读取,因此单个数据包损坏就造成其后所有数据包都无法正确读取。参见图3所示,上面一组为文件正常时的数据包序列,各个数据包范围可以正确界定,下面一组为文件损坏时的数据包序列,其中第i个数据包因损坏无法正确地确定范围,从而导致第i+1个到最后第N个数据包也不能正确读取。
另一方面,由于诊断接口控制协议不断变更,定长诊断数据包的长度在不同版本的协议中并不一定是固定的,而定长诊断数据包又没有长度域或者结束指示域,读取采用前述方法记录的数据时,也会出现数据包范围判断错误。例如,通信终端的一类定长诊断数据包,其数据字段在协议版本升级后增加了子字段,基于升级前的协议版本读取这类数据包,数据包就会被右截断。
由于任意文件位置的数据都可以解析成类型或者长度,因此读取过程数据范围是否判断错误,以及在什么位置出现错误难以确知。在错误发生而又没能识别出来的情况下,做出的分析是不可靠的,基于这样的分析进行网络系统的设置和调整,严重时甚至会导致网络系统故障。
对于局部数据损坏造成整个诊断数据文件失效的问题,现有技术主要有以下两类解决方案:
方案一、文件双工的思想。
以下描述利用该思想的一个实施例:诊断数据保存为一式两份,这样即使其中一份数据出现异常,也可以利用另外一份。正常情况下,两份数据都出错的概率要比一份数据小得多,但是如前所述,测试过程中的震动等事件会对两份数据的记录都有影响,使得出错有相关性。虽然通过缓冲诊断数据错开两份数据的记录时间,可以降低出错相关性,但使用该方案仍然存在下述问题:一方面,需要增加一倍的文件读写操作,占用更多的处理时间,而在测试时除了记录数据还要进行业务方面的控制和数据的分析、显示,额外的操作会显著影响性能;另一方面,需要增加一倍的文件存储空间,这在数据正常的情况下是很大的浪费。此外,如前所述,读取数据是否出现错误很难判断,两份数据不一致的时候,需要具备业务经验的人员分析才能确定数据的正确性。
方案二、隔离错误的思想。
以下描述利用该思想的一个实施例:在测试过程中,每隔一定的时间或者每记录一定大小的诊断数据,就建立一个新的文件来记录诊断数据,这样就把数据损坏的影响限定在一个文件,而其他数据文件不受影响。这种技术的一个明显的问题是将一次完整测试过程的诊断数据分割成多份,不利于总体统计、分析,更严重的是数据特别是通信终端信令流程的割裂引起判断错误,使得数据分析人员无法正确地定位网络系统的问题。一次测试过程中的诊断数据保存为多少个文件也是一个问题,如果单个文件较大,那么局部数据损坏造成的影响还是较大,而如果单个文件分割得较小,那么文件的数目就较多,不方便管理。
由以上描述可知,现有的技术,需要过多的额外操作和存储空间,影响测试性能,或者把测试数据分割,破坏了数据的完整性。这些技术除了引入新的问题,并且不能保证效率和足够的可靠性之外,还或多或少增加了人对数据进行处理的负担。
发明内容
有鉴于此,本发明的目的在于提供一种高效可靠的诊断数据记录方法,使得读取数据时能够快速确定诊断数据包范围,并在出现范围判断不正确时重新定位,避免整个诊断数据文件失效。
基于以上目的本发明提供了一种记录通信终端诊断数据的方法,包括以下步骤:
A.采集外部设备和通信终端之间交互的诊断数据包;
B.记录诊断数据包,并生成该诊断数据包的描述信息,记录该描述信息。
该方法步骤B中记录所述诊断数据包和描述信息分开保存。
该方法设置诊断数据存储区和描述信息存储区;所述诊断数据包保存在诊断数据存储区;所述描述信息保存在描述信息存储区。
该方法所述诊断数据存储区和描述信息存储区,分别为存储诊断数据包和描述信息的文件,或者文件的一部分。
该方法所述不同的描述信息记录在不同的存储区。
该方法所述诊断数据包的描述信息为位置、时间描述信息中的至少一种。
该方法所述位置描述信息为保存该诊断数据包的开始位置或结束位置。
该方法所述时间描述信息为采集到包或者记录包的时刻值。
该方法所述诊断数据包的描述信息进一步包括:类型编号、长度、校验码、数据摘要、纠错码描述中的至少一种。
该方法诊断数据包包括:外部设备发送到通信终端的诊断数据包和通信终端发送到外部设备的诊断数据包。
该方法步骤B后进一步包括:在读取诊断数据时,首先读取诊断数据包的描述信息,通过描述信息确定该诊断数据包的范围并读取该诊断数据包的数据。
从上面所述可以看出,本发明提供的记录通信终端诊断数据的方法,利用诊断数据以包为单位的特点,在记录诊断数据包的同时,保存数据包的描述信息,例如位置、类型编号、时间、校验码、数据摘要、纠错码等,描述信息与诊断数据包分区保存。在读取诊断数据时首先读取描述信息通过数据包的位置描述信息,就可以快速确定任意一个数据包的范围,如果读取的数据包无法正确解析,说明存在异常,此时丢弃该数据包而直接根据位置描述信息读取下一个数据包,不论个别的数据包是损坏,还是类型无法识别而不能正确解析,都不会影响其他的数据包。诊断数据包的位置描述信息相当于索引,能够快速确定数据包范围,而使得读取数据非常高效,并且避免了个别数据读取异常导致其他数据失效,大大提高了可靠性,同时又保证了测试数据的完整性。
附图说明
图1为外部设备与通信终端间交互诊断数据包的示意图;
图2为诊断数据包格式示意图;
图3为诊断数据文件中的诊断数据包序列图;
图4为本发明方案的实现流程图;
图5为根据诊断数据包生成描述信息的示意图;
图6为描述信息应对文件中诊断数据包损坏的示意图。
具体实施方式
本发明的主要思想是利用诊断数据以包为单位的特点,在记录诊断数据包的同时,保存数据包的描述信息,例如位置、类型编号、时间、校验码、数据摘要、纠错码等,描述信息与诊断数据包分区保存。在读取诊断数据时首先读取描述信息,通过数据包的位置描述信息,就可以快速确定任意一个数据包的范围。如果读取的数据包无法正确解析,说明存在异常,此时丢弃该数据包而直接根据位置描述信息读取下一个数据包,不论个别的数据包是损坏,还是类型无法识别而不能正确解析,都不会影响其他的数据包。当然,描述信息也可能损坏,但是其具有长度相对固定的特点,即使出现数据损坏也不会丢失位置,并且相对诊断数据包来说数据量很少,损坏的概率较低,还可以对描述信息进行交织、重复、纠错处理,进一步降低损坏概率,和/或在出错时纠正,从而获得高度的可靠性。
下面结合附图,详细说明本发明的较佳实施方案。
本发明较佳实施例的处理流程参见图4所示,具体步骤说明如下:
401、每当外部设备和通信终端有诊断数据包交互时,采集诊断数据包。
本步骤中,外部设备可以是任何与通信终端进行诊断数据交互的设备,包括硬件设备或上层应用程序模块,其物理位置可以在通信终端的外部,也可以在通信终端中。
本实施例中,使用安装在计算机中的诊断数据采集程序模块,通信终端的诊断接口通过终端数据线与计算机的通信端口连接,诊断数据采集程序读取计算机通信端口采集诊断数据包。诊断数据包包括从外部设备发送到通信终端的和通信终端发送到外部设备的。
402、记录诊断数据包到诊断数据存储区,生成诊断数据包的描述信息。
本步骤中,首先将诊断数据记录到诊断数据存储区。不同类型诊断数据包的格式也不相同,定长的诊断数据包由于根据类型可以确定数据包大小而可能没有长度域,主要适合于进行控制方面的交互;变长的诊断数据包具有更大的灵活性,适合于记录大量的网络和通信终端参数。为了记录的高效,通常采用直接存储原始诊断数据包的方式,并且各诊断数据包依次相连。这里,诊断数据存储区是相对描述信息的存储而言的,可以是单独的一个文件,也可以是文件划分出来的一部分,以区别描述信息的存储位置。
由于直接存储诊断数据包,不同格式的数据包,特别是没有长度指示的数据包,不方便读取时确定范围,局部数据损坏,或者是某些类型的诊断数据包不能正确解析,例如,通信终端升级往往会增加了新类型的诊断数据包,或者某些类型的数据包长度发生变化,而数据的读取模块没有相应更新,就会出现这种情况,更是会造成其后数据都无法可靠正确地读取,如图3所示的情况。
为此,本步骤在记录诊断数据包后,还生成诊断数据包的描述信息,以便记录下来辅助读取数据。参见图5所示,一个诊断数据包可以有多种描述信息,最基本的描述信息是诊断数据包在数据存储区的起止位置,由于通常情况下,诊断数据包是依次直接存储的,前一个包的结束位置就是下一个包的开始位置,因此这种情况下,只要记录开始位置和结束位置中的任一个即可。
本实施例中,生成诊断数据包位置数据的方法为每次记录完一个包后,获取当前在存储区的所处位置值,此值即为需要位置数据,它既是记录完的包的结束位置也是下一个包的开始位置。
相邻的两个位置数据确定了一个诊断数据包的开始和结束位置,结束位置和开始位置的差值就是包占用存储区的长度。在存储一个包时,包的大小是知道的,因此每次存储完一个包以后,比较其大小与占用的存储区的长度,如果不一致说明文件读写出现异常,此时触发异常处理事件,或进行告警由用户进行处理,或重复存储当前的诊断数据包,或新建文件记录诊断数据。
另外,诊断数据包的时间也是重要的描述信息,时间描述信息可以是采集到包或者记录包到存储区的时刻值。由于各种类型的诊断数据包在时间上不是均匀分布的,与测试操作密切相关,因此使用时间描述信息以反映诊断数据在时间轴上的分布情况。
除此之外,本步骤中,还可以记录其他一些诊断数据包的描述信息,包括:类型编号、长度、校验码、数据摘要、纠错码。这些描述信息作为诊断数据包信息的冗余,不是必须的,可以帮助检错,和/或纠错,但也需要或多或少的额外存储空间和处理时间。其中,类型编号和长度在采集到诊断数据包时也就得到;校验码、数据摘要、纠错码通过对诊断数据包进行相应处理得到,以校验码最为高效实用。生成校验码较优的方案是使用循坏冗余码校验;生成数据摘要较优的方案是使用报文摘要算法产生,例如MD5;理论上,可以对诊断数据包的数据域生成纠错码,但是诊断数据相对较长而且不固定,而且抛弃单个出错的诊断数据对后处理和分析的影响很小,因此实际只会对类型、长度等长度较短且固定的域生成纠错码。
403、记录描述信息到描述信息存储区。
本步骤将前一步骤中生成的描述信息记录到描述信息存储区。这里,描述信息存储区是相对诊断数据的存储而言的,可以是单独的一个文件,也可以是文件划分出来的一部分,以区别诊断数据的存储位置。其中,不同的描述信息可以进一步记录在不同的存储区。
本步骤中,描述信息可以有多种,如何组织这些信息的存储可以有多种实现方案,下面举例进行说明。
具体实现方案一、诊断数据包的不同描述信息,如位置、时间、校验码等,可以组成一定格式的描述信息包,加上类型编号、长度指示,类似于诊断数据包,以包的形式依次记录。由于描述信息包比诊断数据包要短小得多,而且长度相对固定,为描述信息包生成校验码,和/或纠错码所需要的额外处理时间和存储空间不是很多,因此在可靠性要求比较高的场合,可以生成描述信息包的校验/纠错码,并连同描述信息包一起记录,在读取时进行校验/纠错处理。
具体实现方案二、不同的描述信息分别存储,如图6所示,位置信息和记录时间信息分别记录在不同的存储区。这样,不同的描述信息相对独立,一方面降低了同时出错的概率,使得不同信息相互校验,另一方面,处理每一类描述信息非常直接高效,并且方便扩展信息类型。从图6可以看出位置描述信息是如何有效地避免个别数据损坏的影响的,其中第i个诊断数据包损坏,但是位置描述信息存储区中第i个包的结束位置和第i+1个包的结束位置指示了第i+1个包的范围,因此第i+1个包可以正常读取。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1. 一种记录通信终端诊断数据的方法,其特征在于,包括以下步骤:
A.采集外部设备和通信终端之间交互的诊断数据包;
B.记录诊断数据包,并生成该诊断数据包的描述信息,记录该描述信息。
2. 根据权利要求1所述的方法,其特征在于,步骤B中记录所述诊断数据包和描述信息分开保存。
3. 根据权利要求2所述的方法,其特征在于,设置诊断数据存储区和描述信息存储区;
所述诊断数据包保存在诊断数据存储区;
所述描述信息保存在描述信息存储区。
4. 根据权利要求3所述的方法,其特征在于,所述诊断数据存储区和描述信息存储区,分别为存储诊断数据包和描述信息的文件,或者文件的一部分。
5. 根据权利要求3所述的方法,其特征在于,所述不同的描述信息记录在不同的存储区。
6. 根据权利要求1至5任意一项所述的方法,其特征在于,所述诊断数据包的描述信息为位置、时间描述信息中的至少一种。
7. 根据权利要求6所述的方法,其特征在于,所述位置描述信息为保存该诊断数据包的开始位置或结束位置。
8. 根据权利要求6所述的方法,其特征在于,所述时间描述信息为采集到包或者记录包的时刻值。
9. 根据权利要求6所述的方法,其特征在于,所述诊断数据包的描述信息进一步包括:类型编号、长度、校验码、数据摘要、纠错码描述中的至少一种。
10. 根据权利要求1所述的方法,其特征在于,诊断数据包包括:外部设备发送到通信终端的诊断数据包和通信终端发送到外部设备的诊断数据包。
11. 根据权利要求1所述的方法,其特征在于,该方法步骤B后进一步包括:在读取诊断数据时,首先读取诊断数据包的描述信息,通过描述信息确定该诊断数据包的范围并读取该诊断数据包的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100891576A CN101272218A (zh) | 2007-03-20 | 2007-03-20 | 一种记录通信终端诊断数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100891576A CN101272218A (zh) | 2007-03-20 | 2007-03-20 | 一种记录通信终端诊断数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101272218A true CN101272218A (zh) | 2008-09-24 |
Family
ID=40005939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100891576A Pending CN101272218A (zh) | 2007-03-20 | 2007-03-20 | 一种记录通信终端诊断数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101272218A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645963A (zh) * | 2013-12-26 | 2014-03-19 | 深圳市迪菲特科技股份有限公司 | 一种存储系统及其数据一致性校验方法 |
CN112249088A (zh) * | 2019-07-22 | 2021-01-22 | 中车株洲电力机车研究所有限公司 | 双显示系统互诊断与数据同步的方法、双显示系统和列车 |
-
2007
- 2007-03-20 CN CNA2007100891576A patent/CN101272218A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645963A (zh) * | 2013-12-26 | 2014-03-19 | 深圳市迪菲特科技股份有限公司 | 一种存储系统及其数据一致性校验方法 |
CN103645963B (zh) * | 2013-12-26 | 2016-06-29 | 深圳市迪菲特科技股份有限公司 | 一种存储系统及其数据一致性校验方法 |
CN112249088A (zh) * | 2019-07-22 | 2021-01-22 | 中车株洲电力机车研究所有限公司 | 双显示系统互诊断与数据同步的方法、双显示系统和列车 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102135925B (zh) | 用于检测错误检查和纠正内存的方法和装置 | |
US6647517B1 (en) | Apparatus and method for providing error ordering information and error logging information | |
US20090217096A1 (en) | Diagnosing Communications Between Computer Systems | |
CN109491819A (zh) | 一种诊断服务器故障的方法和系统 | |
US7594051B2 (en) | Storage apparatus | |
CN101123485B (zh) | iSCSI报文处理方法和装置、错误恢复方法和装置 | |
CN109522316A (zh) | 日志处理方法、装置、设备和存储介质 | |
CN115292266A (zh) | 一种基于存储器的高可靠日志存储方法 | |
CN105892932A (zh) | 用于磁盘数据管理的方法和装置 | |
CN113961478A (zh) | 一种内存故障记录方法以及装置 | |
CN110222035A (zh) | 一种基于异或校验与日志恢复的数据库页面高效容错方法 | |
US8527815B2 (en) | Method for detecting a failure in a SAS/SATA topology | |
CN101272218A (zh) | 一种记录通信终端诊断数据的方法 | |
CN100561953C (zh) | 一种记录诊断数据的方法 | |
WO2021027271A1 (zh) | 坏块信息保护方法、装置、计算机设备及存储介质 | |
CN107807862A (zh) | 检测硬盘故障点的方法、装置及服务器 | |
CN110399132B (zh) | 项目代码的维护方法、装置、计算机设备和存储介质 | |
CN109426587A (zh) | 一种数据恢复方法及装置 | |
EP1545054A1 (en) | System and method for selecting measurements of a communication network | |
CN111428280A (zh) | SoC安全芯片密钥信息完整性存储及错误自修复方法 | |
JP3675375B2 (ja) | 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法 | |
CN113778759B (zh) | 一种数据分发过程中的失败检测及恢复方法 | |
WO2002103524A1 (en) | System and method for isolating faults in network | |
CN114442953A (zh) | 一种数据校验的方法、系统、芯片和电子设备 | |
CN114203252A (zh) | 非易失存储器的坏块检测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080924 |