專利名稱:一種記錄通信終端診斷數據的方法
技術領域:
本發明涉及通信設備測試技術,尤其涉及一種記錄通信終端診斷數據的方法。
背景技術:
在通信網絡系統的開發和實際應用過程中,不可避免要對網絡系統進行測 試。最重要的測試方法之一,是讓通信終端做不同類型的呼叫,記錄下信令交 互、信號強弱、網絡及終端狀態、事件等信息。通過這些信息就可以評估包括 通信終端在內的整個網絡系統的質量,分析和診斷系統中存在的故障。所有與 通信終端交互、用以測試和診斷網絡系統的數據,在不同的通信終端文檔對其的命名有所不同,這里統稱為診斷數據(Diagnostic Data )。通信終端提供特定的接口以及相應的接口控制協議,以便外部設備獲取診 斷數據,接口控制協議規定了診斷數據的格式和交換方式。如圖1所示,通信 終端和外部設備之間交互的診斷數據交換單元稱為診斷數據包(Diagnostic Packet),診斷數據包以類型編號區分包含的數據信息。診斷數據包的格式按 長度是否固定分為定長和變長兩大類,其中變長的診斷數據包一般通過長度 域,直接或間接確定數據包的范圍。參見圖2所示,為幾種常見的診斷數據包格式。其中,第一種格式201 是沒有長度指示的診斷數據包示例,長度由類型可以確定;第二種格式202 和第三種203格式是有長度指示的診斷數據包示例,從圖中可以看出,數據部 分的內容沒有什么限制,也可以是和診斷數據包一樣的格式;第四種格式204 示出了診斷數據包的一種通用格式歸納,其中類型域、長度域、數據域本身的 類型、長度、包含的內容、以及各域之間的相對位置沒有統一標準,由具體接 口控制協議規定。測試過程中采集的診斷數據包作為以后處理和分析的數據來源,記錄到文 件中至關重要。隨著通信技術的發展,診斷數據的類型越來越豐富,通信終端在單位時間內產生的"^斷數據包越來越多,目前已經超過一百個每秒并且還在 隨通信終端性能的提高而增加。在類型和數量增加的同時,診斷數據包的大小 也不斷增加,目前數量級已達到一千字節以上。此外,多載頻網絡的逐漸普及, 使得多個通信終端同時測試變得越來越頻繁,在使用多通信終端進行相同的測 試時,每增加一個通信終端,診斷數據包的數量就要增加一倍。總而言之,測 試產生的診斷數據越來越多,大量的診斷數據要求有高效的方法來記錄。最高 效的記錄方法之一就是直接把診斷數據包依次寫入文件,而在讀取文件時,按照記錄的順序依次讀取數據包。其中,定長數據包根據類型確定范圍;變長數 據包則還需結合長度域確定范圍, 一旦當前數據包范圍正確界定,其后數據包 的起始位置也就隨之確定。測試過程中,由于診斷數據的記錄速度非常快,在測試環境惡劣的情況下 (如設備所在的車船劇烈顛簸)往往會出現文件讀寫操作異常,從而造成文件 數據損壞。即使記錄的過程是完全正常的,存儲設備的損壞、病毒的破壞也可 能造成文件數據的損壞。通常,損壞只存在于個別數據包,但是按照上述方法 記錄的診斷數據文件,讀取后一個數據包依賴于前一個數據包的正確讀取,因 此單個數據包損壞就造成其后所有數據包都無法正確讀取。參見圖3所示,上 面一組為文件正常時的數據包序列,各個數據包范圍可以正確界定,下面一組 為文件損壞時的數據包序列,其中第i個數據包因損壞無法正確地確定范圍, 從而導致第i+l個到最后第N個數據包也不能正確讀取。另一方面,由于診斷接口控制協議不斷變更,定長診斷數據包的長度在不 同版本的協議中并不一定是固定的,而定長診斷數據包又沒有長度域或者結束 指示域,讀取采用前述方法記錄的數據時,也會出現數據包范圍判斷錯誤。例 如,通信終端的一類定長診斷數據包,其數據字段在協議版本升級后增加了子 字段,基于升級前的協議版本讀取這類數據包,數據包就會被右截斷。由于任意文件位置的數據都可以解析成類型或者長度,因此讀取過程數據 范圍是否判斷錯誤,以及在什么位置出現錯誤難以確知。在錯誤發生而又沒能 識別出來的情況下,做出的分析是不可靠的,基于這樣的分析進行網絡系統的 設置和調整,嚴重時甚至會導致網絡系統故障。對于局部數據損壞造成整個診斷數據文件失效的問題,現有技術主要有以下兩類解決方案方案一、文件雙工的思想。以下描述利用該思想的一個實施例診斷數據保存為一式兩份,這樣即使 其中一份數據出現異常,也可以利用另外一份。正常情況下,兩份數據都出錯 的概率要比一份數據小得多,但是如前所述,測試過程中的震動等事件會對兩 份數據的記錄都有影響,使得出錯有相關性。雖然通過緩沖診斷數據錯開兩份 數據的記錄時間,可以降低出錯相關性,但使用該方案仍然存在下述問題一 方面,需要增加一倍的文件讀寫操作,占用更多的處理時間,而在測試時除了記錄數據還要進行業務方面的控制和數據的分析、顯示,額外的操:作會顯著影響性能;另一方面,需要增加一倍的文件存儲空間,這在數據正常的情況下是 很大的浪費。此外,如前所述,讀取數據是否出現錯誤很難判斷,兩份數據不 一致的時候,需要具備業務經驗的人員分析才能確定數據的正確性。 方案二、隔離錯誤的思想。以下描述利用該思想的一個實施例在測試過程中,每隔一定的時間或者 每記錄一定大小的診斷數據,就建立一個新的文件來記錄診斷數據,這樣就把 數據損壞的影響限定在一個文件,而其他數據文件不受影響。這種技術的一個 明顯的問題是將一次完整測試過程的診斷數據分割成多份,不利于總體統計、 分析,更嚴重的是數據特別是通信終端信令流程的割裂引起判斷錯誤,使得數 據分析人員無法正確地定位網絡系統的問題。 一次測試過程中的診斷數據保存 為多少個文件也是一個問題,如果單個文件較大,那么局部數據損壞造成的影 響還是較大,而如果單個文件分割得較小,那么文件的數目就較多,不方便管 理。由以上描述可知,現有的技術,需要過多的額外操作和存儲空間,影響測 試性能,或者把測試數據分割,破壞了數據的完整性。這些技術除了引入新的 問題,并且不能保證效率和足夠的可靠性之外,還或多或少增加了人對數據進 行處理的負擔。 發明內容有鑒于此,本發明的目的在于提供一種高效可靠的診斷數據記錄方法,使 得讀取數據時能夠快速確定診斷數據包范圍,并在出現范圍判斷不正確時重新定位,避免整個診斷數據文件失效。基于以上目的本發明提供了一種記錄通信終端診斷數據的方法,包括以下步驟A. 采集外部設備和通信終端之間交互的診斷數據包;B. 記錄診斷數據包,并生成該診斷數據包的描述信息,記錄該描述信息。 該方法步驟B中記錄所述診斷數據包和描述信息分開保存。該方法設置診斷數據存儲區和描述信息存儲區;所述診斷數據包保存在診 斷數據存儲區;所述描述信息保存在描述信息存儲區。該方法所述診斷數據存儲區和描述信息存儲區,分別為存儲診斷數據包和 描述信息的文件,或者文件的一部分。該方法所述不同的描述信息記錄在不同的存儲區。該方法所述診斷數據包的描述信息為位置、時間描述信息中的至少一種。 該方法所述位置描述信息為保存該診斷數據包的開始位置或結束位置。 該方法所述時間描述信息為釆集到包或者記錄包的時刻值。 該方法所述診斷數據包的描述信息進一步包括類型編號、長度、校驗碼、數據摘要、糾錯碼描述中的至少一種。該方法診斷數據包包括外部設備發送到通信終端的診斷數據包和通信終端發送到外部設備的診斷數據包。該方法步驟B后進一步包括在讀取診斷數據時,首先讀取診斷數據包的描述信息,通過描述信息確定該診斷數據包的范圍并讀取該診斷數據包的數據。從上面所述可以看出,本發明提供的記錄通信終端診斷數據的方法,利用 診斷數據以包為單位的特點,在記錄診斷數據包的同時,保存數據包的描述信 息,例如位置、類型編號、時間、校驗碼、數據摘要、糾錯碼等,描述信息與 診斷數據包分區保存。在讀取診斷數據時首先讀取描述信息通過數據包的位 置描述信息,就可以快速確定任意一個數據包的范圍,如果讀取的數據包無法 正確解析,說明存在異常,此時丟棄該數據包而直接根據位置描述信息讀取下 一個數據包,不論個別的數據包是損壞,還是類型無法識別而不能正確解析, 都不會影響其他的數據包。診斷數據包的位置描述信息相當于索引,能夠快速確定數據包范圍,而使得讀取數據非常高效,并且避免了個別數據讀取異常導 致其他數據失效,大大提高了可靠性,同時又保證了測試數據的完整性。
圖1為外部設備與通信終端間交互診斷數據包的示意圖; 圖2為診斷數據包格式示意圖; 圖3為診斷數據文件中的診斷數據包序列圖; 圖4為本發明方案的實現流程圖; 圖5為根據診斷數據包生成描述信息的示意圖; 圖6為描述信息應對文件中診斷數據包損壞的示意圖。
具體實施方式
本發明的主要思想是利用診斷數據以包為單位的特點,在記錄診斷數據包 的同時,保存數據包的描述信息,例如位置、類型編號、時間、校驗碼、數據 摘要、糾錯碼等,描述信息與診斷數據包分區保存。在讀取診斷數據時首先讀 取描述信息,通過數據包的位置描述信息,就可以快速確定任意一個數據包的 范圍。如果讀取的數據包無法正確解析,說明存在異常,此時丟棄該數據包而 直接根據位置描述信息讀取下一個數據包,不論個別的數據包是損壞,還是類 型無法識別而不能正確解析,都不會影響其他的數據包。當然,描述信息也可 能損壞,但是其具有長度相對固定的特點,即使出現數據損壞也不會丟失位置, 并且相對診斷數據包來說數據量很少,損壞的概率較低,還可以對描述信息進 行交織、重復、糾錯處理,進一步降低損壞概率,和/或在出錯時糾正,從而 獲得高度的可靠性。下面結合附圖,詳細說明本發明的較佳實施方案。 本發明較佳實施例的處理流程參見圖4所示,具體步驟說明如下 401、每當外部設備和通信終端有診斷數據包交互時,采集診斷數據包。 本步驟中,外部設備可以是任何與通信終端進行診斷數據交互的設備,包 括硬件設備或上層應用程序模塊,其物理位置可以在通信終端的外部,也可以 在通信終端中。本實施例中,使用安裝在計算機中的診斷數據采集程序模塊,通信終端的 診斷接口通過終端數據線與計算機的通信端口連接,診斷數據采集程序讀取計算機通信端口采集診斷數據包。診斷數據包包括從外部設備發送到通信終端的和通信終端發送到外部設備的。402、記錄診斷數據包到診斷數據存儲區,生成診斷數據包的描述信息。 本步驟中,首先將診斷數據記錄到診斷數據存儲區。不同類型診斷數據包的格式也不相同,定長的診斷數據包由于根據類型可以確定數據包大小而可能沒有長度域,主要適合于進行控制方面的交互;變長的診斷數據包具有更大的 靈活性,適合于記錄大量的網絡和通信終端參數。為了記錄的高效,通常采用 直接存儲原始診斷數據包的方式,并且各診斷數據包依次相連。這里,診斷數 據存儲區是相對描述信息的存儲而言的,可以是單獨的一個文件,也可以是文 件劃分出來的一部分,以區別描述信息的存儲位置。由于直接存儲診斷數據包,不同格式的數據包,特別是沒有長度指示的數 據包,不方便讀取時確定范圍,局部數據損壞,或者是某些類型的診斷數據包 不能正確解析,例如,通信終端升級往往會增加了新類型的診斷數據包,或者 某些類型的數據包長度發生變化,而數據的讀取模塊沒有相應更新,就會出現 這種情況,更是會造成其后數據都無法可靠正確地讀取,如圖3所示的情況。為此,本步驟在記錄診斷數據包后,還生成診斷數據包的描述信息,以便 記錄下來輔助讀取數據。參見圖5所示, 一個診斷數據包可以有多種描述信息, 最基本的描述信息是診斷數據包在數據存儲區的起止位置,由于通常情況下, 診斷數據包是依次直接存儲的,前一個包的結束位置就是下一個包的開始位 置,因此這種情況下,只要記錄開始位置和結束位置中的任一個即可。本實施例中,生成診斷數據包位置數據的方法為每次記錄完一個包后,獲 取當前在存儲區的所處位置值,此值即為需要位置數據,它既是記錄完的包的 結束位置也是下一個包的開始位置。相鄰的兩個位置數據確定了 一個診斷數據包的開始和結束位置,結束位置 和開始位置的差值就是包占用存儲區的長度。在存儲一個包時,包的大小是知 道的,因此每次存儲完一個包以后,比較其大小與占用的存儲區的長度,如果 不一致說明文件讀寫出現異常,此時觸發異常處理事件,或進行告警由用戶進 行處理,或重復存儲當前的診斷數據包,或新建文件記錄診斷數據。另夕卜,診斷數據包的時間也是重要的描述信息,時間描述信息可以是釆集到包或者記錄包到存儲區的時刻值。由于各種類型的診斷數據包在時間上不是 均勻分布的,與測試操作密切相關,因此使用時間描述信息以反映診斷數據在 時間軸上的分布情況。除此之外,本步驟中,還可以記錄其他一些診斷數據包的描述信息,包括 類型編號、長度、校驗碼、數據摘要、糾錯碼。這些描述信息作為診斷數據包 信息的冗余,不是必須的,可以幫助檢錯,和/或糾錯,但也需要或多或少的 額外存儲空間和處理時間。其中,類型編號和長度在采集到診斷數據包時也就 得到;校驗碼、數據摘要、糾錯碼通過對診斷數據包進行相應處理得到,以校 驗碼最為高效實用。生成校驗碼較優的方案是使用循壞冗余碼校驗;生成數據 摘要較優的方案是使用報文摘要算法產生,例如MD5;理論上,可以對診斷 數據包的數據域生成糾錯碼,但是診斷數據相對較長而且不固定,而且拋棄單 個出錯的診斷數據對后處理和分析的影響很小,因此實際只會對類型、長度等 長度較短且固定的域生成糾錯碼。403、記錄描述信息到描述信息存儲區。本步驟將前一步驟中生成的描述信息記錄到描述信息存儲區。這里,描述 信息存儲區是相對診斷數據的存儲而言的,可以是單獨的一個文件,也可以是 文件劃分出來的一部分,以區別診斷數據的存儲位置。其中,不同的描述信息 可以進一步記錄在不同的存儲區。本步驟中,描述信息可以有多種,如何組織這些信息的存儲可以有多種實 現方案,下面舉例進行說明。具體實現方案一、診斷數據包的不同描述信息,如位置、時間、校驗碼等, 可以組成一定格式的描述信息包,加上類型編號、長度指示,類似于診斷數據 包,以包的形式依次記錄。由于描述信息包比診斷數據包要短小得多,而且長 度相對固定,為描述信息包生成校驗碼,和/或糾錯碼所需要的額外處理時間 和存儲空間不是很多,因此在可靠性要求比較高的場合,可以生成描述信息包 的校驗/糾錯碼,并連同描述信息包一起記錄,在讀取時進行校驗/糾錯處理。具體實現方案二、不同的描述信息分別存儲,如圖6所示,位置信息和記 錄時間信息分別記錄在不同的存儲區。這樣,不同的描述信息相對獨立, 一方 面降低了同時出錯的概率,使得不同信息相互校驗,另一方面,處理每一類描述信息非常直接高效,并且方便擴展信息類型。從圖6可以看出位置描述信息 是如何有效地避免個別數據損壞的影響的,其中第i個診斷數據包損壞,但是 位置描述信息存儲區中第i個包的結束位置和第i+l個包的結束位置指示了第i+l個包的范圍,因此第i+l個包可以正常讀取。以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發 明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發 明的保護范圍之內。
權利要求
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后進一步包 括在讀取診斷數據時,首先讀取診斷數據包的描述信息,通過描述信息確定 該診斷數據包的范圍并讀取該診斷數據包的數據。
全文摘要
本發明提供了一種記錄通信終端診斷數據的方法,包括以下步驟采集外部設備和通信終端之間交互的診斷數據包;記錄診斷數據包,并生成該診斷數據包的描述信息,記錄該描述信息。通過本發明記錄通信終端診斷數據的方法能夠快速確定數據包范圍,而使得讀取數據非常高效,并且避免了個別數據讀取異常導致其他數據失效,大大提高了可靠性,同時又保證了測試數據的完整性。
文檔編號H04L12/26GK101272218SQ20071008915
公開日2008年9月24日 申請日期2007年3月20日 優先權日2007年3月20日
發明者江平新, 軍 陳 申請人:中興通訊股份有限公司