專利名稱:網(wǎng)絡(luò)地址聚合方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種聚合技術(shù),尤其涉及基于網(wǎng)絡(luò)地址的聚合技術(shù)。
背景技術(shù):
現(xiàn)有技術(shù)中存在一些IP網(wǎng)絡(luò)流量采集數(shù)據(jù)做統(tǒng)計分析的方法,假設(shè)針對源IP 地址作統(tǒng)計分析,則將具有相同IP的流數(shù)量、包數(shù)量和字節(jié)數(shù)量各自累加起來,這個過程稱為聚合(Aggregation),而IP地址則稱為聚合項目(Aggregation Item)。其他的聚合項目還有 UDP/TCP 目的端口(UDP/TCP destination port)、UDP/TCP 源端口(UDP/TCP source port)、UDP/TCP 端口、輸入接口、輸出接口、輸入 / 輸出接口、Destination AS、 Source/Destination AS、IP ToS、IP 協(xié)議、源地址前綴(Source prefix)、目的地址前綴 (Destination prefix)、源 / 目的地址前綴(Source/Destination prefix)等。由于網(wǎng)絡(luò)流量的數(shù)據(jù)非常龐大,而且做聚合處理的時候除了對當(dāng)前處理結(jié)果在內(nèi)存中緩存外,還要不斷對結(jié)果數(shù)據(jù)進(jìn)行計算和更新,所以數(shù)據(jù)訪問速度的快慢對性能影響也比較大。通常的內(nèi)存存儲和訪問技術(shù)有鏈表、順序表和散列等,一般來說,散列技術(shù)的存儲和訪問速度明顯要快于其他的方法,但關(guān)鍵還在于散列關(guān)鍵字的算法。從實用角度出發(fā),對于散列關(guān)鍵字算法的要求是(1)算法盡可能簡單,避免實現(xiàn)算法本身的時間開銷;(2)得出的關(guān)鍵字盡可能唯一。由于UDP/TCP目的端口、UDP/TCP源端口、UDP/TCP端口、輸入接口、輸出接口、輸入 / 輸出接口、Destination AS、Source/Destination AS、IP !"oS、IP 協(xié)議等一些聚合項目本身的字節(jié)寬度小于16位,可以直接拿來作為哈希鍵。對于字節(jié)寬度為32字節(jié)的IP地址進(jìn)行聚合時的哈希鍵算法來說,如果直接將IP地址作為散列存儲的關(guān)鍵字(哈希鍵),則需要 232個數(shù)據(jù)單元大小存儲空間,而一個數(shù)據(jù)單元的大小是8個字節(jié),所以直接拿IP地址的值作為哈希鍵來進(jìn)行存儲的話,需要的內(nèi)存大小是232X8 = 32G,這在當(dāng)前的硬件條件下顯然是不現(xiàn)實的。如何簡單有效的實現(xiàn)IP地址進(jìn)行聚合時的哈希鍵算法,是當(dāng)前存在的一個難題。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決了上述問題,提供了一種網(wǎng)絡(luò)地址聚合方法,提高了基于 IP地址聚合的網(wǎng)絡(luò)流量統(tǒng)計處理的性能。本發(fā)明的另一目的在于提供了一種網(wǎng)絡(luò)地址聚合裝置。本發(fā)明的技術(shù)方案為本發(fā)明揭示了一種網(wǎng)絡(luò)地址聚合方法,包括(1)初始化哈希表,在存儲器中分配一個連續(xù)數(shù)組;(2)接收網(wǎng)絡(luò)流量數(shù)據(jù)包并解析出需要聚合數(shù)據(jù)的網(wǎng)絡(luò)地址;(3)將該些網(wǎng)絡(luò)地址的字節(jié)之間做邏輯運算,得出哈希鍵;(4)將步驟(3)中得到的哈希鍵作為該連續(xù)數(shù)組的下標(biāo),并以此來訪問網(wǎng)絡(luò)地址上的數(shù)據(jù)。
3
根據(jù)本發(fā)明的網(wǎng)絡(luò)地址聚合方法的一實施例,該網(wǎng)絡(luò)地址是IP地址,步驟(3)中的邏輯運算是將IP地址的前半部分的字節(jié)和后半部分的字節(jié)做異或運算以得到哈希鍵。根據(jù)本發(fā)明的網(wǎng)絡(luò)地址聚合方法的一實施例,該IP地址是32字節(jié),步驟C3)中的邏輯運算是將IP地址的高16字節(jié)和低16字節(jié)做異或運算以得到哈希鍵。本發(fā)明還揭示了一種網(wǎng)絡(luò)地址聚合裝置,包括哈希表初始化模塊,初始化哈希表,在存儲器中分配一個連續(xù)數(shù)組;網(wǎng)絡(luò)地址解析模塊,接收網(wǎng)絡(luò)流量數(shù)據(jù)包并解析出需要聚合數(shù)據(jù)的網(wǎng)絡(luò)地址;哈希鍵獲得模塊,對解析出的網(wǎng)絡(luò)地址的字節(jié)之間做邏輯運算,得出哈希鍵;數(shù)據(jù)訪問模塊,將得出的哈希鍵作為該連續(xù)數(shù)組的下標(biāo),并以此來訪問網(wǎng)絡(luò)地址上的數(shù)據(jù)。根據(jù)本發(fā)明的網(wǎng)絡(luò)地址聚合裝置的一實施例,該網(wǎng)絡(luò)地址是IP地址,該哈希鍵獲得模塊中的邏輯運算是將IP地址的前半部分的字節(jié)和后半部分的字節(jié)做異或運算以得到哈希鍵。根據(jù)本發(fā)明的網(wǎng)絡(luò)地址聚合裝置的一實施例,該IP地址是32字節(jié),該哈希鍵獲得模塊中的邏輯運算是將IP地址的高16字節(jié)和低16字節(jié)做異或運算以得到哈希鍵。本發(fā)明對比現(xiàn)有技術(shù)有如下的有益效果本發(fā)明通過將IP地址的高16字節(jié)和低 16字節(jié)做異或運算并將運算結(jié)果作為哈希鍵,對比現(xiàn)有技術(shù),可提高基于IP地址聚合的網(wǎng)絡(luò)流量統(tǒng)計處理的性能。
圖1是本發(fā)明的網(wǎng)絡(luò)地址聚合方法的實施例的流程圖。圖2是本發(fā)明的網(wǎng)絡(luò)地址聚合裝置的實施例的原理圖。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步的描述。網(wǎng)絡(luò)地址聚合方法的實施例圖1示出了本發(fā)明的網(wǎng)絡(luò)地址聚合方法的實施例的流程。請參見圖1,本實施例的網(wǎng)絡(luò)地址聚合方法的詳細(xì)步驟如下。步驟SlO 初始化哈希表,在存儲器中分配一個連續(xù)數(shù)組。數(shù)組的大小可以是2"5個數(shù)據(jù)單元,具體數(shù)據(jù)單元的大小和本發(fā)明無關(guān)。步驟S12 接收網(wǎng)絡(luò)流量數(shù)據(jù)包并解析出需要聚合數(shù)據(jù)的網(wǎng)絡(luò)地址。在本實施例中,網(wǎng)絡(luò)地址是32字節(jié)的IP地址。步驟S14 將這些網(wǎng)絡(luò)地址的字節(jié)之間做邏輯運算,得出哈希鍵。在本實施例中,將32字節(jié)的IP地址的高16位字節(jié)和低16位字節(jié)做異或運算,得出哈希鍵。如果是多個IP地址,則逐一進(jìn)行計算。步驟S16 將得到的哈希鍵作為連續(xù)數(shù)組的下標(biāo),并以此來直接訪問網(wǎng)絡(luò)地址上的數(shù)據(jù)。當(dāng)然,也可以對網(wǎng)絡(luò)地址上的數(shù)據(jù)做累加、更新等相應(yīng)操作。網(wǎng)絡(luò)地址聚合裝置的實施例
圖2示出了本發(fā)明的網(wǎng)絡(luò)地址聚合裝置的實施例的原理。請參見圖2,本實施例的網(wǎng)絡(luò)地址聚合裝置1包括哈希表初始化模塊10、網(wǎng)絡(luò)地址解析模塊12、哈希鍵獲得模塊 14和數(shù)據(jù)訪問模塊16。這些模塊之間是依序連接的。在哈希表初始化模塊10中,初始化哈希表,在存儲器(例如內(nèi)存)中分配一個連續(xù)數(shù)組,數(shù)組的大小可以是216個數(shù)據(jù)單元,具體數(shù)據(jù)單元的大小和本發(fā)明無關(guān)。在網(wǎng)絡(luò)地址解析模塊12中,接收網(wǎng)絡(luò)流量數(shù)據(jù)包并解析出需要聚合數(shù)據(jù)的網(wǎng)絡(luò)地址。在本實施例中,網(wǎng)絡(luò)地址是32字節(jié)的IP地址。在哈希鍵獲得模塊14中,對解析出的網(wǎng)絡(luò)地址的字節(jié)之間做邏輯運算,得出哈希鍵。在本實施例中,將32字節(jié)的IP地址的高16位字節(jié)和低16位字節(jié)做異或運算,得出哈希鍵。如果是多個IP地址,則逐一進(jìn)行計算。在數(shù)據(jù)訪問模塊16中,將得出的哈希鍵作為連續(xù)數(shù)組的下標(biāo),并以此來訪問網(wǎng)絡(luò)地址上的數(shù)據(jù)。當(dāng)然,也可以對網(wǎng)絡(luò)地址上的數(shù)據(jù)做累加、更新等相應(yīng)操作。本發(fā)明的技術(shù)效果在于在存儲訪問方面,哈希算法的優(yōu)勢就是快速,所以一個哈希鍵算法自身如果時間開銷較大就會失去意義。本發(fā)明的方法僅僅是把IP地址的高16字節(jié)和低16字節(jié)作異或運算,一個時鐘周期就能完成,所以時間開銷可以忽略不計。上述實施例是提供給本領(lǐng)域普通技術(shù)人員來實現(xiàn)或使用本發(fā)明的,本領(lǐng)域普通技術(shù)人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對上述實施例做出種種修改或變化,因而本發(fā)明的保護(hù)范圍并不被上述實施例所限,而應(yīng)該是符合權(quán)利要求書提到的創(chuàng)新性特征的最大范圍。
權(quán)利要求
1.一種網(wǎng)絡(luò)地址聚合方法,包括(1)初始化哈希表,在存儲器中分配一個連續(xù)數(shù)組;(2)接收網(wǎng)絡(luò)流量數(shù)據(jù)包并解析出需要聚合數(shù)據(jù)的網(wǎng)絡(luò)地址;(3)將該些網(wǎng)絡(luò)地址的字節(jié)之間做邏輯運算,得出哈希鍵;(4)將步驟(3)中得到的哈希鍵作為該連續(xù)數(shù)組的下標(biāo),并以此來訪問網(wǎng)絡(luò)地址上的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)地址聚合方法,其特征在于,該網(wǎng)絡(luò)地址是IP地址,步驟(3)中的邏輯運算是將IP地址的前半部分的字節(jié)和后半部分的字節(jié)做異或運算以得到哈希鍵。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)地址聚合方法,其特征在于,該IP地址是32字節(jié),步驟 (3)中的邏輯運算是將IP地址的高16字節(jié)和低16字節(jié)做異或運算以得到哈希鍵。
4.一種網(wǎng)絡(luò)地址聚合裝置,包括哈希表初始化模塊,初始化哈希表,在存儲器中分配一個連續(xù)數(shù)組;網(wǎng)絡(luò)地址解析模塊,接收網(wǎng)絡(luò)流量數(shù)據(jù)包并解析出需要聚合數(shù)據(jù)的網(wǎng)絡(luò)地址;哈希鍵獲得模塊,對解析出的網(wǎng)絡(luò)地址的字節(jié)之間做邏輯運算,得出哈希鍵;數(shù)據(jù)訪問模塊,將得出的哈希鍵作為該連續(xù)數(shù)組的下標(biāo),并以此來訪問網(wǎng)絡(luò)地址上的數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)地址聚合裝置,其特征在于,該網(wǎng)絡(luò)地址是IP地址,該哈希鍵獲得模塊中的邏輯運算是將IP地址的前半部分的字節(jié)和后半部分的字節(jié)做異或運算以得到哈希鍵。
6.根據(jù)權(quán)利要求5所述的網(wǎng)絡(luò)地址聚合裝置,其特征在于,該IP地址是32字節(jié),該哈希鍵獲得模塊中的邏輯運算是將IP地址的高16字節(jié)和低16字節(jié)做異或運算以得到哈希鍵。
全文摘要
本發(fā)明公開了網(wǎng)絡(luò)地址聚合方法和裝置,提高了基于IP地址聚合的網(wǎng)絡(luò)流量統(tǒng)計處理的性能。其技術(shù)方案為方法包括(1)初始化哈希表,在存儲器中分配一個連續(xù)數(shù)組;(2)接收網(wǎng)絡(luò)流量數(shù)據(jù)包并解析出需要聚合數(shù)據(jù)的網(wǎng)絡(luò)地址;(3)將該些網(wǎng)絡(luò)地址的字節(jié)之間做邏輯運算,得出哈希鍵;(4)將步驟(3)中得到的哈希鍵作為該連續(xù)數(shù)組的下標(biāo),并以此來訪問網(wǎng)絡(luò)地址上的數(shù)據(jù)。
文檔編號H04L29/12GK102316173SQ201010219038
公開日2012年1月11日 申請日期2010年7月5日 優(yōu)先權(quán)日2010年7月5日
發(fā)明者鄭文蘊 申請人:國訊新創(chuàng)軟件技術(shù)有限公司