專(zhuān)利名稱(chēng):快速轉(zhuǎn)發(fā)引擎的流表老化方法、裝置以及交換機(jī)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及ー種在使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)中的流表老化方法、裝置以及使用所述方法的交換機(jī),尤其涉及ー種在訪問(wèn)HASH表形式的流表時(shí)根據(jù)預(yù)定算法實(shí)時(shí)地執(zhí)行流表項(xiàng)老化處理,從而提高報(bào)文轉(zhuǎn)發(fā)速率。
背景技術(shù):
為了在交換機(jī)中將數(shù)據(jù)轉(zhuǎn)發(fā)和操作系統(tǒng)分離以提高系統(tǒng)效率,當(dāng)前在許多交換機(jī)中使用快速轉(zhuǎn)發(fā)引擎??焖俎D(zhuǎn)發(fā)引擎將系統(tǒng)分成控制面和轉(zhuǎn)發(fā)面兩部分??刂泼尕?fù)責(zé)報(bào)文流的轉(zhuǎn)發(fā)規(guī)則的學(xué)習(xí),以及流表項(xiàng)的建立;轉(zhuǎn)發(fā)面通過(guò)從待轉(zhuǎn)發(fā)的報(bào)文中提取5元組信息(源IP、目的IP、源端ロ、目的端ロ、協(xié)議號(hào)),并在流表中匹配出相應(yīng)的具有轉(zhuǎn)發(fā)重組信息的流表項(xiàng),從而根據(jù)所述轉(zhuǎn)發(fā)重組信息直接重組、轉(zhuǎn)發(fā)報(bào)文。 通常,以Hash表的形式維護(hù)流表。圖I不出一般Hash表的結(jié)構(gòu)。以姆個(gè)流表項(xiàng)的五元組信息作為Hash Key進(jìn)行Hash計(jì)算得到Hash值。當(dāng)插入流表項(xiàng)時(shí),根據(jù)計(jì)算得到的Hash值將流表項(xiàng)放入相應(yīng)的Hash桶;當(dāng)匹配流表項(xiàng)時(shí),根據(jù)計(jì)算得到的Hash值匹配到相應(yīng)的Hash桶,然后根據(jù)五元組信息找到匹配的流表項(xiàng)。由于Hash表中可發(fā)生多個(gè)表項(xiàng)Hash到同一個(gè)Hash桶的情況,因此,在最壞的情況下(全部流表項(xiàng)被置入同一個(gè)Hash桶),以五元組信息在Hash流表項(xiàng)匹配的時(shí)間可達(dá)到遍歷全部流表項(xiàng)個(gè)數(shù)的時(shí)間。但是,通常對(duì)Hash桶的桶深(即表項(xiàng)的個(gè)數(shù))進(jìn)行限制,并且動(dòng)態(tài)地設(shè)置流表項(xiàng),保證Hash匹配的高效性。此外,也需要對(duì)過(guò)期的流表項(xiàng)及時(shí)進(jìn)行清理。目前通常使用硬件定時(shí)器,定時(shí)觸發(fā)老化處理信號(hào)來(lái)執(zhí)行流表老化操作。在流表老化操作中,需要遍歷所有的流表項(xiàng),較為耗吋。此外,如果流表老化周期設(shè)置得短,則會(huì)頻繁地出發(fā)定時(shí)器中斷,消耗系統(tǒng)資源
發(fā)明內(nèi)容
本發(fā)明的目的在于提供ー種在使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)中的流表老化方法、裝置以及使用所述方法的交換機(jī),通過(guò)在對(duì)HASH表形式的流表進(jìn)行查詢(xún)、插入等操作時(shí),根據(jù)預(yù)定算法實(shí)時(shí)地執(zhí)行流表項(xiàng)老化處理,從而提高流表數(shù)據(jù)的有效性,提高報(bào)文轉(zhuǎn)發(fā)速率。本發(fā)明的另一目的在于提供ー種在使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)中的流表老化方法、裝置以及使用所述方法的交換機(jī),通過(guò)在對(duì)HASH表形式的流表進(jìn)行查詢(xún)、插入等操作吋,根據(jù)預(yù)定算法實(shí)時(shí)地執(zhí)行流表項(xiàng)老化處理,控制流表的Hash桶的桶深,從而提高報(bào)文轉(zhuǎn)發(fā)速率。根據(jù)本發(fā)明的一方面,提供ー種快速轉(zhuǎn)發(fā)引擎的流表老化方法,包括每當(dāng)使用五元組信息在以Hash表形式的流表中Hash匹配到已包括至少ー個(gè)流表項(xiàng)的Hash桶時(shí),根據(jù)匹配的Hash桶中的每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)。當(dāng)使用五元組信息在所述流表中查詢(xún)流表項(xiàng)時(shí)可進(jìn)行所述Hash匹配。當(dāng)需要插入新創(chuàng)建的流表項(xiàng)時(shí),可使用包含在流表項(xiàng)中的五元組信息在所述流表中進(jìn)行所述Hash匹配。在刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)以后,可將新創(chuàng)建的流表項(xiàng)插入到匹配的Hash桶的末端。如果在流表中Hash匹配到的Hash桶沒(méi)有可刪除的流表項(xiàng),并且所述Hash桶已達(dá)到最大桶深,則可刪除所述Hash桶中的首個(gè)流表項(xiàng),再將新創(chuàng)建的流表項(xiàng)插入到所述Hash桶的末端。所述的流表老化方法可還包括每隔預(yù)定的定時(shí)老化周期,遍歷所述流表,根據(jù)每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)所述預(yù)定時(shí)間段的流表項(xiàng)。根據(jù)本發(fā)明的另一方面,提供ー種快速轉(zhuǎn)發(fā)引擎的流表老化裝置,包括流表老化模塊,每當(dāng)使用五元組信息在所述流表中Hash匹配到已包括至少ー個(gè)流表項(xiàng)的Hash桶吋,根據(jù)匹配的Hash桶中的每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)。 流表老化模塊可在使用五元組信息在所述流表中查詢(xún)流表項(xiàng)時(shí)進(jìn)行所述Hash匹配。流表老化模塊可在需要插入新創(chuàng)建的流表項(xiàng)時(shí),使用包含在流表項(xiàng)中的五元組信息在所述流表中進(jìn)行所述Hash匹配。流表老化模塊可在刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)以后,將新創(chuàng)建的流表項(xiàng)插入到匹配的Hash桶的末端。如果在流表中Hash匹配到的Hash桶沒(méi)有可刪除的流表項(xiàng),并且所述Hash桶已達(dá)到最大桶深,則流表老化模塊可刪除所述Hash桶中的首個(gè)流表項(xiàng),再將新創(chuàng)建的流表項(xiàng)插入到所述Hash桶的末端。每隔預(yù)定的定時(shí)老化周期,流表老化模塊遍歷所述流表,根據(jù)每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)所述預(yù)定時(shí)間段的流表項(xiàng)。根據(jù)本發(fā)明的另一方面,提供ー種包括快速轉(zhuǎn)發(fā)引擎的交換機(jī),包括流表老化模塊,每當(dāng)使用五元組信息在以Hash表形式的快速轉(zhuǎn)發(fā)引擎的流表中Hash匹配到已包括至少ー個(gè)流表項(xiàng)的Hash桶時(shí),根據(jù)匹配的Hash桶中的每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)。流表老化模塊可在使用五元組信息在所述流表中查詢(xún)流表項(xiàng)時(shí)進(jìn)行所述Hash匹配。流表老化模塊在需要插入新創(chuàng)建的流表項(xiàng)時(shí),使用包含在流表項(xiàng)中的五元組信息在所述流表中進(jìn)行所述Hash匹配。流表老化模塊可在刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)以后,將新創(chuàng)建的流表項(xiàng)插入到匹配的Hash桶的末端。
通過(guò)下面結(jié)合附圖進(jìn)行的描述,本發(fā)明的上述和其他目的和特點(diǎn)將變得更加清楚,其中圖I示出Hash表的通常結(jié)構(gòu);圖2是示出根據(jù)本發(fā)明的示例性實(shí)施例的流表老化方法的處理的示意圖3是示出根據(jù)本發(fā)明的另ー示例性實(shí)施例的流表老化方法的處理的示意圖;圖4是示出根據(jù)本發(fā)明的另ー示例性實(shí)施例的流表老化方法的處理的示意圖。
具體實(shí)施例方式以下,參照附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施例。本發(fā)明的用于快速轉(zhuǎn)發(fā)引擎的流表老化方法可以以在交換機(jī)中安裝的軟件模塊、硬件或固件或三者的任何組合來(lái)實(shí)現(xiàn)。在使用快速轉(zhuǎn)發(fā)引擎的交換機(jī)中,當(dāng)為首次進(jìn)行轉(zhuǎn)發(fā)處理的數(shù)據(jù)流創(chuàng)建流表項(xiàng),或者當(dāng)在報(bào)文轉(zhuǎn)發(fā)處理中使用待轉(zhuǎn)發(fā)的報(bào)文中的信息查詢(xún)匹配的流表項(xiàng)時(shí),需要根據(jù)作為Hash Key的五元組信息進(jìn)行Hash計(jì)算,以Hash匹配到相應(yīng)的Hash桶。本發(fā)明的流表老化方法在使用五元組信息Hash匹配到已具有至少ー個(gè)流表項(xiàng)的Hash桶時(shí),執(zhí)行流表老化處理。圖2-圖3分別示出根據(jù)本發(fā)明的兩個(gè)示例性實(shí)施例的流表老化處理的示意圖。此外,本發(fā)明也支持周期性地定時(shí)執(zhí)行老化處理,以刪除長(zhǎng)期不曾匹配到的Hash桶中已過(guò)期的流表項(xiàng)。圖4示出根據(jù)本發(fā)明的又一實(shí)施例進(jìn)行流表老化處理的示意圖??蓪D2-圖4示出的實(shí)施例進(jìn)行任意結(jié)合,以根據(jù)不同的需要執(zhí)行流表老化處理,達(dá)到更有效地管理流表的目的。圖2是示出根據(jù)本發(fā)明的示例性實(shí)施例的流表老化方法的處理的示意圖。每當(dāng)使用五元組信息在以Hash表形式的流表中Hash匹配到已包括至少ー個(gè)流表項(xiàng)的Hash桶時(shí),根據(jù)匹配的Hash桶中的姆個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)。參照?qǐng)D2,交換機(jī)需要插入新創(chuàng)建的流表項(xiàng)new_X。交換機(jī)通過(guò)使用new_X中的五元組匹配到圖2上端示出的流表中中間的Hash桶,匹配到的Hash桶已具有3個(gè)流表項(xiàng)。此時(shí),在插入new_X之前,先對(duì)匹配到的Hash桶中的已有流表項(xiàng)(即流表項(xiàng)old、old和new)逐個(gè)執(zhí)行老化處理,即根據(jù)各流表項(xiàng)的創(chuàng)建時(shí)間戳計(jì)算已創(chuàng)建時(shí)間,將創(chuàng)建時(shí)間已超過(guò)預(yù)定時(shí)間段(如10分鐘)的流表項(xiàng)(即兩個(gè)流表項(xiàng)old)刪除。在圖2上端示出的流表中,匹配的Hash桶中的前兩個(gè)流表項(xiàng)已超過(guò)預(yù)定時(shí)間段,因此將這兩個(gè)流表項(xiàng)從流表中刪除。此后,如圖2下端示出,將新創(chuàng)建的new_X插入到匹配的Hash桶的末端。圖2示出的是在插入新創(chuàng)建的流表項(xiàng)時(shí),先執(zhí)行老化操作,再插入新的流表項(xiàng)的處理。根據(jù)本發(fā)明的另ー示例性實(shí)施例,當(dāng)使用五元組信息匹配到已有流表項(xiàng)所在的Hash桶時(shí),交換機(jī)對(duì)匹配的Hash桶中的各已有流表項(xiàng)也執(zhí)行上述老化操作,而不執(zhí)行任何插入流表項(xiàng)操作。如上所述,每當(dāng)交換機(jī)訪問(wèn)流表吋,可實(shí)時(shí)地對(duì)使用五元組匹配到的Hash桶中的流表項(xiàng)執(zhí)行老化操作,能夠提高流表的數(shù)據(jù)有效性。通常,為了控制流表訪問(wèn)時(shí)間,都會(huì)對(duì)Hash流表設(shè)置最大桶深,也就是ー個(gè)Hash桶中可包含的流表項(xiàng)的最大個(gè)數(shù)。圖3示出在當(dāng)插入新創(chuàng)建的流表項(xiàng)時(shí),使用流表項(xiàng)的五元組匹配到的Hash桶已達(dá)到最大桶深時(shí)的處理。此時(shí),交換機(jī)首先執(zhí)行如在圖2中示出的實(shí)施例中進(jìn)行的處理,對(duì)匹配到的Hash桶中的流表項(xiàng)newl、new2、new3和new4逐個(gè)執(zhí)行以下處理根據(jù)各流表項(xiàng)的創(chuàng)建時(shí)間戳計(jì)算已創(chuàng)建時(shí)間,將創(chuàng)建時(shí)間已超過(guò)預(yù)定時(shí)間段(如10分鐘)的流表項(xiàng)刪除。在這里,假設(shè)匹配到的Hash桶中的流表項(xiàng)neWfneW4的創(chuàng)建時(shí)間都沒(méi)有超過(guò)預(yù)定時(shí)間段,也就是說(shuō),在匹配到的Hash桶中沒(méi)有可刪除的流表項(xiàng)。此時(shí),根據(jù)本發(fā)明的示例性實(shí)施例,如圖3中下端示出,交換機(jī)將匹配到的Hash桶中的首個(gè)流表項(xiàng)(即newl)刪除,然后將新創(chuàng)建的流表項(xiàng)new5插入到匹配到的Hash桶的末端。如上所述,每當(dāng)交換機(jī)訪問(wèn)流表吋,可實(shí)時(shí)地對(duì)使用五元組匹配到的Hash桶中的流表項(xiàng)執(zhí)行老化操作,并且控制Hash桶的桶深,確保流表查詢(xún)的時(shí)間,提高報(bào)文轉(zhuǎn)發(fā)速率。圖4示出每隔預(yù)定的定時(shí)老化周期,對(duì)整個(gè)流表執(zhí)行老化操作的處理。此時(shí),交換機(jī)遍歷流表,根據(jù)每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)所述預(yù)定時(shí)間段的流表項(xiàng)??蓪⑺龆〞r(shí)老化周期設(shè)置得較長(zhǎng)。在圖4中示出的流表中,標(biāo)注為old的4個(gè)流表項(xiàng)都是創(chuàng)建時(shí)間超過(guò)所述預(yù)定時(shí)間段的流表項(xiàng),因此,交換機(jī)將所述4個(gè)流表項(xiàng)從Hash流表刪除。 當(dāng)與圖2和圖3中示出的流表老化方法結(jié)合吋,上述的定時(shí)執(zhí)行流表老化處理可將流表中長(zhǎng)期未被匹配到的Hash桶中的過(guò)期流表項(xiàng)清除。與傳統(tǒng)的僅進(jìn)行定時(shí)老化處理的方法相比,可以較長(zhǎng)的老化周期執(zhí)行上述的定時(shí)老化處理,由此耗費(fèi)相對(duì)少的時(shí)間和較少的系統(tǒng)資源。本發(fā)明還提供一種執(zhí)行本發(fā)明的流表老化方法的交換機(jī)。根據(jù)本發(fā)明的流表老化方法和使用所述方法的交換機(jī),可在訪問(wèn)流表時(shí)實(shí)時(shí)地執(zhí)行匹配的Hash桶的流表項(xiàng)的老化處理,較好地保持流表數(shù)據(jù)的有效性。此外,通過(guò)在老化處理中控制Hash桶的桶深,能夠確保報(bào)文轉(zhuǎn)發(fā)的速率。同吋,結(jié)合定時(shí)執(zhí)行流表老化處理,能夠定期全面地執(zhí)行整個(gè)流表的老化處理。盡管已參照優(yōu)選實(shí)施例表示和描述了本發(fā)明,但本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫離由權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)這些實(shí)施例進(jìn)行各種修改和變換。
權(quán)利要求
1.ー種快速轉(zhuǎn)發(fā)引擎的流表老化方法,包括每當(dāng)使用五元組信息在以Hash表形式的流表中Hash匹配到已包括至少ー個(gè)流表項(xiàng)的Hash桶時(shí),根據(jù)匹配的Hash桶中的每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)。
2.如權(quán)利要求I所述的流表老化方法,其中,當(dāng)使用五元組信息在所述流表中查詢(xún)流表項(xiàng)時(shí)進(jìn)行所述Hash匹配。
3.如權(quán)利要求I所述的流表老化方法,其中,當(dāng)需要插入新創(chuàng)建的流表項(xiàng)時(shí),使用包含在流表項(xiàng)中的五元組信息在所述流表中進(jìn)行所述Hash匹配。
4.如權(quán)利要求3所述的流表老化方法,其中,在刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)以后,將新創(chuàng)建的流表項(xiàng)插入到匹配的Hash桶的末端。
5.如權(quán)利要求3所述的流表老化方法,其中,如果在流表中Hash匹配到的Hash桶沒(méi)有可刪除的流表項(xiàng),并且所述Hash桶已達(dá)到最大桶深,則刪除所述Hash桶中的首個(gè)流表項(xiàng),再將新創(chuàng)建的流表項(xiàng)插入到所述Hash桶的末端。
6.如權(quán)利要求1-5中的任一項(xiàng)所述的流表老化方法,還包括每隔預(yù)定的定時(shí)老化周期,遍歷所述流表,根據(jù)每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)所述預(yù)定時(shí)間段的流表項(xiàng)。
7.ー種快速轉(zhuǎn)發(fā)引擎的流表老化裝置,包括流表老化模塊,每當(dāng)使用五元組信息在所述流表中Hash匹配到已包括至少ー個(gè)流表項(xiàng)的Hash桶時(shí),根據(jù)匹配的Hash桶中的姆個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)。
8.如權(quán)利要求7所述的流表老化裝置,其中,流表老化模塊在使用五元組信息在所述流表中查詢(xún)流表項(xiàng)時(shí)進(jìn)行所述Hash匹配。
9.如權(quán)利要求7所述的流表老化裝置,其中,流表老化模塊在需要插入新創(chuàng)建的流表項(xiàng)時(shí),使用包含在流表項(xiàng)中的五元組信息在所述流表中進(jìn)行所述Hash匹配。
10.如權(quán)利要求9所述的流表老化裝置,其中,流表老化模塊在刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)以后,將新創(chuàng)建的流表項(xiàng)插入到匹配的Hash桶的末端。
11.如權(quán)利要求9所述的流表老化裝置,其中,如果在流表中Hash匹配到的Hash桶沒(méi)有可刪除的流表項(xiàng),并且所述Hash桶已達(dá)到最大桶深,則流表老化模塊刪除所述Hash桶中的首個(gè)流表項(xiàng),再將新創(chuàng)建的流表項(xiàng)插入到所述Hash桶的末端。
12.如權(quán)利要求7-11中的任一項(xiàng)所述的流表老化裝置,其中,每隔預(yù)定的定時(shí)老化周期,流表老化模塊遍歷所述流表,根據(jù)每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)所述預(yù)定時(shí)間段的流表項(xiàng)。
13.—種包括快速轉(zhuǎn)發(fā)引擎的交換機(jī),包括流表老化模塊,每當(dāng)使用五元組信息在以Hash表形式的快速轉(zhuǎn)發(fā)引擎的流表中Hash匹配到已包括至少ー個(gè)流表項(xiàng)的Hash桶時(shí),根據(jù)匹配的Hash桶中的每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)。
14.如權(quán)利要求13所述的交換機(jī),其中,流表老化模塊在使用五元組信息在所述流表中查詢(xún)流表項(xiàng)時(shí)進(jìn)行所述Hash匹配。
15.如權(quán)利要求13所述的交換機(jī),其中,流表老化模塊在需要插入新創(chuàng)建的流表項(xiàng)時(shí),使用包含在流表項(xiàng)中的五元組信息在所述流表中進(jìn)行所述Hash匹配。
16.如權(quán)利要求15所述的交換機(jī),其中,流表老化模塊在刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)以后,將新創(chuàng)建的流表項(xiàng)插入到匹配的Hash桶的末端。
全文摘要
提供一種快速轉(zhuǎn)發(fā)引擎的流表老化方法、裝置以及交換機(jī)。所述快速轉(zhuǎn)發(fā)引擎的流表老化方法包括每當(dāng)使用五元組信息在以Hash表形式的流表中Hash匹配到已包括至少一個(gè)流表項(xiàng)的Hash桶時(shí),根據(jù)匹配的Hash桶中的每個(gè)流表項(xiàng)的創(chuàng)建時(shí)間戳,刪除創(chuàng)建時(shí)間超過(guò)預(yù)定時(shí)間段的流表項(xiàng)。
文檔編號(hào)H04L12/56GK102780641SQ20121029578
公開(kāi)日2012年11月14日 申請(qǐng)日期2012年8月17日 優(yōu)先權(quán)日2012年8月17日
發(fā)明者范成龍, 趙晗, 路濤 申請(qǐng)人:北京傲天動(dòng)聯(lián)技術(shù)有限公司