[發(fā)明專利]一種通訊數據流的通用數據解析平臺及方法有效
| 申請?zhí)枺?/td> | 201910166726.5 | 申請日: | 2019-03-06 |
| 公開(公告)號: | CN109981599B | 公開(公告)日: | 2022-01-18 |
| 發(fā)明(設計)人: | 李勝;柴培健;許曜鑫 | 申請(專利權)人: | 南京理工大學 |
| 主分類號: | H04L69/08 | 分類號: | H04L69/08;H04L69/22 |
| 代理公司: | 南京理工大學專利中心 32203 | 代理人: | 薛云燕 |
| 地址: | 210094 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 通訊 數據流 通用 數據 解析 平臺 方法 | ||
1.一種通訊數據流的通用數據解析平臺,其特征在于,包括源數據封裝包、參數化配置列表和報文通用處理系統(tǒng);
所述源數據封裝包,用于將系統(tǒng)監(jiān)聽口監(jiān)聽所得的數據,以二進制碼形式基于TLV規(guī)范編碼格式封裝成包,并以.bin格式文件存入指定緩沖區(qū);
所述參數化配置列表,用于根據預先設定的參數,對源數據封裝包中的不同類型具體報文內容進行正則表達式匹配,獲取匹配規(guī)則對應的狀態(tài)編號和內容的位置信息;根據預先設定的參數化配置列表,獲取與狀態(tài)編號對應的通用規(guī)則,并根據通用規(guī)則和位置信息及緩存的待解析報文,輸出需要的字段,等待解析;
所述報文通用處理系統(tǒng),包括報文通用性解析模塊,用于解析儲存在參數化配置列表中的全局數組;
所述的緩沖區(qū),具體如下:
所述緩沖區(qū)是一種關聯(lián)式容器Map,該容器Map中每一個元素由一個鍵值和一個數據值組成;該容器Map使用紅黑樹的平衡二叉樹數據結構,將源數據封裝包按一條一條的報文數據存入每一個元素的數據值中;該容器Map具有刪除元素的特點。
2.根據權利要求1所述的通訊數據流的通用數據解析平臺,其特征在于,所述的TLV規(guī)范編碼格式,具體如下:
每個TLV規(guī)范編碼格式的基本的源數據元包括三個域:
“T”指Tag,是源數據元的唯一標識,描述Value的數據類型,在TLV嵌套時用于描述消息的類型;Tag由一個或多個字節(jié)組成;自定義TLV編碼中,Tag描述不同報文具體源數據元的唯一標識;
“L”指Length,描述Value的長度,自定義TLV編碼中,Length描述Value部分所占字節(jié)的個數;編碼格式分為兩類:定長方式和不定長方式,其中定長方式又包括短形式與長形式;
“V”指Value,描述該條源數據元的具體內容;Value由一個或多個值組成。
3.根據權利要求2所述的通訊數據流的通用數據解析平臺,其特征在于,所述的TLV編碼中Length的兩類編碼格式中,短形式與長形式具體如下:
定長方式中,短形式是指Value類型長度不超過127,Length只需要一個8位,其字節(jié)第7位為0的字節(jié)來表示;
定長方式中,長形式是指Value類型長度大于127時,Length需要多個字節(jié)來描述,這時第一個字節(jié)的第7位置為1,0~6位用來描述Length值占用的字節(jié)數,然后將Length值轉為BYTE后附在第一個字節(jié)后。
4.根據權利要求1所述的通訊數據流的通用數據解析平臺,其特征在于,所述的參數化配置列表,具體如下:
所述參數化配置列表,基于“黑盒子”思想,預先將不同報文具體內容參數化存入配置文件.ini中,若用戶指令為載入配置文件指令,則可同時載入多個報文的參數化配置列表,每一個參數化配置列表即代表一種報文;
所述參數化配置列表由節(jié)、鍵、值組成,預先按統(tǒng)一格式編寫,其中節(jié)按具體報文內容從0至n依次填寫;鍵按通用格式編寫,該通用格式對應代碼中的結構體;值是鍵對應的具體內容。
5.根據權利要求4所述的通訊數據流的通用數據解析平臺,其特征在于,所述的通用格式,具體如下:
標題:用于表示該報文源數據元的唯一標識Tag,并作為生成文件名;
描述:為報文協(xié)議具體的內容Value;
關聯(lián):為該.ini文件關聯(lián)到源數據封裝包中該條報文具體的字節(jié)位置;
特征屬性:為通用報文格式,包括該條報文的某個具體內容的位置、該條報文的長度、輸入的類型、輸出的格式、有無分辨率。
6.一種通訊數據流的通用數據解析方法,其特征在于,該方法基于權利要求1~5任一項所述的通訊數據流的通用數據解析平臺,具體包括以下步驟:
步驟1、定義一種由“特征塊”為基本單位組成的通用數據格式,依據抽象的數據格式描述創(chuàng)建具體的報文數據格式,得到報文數據幀格式;通用數據格式由標識塊、特征塊結構體和校驗塊組成,其中,標識塊是報文種類的源數據元的唯一標識Tag,是該類報文第一個字節(jié);校驗塊是用于判別該類報文是否需要解析;
步驟2、用C++語言為“特征塊”定義特征塊結構體;特征塊結構體包括特征塊字節(jié)數的變量、特征塊屬性的變量和為特征塊結構體選擇輸出格式的變量;
步驟3、讀取步驟1中定義的通用數據格式,根據參數化配置列表填充步驟2中定義的特征塊結構體、特征塊的相對位置與字節(jié)數,確定解析時序,并通過讀取參數化配置列表為特征塊結構體選擇輸出格式;
步驟4、對源數據封裝包進行解析,源數據封裝包是字節(jié)流,解析時,首先從預先編寫的參數化配置列表中讀出位置偏量,位置偏量是當前數據幀字節(jié)數與當前特征塊結構體的位置之差;然后根據迭代器iterator循環(huán)遍歷容器Map中所有報文,根據特征塊結構體中的源數據元的唯一標識Tag確定所需解析的報文;接著根據當前特征塊結構體的屬性從相應報文數據流中的該特征塊結構體進行字節(jié)解析,當該特征塊結構體解析完畢后,將特征塊結構體進行步驟3中的條件選擇語句,選擇合適的輸出格式進行輸出;最后設置特征塊結構體偏移,進行下一特征塊結構體的解析,直至該條報文解析完畢;
步驟5、該條報文解析完畢后,通過容器Map的刪除元素erase()函數刪除該條報文,將迭代器從遍歷M條報文變?yōu)楸闅vM-1條報文,以此類推,直至迭代器只需遍歷一次即可檢索到所需屬性的特征報文,最后進行步驟1~步驟4完成解析。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京理工大學,未經南京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910166726.5/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統(tǒng)、數據中繼設備、數據中繼方法、數據系統(tǒng)、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發(fā)送方法、數據發(fā)送系統(tǒng)、數據發(fā)送裝置以及數據結構
- 數據顯示系統(tǒng)、數據中繼設備、數據中繼方法及數據系統(tǒng)
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發(fā)送和數據接收設備、數據發(fā)送和數據接收方法
- 數據發(fā)送裝置、數據接收裝置、數據收發(fā)系統(tǒng)、數據發(fā)送方法、數據接收方法和數據收發(fā)方法
- 數據發(fā)送方法、數據再現方法、數據發(fā)送裝置及數據再現裝置
- 數據發(fā)送方法、數據再現方法、數據發(fā)送裝置及數據再現裝置





