新四季網

基於二進位編碼的dns數據壓縮、解壓縮方法及系統的製作方法

2023-05-22 00:48:16 3

基於二進位編碼的dns數據壓縮、解壓縮方法及系統的製作方法
【專利摘要】本發明公開了一種基於二進位編碼的DNS數據壓縮、解壓縮方法及系統,屬於計算機網絡【技術領域】。其中,DNS數據壓縮方法為:1)從數據源文件中讀取日誌信息後,將數據打包放到一緩存隊列中;2)數據壓縮模塊從該數據緩存隊列中取出數據並壓縮後,將其存儲到一壓縮信息緩存中;3)從該壓縮信息緩存中取出數據並進行二進位編碼後保存到一結果文件中。解壓縮方法為:1)將結果文件中二進位編碼壓縮日誌信息進行二進位編碼解壓後,保存到壓縮信息緩存中;2)從緩存中取出數據,將其存儲到一解壓信息緩存中;3)從解壓信息緩存中取出數據並進行解壓得到日誌記錄信息。本方法實現了日誌的高比例壓縮,而且壓縮的文件還能用gzip進一步壓縮。
【專利說明】基於二進位編碼的DNS數據壓縮、解壓縮方法及系統
【技術領域】
[0001]本發明涉及一種基於二進位編碼的DNS數據壓縮、解壓縮方法及系統,屬於計算機網絡【技術領域】。
【背景技術】
[0002]域名系統(Domain Name System,DNS)是網際網路基礎設施提供的一項核心服務,系統包括可以將域名和IP位址相互映射的一個分布式資料庫,以及實現域名和網絡可以識別的IP位址轉換功能的系統。
[0003]DNS經過幾十年的發展,已經成為目前全球最大、最複雜的分布式資料庫系統,具有良好的擴展性和高效的解析性能。同時,巨大的工作量使得DNS系統產生了海量的數據。現有的系統一般都是使用字符編碼的方式保留原始日誌。
[0004]現有技術的缺陷是:
[0005]DNS海量的查詢和應答服務產生了巨大日誌量,一方面這些日誌需要在本地進行保存,另一方面很多任務都需要跨地區、跨網段進行日誌傳輸。目前缺乏一種穩定有效的日誌壓縮技術來提高日誌保存和傳輸的效率。因此,如果開發出能穩定高效運行的日誌壓縮系統能大大的推動目前的各項工作。

【發明內容】

