1)和SHA?256等。這些哈希函數(shù)會(huì)對(duì)輸入的數(shù)據(jù)進(jìn)行復(fù)雜的運(yùn)算,使得即使輸入數(shù)據(jù)只有微小的差異,輸出的哈希值也會(huì)有很大的不同。第一哈希函數(shù)和第二哈希函數(shù)可以在這些哈希函數(shù)中確定出。
[0118] 當(dāng)確定好第一哈希值之后,如果在第一哈希桶數(shù)組中的某個(gè)第一哈希桶對(duì)應(yīng)的哈希值和該數(shù)據(jù)流的第一哈希值相同,則該第一哈希桶的就是該數(shù)據(jù)流的哈希值對(duì)應(yīng)的第一目標(biāo)哈希桶。如果在第一哈希桶數(shù)組中沒(méi)有第一哈希桶對(duì)應(yīng)的哈希值和該數(shù)據(jù)流的哈希值相同,可以新建該數(shù)據(jù)流對(duì)應(yīng)的第一目標(biāo)哈希桶。
[0119] 當(dāng)確定好第二哈希值之后,如果在第二哈希桶數(shù)組中的某個(gè)第二哈希桶對(duì)應(yīng)的哈希值和該數(shù)據(jù)流的第二哈希值相同,則該第二哈希桶的就是該數(shù)據(jù)流的哈希值對(duì)應(yīng)的第二目標(biāo)哈希桶。如果在第二哈希桶數(shù)組中沒(méi)有第二哈希桶對(duì)應(yīng)的哈希值和該數(shù)據(jù)流的哈希值相同,可以新建該數(shù)據(jù)流對(duì)應(yīng)的第二目標(biāo)哈希桶。目標(biāo)哈希桶包括對(duì)第一目標(biāo)哈希桶和第二目標(biāo)哈希桶。
[0120] 在步驟130中,將五元組信息和預(yù)設(shè)哈希桶數(shù)組中已保存五元組信息進(jìn)行對(duì)比得
到對(duì)比結(jié)果,并根據(jù)對(duì)比結(jié)果在目標(biāo)哈希桶中確定出數(shù)據(jù)流對(duì)應(yīng)的存儲(chǔ)位置。
[0121] 在本申請(qǐng)實(shí)施例中,預(yù)設(shè)哈希桶數(shù)組包含了第一哈希桶數(shù)組和第二哈希桶數(shù)組,在第一哈希桶數(shù)組和第二哈希桶數(shù)組中分別保留了對(duì)應(yīng)數(shù)據(jù)流的五元組信息,可以先將五元組信息和第一哈希桶數(shù)組中已保存五元組信息進(jìn)行對(duì)比得到第一對(duì)比結(jié)果。
[0122] 如果第一對(duì)比結(jié)果指示五元組信息和第一哈希桶數(shù)組中已保存五元組信息相匹
配,并且在第一哈希桶數(shù)組中的第一目標(biāo)哈希桶具備數(shù)據(jù)流對(duì)應(yīng)的存儲(chǔ)位置,那么可以直接將數(shù)據(jù)流對(duì)應(yīng)的網(wǎng)絡(luò)信息存儲(chǔ)在第一哈希桶數(shù)組中。
[0123] 如果第一對(duì)比結(jié)果指示五元組信息和第一哈希桶數(shù)組中已保存五元組信息不匹
配,那么將五元組信息和第二哈希桶數(shù)組中已保存五元組信息進(jìn)行對(duì)比得到第二對(duì)比結(jié)
果,再基于第二對(duì)比結(jié)果在第二目標(biāo)哈希桶中確定出數(shù)據(jù)流對(duì)應(yīng)的存儲(chǔ)位置。也就是說(shuō),數(shù)據(jù)流對(duì)應(yīng)的五元組信息、平均網(wǎng)絡(luò)速率、數(shù)據(jù)流的出現(xiàn)窗口次數(shù)、數(shù)據(jù)流在對(duì)應(yīng)窗口中的出現(xiàn)頻率等網(wǎng)絡(luò)信息,保存在第一哈希桶數(shù)組中或者第二哈希桶數(shù)組中。
[0124] 在本申請(qǐng)中采用兩個(gè)哈希桶數(shù)組的好處是,可以減少不同數(shù)據(jù)流對(duì)應(yīng)的哈希值之間的哈希沖突,從而減少了哈希沖突的概率,這種方法可以在一定程度上減少哈希沖突,因?yàn)閮蓚€(gè)不同的哈希函數(shù)將數(shù)據(jù)分散到兩個(gè)不同的數(shù)組中,相比于單個(gè)哈希桶數(shù)組,數(shù)據(jù)分布更加均勻。在查找數(shù)據(jù)記錄時(shí),首先在第一哈希桶數(shù)組中查找,如果沒(méi)有找到,再在第二哈希桶數(shù)組中查找,由于沖突減少,平均查找長(zhǎng)度也會(huì)相應(yīng)減少,這樣可以提高對(duì)數(shù)據(jù)的查找效率。
[0125] 在一些實(shí)施方式中,根據(jù)對(duì)比結(jié)果在目標(biāo)哈希桶中確定出數(shù)據(jù)流對(duì)應(yīng)的存儲(chǔ)位
置,包括:
[0126] (1.1)當(dāng)對(duì)比結(jié)果指示五元組信息與第一哈希桶數(shù)組中已保存五元組信息匹配
時(shí),確定數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前檢測(cè)窗口是否與上一次的檢測(cè)窗口相同;
[0127] (1.2)當(dāng)數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前檢測(cè)窗口與上一次的檢測(cè)窗口不相同時(shí),確定數(shù)據(jù)流在第一目標(biāo)哈希桶中排序的當(dāng)前存儲(chǔ)位置;
[0128] (1.3)獲取數(shù)據(jù)流對(duì)應(yīng)的平均網(wǎng)絡(luò)速率和出現(xiàn)窗口次數(shù);
[0129] (1.4)在第一目標(biāo)哈希桶中確定排序在當(dāng)前存儲(chǔ)位置之前的鄰居存儲(chǔ)位置,以及鄰居存儲(chǔ)位置對(duì)應(yīng)的鄰居數(shù)據(jù)流的平均網(wǎng)絡(luò)速率和出現(xiàn)窗口次數(shù);
[0130] (1.5)根據(jù)數(shù)據(jù)流對(duì)應(yīng)的平均網(wǎng)絡(luò)速率和出現(xiàn)窗口次數(shù)以及鄰居數(shù)據(jù)流的平均網(wǎng)絡(luò)速率和出現(xiàn)窗口次數(shù),在第一目標(biāo)哈希桶中確定出數(shù)據(jù)流對(duì)應(yīng)的存儲(chǔ)位置。
[0131] 其中,在對(duì)數(shù)據(jù)流進(jìn)行分析時(shí),會(huì)有多個(gè)連續(xù)時(shí)間的檢測(cè)窗口,檢測(cè)窗口可以理解為是一段時(shí)間內(nèi)的檢測(cè)窗口。當(dāng)對(duì)比結(jié)果指示五元組信息與第一哈希桶數(shù)組中已保存五元組信息匹配時(shí),確定數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前檢測(cè)窗口是否與上一次的檢測(cè)窗口相同,即判斷數(shù)據(jù)流對(duì)應(yīng)的時(shí)間是否在上次檢測(cè)時(shí)對(duì)應(yīng)的窗口的時(shí)間范圍內(nèi)。
[0132] 當(dāng)數(shù)據(jù)流對(duì)應(yīng)的當(dāng)前檢測(cè)窗口與上一次的檢測(cè)窗口不相同時(shí),說(shuō)明當(dāng)前檢測(cè)窗口為新的時(shí)間段內(nèi)的檢測(cè)窗口,此時(shí)確定數(shù)據(jù)流在第一目標(biāo)哈希桶中排序的當(dāng)前存儲(chǔ)位置,比如第一目標(biāo)哈希桶中有多個(gè)條目,可以按照條目的排列順序找到首個(gè)沒(méi)有存儲(chǔ)數(shù)據(jù)的條目,將該條目對(duì)應(yīng)的存儲(chǔ)位置確定為數(shù)據(jù)流的當(dāng)前存儲(chǔ)位置。
[0133] 然后獲取數(shù)據(jù)流對(duì)應(yīng)的平均網(wǎng)絡(luò)速率和出現(xiàn)窗口次數(shù),其中數(shù)據(jù)流的出現(xiàn)窗口次數(shù)可以通過(guò)計(jì)數(shù)器來(lái)統(tǒng)計(jì)即可,比如數(shù)據(jù)流只要在某個(gè)檢測(cè)窗口出現(xiàn)過(guò),則計(jì)數(shù)器只計(jì)數(shù)一次,比如在當(dāng)前檢測(cè)窗口中數(shù)據(jù)流出現(xiàn)1次,則計(jì)數(shù)器計(jì)數(shù)1次,在當(dāng)前檢測(cè)窗口中數(shù)據(jù)流出現(xiàn)2次,計(jì)數(shù)器也只計(jì)數(shù)1次,并對(duì)該數(shù)據(jù)流的出現(xiàn)窗口次數(shù)進(jìn)行加一。數(shù)據(jù)流對(duì)應(yīng)的平均網(wǎng)絡(luò)速率可以基于數(shù)據(jù)流在當(dāng)前檢測(cè)窗口之前檢測(cè)到的歷史平均網(wǎng)絡(luò)速率和數(shù)據(jù)流在當(dāng)
前檢測(cè)窗口的出現(xiàn)頻率計(jì)算得到。