1.一種網(wǎng)絡(luò)協(xié)議識別方法,其特征在于,所述方法包括:
獲取在傳輸網(wǎng)絡(luò)數(shù)據(jù)時同一會話開始時的多個數(shù)據(jù)包作為待識別網(wǎng)絡(luò)數(shù)據(jù)包;
將所述待識別網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造成網(wǎng)絡(luò)協(xié)議模型;
將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中模型進行匹配,其中已知網(wǎng)絡(luò)協(xié)議模型庫中模型是由已知網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造的;
如果與已知網(wǎng)絡(luò)協(xié)議模型庫中模型匹配成功,則所述網(wǎng)絡(luò)協(xié)議模型為已知網(wǎng)絡(luò)協(xié)議模型;
如果與已知網(wǎng)絡(luò)協(xié)議模型庫中所有模型匹配失敗,則所述網(wǎng)絡(luò)協(xié)議模型為未知網(wǎng)絡(luò)協(xié)議模型,將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中已有模型進行匹配,并采用未知網(wǎng)絡(luò)協(xié)議更新策略對未知網(wǎng)絡(luò)協(xié)議模型庫進行更新,其中未知網(wǎng)絡(luò)協(xié)議模型庫中模型是由未知網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造的。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述待識別網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)造成網(wǎng)絡(luò)協(xié)議模型,具體為:
人工指定至少一個構(gòu)造所述網(wǎng)絡(luò)協(xié)議模型所需的模型屬性參數(shù);
根據(jù)所述待識別網(wǎng)絡(luò)數(shù)據(jù)包,計算所述網(wǎng)絡(luò)協(xié)議模型的各個屬性參數(shù)對應(yīng)的頻率分布,各個頻率分布共同構(gòu)成了所述網(wǎng)絡(luò)協(xié)議模型。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中模型進行匹配,具體為:
將所述網(wǎng)絡(luò)協(xié)議模型與已知網(wǎng)絡(luò)協(xié)議模型庫中的模型按照從頭到尾的順序逐一進行匹配;
將所述網(wǎng)絡(luò)協(xié)議模型的各個屬性參數(shù)的頻率分布逐一與已知網(wǎng)絡(luò)協(xié)議模型庫中取出的模型對應(yīng)的各個屬性參數(shù)的頻率分布計算KL距離,并對所有KL距離求和;
如果所述KL距離之和小于預(yù)設(shè)的第一距離閾值,則認(rèn)為匹配成功,即認(rèn)為該待識別網(wǎng)絡(luò)數(shù)據(jù)包為已知網(wǎng)絡(luò)協(xié)議;
如果所述KL距離之和大于等于預(yù)設(shè)的第一距離閾值,則認(rèn)為匹配失敗,如果匹配失敗,判斷是否匹配到已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型;
如果是已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,則結(jié)束匹配,所述網(wǎng)絡(luò)協(xié)議模型為未知網(wǎng)絡(luò)協(xié)議;
如果不是已知網(wǎng)絡(luò)協(xié)議模型庫中的最后一個模型,則繼續(xù)匹配。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中模型進行匹配,并采用未知網(wǎng)絡(luò)協(xié)議更新策略對未知網(wǎng)絡(luò)協(xié)議模型庫進行更新,具體為:
將所述網(wǎng)絡(luò)協(xié)議模型與未知網(wǎng)絡(luò)協(xié)議模型庫中的模型按照從頭到尾的順序逐一進行匹配;
將所述網(wǎng)絡(luò)協(xié)議模型的各個屬性參數(shù)的頻率分布逐一與未知網(wǎng)絡(luò)協(xié)議模型庫中取出的模型對應(yīng)的各個屬性參數(shù)的頻率分布計算KL距離,并對所有KL距離求和;
如果所述KL距離之和小于預(yù)設(shè)的第二距離閾值,則認(rèn)為匹配成功,更新匹配成功的未知網(wǎng)絡(luò)協(xié)議模型,并將所述匹配成功的未知網(wǎng)絡(luò)協(xié)議模型的位置在未知網(wǎng)絡(luò)協(xié)議模型庫中向前移動一位,并結(jié)束匹配;
如果所述KL距離之和大于等于預(yù)設(shè)的第二距離閾值,則認(rèn)為匹配失敗,繼續(xù)匹配,直到匹配完未知網(wǎng)絡(luò)協(xié)議模型庫中的所有模型,則將所述網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,將所述網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫中,具體為:
檢查當(dāng)前未知網(wǎng)絡(luò)協(xié)議模型庫中存放的未知網(wǎng)絡(luò)協(xié)議模型的數(shù)量是否已經(jīng)達(dá)到未知網(wǎng)絡(luò)協(xié)議模型庫預(yù)設(shè)的大小閾值N;
如果不是,則將所述網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫的最前面;
如果是,則淘汰未知網(wǎng)絡(luò)協(xié)議模型庫中位于最末位置的未知網(wǎng)絡(luò)協(xié)議,并將所述網(wǎng)絡(luò)協(xié)議模型插入未知網(wǎng)絡(luò)協(xié)議模型庫的最前面。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
采取更新策略對已知網(wǎng)絡(luò)協(xié)議模型庫進行更新,具體為:
設(shè)置時間周期閾值,周期性地檢查未知網(wǎng)絡(luò)協(xié)議模型庫中各個模型被命中的次數(shù);
如果某個未知網(wǎng)絡(luò)協(xié)議模型的命中次數(shù)大于預(yù)設(shè)的次數(shù)閾值,則將該未知網(wǎng)絡(luò)協(xié)議模型從未知網(wǎng)絡(luò)協(xié)議模型庫中移除,加入已知網(wǎng)絡(luò)協(xié)議模型庫中。