[0006]針對現有技術中存在的技術問題,本發明的目的在於提供一種基於二進位編碼的DNS數據壓縮、解壓縮方法及系統;本發明改進的方向為:
[0007]I)設計高效的DNS信息壓縮算法;
[0008]2)使用二進位編碼方式進行日誌存儲,提高壓縮比例;
[0009]3)設計優良的系統架構,保證系統能進行企業級應用。
[0010]本發明的技術方案為:
[0011]一種基於二進位編碼的DNS數據壓縮、解壓縮系統,其特徵在於包括一數據讀取模塊,一二進位編碼模塊,一數據壓縮模塊,一二進位解碼模塊,一數據解壓模塊;其中
[0012]所述數據讀取模塊,用於從DNS數據源文件中讀取日誌信息後,將數據打包放到一緩存隊列中;
[0013]所述數據壓縮模塊,用於從所述數據緩存隊列中取出數據並壓縮後,將其存儲到一壓縮信息緩存中;
[0014]所述二進位編碼模塊,用於從所述壓縮信息緩存中取出數據並進行二進位編碼後保存到一結果文件中;
[0015]所述二進位解碼模塊,用於將所述結果文件中二進位編碼壓縮日誌信息進行二進位編碼解壓後,保存到壓縮信息緩存中;
[0016]所述數據解壓模塊,用於從壓縮信息緩存中取出數據,將其存儲到一解壓信息緩存中;然後從該解壓信息緩存中取出數據並進行解壓得到日誌記錄信息。[0017]一種基於二進位編碼的DNS數據壓縮方法,其步驟為:
[0018]I)數據讀取模塊從DNS數據源文件中讀取日誌信息後,將數據打包放到一緩存隊列中;
[0019]2)數據壓縮模塊從該數據緩存隊列中取出數據並壓縮後,將其存儲到一壓縮信息緩存中;
[0020]3) 二進位編碼模塊從該壓縮信息緩存中取出數據並進行二進位編碼後保存到一結果文件中。
[0021]進一步的,採用可變長度整型編碼規則進行所述二進位編碼;所述可變長度整型編碼的最大長度為128位元組。
[0022]進一步的,二進位編碼後的每個數據域包括標誌欄位和數據欄位兩部分;其中,標誌欄位用於指明數據的類型和數據在消息結構體中的序號,數據欄位用於存儲數據的值;一個DNS數據包二進位編碼後對應一個消息結構體。
[0023]進一步的,所述數據壓縮模塊對日誌信息中的時間數據信息進行壓縮,其方法為:首先從所述緩存隊列中讀取一條記錄,如果是首條記錄則保留該記錄完整的時間格式;否則判斷當前記錄的在設定級時間域及其上級時間域的時間與上一條記錄的對應級時間域是否相等,如果相等,則只保留設定級時間域下一級時間的時間;如果不相等,則判斷當前記錄時間與上一記錄時間間隔是否大於設定閾值,如果大於該閾值,則保留當前記錄完整的時間格式,否則比較設定級時間域下一級時間的時間,如果當前記錄設定級時間域下一級時間小於上一條記錄對應時間,則只保留當前記錄設定級時間域的下一級時間域的時間,否則保留當前記錄完整的時間格式。
[0024]進一步的,所述設定級時間域為秒時間域,所述閾值為I秒。
[0025]進一步的,從緩存隊列取出數據的時候,用哈希表做為域名和IP位址信息壓縮的輔助結構。
[0026]進一步的,所述數據壓縮模塊對日誌信息中的域名數據和IP數據信息進行壓縮;a)對於域名數據進行壓縮的方法為:從所述緩存隊列中讀取一條記錄,在所述哈希鍊表中搜索該記錄中的域名;如果存在該域名,則將該域名在哈希鍊表中的哈希位置保存到所述結果文件中,如果不存在該域名,則在所述哈希鍊表中為該域名構建結點並將該域名保存到所述結果文件中山)對於IP位址數據信息進行壓縮的方法為:從所述緩存隊列中讀取一條記錄,在所述哈希鍊表中搜索該記錄中的IP位址;如果存在該IP,則將該IP在哈希鍊表中的哈希位置保存到所述結果文件中,如果不存在該IP,則在所述哈希鍊表中為該IP構建結點並將該IP保存到所述結果文件中。
[0027]—種基於二進位編碼的DNS數據壓縮文件的解壓縮方法,其步驟為:
[0028]I) 二進位解碼模塊將結果文件中二進位編碼壓縮日誌信息進行二進位編碼解壓後,保存到壓縮信息緩存中;
[0029]2)數據解壓模塊從壓縮信息緩存中取出數據,將其存儲到一解壓信息緩存中;
[0030]3)數據解壓模塊從該解壓信息緩存中取出數據並進行解壓得到日誌記錄信息。
[0031]進一步的,所述數據解壓模塊從該解壓信息緩存中取出數據,對時間數據進行解壓,其方法為:首先從所述解壓信息緩存中讀取一條記錄,如果是完整的時間格式,則將其設為基準時間;否則判斷當前記錄的時間域的時間是否大於或等於上一條記錄的對應時間域的時間,如果是,則利用上一條記錄的完整格式時間和當前記錄的時間域的時間合成當前記錄的完整時間格式;如果小於,則利用上一條記錄的完整格式時間將當前記錄的時間域的上一級時間域加I並判斷上一級時間域是否需要進位,如需要進位則利用上一條記錄的完整格式時間進行調整並繼續逐級判斷是否需要進位,合成當前記錄的完整時間格式;如果不需要進位,則利用上一條記錄的完整格式時間和當前記錄的時間域的時間合成當前記錄的完整時間格式;其中,所述時間域為微秒時間域。
[0032]進一步的,所述數據解壓模塊從該解壓信息緩存中取出數據,對域名數據和IP數據進行解壓;a)對於域名數據,其解壓方法為:從所述解壓信息緩存中讀取一條記錄,如果域名為完整格式,則將其加入到哈希鍊表中並返回;如果域名信息為所述哈希鍊表中的位置信息,則根據該位置信息從所述哈希鍊表相應位置處讀出域名的完整格式,並返回;b)對於IP數據,其解壓方法為:從所述解壓信息緩存中讀取一條記錄,如果IP為完整格式,則將其加入到哈希鍊表中並返回;如果IP信息為所述哈希鍊表中的位置信息,則根據該位置信息從所述哈希鍊表相應位置處讀出IP的完整格式,並返回。
[0033]本發明整個系統由數據讀取模塊(即文件I/O)、數據壓縮和數據解壓三個部分組成。系統的進程模型如圖1所示。
[0034]緩存使用了 「生產者-消費者」模式,文件I/O模塊做為「生產者」從源文件(DNS數據源文件為DNS服務產生的原始日誌文件,一般採用字符編碼方式保存)中讀取信息後,將數據打包放到緩存隊列中;而數據處理模塊(壓縮/解壓模塊)則作為「消費者」,將數據從緩存中取出並進行處理。其中,壓縮模塊會根據算法,得到壓縮後的數據信息,這時,壓縮模塊成為了「生產者」將信息存入到壓縮信息緩存(即用來存儲壓縮信息的緩存)中,文件I/O模塊這時候成為了「消費者」,從壓縮信息緩存中取出數據,並保存到結果文件中;解壓模塊的處理流程類似,首先二進位解碼模塊將結果文件中二進位編碼壓縮日誌信息進行二進位編碼解壓後,保存到壓縮信息緩存中(即用來存儲二進位編碼解壓後信息的緩存);然後數據解壓模塊從壓縮信息緩存中取出數據,將其存儲到一解壓信息緩存中(即用來存儲壓縮信息的緩存);數據解壓模塊從該解壓信息緩存中取出數據並進行解壓得到日誌記錄信息。數據解壓模塊還原壓縮前的信息,並寫入到解壓結果文件中。
[0035]數據壓縮總的思想原則是:「去除不需要的信息,壓縮冗餘的數據」。在DNS信息中,時間,查詢類型、IP和域名這四類信息對於分析系統進行各種數據分析統計最重要,其中時間、IP和域名這三類信息在日誌文件中存在大量的冗餘信息,所以可以針對這三類數據,使用特定算法,去除冗餘,用較小的空間來表示相同的內容,這樣就得到了特定的壓縮信息。
[0036]解壓模塊從「壓縮結果文件」中讀取信息,並通過算法還原壓縮前的信息,並把信息寫入到解壓結果文件。壓縮模塊主要是針對時間、IP和域名進行了壓縮,所以解壓模塊也是針對這三個部分的信息進行解壓還原。
[0037]同時,所有的信息在磁碟上保存時使用了二進位編碼,這樣就再一次對存儲空間進行了壓縮,大大節省了存儲空間。原理如下所述。
[0038]系統的數字使用了 「基於128的可變長度整型」編碼規則(最大長度為128位元組)。這種方法是用一系列的字節來表示一個任意大小的數字,其中字節的長度是可變長的,類似於字符串。[0039]這個可變長度整型中的每個字節的第一個比特用做「標誌位」,如果標誌位是1,則表示這個字節非該可變長度整型的最後一個字節;如果標誌位是0,則表示該字節是這個可變長度整型的最後一個字節。而標誌位後面的7個比特用於組成該可變長度整型的值。同時,組成該可變長度整型的字節採用「低位在前」的表示方式。如下就是幾個表示的例子。
[0040]1)「00000001」。其中第一個比特為0,表示該字節是最後一個字節,隨後的7個比特位組成了這個可變長度整型的值,所以這個變長整形的值是1.[0041]2) 「1010110000000010」。其中第一個字節的第一個位是1,表示該字節非最後一個字節;第二個字節的第一個位是0,表示該字節是最後一個字節。於是,組成該可變長度整型的數欄位為:「0101100」和「0000010」。又因為採用了 「低位在前」的表示方式,所以,該數字的值為「00000100101100」,十進位表示為:300
[0042]在系統中每個數據域都由「標誌欄位」和「數據欄位」組成。其中,標誌欄位指明了該數據的「類型」和「在消息結構體中的序號」,一個DNS數據包二進位編碼後對應一個消息結構體;數據欄位用於存儲數據的值。
[0043]數據編碼中,用編號0-5分別對應各個類型,每個數據域用三個比特來表示其類型。所用的數據類型如表1所示:
[0044]表1、數據編碼類型表
[0045]
【權利要求】
1.一種基於二進位編碼的DNS數據壓縮方法,其步驟為: 1)數據讀取模塊從DNS數據源文件中讀取日誌信息後,將數據打包放到一緩存隊列中; 2)數據壓縮模塊從該數據緩存隊列中取出數據並壓縮後,將其存儲到一壓縮信息緩存中; 3)二進位編碼模塊從該壓縮信息緩存中取出數據並進行二進位編碼後保存到一結果文件中。
2.如權利要求1所述的方法,其特徵在於採用可變長度整型編碼規則進行所述二進位編碼;所述可變長度整型編碼的最大長度為128位元組。
3.如權利要求2所述的方法,其特徵在於二進位編碼後的每個數據域包括標誌欄位和數據欄位兩部分;其中,標誌欄位用於指明數據的類型和數據在消息結構體中的序號,數據欄位用於存儲數據的值;一個DNS數據包二進位編碼後對應一個消息結構體。
4.如權利要求1所述的方法,其特徵在於所述數據壓縮模塊對日誌信息中的時間數據信息進行壓縮,其方法為:首先從所述緩存隊列中讀取一條記錄,如果是首條記錄則保留該記錄完整的時間格式;否則判斷當前記錄的在設定級時間域及其上級時間域的時間與上一條記錄的對應級時間域是否相等,如果相等,則只保留設定級時間域下一級時間的時間;如果不相等,則判斷當前記錄時間與上一記錄時間間隔是否大於設定閾值,如果大於該閾值,則保留當前記錄完整的時間格式,否則比較設定級時間域下一級時間的時間,如果當前記錄設定級時間域下一級時間小於上一條記錄對應時間,則只保留當前記錄設定級時間域的下一級時間域的時間,否則保留當前記錄完整的時間格式。`
5.如權利要求1所述的方法,其特徵在於所述數據壓縮模塊對日誌信息中的域名數據和IP數據信息進行壓縮;a)對於域名數據進行壓縮的方法為:從所述緩存隊列中讀取一條記錄,在所述哈希鍊表中搜索該記錄中的域名;如果存在該域名,則將該域名在哈希鍊表中的哈希位置保存到所述結果文件中,如果不存在該域名,則在所述哈希鍊表中為該域名構建結點並將該域名保存到所述結果文件中山)對於IP位址數據信息進行壓縮的方法為:從所述緩存隊列中讀取一條記錄,在所述哈希鍊表中搜索該記錄中的IP位址;如果存在該IP,則將該IP在哈希鍊表中的哈希位置保存到所述結果文件中,如果不存在該IP,則在所述哈希鍊表中為該IP構建結點並將該IP保存到所述結果文件中。
6.一種基於二進位編碼的DNS數據壓縮文件的解壓縮方法,其步驟為: 1)二進位解碼模塊將結果文件中二進位編碼壓縮日誌信息進行二進位編碼解壓後,保存到壓縮信息緩存中; 2)數據解壓模塊從壓縮信息緩存中取出數據,將其存儲到一解壓信息緩存中; 3)數據解壓模塊從該解壓信息緩存中取出數據並進行解壓得到日誌記錄信息。
7.如權利要求6所述的方法,其特徵在於所述數據解壓模塊從該解壓信息緩存中取出數據,對時間數據進行解壓,其方法為:首先從所述解壓信息緩存中讀取一條記錄,如果是完整的時間格式,則將其設為基準時間;否則判斷當前記錄的時間域的時間是否大於或等於上一條記錄的對應時間域的時間,如果是,則利用上一條記錄的完整格式時間和當前記錄的時間域的時間合成當前記錄的完整時間格式;如果小於,則利用上一條記錄的完整格式時間將當前記錄的時間域的上一級時間域加I並判斷上一級時間域是否需要進位,如需要進位則利用上一條記錄的完整格式時間進行調整並繼續逐級判斷是否需要進位,合成當前記錄的完整時間格式;如果不需要進位,則利用上一條記錄的完整格式時間和當前記錄的時間域的時間合成當前記錄的完整時間格式;其中,所述時間域為微秒時間域。
8.如權利要求6所述的方法,其特徵在於所述數據解壓模塊從該解壓信息緩存中取出數據,對域名數據和IP數據進行解壓;a)對於域名數據,其解壓方法為:從所述解壓信息緩存中讀取一條記錄,如果域名為完整格式,則將其加入到哈希鍊表中並返回;如果域名信息為所述哈希鍊表中的位置信息,則根據該位置信息從所述哈希鍊表相應位置處讀出域名的完整格式,並返回山) 對於IP數據,其解壓方法為:從所述解壓信息緩存中讀取一條記錄,如果IP為完整格式,則將其加入到哈希鍊表中並返回;如果IP信息為所述哈希鍊表中的位置信息,則根據該位置信息從所述哈希鍊表相應位置處讀出IP的完整格式,並返回。
9.一種基於二進位編碼的DNS數據壓縮、解壓縮系統,其特徵在於包括一數據讀取模塊,一二進位編碼模塊,一數據壓縮模塊,一二進位解碼模塊,一數據解壓模塊;其中 所述數據讀取模塊,用於從DNS數據源文件中讀取日誌信息後,將數據打包放到一緩存隊列中; 所述數據壓縮模塊,用於從所述數據緩存隊列中取出數據並壓縮後,將其存儲到一壓縮息緩存中; 所述二進位編碼模塊,用於從所述壓縮信息緩存中取出數據並進行二進位編碼後保存到一結果文件中; 所述二進位解碼模塊,用於將所述結果文件中二進位編碼壓縮日誌信息進行二進位編碼解壓後,保存到壓縮信息緩存中; 所述數據解壓模塊,用於從壓縮信息緩存中取出數據,將其存儲到一解壓信息緩存中;然後從該解壓信息緩存中取出數據並進行解壓得到日誌記錄信息。
10.如權利要求9所述的系統,其特徵在於所述數據壓縮模塊對日誌信息中的時間數據信息進行壓縮,其方法為:首先從所述緩存隊列中讀取一條記錄,如果是首條記錄則保留該記錄完整的時間格式;否則判斷當前記錄的在設定級時間域及其上級時間域的時間與上一條記錄的對應級時間域是否相等,如果相等,則只保留設定級時間域下一級時間的時間;如果不相等,則判斷當前記錄時間與上一記錄時間間隔是否大於設定閾值,如果大於該閾值,則保留當前記錄完整的時間格式,否則比較設定級時間域下一級時間的時間,如果當前記錄設定級時間域下一級時間小於上一條記錄對應時間,則只保留當前記錄設定級時間域的下一級時間域的時間,否則保留當前記錄完整的時間格式;所述數據解壓模塊從解壓信息緩存中取出數據,對時間數據進行解壓,其方法為:首先從所述解壓信息緩存中讀取一條記錄,如果是完整的時間格式,則將其設為基準時間;否則判斷當前記錄的時間域的時間是否大於或等於上一條記錄的對應時間域的時間,如果是,則利用上一條記錄的完整格式時間和當前記錄的時間域的時間合成當前記錄的完整時間格式;如果小於,則利用上一條記錄的完整格式時間將當前記錄的時間域的上一級時間域加I並判斷上一級時間域是否需要進位,如需要進位則利用上一條記錄的完整格式時間進行調整並繼續逐級判斷是否需要進位,合成當前記錄的完整時間格式;如果不需要進位,則利用上一條記錄的完整格式時間和當前記錄的時間域的時間合成當前記錄的完整時間格式。
【文檔編號】H04L29/12GK103685589SQ201210333176
【公開日】2014年3月26日 申請日期:2012年9月7日 優先權日:2012年9月7日
【發明者】陽任科 申請人:中國科學院計算機網絡信息中心

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