一種報(bào)文分類及查找方法
【專利摘要】本發(fā)明提出了一種報(bào)文分類和查找方法。根據(jù)報(bào)文協(xié)議號(hào)建立對(duì)應(yīng)協(xié)議的HASH鏈表,將報(bào)文信息放到對(duì)應(yīng)協(xié)議的HASH鏈表中,完成報(bào)文的分類;同時(shí)根據(jù)報(bào)文協(xié)議號(hào)到對(duì)應(yīng)協(xié)議的HASH鏈表中查找,完成報(bào)文的查找。
【專利說明】一種報(bào)文分類及查找方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,特別涉及一種報(bào)文分類及查找方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)的快速發(fā)展,各種網(wǎng)絡(luò)設(shè)備層出不窮,給用戶提供了越來越豐富的功能以及用戶體驗(yàn)。雖然各種網(wǎng)絡(luò)設(shè)備對(duì)用戶提供的功能是不一樣的,但是所有這些設(shè)備都會(huì)涉及到對(duì)網(wǎng)絡(luò)報(bào)文的處理,對(duì)報(bào)文的處理其中就包括報(bào)文的分類及查找。
[0003]目前,報(bào)文分類通常使用的方法為:不同協(xié)議類型的報(bào)文放在一個(gè)一個(gè)HASH鏈表中,根據(jù)報(bào)文HASH值在HASH鏈表中申請(qǐng)一個(gè)流表,將報(bào)文的源地址,目的地址,協(xié)議號(hào),源端口號(hào)和目的端口號(hào)五元組信息,保存到流表中。
[0004]目前,報(bào)文查找通常使用的方法為:根據(jù)報(bào)文HASH值在HASH鏈表中查找流表,將報(bào)文的源地址,目的地址,協(xié)議號(hào),源端口號(hào)和目的端口號(hào)五元組信息與流表中的報(bào)文信息進(jìn)行一一比較,如果找到相同的,則查找成功。
[0005]現(xiàn)有的報(bào)文分類方法沒有將不同協(xié)議類型的報(bào)文分開,不同類型的報(bào)文使用同一個(gè)HASH鏈表,這樣在查找報(bào)文時(shí),還需要對(duì)報(bào)文協(xié)議號(hào)進(jìn)行比較。加重了網(wǎng)絡(luò)設(shè)備的負(fù)擔(dān)。
【發(fā)明內(nèi)容】
[0006]針對(duì)現(xiàn)有技術(shù)方案存在的問題和不足,本發(fā)明提供了一種報(bào)文分類及查找方法,可以將不同協(xié)議類型的報(bào)文進(jìn)行分類,在報(bào)文查找時(shí),減輕網(wǎng)絡(luò)負(fù)擔(dān)。
[0007]為實(shí)現(xiàn)以上目的,本發(fā)明通過以下技術(shù)方案予以實(shí)現(xiàn):
[0008]—種報(bào)文分類方法,根據(jù)報(bào)文協(xié)議號(hào)建立對(duì)應(yīng)協(xié)議的HASH鏈表,將報(bào)文信息放到對(duì)應(yīng)協(xié)議的HASH鏈表中。
[0009]較佳地,所述將報(bào)文信息放到對(duì)應(yīng)協(xié)議的HASH鏈表中包括:
[0010]申請(qǐng)一個(gè)流表;
[0011 ] 將報(bào)文信息放到流表中;
[0012]將流表掛在對(duì)應(yīng)協(xié)議的HASH鏈表中,掛靠的位置由報(bào)文HASH值決定。
[0013]其中,所述報(bào)文HASH值為:
[0014]使用報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息計(jì)算的報(bào)文HASH 值。
[0015]其中,所述報(bào)文信息包括報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息。
[0016]—種報(bào)文查找方法,根據(jù)第一報(bào)文協(xié)議號(hào)到對(duì)應(yīng)協(xié)議的HASH鏈表中查找。
[0017]較佳地,所述到對(duì)應(yīng)協(xié)議的HASH鏈表中查找包括:
[0018]到對(duì)應(yīng)協(xié)議的HASH鏈表中查找與第一報(bào)文HASH值對(duì)應(yīng)的鏈表;
[0019]將第一報(bào)文信息與第一報(bào)文HASH值對(duì)應(yīng)的鏈表中存放的各個(gè)流表中的報(bào)文信息一一進(jìn)行比較,如果找到同樣的信息,則查找成功。如果沒有找到同樣的信息,則申請(qǐng)流表,將第一報(bào)文信息放到流表中,將流表掛在對(duì)應(yīng)協(xié)議的HASH鏈表中。
[0020]其中,所述第一報(bào)文HASH值為:
[0021]使用第一報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)計(jì)算的HASH值。
[0022]其中,所述第一報(bào)文信息包括第一報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息。
[0023]本發(fā)明至少具有如下的有益效果:
[0024]1、本發(fā)明根據(jù)報(bào)文協(xié)議號(hào)建立不同協(xié)議類型的HASH鏈表,可以將不同協(xié)議類型的報(bào)文分開,避免了現(xiàn)有技術(shù)中不同類型報(bào)文可能放在一個(gè)HASH鏈表的情況。
[0025]2、在查找特定協(xié)議報(bào)文時(shí),只需要查看該報(bào)文協(xié)議類型的HASH鏈表,避免了以往技術(shù)中需要遍歷由不同協(xié)議類型報(bào)文組成的HASH鏈表的情況,提高了查找速度。
[0026]3、在遍歷流表項(xiàng)時(shí),不需要對(duì)比協(xié)議號(hào),尤其是當(dāng)網(wǎng)絡(luò)流量很大時(shí),本發(fā)明只需要比較四元組信息,每次都少了一次比較協(xié)議號(hào)的過程,因此大大了提高網(wǎng)絡(luò)設(shè)備的吞吐能力。
[0027]當(dāng)然,實(shí)施本發(fā)明的任一方法或產(chǎn)品不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
【專利附圖】
【附圖說明】
[0028]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0029]圖1是本發(fā)明實(shí)施例1中對(duì)報(bào)文分類的流程圖;
[0030]圖2是本發(fā)明實(shí)施例2中對(duì)報(bào)文查找的流程圖;
[0031]圖3是本發(fā)明一個(gè)較佳實(shí)施例3中對(duì)報(bào)文分類的流程圖;
[0032]圖4是本發(fā)明一個(gè)較佳實(shí)施例4中對(duì)報(bào)文查找的流程圖。
【具體實(shí)施方式】
[0033]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]實(shí)施例1:
[0035]本發(fā)明實(shí)施例提出了一種報(bào)文分類方法,如圖1所示,該方法包括如下步驟:
[0036]步驟101:獲取報(bào)文協(xié)議號(hào)。
[0037]步驟102:根據(jù)報(bào)文協(xié)議號(hào)建立對(duì)應(yīng)協(xié)議的HASH鏈表。
[0038]步驟103:將報(bào)文信息放到對(duì)應(yīng)協(xié)議的HASH鏈表中。
[0039]實(shí)施例2:
[0040]本發(fā)明實(shí)施例提出了一種報(bào)文查找方法,如圖2所示,該方法包括如下步驟:
[0041]步驟201:獲取報(bào)文協(xié)議號(hào)。
[0042]步驟202:根據(jù)報(bào)文協(xié)議號(hào)到對(duì)應(yīng)協(xié)議的HASH鏈表中查找。[0043]可見,在本發(fā)明實(shí)施例1和2中,根據(jù)報(bào)文協(xié)議號(hào)建立不同協(xié)議類型的HASH鏈表,可以將不同協(xié)議類型的報(bào)文分開,避免了現(xiàn)有技術(shù)中不同類型報(bào)文可能放在一個(gè)HASH鏈表的情況。在查找某個(gè)特定協(xié)議報(bào)文時(shí),只需要查看該報(bào)文協(xié)議類型的HASH鏈表,避免了以往技術(shù)中需要遍歷由不同協(xié)議類型報(bào)文組成的HASH鏈表的情況,提高了查找速度。在遍歷流表項(xiàng)時(shí),不需要對(duì)比協(xié)議號(hào),尤其是當(dāng)網(wǎng)絡(luò)流量很大時(shí),本發(fā)明只需要比較四元組信息,每次都少了一次比較協(xié)議號(hào)的過程,因此會(huì)大大提高網(wǎng)絡(luò)設(shè)備的吞吐能力。
[0044]實(shí)施例3:
[0045]下面通過一個(gè)具體的例子,來更為詳細(xì)的說明本發(fā)明中一種報(bào)文分類方法的較佳實(shí)現(xiàn)過程,如圖3所示,如下步驟:
[0046]步驟301:接收網(wǎng)絡(luò)報(bào)文。
[0047]在本步驟中,網(wǎng)絡(luò)設(shè)備接收網(wǎng)絡(luò)報(bào)文。
[0048]步驟302:提取報(bào)文的五元組信息。
[0049]在本步驟中,獲取報(bào)文的協(xié)議號(hào)、目的地址、源地址、源端口號(hào)和目的端口號(hào)五元
組信息。
[0050]步驟303:建立對(duì)應(yīng)協(xié)議的HASH鏈表。
[0051]在本步驟中,根據(jù)報(bào)文協(xié)議號(hào)建立對(duì)應(yīng)協(xié)議的HASH鏈表。例如,當(dāng)報(bào)文協(xié)議號(hào)為17時(shí),協(xié)議類型為UDP,建立對(duì)應(yīng)的UDP鏈表,當(dāng)報(bào)文協(xié)議號(hào)為6時(shí),協(xié)議類型為TCP,建立對(duì)應(yīng)的TCP鏈表。
[0052]步驟304:計(jì)算HASH值。
[0053]在本步驟中,用報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)通過HASH算法計(jì)算HASH值。
[0054]步驟305:申請(qǐng)流表。
[0055]在本步驟中,申請(qǐng)一個(gè)流表,用來存放報(bào)文信息。
[0056]步驟306:將報(bào)文四元組信息放到流表中。
[0057]在本步驟中,將報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息放到申請(qǐng)來的流表中。
[0058]步驟307:將流表掛在對(duì)應(yīng)協(xié)議鏈表中的某一個(gè)鏈表上。
[0059]在本步驟中,具體將流表掛UDP鏈表中的哪一個(gè)鏈表上,由HASH值決定。例如計(jì)算出的HASH值為30,則掛在與30對(duì)應(yīng)的鏈表上。由于不同UDP報(bào)文計(jì)算出的HASH值可能相同,所以在與30對(duì)應(yīng)的鏈表上,可能掛著不同報(bào)文的流表。
[0060]可見,根據(jù)報(bào)文協(xié)議號(hào)建立不同協(xié)議類型的HASH鏈表,例如建立UDP鏈表和TCP鏈表,可以將m)P報(bào)文和TCP報(bào)文分別放在UDP鏈表和TCP鏈表中,避免了現(xiàn)有技術(shù)中不同協(xié)議類型報(bào)文可能放在一個(gè)鏈表中的情況。
[0061]實(shí)施例4:
[0062]下面通過一個(gè)具體的例子,來更為詳細(xì)的說明本發(fā)明中一種報(bào)文查找方法的較佳實(shí)現(xiàn)過程,如圖4所示,如下步驟:
[0063]步驟401:接收網(wǎng)絡(luò)報(bào)文。
[0064]在本步驟中,網(wǎng)絡(luò)設(shè)備接收網(wǎng)絡(luò)報(bào)文。
[0065]步驟402:提取報(bào)文的五元組信息。[0066]在本步驟中,獲取報(bào)文的協(xié)議號(hào)、目的地址、源地址、源端口號(hào)和目的端口號(hào)五元
組信息。
[0067]步驟403:計(jì)算HASH值。
[0068]在本步驟中,用報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)通過HASH算法計(jì)算HASH值。
[0069]步驟404:查找對(duì)應(yīng)協(xié)議的HASH鏈表。
[0070]在本步驟中,根據(jù)協(xié)議號(hào)查找對(duì)應(yīng)協(xié)議的HASH鏈表。例如,當(dāng)報(bào)文協(xié)議號(hào)為6時(shí),協(xié)議類型為TCP,找到對(duì)應(yīng)的TCP鏈表。
[0071]步驟405:查找與第一報(bào)文HASH值對(duì)應(yīng)的鏈表。
[0072]在本步驟中,在TCP鏈表中,尋找與該報(bào)文HASH值對(duì)應(yīng)的鏈表。例如,計(jì)算出的HASH值為30,則在TCP鏈表中,找到與30對(duì)應(yīng)的鏈表。
[0073]步驟406:將鏈表中存放的各個(gè)流表中的報(bào)文四元組信息與第一報(bào)文的四元組信息進(jìn)行 比較。
[0074]在本步驟中,將與30對(duì)應(yīng)的鏈表的各個(gè)流表中的報(bào)文目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息與該報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息進(jìn)行比較。
[0075]步驟407:判斷比較結(jié)果是否一致,若一致,則執(zhí)行步驟408 ;否則,執(zhí)行步驟409。
[0076]在本步驟中,如果某個(gè)流表的報(bào)文四元組信息與該報(bào)文的四元組信息一致,則執(zhí)行步驟408 ;否則,執(zhí)行步驟409。
[0077]步驟408:查找成功。
[0078]步驟409:申請(qǐng)流表。
[0079]在本步驟中,申請(qǐng)一個(gè)流表,用來存放報(bào)文信息。
[0080]步驟410:將報(bào)文四元組信息放到流表中。
[0081]在本步驟中,將報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息放到申請(qǐng)來的流表中。
[0082]步驟411:將流表掛在對(duì)應(yīng)協(xié)議鏈表中的某一個(gè)鏈表上。
[0083]在本步驟中,將流表掛在TCP鏈表中,與30對(duì)應(yīng)的鏈表上。
[0084]可見,在查找某個(gè)特定協(xié)議報(bào)文時(shí),比如查找TCP報(bào)文時(shí),只需要查看TCP鏈表,避免了以往技術(shù)中需要遍歷由不同協(xié)議類型報(bào)文組成的鏈表的情況,提高了查找速度。另外,在遍歷流表項(xiàng)時(shí),不需要對(duì)比協(xié)議號(hào),只需要對(duì)比報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息,相比于現(xiàn)有技術(shù)中需要對(duì)比報(bào)文的協(xié)議號(hào)、目的地址、源地址、源端口號(hào)和目的端口號(hào)五元組信息的情況,查找效率有所提高,尤其是當(dāng)網(wǎng)絡(luò)流量很大時(shí),本發(fā)明只需要比較四元組信息,每次都少了一次比較協(xié)議號(hào)的過程,因此會(huì)大大提高網(wǎng)絡(luò)設(shè)備的吞吐能力。
[0085]以上實(shí)施例僅用于說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種報(bào)文分類方法,其特征在于,根據(jù)報(bào)文協(xié)議號(hào)建立對(duì)應(yīng)協(xié)議的HASH鏈表,將報(bào)文信息放到對(duì)應(yīng)協(xié)議的HASH鏈表中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將報(bào)文信息放到對(duì)應(yīng)協(xié)議的HASH鏈表中包括: 申請(qǐng)一個(gè)流表; 將報(bào)文信息放到流表中; 將流表掛在對(duì)應(yīng)協(xié)議的HASH鏈表中,掛靠的位置由報(bào)文HASH值決定。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述報(bào)文HASH值為: 使用報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息計(jì)算的報(bào)文HASH值。
4.根據(jù)權(quán)利要求1至2所述的方法,其特征在于,所述報(bào)文信息包括:報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息。
5.—種報(bào)文查找方法,其特征在于,根據(jù)第一報(bào)文協(xié)議號(hào)到對(duì)應(yīng)協(xié)議的HASH鏈表中查找。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述到對(duì)應(yīng)協(xié)議的HASH鏈表中查找包括: 到對(duì)應(yīng)協(xié)議的HASH鏈表中查找與第一報(bào)文HASH值對(duì)應(yīng)的鏈表; 將第一報(bào)文信息與第一報(bào)文HASH值對(duì)應(yīng)的鏈表中存放的各個(gè)流表中的報(bào)文信息一一進(jìn)行比較,如果找到同樣的信息,則查找成功。如果沒有找到同樣的信息,則申請(qǐng)流表,將第一報(bào)文信息放到流表中,將流表掛在對(duì)應(yīng)協(xié)議的HASH鏈表中。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述第一報(bào)文HASH值為: 使用第一報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)計(jì)算的HASH值。
8.根據(jù)權(quán)利要求5至6所述的方法,其特征在于,所述第一報(bào)文信息包括:第一報(bào)文的目的地址、源地址、源端口號(hào)和目的端口號(hào)四元組信息。
【文檔編號(hào)】H04L29/06GK103581007SQ201310516266
【公開日】2014年2月12日 申請(qǐng)日期:2013年10月28日 優(yōu)先權(quán)日:2013年10月28日
【發(fā)明者】李鵬 申請(qǐng)人:漢柏科技有限公司