本申請公開了一種GeoIPv6樹狀索引方法、系統及電子設備,解決了現有技術檢索IPv6地址數據消耗內存多,檢索時間長的問題。GeoIPv6樹狀索引方法,用于IPv6地址地理位置信息檢索,包括步驟:將128位的IPv6地址中從第4位到第48位的公網網段部分取出。將45位公網網段按順序拆分為5個字段,分別為13位、8位、8位、8位、8位。將13位字段作為根節點,每個8位字段依次作為下一級子節點,構成樹狀索引結構。每一條GeoIP數據的IPv6地址中只有不超過45位的網段信息記錄在索引中,而且索引樹最大深度不超過5層,不會隨著數據量的增加而增加。適合應用在IPv6網絡流量較大,并且對實時性能要求較高的場景中。中。中。
【技術實現步驟摘要】
一種GeoIPv6樹狀索引方法、系統及電子設備
[0001]本申請涉及IPv6地址檢索
,尤其涉及一種GeoIPv6樹狀索引方法、系統及電子設備。
技術介紹
[0002]隨著IPv6地址的廣泛應用,GeoIP數據檢索迎來了新的挑戰。由于IPv6地址空間相比IPv4要大得多,導致GeoIP數據檢索的內存開銷和時間開銷都大幅增加,這一情況對于實時性要求較高使用場景或者內存資源比較緊張的小微設備來說,會成為性能瓶頸,影響用戶體驗質量。
[0003]現有的GeoIP技術方案中,在引入IPv6地址數據后,要么忍受額外的內存和時間開銷帶來的性能瓶頸;要么通過裁剪IPv6地址庫數據的方式(如只保留中國城市的IPv6地址數據),來降低資源消耗,但這無疑會限定設備的應用場景。因此需要一種能夠更合理更高效地利用內存資源節約額外開銷,也能夠快速地進行地址檢索,不會隨著地址數量的增加而降低檢索性能的檢索結構。
技術實現思路
[0004]本申請實施例提供一種GeoIPv6樹狀索引方法、系統及電子設備,解決了現有技術檢索IPv6地址數據消耗內存多,檢索時間長的問題。
[0005]一種GeoIPv6樹狀索引方法,用于IPv6地址地理位置信息檢索,包括以下步驟:將128位的IPv6地址中從第4位到第48位的公網網段部分取出。將45位公網網段按順序拆分為5個字段,分別為13位、8位、8位、8位、8位。將13位字段作為根節點,每個8位字段依次作為下一級子節點,構成樹狀索引結構。
[0006]進一步地,還包含以下步驟:父節點滿子節點且所有子節點的地理位置信息相同,則將該父節點的全部子節點刪除并將地理位置信息標注在父節點。
[0007]進一步地,還包含以下步驟:父節點滿子節且子節點地理位置信息有相同的部分,將相同的部分寫入父節點。
[0008]進一步地,還包含以下步驟:設置快查緩存索引表。
[0009]將單位時間查詢頻次高于設定閾值的IPv6地址寫入快查緩存索引表。
[0010]將快查緩存索引表指向該IPv6地址對應的葉節點或中間節點。
[0011]進一步地,所述設定閾值包含百分比閾值和/或查詢數量閾值。每分鐘地址分布占比高于百分比閾值,寫入快查緩存索引,和/或,每分鐘查詢次數高于查詢數量閾值,寫入快查緩存索引。
[0012]進一步地,還包含以下步驟:設置索引老化時間。
[0013]查詢頻次低于設定閾值的時長大于索引老化時間,則將該條目從快查緩存索引表
中刪除。
[0014]進一步地,GeoIPv6樹狀索引方法,響應于IPv6地址,按照所述5個字段從樹狀索引結構的根節點向葉節點逐級檢索。
[0015]本申請實施例還提供一種GeoIPv6樹狀索引系統,用于實現上述任意一項實施例所述方法,包含提取模塊、拆分模塊和構建模塊。所述提取模塊,用于提取128位的IPv6地址中從第4位到第48位共45位的公網網段并發送至拆分模塊。所述拆分模塊,用于將45位公網網段拆分為13位、8位、8位、8位、8位5個字段并發送至構架模塊。所述構建模塊,用于將5個字段構建成分層的樹狀結構。
[0016]本申請實施例還提供一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現上述任意一項實施例所述的方法。
[0017]本申請實施例還提供一種電子設備,包括存儲器,處理器及存儲在存儲器上并可在處理器運行的計算機程序,所述處理器執行所述計算機程序時實現上述任意一項實施例所述的方法。
[0018]本申請實施例采用的上述至少一個技術方案能夠達到以下有益效果:每一條GeoIP數據的IPv6地址中只有不超過45位的網段信息記錄在索引中,而且索引樹最大深度不超過5層,不會隨著數據量的增加而增加。適合應用在IPv6網絡流量較大,并且對實時性能要求較高的場景中。
附圖說明
[0019]此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:圖1為本申請實施例一種GeoIPv6樹狀索引方法流程圖;圖2為本申請實施例一種樹狀索引結構圖;圖3為本申請實施例另一種樹狀索引結構圖;圖4為本申請GeoIPv6查找樹初始化實施例流程圖;圖5為本申請GeoIPv6查找樹檢索實施例流程圖;圖6為本申請實施例剪枝策略示意圖;圖7為本申請實施例節點信息聚合策略示意圖;圖8為本申請實施例快查緩存索引策略示意圖;圖9是本申請實施例提供的一種電子設備的結構示意圖。
具體實施方式
[0020]為使本申請的目的、技術方案和優點更加清楚,下面將結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
[0021]以下結合附圖,詳細說明本申請各實施例提供的技術方案。
[0022]圖1為本申請一種GeoIPv6樹狀索引方法實施例流程圖。
[0023]本申請實施例提供一種GeoIPv6樹狀索引方法,用于IPv6地址地理位置信息檢索,
包括以下步驟101~103:步驟101、將128位的IPv6地址中從第4位到第48位共45位的公網網段部分取出。
[0024]IPv6地址特征分析:128位地址,前64位為網絡段,后64位為主機段。
[0025]GeoIP只針對公網單播地址進行地理位置判定,公網單播地址具有如下特征:前3位固定為“001”。
[0026]接下來45位是公網網段,決定了IPv6地址的地理位置信息。
[0027]接下來16位是本地站點內子網網段,用于本地劃分多個子網時使用,和地理位置無關。
[0028]最后64位是接口ID,用于確定一個具體的網卡設備。
[0029]其中45位公網網段包含:13位頂級匯聚網絡ID。8位保留字段,用于將來頂級匯聚網絡ID和下級網絡ID長度的擴展,為了兼容將來的擴展方案,本專利技術中將此字段當作下級匯聚網絡ID同等處理,進行索引的構建與檢索,未使用時為全0。
[0030]24位下級匯聚網絡ID。國家或城市的地址空間是按照網絡前綴劃分的。不同大小的IPv6地址空間對應不同長度的公網網段長度。不同國家或城市地址空間網絡前綴包含的頂級匯聚網絡ID長度固定為13位不同國家或城市地址空間網絡前綴包含的下級匯聚網絡ID長度不固定,最大值為32位(8位保留+24位下級匯聚網絡ID),長度越小對應的地址空間就越大。
[0031]樹狀索引結構設計:IPv6地址的地理位置信息,由45位公網網段決定,所以樹狀索引結構只需要包含45位公網網段。
[0032]步驟102、將45位公網網段按順序拆分為5個字段,分別為13位、8位、8位、8位、8位。
[0033]45位公網網段部分,按順序拆分本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種GeoIPv6樹狀索引方法,用于IPv6地址地理位置信息檢索,其特征在于,包括以下步驟:將128位的IPv6地址中從第4位到第48位的公網網段部分取出;將45位公網網段按順序拆分為5個字段,分別為13位、8位、8位、8位、8位;將13位字段作為根節點,每個8位字段依次作為下一級子節點,構成樹狀索引結構。2.根據權利要求1所述GeoIPv6樹狀索引方法,其特征在于,還包含步驟:父節點滿子節點且所有子節點的地理位置信息相同,則將該父節點的全部子節點刪除并將地理位置信息標注在父節點。3.根據權利要求1所述GeoIPv6樹狀索引方法,其特征在于,還包含步驟:父節點滿子節點且子節點地理位置信息有相同的部分,將相同的部分寫入父節點。4.根據權利要求1所述GeoIPv6樹狀索引方法,其特征在于,還包含步驟:設置快查緩存索引表;將單位時間查詢頻次高于設定閾值的IPv6地址寫入快查緩存索引表;將快查緩存索引表指向該IPv6地址對應的葉節點或中間節點。5.根據權利要求4所述GeoIPv6樹狀索引方法,其特征在于,所述設定閾值包含百分比閾值和/或查詢數量閾值;每分鐘地址分布占比高于百分比閾值,寫入快查緩存索引;和/或,每分鐘查詢次數高于查詢數量閾值,寫入快查緩存索引。6.根據權利要...
【專利技術屬性】
技術研發人員:曹中玉,方奕,
申請(專利權)人:神州靈云北京科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。