改善低延時高吞吐量網(wǎng)絡(luò)中雙向訪問控制列表的硬件利用率的制作方法
【專利摘要】用于在網(wǎng)絡(luò)節(jié)點(diǎn)中改善雙向訪問控制列表(ACL)的硬件利用率的系統(tǒng)中的方法,包括:從在網(wǎng)絡(luò)節(jié)點(diǎn)處接收到的消息的可變數(shù)據(jù)創(chuàng)建第一搜索關(guān)鍵字(304);從該消息的恒定數(shù)據(jù)創(chuàng)建第二搜索關(guān)鍵字(310);基于第一搜索關(guān)鍵字來識別第一數(shù)據(jù)庫中的第一數(shù)據(jù)庫條目(306);以及基于第二搜索關(guān)鍵字來識別第二數(shù)據(jù)庫中的第二數(shù)據(jù)庫條目(312)。該方法還包括:當(dāng)?shù)谝粩?shù)據(jù)庫條目與第二數(shù)據(jù)庫條目之間的相關(guān)性被識別出來(316)時,執(zhí)行與第一數(shù)據(jù)庫條目相關(guān)聯(lián)的動作(324)。消息的可變數(shù)據(jù)是值由網(wǎng)絡(luò)節(jié)點(diǎn)中的消息轉(zhuǎn)發(fā)引擎的轉(zhuǎn)發(fā)邏輯改變的數(shù)據(jù),消息的恒定數(shù)據(jù)是值不由消息轉(zhuǎn)發(fā)引擎的轉(zhuǎn)發(fā)邏輯改變的數(shù)據(jù)。第一搜索關(guān)鍵字可以在轉(zhuǎn)發(fā)消息之前或之后被創(chuàng)建(304)。在進(jìn)一步實(shí)施例中,當(dāng)?shù)谝粩?shù)據(jù)庫條目的偏移與第二數(shù)據(jù)庫條目的偏移相同時,相關(guān)性被識別出來。雙向ACL可以通過消除入口ACL數(shù)據(jù)庫和出口ACL數(shù)據(jù)庫中的恒定字段的重復(fù),以較小的硬件占位面積或軟件搜索時間的形式實(shí)現(xiàn)顯著的開銷降低。
【專利說明】改善低延時高吞吐量網(wǎng)絡(luò)中雙向訪問控制列表的硬件利用率
【技術(shù)領(lǐng)域】
[0001]本公開總地涉及計算機(jī)網(wǎng)絡(luò)領(lǐng)域,更具體地涉及用于改善低延時高吞吐量網(wǎng)絡(luò)中雙向訪問控制列表的硬件利用率的系統(tǒng)和方法。
【背景技術(shù)】
[0002]計算機(jī)和計算機(jī)網(wǎng)絡(luò)已經(jīng)成為當(dāng)今社會中日常生活的必不可少的一部分。大部分組織依賴于計算機(jī)網(wǎng)絡(luò)來共享資源和信息,從而推進(jìn)組織目的。一般的計算機(jī)網(wǎng)絡(luò)可以包括終端端點(diǎn)(例如,膝上型計算機(jī)、個人計算機(jī)、智能手機(jī)等)和網(wǎng)絡(luò)元件(諸如,路由器、交換機(jī)、網(wǎng)關(guān)、服務(wù)器等)。
[0003]可以采用各種安全機(jī)制來保護(hù)網(wǎng)絡(luò)及其各種部件。訪問控制列表(ACL)是為了安全目的和內(nèi)容感知聯(lián)網(wǎng)而在現(xiàn)代網(wǎng)絡(luò)中廣泛使用的常見網(wǎng)絡(luò)安全機(jī)制。ACL允許網(wǎng)絡(luò)策略在網(wǎng)絡(luò)元件的傳入(incoming)接口接收流量時被應(yīng)用到入口上,并且在網(wǎng)絡(luò)元件的傳出(outgoing)接口發(fā)送流量時被應(yīng)用到出口上。訪問網(wǎng)絡(luò)或者網(wǎng)絡(luò)部分的基本安全等級可以通過使用ACL將策略(或者ACL規(guī)則)應(yīng)用到網(wǎng)絡(luò)流量來實(shí)現(xiàn)。然而,隨著網(wǎng)絡(luò)規(guī)模增大,通常需要更多的策略,并且這可能受到網(wǎng)絡(luò)的硬件資源的約束。因此,在不犧牲網(wǎng)絡(luò)性能或安全的情況下,增大使用ACL的網(wǎng)絡(luò)規(guī)模的能力向部件制造商和網(wǎng)絡(luò)運(yùn)營商等提出了巨大挑戰(zhàn)。
【專利附圖】
【附圖說明】
[0004]為提供對本公開及其特征和優(yōu)點(diǎn)的更加完整的理解,結(jié)合附圖參照下面的描述,其中,相似的參考標(biāo)號表不相似的部分,其中:
[0005]圖1是示出根據(jù)本公開實(shí)施例的用于改善低延時高吞吐量網(wǎng)絡(luò)中雙向訪問控制列表(ACL)的硬件利用率的示例系統(tǒng)的部件的簡化框圖;
[0006]圖2是示出圖1的系統(tǒng)的示例部件的附加細(xì)節(jié)的簡化框圖;
[0007]圖3是示出系統(tǒng)的示例實(shí)施例中的可以與入口流量流(traffic flow)相關(guān)聯(lián)的示例操作步驟的簡化流程圖;以及
[0008]圖4是示出系統(tǒng)的示例實(shí)施例中的可以與出口流量流相關(guān)聯(lián)的示例操作步驟的簡化流程圖。
【具體實(shí)施方式】
[0009]SM
[0010]一個示例實(shí)施例中提供了一種方法,該方法包括:從在網(wǎng)絡(luò)環(huán)境中接收到的消息的一個或多個可變數(shù)據(jù)創(chuàng)建第一搜索關(guān)鍵字,并且從該消息的一個或多個恒定數(shù)據(jù)創(chuàng)建第二搜索關(guān)鍵字。該方法還包括:基于第一搜索關(guān)鍵字來識別第一數(shù)據(jù)庫中的第一數(shù)據(jù)庫條目,并且基于第二搜索關(guān)鍵字來識別第二數(shù)據(jù)庫中的第二數(shù)據(jù)庫條目。該方法還包括:當(dāng)?shù)谝粩?shù)據(jù)庫條目與第二數(shù)據(jù)庫條目之間的相關(guān)性被識別出來時,執(zhí)行與第一數(shù)據(jù)庫條目相關(guān)聯(lián)的動作。在具體實(shí)施例中,當(dāng)消息被轉(zhuǎn)發(fā)時,一個或多個可變數(shù)據(jù)被修改,而一個或多個恒定數(shù)據(jù)不被修改。在一些實(shí)施例中,在轉(zhuǎn)發(fā)消息之前創(chuàng)建第一搜索關(guān)鍵字。在其他實(shí)施例中,在轉(zhuǎn)發(fā)消息之后創(chuàng)建第一搜索關(guān)鍵字。在進(jìn)一步的實(shí)施例中,當(dāng)?shù)谝粩?shù)據(jù)庫中的第一數(shù)據(jù)庫條目的偏移與第二數(shù)據(jù)庫中的第二數(shù)據(jù)庫條目的偏移相同時,相關(guān)性被識別出來。第一數(shù)據(jù)庫條目的附加特征包括有效字段和可變字段,并且當(dāng)?shù)谝粩?shù)據(jù)庫條目的有效字段未被設(shè)置時,第一數(shù)據(jù)庫條目未被識別出來。
[0011]示例實(shí)施例
[0012]圖1是用于改善網(wǎng)絡(luò)環(huán)境中雙向訪問控制列表(ACL)的硬件利用率的系統(tǒng)10的示例實(shí)施方式的簡化框圖。示例性網(wǎng)絡(luò)環(huán)境可以包括低延時、高吞吐量網(wǎng)絡(luò)11,網(wǎng)絡(luò)11包括上游節(jié)點(diǎn)12、下游節(jié)點(diǎn)14、以及ACL網(wǎng)絡(luò)節(jié)點(diǎn)20。ACL網(wǎng)絡(luò)節(jié)點(diǎn)20可以被配置為在節(jié)點(diǎn)12和14之間分別進(jìn)行接收消息、轉(zhuǎn)發(fā)消息、和發(fā)送消息。例如,ACL網(wǎng)絡(luò)元件20可以從上游節(jié)點(diǎn)12接收傳入消息(incoming message) 15,基于所使用的特定協(xié)議將轉(zhuǎn)發(fā)技術(shù)應(yīng)用于該消息,并且將相應(yīng)的傳出消息17發(fā)送到下游節(jié)點(diǎn)14。ACL網(wǎng)絡(luò)元件20可以包括傳入接口 21、傳出接口 23、消息轉(zhuǎn)發(fā)引擎25、處理器27、以及存儲器元件29。此外,ACL網(wǎng)絡(luò)元件20可以包括與應(yīng)用ACL策略(或規(guī)則)相關(guān)聯(lián)的其他部件,例如,入口 ACL模塊22、出口ACL模塊24、入口可變ACL數(shù)據(jù)庫30、恒定ACL數(shù)據(jù)庫40、以及出口可變ACL數(shù)據(jù)庫50。另外,ACL動作(ACL act1ns) 60可以被提供,并被與入口可變ACL數(shù)據(jù)庫30和出口可變ACL數(shù)據(jù)庫50中的ACL規(guī)則相關(guān)聯(lián)。ACL動作60包括準(zhǔn)許、拒絕、或以其他方式適當(dāng)?shù)乜刂凭W(wǎng)絡(luò)節(jié)點(diǎn)20上的網(wǎng)絡(luò)流量(即,消息),這可以通過使用訪問列表命令來實(shí)現(xiàn)。
[0013]可以采用任意的合適連接(有線或無線)通過一個或多個接口(例如,傳入接口21、傳出接口 23等)將圖1的元件相互耦合,這為電子通信提供了可行的路徑。另外,可以基于特定的配置需要將這些元件中的任意一個或多個進(jìn)行組合或者將其從架構(gòu)中移除。
[0014]對于本公開的各種實(shí)施例,本文使用了某些技術(shù)。本文所使用的術(shù)語“數(shù)據(jù)”指代任意類型的二進(jìn)制、數(shù)字、語音、視頻、文本、或腳本數(shù)據(jù),或者任意類型的源代碼或目標(biāo)代碼,或者可以從電子設(shè)備(例如,節(jié)點(diǎn))和/或網(wǎng)絡(luò)中的一點(diǎn)傳送到另一點(diǎn)的任意適當(dāng)?shù)母袷降娜我馄渌线m的信息。本文所使用的術(shù)語“消息”旨在包括根據(jù)本公開的使用任意合適的協(xié)議被格式化以供在分組交換網(wǎng)絡(luò)環(huán)境中進(jìn)行傳輸?shù)臄?shù)據(jù)。例如,根據(jù)可以被實(shí)現(xiàn)的特定通信協(xié)議,消息可以包括幀、頭部、分組或數(shù)據(jù)報、分段、應(yīng)用數(shù)據(jù)等。
[0015]出于示出系統(tǒng)10的操作方面的目的,很重要的是理解可以在網(wǎng)絡(luò)中行進(jìn)的通信??梢詫⑾旅娴幕拘畔⒖醋鞅竟_可以被正確解釋的基礎(chǔ)。僅出于解釋的目的來提供這樣的信息,因此,這樣的信息不應(yīng)該以限制本公開的廣義范圍及其潛在應(yīng)用的任何方式進(jìn)行解釋。
[0016]訪問控制列表(ACL)被廣泛應(yīng)用于現(xiàn)代網(wǎng)絡(luò)中,用于安全目的和內(nèi)容感知聯(lián)網(wǎng)。ACL通常被實(shí)現(xiàn)在至少具有互聯(lián)網(wǎng)協(xié)議族(TCP/IP)的層3能力的網(wǎng)絡(luò)元件中,以提供流量過濾。當(dāng)網(wǎng)絡(luò)流量在傳入接口上被接收時網(wǎng)絡(luò)策略可以被應(yīng)用在入口上和/或當(dāng)網(wǎng)絡(luò)流量在傳出接口上被發(fā)送時網(wǎng)絡(luò)策略可以被應(yīng)用在出口上。更具體地,網(wǎng)絡(luò)策略可以被配置為用來控制從網(wǎng)絡(luò)元件(例如,服務(wù)器、路由器、交換機(jī)等)流入或流出的網(wǎng)絡(luò)流量流的ACL的規(guī)則。例如,這些規(guī)則可以被應(yīng)用到網(wǎng)絡(luò)元件的端口號,以阻止某些流量進(jìn)入或退出網(wǎng)絡(luò),阻止某些網(wǎng)絡(luò)流量被轉(zhuǎn)發(fā)到網(wǎng)絡(luò)的各個部分,或者允許某些流量訪問網(wǎng)絡(luò)或其部分。
[0017]一般,雙向ACL包括入口 ACL規(guī)則集和出口 ACL規(guī)則集兩個獨(dú)立的ACL規(guī)則集。不同的ACL規(guī)則集通常被存儲于不同的數(shù)據(jù)庫中。入口 ACL數(shù)據(jù)庫可以被用于捕捉與一個或多個入口 ACL規(guī)則相匹配的傳入消息幀。相反,出口 ACL數(shù)據(jù)庫可以被用于捕捉與一個或多個出口 ACL規(guī)則相匹配的傳出消息幀。在硬件實(shí)施方式中,兩個獨(dú)立的數(shù)據(jù)庫被用來允許對每個消息遍歷這些數(shù)據(jù)庫進(jìn)行兩次搜索(即,入口 ACL數(shù)據(jù)庫的一次搜索和出口 ACL數(shù)據(jù)庫的一次搜索)。
[0018]一般ACL數(shù)據(jù)庫中的每個條目表示ACL規(guī)則,并且包括用于匹配被包含在正被評估的當(dāng)前消息中的信息的字段。消息信息可以具有不同的屬性,例如,在轉(zhuǎn)發(fā)之前或之后都不改變的恒定數(shù)據(jù)和在轉(zhuǎn)發(fā)之前或之后可以改變的可變數(shù)據(jù)。舉例來說,恒定數(shù)據(jù)可以包括較高層字段(例如,傳輸層或?qū)?),這些較高層字段一般不會被層2或?qū)?網(wǎng)絡(luò)元件(例如,層2交換機(jī)、多層交換機(jī)、路由器等)重寫??勺償?shù)據(jù)可以包括較低層字段(例如,層2字段或可能是層3字段)。當(dāng)網(wǎng)絡(luò)元件(例如,路由器或多層交換機(jī))將從具有一個廣播域的虛擬局域網(wǎng)(VLAN)接收到的消息路由到具有另一廣播域的不同VLAN時,可變數(shù)據(jù)的示例可以是廣播域。如本文所使用的,“轉(zhuǎn)發(fā)”消息旨在指代在將消息發(fā)送、傳輸、或以其他方式傳送到另一網(wǎng)絡(luò)節(jié)點(diǎn)之前,由網(wǎng)絡(luò)元件對該消息進(jìn)行橋接或路由(例如,向該消息提供新的頭部、幀、網(wǎng)絡(luò)地址等)。另外,“轉(zhuǎn)發(fā)”還可以表示消息已被提供給網(wǎng)絡(luò)元件的傳出接
□O
[0019]在傳統(tǒng)的雙向ACL實(shí)施方式中,ACL規(guī)則包含可以被歸類為恒定或可變的字段。具體地,入口 ACL數(shù)據(jù)庫中的每個條目包括入口可變字段和恒定字段二者,而出口 ACL數(shù)據(jù)庫中的每個條目包括出口可變字段和恒定字段二者。因此,入口 ACL數(shù)據(jù)庫和出口 ACL數(shù)據(jù)庫中的恒定字段可以是重復(fù)的。
[0020]通常針對每個消息執(zhí)行兩次搜索。對于傳入消息,可以利用從傳入消息獲取的包含可變搜索關(guān)鍵字字段和恒定搜索關(guān)鍵字字段的入口搜索關(guān)鍵字來對數(shù)據(jù)庫進(jìn)行搜索,從而確定入口 ACL規(guī)則是否可用。在傳入消息已被轉(zhuǎn)發(fā)之后,可以利用從相應(yīng)的轉(zhuǎn)發(fā)(或傳出)消息獲取的包含可變搜索關(guān)鍵字字段和恒定搜索關(guān)鍵字字段的出口搜索關(guān)鍵字來對出口 ACL數(shù)據(jù)庫進(jìn)行搜索,從而確定出口 ACL規(guī)則是否可用。需要兩次獨(dú)立的搜索,因?yàn)槿肟谒阉麝P(guān)鍵字和出口搜索關(guān)鍵字可能基于消息的可變數(shù)據(jù)在轉(zhuǎn)發(fā)后改變。
[0021]入口 ACL數(shù)據(jù)庫和出口 ACL數(shù)據(jù)庫中的恒定字段的重復(fù)、以及這些重復(fù)的恒定字段上的多次搜索會抑制網(wǎng)絡(luò)的網(wǎng)絡(luò)規(guī)模增大。隨著網(wǎng)絡(luò)規(guī)模擴(kuò)縮,可能需要更多的網(wǎng)絡(luò)策略,這會導(dǎo)致更大的ACL數(shù)據(jù)庫。盡管可能期望ACL數(shù)據(jù)庫的增長(例如,從而提供網(wǎng)絡(luò)安全并且允許網(wǎng)絡(luò)規(guī)模增大),但是這樣的ACL擴(kuò)張可能受到硬件約束的限制,尤其是對于基于硬件的ACL而言。因此,最大化硬件資源的利用率以實(shí)現(xiàn)雙向ACL中的入口 ACL規(guī)則和出口 ACL規(guī)則的最大總數(shù)是很重要的。
[0022]然而,最大化硬件利用率可能會影響網(wǎng)絡(luò)的延時和吞吐量。延時指的是每個消息的平均處理延遲,吞吐量指的是每時間段所處理的消息的數(shù)目。在低延時高吞吐量網(wǎng)絡(luò)中,并不期望以較高的延時和/或較低的吞吐量為代價來增加硬件利用率以允許更大的雙向ACL0
[0023]類似于基于硬件的ACL,基于軟件的ACL也會抑制網(wǎng)絡(luò)擴(kuò)縮(network scaling)?;谲浖腁CL可能會由于入口 ACL數(shù)據(jù)庫和出口 ACL數(shù)據(jù)庫中的重復(fù)的恒定字段而遭受更多的軟件搜索次數(shù)。因此,為了滿足多種多樣的部署需求集,基于有限數(shù)量的硬件資源,雙向ACL提供最大可能數(shù)目的可編程雙向ACL規(guī)則是很重要的。
[0024]根據(jù)本文所描述的實(shí)施例,系統(tǒng)20可以解決前面提到的與訪問控制列表(ACL)相關(guān)聯(lián)的問題(以及更多問題)。更具體地,系統(tǒng)10的雙向ACL可以通過消除入口 ACL數(shù)據(jù)庫和出口 ACL數(shù)據(jù)庫中的恒定數(shù)據(jù)的重復(fù),以較小的硬件占位面積(footprint)或軟件搜索次數(shù)來實(shí)現(xiàn)顯著的開銷減少。在系統(tǒng)10中,利用三個ACL數(shù)據(jù)庫來實(shí)現(xiàn)雙向ACL,從而使得能夠?qū)θ肟诳勺冏侄?、出口可變字段、和恒定字段進(jìn)行獨(dú)立的搜索。實(shí)現(xiàn)針對恒定字段的獨(dú)立數(shù)據(jù)庫(例如,恒定ACL數(shù)據(jù)庫40)使得能夠使用從消息中的恒定數(shù)據(jù)獲取的搜索關(guān)鍵字針對給定的消息對恒定ACL數(shù)據(jù)庫進(jìn)行單次搜索??梢耘c入口可變ACL數(shù)據(jù)庫和出口可變ACL數(shù)據(jù)庫的搜索結(jié)果共享結(jié)果恒定匹配向量。實(shí)現(xiàn)共享的恒定ACL數(shù)據(jù)庫消除了對恒定字段的重復(fù)存儲和重復(fù)搜索。因此,可以在不影響延時和吞吐量的情況下增大入口ACL規(guī)則和出口 ACL規(guī)則的總數(shù)(可能幾乎翻倍)。而且,通過使用共享的恒定ACL數(shù)據(jù)庫最小化了增加的硬件成本,從而改善了硬件利用率。此外,對于基于軟件的雙向ACL,避免對恒定字段的第二次搜索也可以減少搜索次數(shù)。
[0025]轉(zhuǎn)到圖1的基礎(chǔ)設(shè)施,圖1是系統(tǒng)10的一個示例實(shí)施方式的簡化框圖。網(wǎng)絡(luò)11可以包括互連的通信路徑的用于接收和發(fā)送通過系統(tǒng)10傳播的信息消息的一系列點(diǎn)或節(jié)點(diǎn)。網(wǎng)絡(luò)11在節(jié)點(diǎn)之間提供通信接口(例如,ACL網(wǎng)絡(luò)節(jié)點(diǎn)20的傳入接口 21和傳出接口23)。網(wǎng)絡(luò)11可以是任意的局域網(wǎng)(LAN)、無線局域網(wǎng)(WLAN)、城域網(wǎng)(MAN)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、WAN、虛擬專用網(wǎng)絡(luò)(VPN)、或有助于網(wǎng)絡(luò)環(huán)境中的通信的任意其他合適的架構(gòu)或系統(tǒng)。
[0026]系統(tǒng)10可以被配置為結(jié)合用于在網(wǎng)絡(luò)中發(fā)送和接收消息的任意合適的通信協(xié)議進(jìn)行操作,在該網(wǎng)絡(luò)中,由ACL網(wǎng)絡(luò)節(jié)點(diǎn)20接收的消息可以包括在轉(zhuǎn)發(fā)之后會改變的一些數(shù)據(jù)(即,可變數(shù)據(jù))和在轉(zhuǎn)發(fā)之后保持恒定的一些數(shù)據(jù)(即,恒定數(shù)據(jù))。具體地,系統(tǒng)10可以被配置為容納基于開放系統(tǒng)互連(OSI)模型的任意協(xié)議,該OSI模型可以包括物理層(層I)、數(shù)據(jù)鏈路層(層2)、網(wǎng)絡(luò)層(層3)、傳輸層(層4)、會話層(層5)、表示層(層6)、以及應(yīng)用層(層7)、或它們的任意合適的組合。消息可以包括多個層,其中,較高層被封裝在較低層內(nèi)。如本文所使用的,“分組”指代的是具有網(wǎng)絡(luò)尋址的層3,層3可以封裝層4和更高層。另外,本文所使用的“幀”指代的是具有幀頭和幀腳的層2,層2可以封裝分組。通過示例的方式,在系統(tǒng)10的某些實(shí)施方式中,網(wǎng)絡(luò)11可以實(shí)現(xiàn)用戶數(shù)據(jù)報協(xié)議/互聯(lián)網(wǎng)協(xié)議(UDP/IP)連接或傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)連接,用于網(wǎng)絡(luò)中的消息的電子發(fā)送和接收。
[0027]上游節(jié)點(diǎn)12和下游節(jié)點(diǎn)14可以是網(wǎng)絡(luò)元件,所述網(wǎng)絡(luò)元件包括網(wǎng)絡(luò)家電、服務(wù)器、路由器、交換機(jī)、網(wǎng)關(guān)、網(wǎng)橋、負(fù)載均衡器、處理器、模塊、或能夠操作以在網(wǎng)絡(luò)環(huán)境中交換信息(例如,以消息的形式)的任意其他合適的設(shè)備、部件、元件、或?qū)ο?。網(wǎng)絡(luò)元件可以包括有助于其操作的任意合適的硬件、軟件、部件、模塊、或?qū)ο螅约坝糜谠诰W(wǎng)絡(luò)環(huán)境中接收、發(fā)送、和/或以其他方式傳達(dá)數(shù)據(jù)或信息的合適接口。這可以包括允許數(shù)據(jù)或信息的有效交換的合適算法和通信協(xié)議。上游節(jié)點(diǎn)12和下游節(jié)點(diǎn)14還可以表示諸如移動設(shè)備(例如,智能手機(jī)、平板電腦、個人數(shù)字助理(PDA)等)和終端用戶設(shè)備(例如,膝上型計算機(jī)、個人計算機(jī)等)之類的網(wǎng)絡(luò)端點(diǎn)。
[0028]ACL網(wǎng)絡(luò)節(jié)點(diǎn)20可以是具有如下特征的任意網(wǎng)絡(luò)元件:可以實(shí)現(xiàn)訪問控制列表,在轉(zhuǎn)發(fā)(即,橋接或路由)接收到的消息時該消息中的一些數(shù)據(jù)不受影響,并且在轉(zhuǎn)發(fā)接收到的消息時該消息中的一些數(shù)據(jù)被修改。例如,ACL網(wǎng)絡(luò)節(jié)點(diǎn)20通??梢员慌渲脼長2交換機(jī)、以及L2/L3交換機(jī)、路由器、或網(wǎng)關(guān)。傳入接口 21和傳出接口 23可以是能夠?qū)崿F(xiàn)到其他網(wǎng)絡(luò)節(jié)點(diǎn)的通信的網(wǎng)絡(luò)接口控制器(NIC)和/或無線網(wǎng)絡(luò)接口控制器(WNIC)的任意合適的組合。
[0029]對于與ACL網(wǎng)絡(luò)節(jié)點(diǎn)20相關(guān)聯(lián)的內(nèi)部結(jié)構(gòu),其可以包括存儲器元件29,該存儲器元件29用于存儲在本文所概括的操作中所使用的信息。ACL網(wǎng)絡(luò)節(jié)點(diǎn)20可以根據(jù)需要將信息適當(dāng)?shù)乇4嬖谌我夂线m類型的存儲器元件(例如,隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM (EEPROM)、專用集成電路(ASIC)、三元內(nèi)容可尋址存儲器(TCAM)等)、軟件、硬件中,或者保存在任意其他合適的部件、設(shè)備、元件、或?qū)ο笾?。本文所討論的任意存儲器物體(例如,存儲器元件29)應(yīng)該被理解為被包含在廣義術(shù)語“存儲器元件”內(nèi)。由上游節(jié)點(diǎn)12、下游節(jié)點(diǎn)14、以及ACL網(wǎng)絡(luò)節(jié)點(diǎn)20使用、跟蹤、轉(zhuǎn)發(fā)、發(fā)送、以及接收的信息可以被提供在任意數(shù)據(jù)庫、寄存器、隊列、表格、緩存、控制列表、向量、或其他存儲結(jié)構(gòu)中,所有這些可以在任意合適的時間表被參考。任意這樣的存儲選項可以被包括在本文所使用的廣義術(shù)語“存儲器元件”內(nèi)。
[0030]應(yīng)當(dāng)注意,在某些示例實(shí)施方式中,本文所概括的功能可以由被編碼在一個或多個有形的、非暫態(tài)介質(zhì)中的邏輯(例如,專用集成電路(ASIC)中提供的嵌入式邏輯、數(shù)字信號處理器(DSP)指令、將由處理器或其他類似的機(jī)器運(yùn)行的軟件(可能包括目標(biāo)代碼和源代碼)等)實(shí)現(xiàn)。在這些實(shí)例中的一些實(shí)例中,存儲器元件(例如,存儲器元件29)可以存儲用于本文所描述的操作的數(shù)據(jù)。這包括能夠存儲被運(yùn)行以實(shí)施本文所描述的活動的軟件、邏輯、代碼、或處理器指令的存儲器元件。
[0031]ACL網(wǎng)絡(luò)節(jié)點(diǎn)20可以包括處理器27,該處理器27可以運(yùn)行邏輯、軟件、或算法以執(zhí)行本文所討論的活動。處理器可以運(yùn)行與實(shí)現(xiàn)本文所描述的操作的數(shù)據(jù)相關(guān)聯(lián)的任意類型的指令。在一個示例中,處理器27(如圖1所示)可以將元件或物品(例如,數(shù)據(jù))從一種狀態(tài)或事物轉(zhuǎn)變到另一狀態(tài)或事物。在另一示例中,本文所概述的活動可以利用固定邏輯或可編程邏輯(例如,由處理器運(yùn)行的軟件/計算機(jī)指令)來實(shí)現(xiàn),并且本文所標(biāo)識的元件可以是包括數(shù)字邏輯、軟件、代碼、電子指令、或它們的任意合適組合的某些類型的可編程處理器、可編程數(shù)字邏輯(例如,現(xiàn)場可編程門陣列(FPGA)、EPR0M、EEPR0M)、或ASIC。本文所描述的任意潛在的處理元件、模塊、和機(jī)器應(yīng)該被理解為被包含在廣義術(shù)語“處理器”內(nèi)。
[0032]圖1中未示出附加硬件,該附加硬件可以被適當(dāng)?shù)伛詈现撂幚砥?7和以下形式的其他部件:存儲器管理單元(MMU)、附加對稱多處理(SMP)元件、物理存儲器、外部部件互連(PCI)總線和相應(yīng)的網(wǎng)橋、小型計算機(jī)系統(tǒng)接口(SCSI) /電子集成驅(qū)動器(IDE)元件等。ACL網(wǎng)絡(luò)節(jié)點(diǎn)20可以包括有助于其操作的任意附加的合適硬件、軟件、部件、模塊、接口、或?qū)ο?。這可以包括允許對數(shù)據(jù)進(jìn)行有效保護(hù)的適當(dāng)算法和通信協(xié)議。另外,任意合適的操作系統(tǒng)也可以被配置在ACL網(wǎng)絡(luò)節(jié)點(diǎn)20中,以適當(dāng)?shù)毓芾碓揂CL網(wǎng)絡(luò)節(jié)點(diǎn)中的硬件部件的操作。
[0033]參照ACL網(wǎng)絡(luò)節(jié)點(diǎn)20示出和/或描述的元件用于示意性目的,而不意味著隱含架構(gòu)限制。此外,ACL網(wǎng)絡(luò)節(jié)點(diǎn)20可以在適當(dāng)情況下基于特定需求包括更多或更少部件。
[0034]如圖1所示,傳入消息15可以由ACL網(wǎng)絡(luò)節(jié)點(diǎn)20在傳入接口 21處從上游節(jié)點(diǎn)12接收。可以由入口 ACL模塊22使用入口可變ACL數(shù)據(jù)庫30和恒定ACL數(shù)據(jù)庫40對應(yīng)用到傳入消息15的入口 ACL規(guī)則進(jìn)行識別。如果可應(yīng)用的入口 ACL規(guī)則被識別出來,則相關(guān)聯(lián)的ACL動作(例如,準(zhǔn)許流量、拒絕流量等)可以被執(zhí)行。如果根據(jù)入口 ACL規(guī)則傳入消息15未被丟棄或阻塞、或者如果網(wǎng)絡(luò)流量被明確準(zhǔn)許,則消息轉(zhuǎn)發(fā)引擎25可以對傳入消息15執(zhí)行適當(dāng)?shù)臉蚪踊蚵酚晒δ堋@?,傳入消?5的幀頭和幀腳可以被移除,并且新的幀頭和幀腳可以被添加來封裝分組,從而改變該消息的至少一些可變數(shù)據(jù)。因此,傳出消息17可以是具有修改后的可變數(shù)據(jù)的傳入消息15。可以由出口 ACL模塊24使用恒定ACL數(shù)據(jù)庫40的先前搜索結(jié)果和出口可變ACL數(shù)據(jù)庫50對應(yīng)用到傳出消息17的出口 ACL規(guī)則進(jìn)行識別。如果可應(yīng)用的出口 ACL規(guī)則被識別出來,則相關(guān)聯(lián)的動作(例如,準(zhǔn)許流量、拒絕流量等)可以被執(zhí)行。如果根據(jù)出口 ACL規(guī)則傳出消息17未被丟棄或阻塞、或者如果網(wǎng)絡(luò)流量被明確準(zhǔn)許,則傳出消息17可以被傳輸、發(fā)送、或傳達(dá)至下游節(jié)點(diǎn)14。
[0035]上游節(jié)點(diǎn)12和下游節(jié)點(diǎn)14僅被提供用于示意性目的,并且將顯而易見的是,節(jié)點(diǎn)12和14中的每個節(jié)點(diǎn)可以被配置為相對于ACL網(wǎng)絡(luò)節(jié)點(diǎn)20同時作為上游和下游節(jié)點(diǎn)來發(fā)揮作用。更具體地,每個節(jié)點(diǎn)12和14可以被配置為將通信發(fā)送至ACL網(wǎng)絡(luò)節(jié)點(diǎn)20,并且從ACL網(wǎng)絡(luò)節(jié)點(diǎn)20接收通信。
[0036]轉(zhuǎn)向圖2,圖2是示出當(dāng)系統(tǒng)10的雙向ACL被實(shí)現(xiàn)在硬件中時,ACL網(wǎng)絡(luò)節(jié)點(diǎn)20的部件的附加細(xì)節(jié)的簡化框圖。一般,在入口側(cè),利用從轉(zhuǎn)發(fā)之前的消息(例如,傳入消息15)的可變數(shù)據(jù)獲取的搜索關(guān)鍵字31來搜索入口可變ACL數(shù)據(jù)庫30。利用從該消息的恒定數(shù)據(jù)獲取的搜索關(guān)鍵字來搜索恒定ACL數(shù)據(jù)庫40。入口可變ACL數(shù)據(jù)庫30和恒定ACL數(shù)據(jù)庫40以匹配向量的形式將搜索結(jié)果饋送到AND門(與門)38,以確定任何入口 ACL規(guī)則是否應(yīng)用到該消息。AND門38的結(jié)果可以被饋送到優(yōu)先級編碼器39,以確定在搜索中識別出來的最高優(yōu)先級入口 ACL規(guī)則。
[0037]在出口側(cè),利用從轉(zhuǎn)發(fā)之后的消息(例如,傳出消息17)的可變數(shù)據(jù)獲取的搜索關(guān)鍵字51來搜索出口可變ACL數(shù)據(jù)庫50。出口可變ACL數(shù)據(jù)庫50和恒定ACL數(shù)據(jù)庫40以匹配向量的形式將搜索結(jié)果饋送到AND門58,以確定任何出口 ACL規(guī)則是否應(yīng)用到該消息。AND門58的結(jié)果可以被饋送到優(yōu)先級編碼器59,以確定在搜索中識別出來的最高優(yōu)先級出口 ACL規(guī)則。
[0038]更具體地參照圖2中所示的示例部件的細(xì)節(jié),入口可變ACL數(shù)據(jù)庫30和出口可變ACL數(shù)據(jù)庫50具有與恒定ACL數(shù)據(jù)庫40的條目相對應(yīng)的條目??勺償?shù)據(jù)庫條目(例如,入口可變數(shù)據(jù)庫條目35或出口可變數(shù)據(jù)庫條目55)與相應(yīng)的恒定數(shù)據(jù)庫條目(例如,恒定數(shù)據(jù)庫條目45)的組合可以表示入口 ACL規(guī)則或出口 ACL規(guī)則。如果在對數(shù)據(jù)庫進(jìn)行搜索的過程中,兩個部分(即,可變數(shù)據(jù)庫條目和相應(yīng)的恒定數(shù)據(jù)庫條目)均被識別出來,則入口或出口規(guī)則可以被應(yīng)用到給定的消息。當(dāng)入口可變數(shù)據(jù)庫條目和恒定數(shù)據(jù)庫條目在對特定消息進(jìn)行搜索的過程中被識別出來時,所識別出的數(shù)據(jù)庫條目之間的相關(guān)性指示這些條目是相對應(yīng)的條目,因此表示應(yīng)用到該消息的入口 ACL規(guī)則。類似地,當(dāng)出口可變數(shù)據(jù)庫條目和恒定數(shù)據(jù)庫條目在對特定消息進(jìn)行搜索的過程中被識別出來時,所識別出的數(shù)據(jù)庫條目之間的相關(guān)性指示這些條目是相對應(yīng)的條目,因此表示應(yīng)用到該消息的出口 ACL規(guī)則。
[0039]在一個示例配置中,三個ACL數(shù)據(jù)庫30、40、和50可以具有相同數(shù)目的條目(例如,d個條目:條目O至條目d-1),并且可變數(shù)據(jù)庫中的條目與恒定數(shù)據(jù)庫中的條目之間的相關(guān)性基于在不同的數(shù)據(jù)庫中具有相同偏移的條目。在圖2所示的示例中,有代表性的第η個條目35、45、和55分別在數(shù)據(jù)庫30、40、和50中被示出,其中,η表示每個數(shù)據(jù)庫30、40、和50中的相同的偏移(例如,O至d-Ι之一)。因此,在該示例配置中,入口可變數(shù)據(jù)庫條目35和恒定數(shù)據(jù)庫條目45是相對應(yīng)的條目,它們一起表示入口 ACL規(guī)則。另外,出口可變數(shù)據(jù)庫條目55和恒定數(shù)據(jù)庫條目45也是相對應(yīng)的條目,它們一起表示出口 ACL規(guī)則。這些入口 ACL規(guī)則和出口 ACL規(guī)則共享相同的恒定數(shù)據(jù)庫條目45,因此是雙向的。此外,入口 ACL規(guī)則和出口 ACL規(guī)則均可以與ACL動作60中的動作(例如,拒絕網(wǎng)絡(luò)流量、準(zhǔn)許網(wǎng)絡(luò)流量等)相關(guān)聯(lián)。
[0040]因此,圖2示出了這樣的實(shí)施例:數(shù)據(jù)庫30和40的相對應(yīng)的條目是相關(guān)的,因?yàn)樗鼈冊谄涓髯缘臄?shù)據(jù)庫中位于相同的偏移處,并且數(shù)據(jù)庫50和40的相對應(yīng)的條目是相關(guān)的,因?yàn)樗鼈冊谄涓髯缘臄?shù)據(jù)庫中位于相同的偏移處。然而,將顯而易見的是,任意合適的配置可以被實(shí)現(xiàn)來指示可變ACL數(shù)據(jù)庫中的條目與恒定數(shù)據(jù)庫中的條目之間的適當(dāng)?shù)南嚓P(guān)性。
[0041]入口可變ACL數(shù)據(jù)庫30中的每個條目可以具有入口可變數(shù)據(jù)庫條目35的配置,包括有效字段35b和入口可變字段35a。有效字段35b可以具有I位的長度,而入口可變字段35a可以具有vi位的長度。類似地,出口可變ACL數(shù)據(jù)庫50中的每個條目可以具有出口可變數(shù)據(jù)庫條目55的配置,包括有效字段55b和出口可變字段55a。有效字段55b可以具有I位的長度,而出口可變字段55a可以具有ve位的長度。因此,入口可變字段35a的長度可以與出口可變字段55a的長度相同或者不同。而且,入口可變字段35a和出口可變字段55a可以分別被配置為單個可變字段或多個可變字段。最后,恒定ACL數(shù)據(jù)庫40中的每個條目可以具有恒定數(shù)據(jù)庫條目45的配置,包括s位的一個或多個恒定字段45a。
[0042]搜索關(guān)鍵字可以具有與其相應(yīng)的ACL數(shù)據(jù)庫的數(shù)據(jù)庫條目相同的配置。入口可變搜索關(guān)鍵字31可以具有與入口可變ACL數(shù)據(jù)庫30的數(shù)據(jù)庫條目(例如,條目35)相同的配置,并且出口可變搜索關(guān)鍵字51可以具有與出口可變ACL數(shù)據(jù)庫50的數(shù)據(jù)庫條目(例如,條目55)相同的配置。入口可變搜索關(guān)鍵字31可以包括有效字段31b和入口搜索關(guān)鍵字字段31a。有效字段31b可以具有I位的長度,而入口搜索關(guān)鍵字字段31a可以具有vi位的長度。類似地,出口可變搜索關(guān)鍵字51可以包括有效字段51b和出口搜索關(guān)鍵字字段51a。有效字段51b可以具有I位的長度,而出口搜索關(guān)鍵字字段51a可以具有ve位的長度。恒定搜索關(guān)鍵字41可以具有與恒定ACL數(shù)據(jù)庫30的數(shù)據(jù)庫條目(例如,條目45)相同的配置。恒定搜索關(guān)鍵字41可以包括恒定搜索關(guān)鍵字字段41a,該恒定搜索關(guān)鍵字字段41a可以具有s位的長度。
[0043]可變數(shù)據(jù)庫條目的入口可變字段和出口可變字段(例如,分別為條目35的入口可變字段35a和條目55的出口可變字段55a)是分別包含搜索關(guān)鍵字31和51的搜索關(guān)鍵字字段31a和51a的可能值的數(shù)據(jù)字段??梢栽谵D(zhuǎn)發(fā)消息之前從消息的一個或多個可變數(shù)據(jù)中獲取入口搜索關(guān)鍵字字段31a??梢栽谙⒈晦D(zhuǎn)發(fā)之后從消息的一個或多個可變數(shù)據(jù)中獲取出口搜索關(guān)鍵字字段51a。如本文所使用的,消息的“可變數(shù)據(jù)”是由消息轉(zhuǎn)發(fā)引擎25的轉(zhuǎn)發(fā)邏輯對其值進(jìn)行改變的數(shù)據(jù)。因此,出口搜索關(guān)鍵字字段51a可以在取值方面相對于相同消息的入口搜索關(guān)鍵字字段31a被修改。
[0044]恒定數(shù)據(jù)庫條目的恒定字段(例如,條目45的恒定字段45a)是包含恒定搜索關(guān)鍵字41的恒定搜索關(guān)鍵字字段41a的可能值的數(shù)據(jù)字段??梢詮南⒌囊粋€或多個恒定數(shù)據(jù)中獲取恒定搜索關(guān)鍵字字段41a。如本文所使用的,消息的“恒定數(shù)據(jù)”是消息轉(zhuǎn)發(fā)引擎25的轉(zhuǎn)發(fā)邏輯不改變其值的數(shù)據(jù)。因此,可以從轉(zhuǎn)發(fā)之前的消息獲取恒定搜索關(guān)鍵字字段41a,并且可以將恒定ACL搜索的結(jié)果與入口 ACL搜索的結(jié)果和出口 ACL搜索的結(jié)果進(jìn)行融合,因?yàn)楹愣ㄋ阉麝P(guān)鍵字41由于消息的恒定數(shù)據(jù)保持不變而未改變。
[0045]在系統(tǒng)10的示例實(shí)施例中,三個數(shù)據(jù)庫30、40、和50被實(shí)現(xiàn)為能夠分別使用獨(dú)立的搜索關(guān)鍵字31、41、和51進(jìn)行獨(dú)立的搜索。根據(jù)特定的實(shí)施方式和協(xié)議,為了創(chuàng)建搜索關(guān)鍵字,可以從消息的各個層獲取可變搜索關(guān)鍵字字段和恒定搜索關(guān)鍵字字段。通過示例的方式,在TCP/IP協(xié)議中,可以從轉(zhuǎn)發(fā)之前的消息(例如,傳入消息15)的層2和/或?qū)?中的可變數(shù)據(jù)獲取入口搜索關(guān)鍵字字段31a。入口可變搜索關(guān)鍵字31還可以被配置以用于與諸如有效字段35b之類的有效字段進(jìn)行比較的有效字段31b。類似地,可以在消息(例如,傳出消息17)被轉(zhuǎn)發(fā)并被提供給傳出接口 23之后,從該消息的層2和/或?qū)?中的可變數(shù)據(jù)獲取出口搜索關(guān)鍵字字段51a。出口可變搜索關(guān)鍵字51也可以被配置以用于與諸如有效字段55b之類的有效字段進(jìn)行比較的有效字段。最后,可以從消息的層4、5、6、和/或7中的恒定數(shù)據(jù)獲取恒定搜索關(guān)鍵字字段41a。
[0046]在圖2所示的示例實(shí)施例中,通過每個ACL數(shù)據(jù)庫搜索生成匹配向量。從ACL數(shù)據(jù)庫的搜索中生成的匹配向量是位向量,其中,每個位表示所搜索的ACL數(shù)據(jù)庫中的數(shù)據(jù)庫條目之一。匹配向量中的每個位的值指示搜索關(guān)鍵字對相應(yīng)的數(shù)據(jù)庫條目產(chǎn)生“命中”還是“錯過”。例如,二進(jìn)制“O”可以指示搜索關(guān)鍵字與相應(yīng)的數(shù)據(jù)庫條目不匹配(或“錯過”),而二進(jìn)制“I”可以指示搜索關(guān)鍵字與相應(yīng)的數(shù)據(jù)庫條目相匹配(或“命中”)。將顯而易見的是,這些位可以被配置為利用相反的值來指示命中或錯過(即,二進(jìn)制“O”指示命中,并且二進(jìn)制“I”指示錯過)。此外,匹配向量中的位的位位置(bit posit1n)可以表示相應(yīng)的數(shù)據(jù)庫條目的偏移。例如,匹配向量中的具有位位置Ο-d的位可以分別表示數(shù)據(jù)庫中的數(shù)據(jù)庫條目0-d。
[0047]在圖2所示的示例實(shí)施例中,利用入口可變搜索關(guān)鍵字31對入口可變ACL數(shù)據(jù)庫30進(jìn)行的搜索生成了具有d位的入口可變匹配向量32,并且每個位表示入口可變ACL數(shù)據(jù)庫30中的條目之一。這些位的值指示通過入口可變搜索關(guān)鍵字31哪些入口可變數(shù)據(jù)庫條目產(chǎn)生命中(例如,二進(jìn)制“I”)以及哪些入口可變數(shù)據(jù)庫條目產(chǎn)生錯過(例如,二進(jìn)制“O”)。而且,這些位的位位置可以表示相應(yīng)的入口可變數(shù)據(jù)庫條目的偏移。例如,如果入口可變搜索關(guān)鍵字31與入口可變數(shù)據(jù)庫條目35(例如,第η個條目)相匹配,則入口可變匹配向量32中的位位置η處的位可以被設(shè)置為二進(jìn)制“1”,以指示在入口可變ACL數(shù)據(jù)庫30的條目η處命中。
[0048]利用出口可變搜索關(guān)鍵字51對出口可變ACL數(shù)據(jù)庫50進(jìn)行的搜索生成了具有d位的出口可變匹配向量52,并且每個位表示出口可變ACL數(shù)據(jù)庫50中的數(shù)據(jù)庫條目之一。這些位的值指示通過出口可變搜索關(guān)鍵字51哪些出口可變數(shù)據(jù)庫條目產(chǎn)生命中(例如,二進(jìn)制“1”)、以及哪些出口可變數(shù)據(jù)庫條目產(chǎn)生錯過(例如,二進(jìn)制“O”)。而且,這些位的位位置可以表示相應(yīng)的出口可變數(shù)據(jù)庫條目的偏移。例如,如果出口可變搜索關(guān)鍵字51與出口可變數(shù)據(jù)庫條目55(例如,第η個條目)相匹配,則出口可變匹配向量52中的位位置η處的位可以被設(shè)置為二進(jìn)制“ I ”,以指示在出口可變ACL數(shù)據(jù)庫50的條目η處命中。
[0049]利用恒定搜索關(guān)鍵字41對恒定ACL數(shù)據(jù)庫40進(jìn)行的搜索生成了具有d位的恒定匹配向量42,并且每個位表示恒定ACL數(shù)據(jù)庫40中的條目之一。這些位的值指示通過恒定搜索關(guān)鍵字41哪些恒定數(shù)據(jù)庫條目產(chǎn)生命中(例如,二進(jìn)制“I”)、以及哪些恒定數(shù)據(jù)庫條目產(chǎn)生錯過(例如,二進(jìn)制“O”)。而且,這些位的位位置可以表示相應(yīng)的恒定數(shù)據(jù)庫條目的偏移。例如,如果恒定搜索關(guān)鍵字41與恒定數(shù)據(jù)庫條目45 (例如,第η個條目)相匹配,則恒定匹配向量42的位位置η處的位可以被設(shè)置為二進(jìn)制“1”,以指示在恒定ACL數(shù)據(jù)庫40的條目η處命中。在一些實(shí)現(xiàn)方式中,恒定匹配向量42可以被存儲在恒定匹配向量存儲設(shè)備44中,直到出口 ACL搜索被執(zhí)行從而產(chǎn)生可以與恒定匹配向量42相融合的出口可變匹配向量52為止。
[0050]如本文所描述的,系統(tǒng)10的數(shù)據(jù)庫30、40、和50可以被實(shí)現(xiàn)在任意合適的存儲器元件中。例如,在系統(tǒng)10的硬件實(shí)施方式中,數(shù)據(jù)庫30、40、和50可以被實(shí)現(xiàn)在三元內(nèi)容尋址存儲器(TCAM)中。TCAM可以通過同時將搜索關(guān)鍵字與數(shù)據(jù)庫中的每個條目進(jìn)行比較來提供遍歷數(shù)據(jù)庫的搜索。因此,在某些實(shí)施方式中,搜索數(shù)據(jù)庫30、40、和50中的任意數(shù)據(jù)庫可以是并行處理。
[0051]圖1和圖2中所示的數(shù)據(jù)庫結(jié)構(gòu)允許針對在ACL網(wǎng)絡(luò)節(jié)點(diǎn)20的入口和出口處被評估的每個消息對恒定數(shù)據(jù)庫40進(jìn)行單次搜索。結(jié)果恒定匹配向量42可以被共享,并且被用于獲取入口 ACL搜索結(jié)果和出口 ACL搜索結(jié)果二者。更具體地,可以將恒定匹配向量42與入口可變匹配向量32和出口可變匹配向量52進(jìn)行比較(或融合),以確定任意相應(yīng)的數(shù)據(jù)庫條目是否在相應(yīng)的入口 ACL搜索和出口 ACL搜索過程中被識別出來。在一個示例實(shí)施例中,入口融合匹配向量33可以是來自入口可變ACL數(shù)據(jù)庫30和恒定ACL數(shù)據(jù)庫40的匹配向量結(jié)果的按位邏輯AND (邏輯與),如AND門38所示。類似地,出口融合匹配向量53可以是來自出口可變ACL數(shù)據(jù)庫50和恒定ACL數(shù)據(jù)庫40的匹配向量結(jié)果的按位邏輯AND,如AND門58所示。結(jié)果入口融合匹配向量33可以指示具有如下情況的每個入口 ACL規(guī)則:該規(guī)則的相應(yīng)部分基于利用相應(yīng)搜索關(guān)鍵字31和41進(jìn)行的搜索而被識別出來(在相應(yīng)的入口可變匹配向量和恒定匹配向量中被指示為“命中”),并且基于具有相同的偏移而被關(guān)聯(lián)。類似地,結(jié)果出口融合匹配向量53可以指示具有如下情況的每個出口 ACL規(guī)則:該規(guī)則的相應(yīng)部分基于利用相應(yīng)搜索關(guān)鍵字51和41進(jìn)行的搜索而被識別出來(在相應(yīng)的出口可變匹配向量和恒定匹配向量中被指示為“命中”),并且基于具有相同的偏移而被關(guān)聯(lián)。
[0052]入口融合匹配向量33可以被優(yōu)先級編碼,以確定入口 ACL規(guī)則中最高優(yōu)先級匹配的地址(如果有的話)。同樣,出口融合匹配向量53可以被優(yōu)先級編碼,以確定出口 ACL規(guī)則中最高優(yōu)先級匹配的地址(如果有的話)。在一個示例實(shí)施方式中,ACL數(shù)據(jù)庫中的條目被按照優(yōu)先級遞減的順序進(jìn)行排列,從而使得具有最低地址的條目具有最高優(yōu)先級。因此,優(yōu)先級編碼器39可以從入口融合匹配向量33確定具有最低地址的第一命中條目,以產(chǎn)生具有l(wèi)og2 (d)位的入口匹配索引34。類似地,優(yōu)先級編碼器59可以從出口融合匹配向量53確定具有最低地址的第一命中條目,以產(chǎn)生具有l(wèi)og2(d)位的出口匹配索引53。替代地,任意其他合適形式的優(yōu)先化可以被配置在系統(tǒng)10中。匹配索引34和54可以分別被用來查找ACL動作60中將被執(zhí)行的相關(guān)聯(lián)的ACL動作。
[0053]相應(yīng)的入口可變ACL數(shù)據(jù)庫30和出口可變ACL數(shù)據(jù)庫50中的有效字段35b和55b允許任意給定的雙向ACL條目(例如,數(shù)據(jù)庫30、40、和50中的第η個條目35、45、和55)可被編程為單獨(dú)用于入口 ACL搜索、單獨(dú)用于出口 ACL搜索、用于入口 ACL搜索和出口 ACL搜索二者、或不用于搜索。當(dāng)雙向條目被編程為僅入口時,入口可變ACL數(shù)據(jù)庫30中的條目被包括在入口可變ACL搜索中,而出口可變ACL數(shù)據(jù)庫50中的相應(yīng)條目在出口可變ACL搜索過程中被排除。相反,當(dāng)雙向條目被編程為僅出口時,出口可變ACL數(shù)據(jù)庫50中的條目被包括在出口可變ACL搜索中,而入口可變ACL數(shù)據(jù)庫30中的相應(yīng)條目在入口可變ACL搜索過程中被排除。基于硬件的雙向ACL中的雙向ACL條目的可編程性可以提供硬件靈活性,從而以最小的硬件成本來滿足廣泛范圍的客戶ACL規(guī)定。
[0054]在提供雙向ACL條目的可編程性的一個示例實(shí)施例中,當(dāng)入口可變ACL條目35的有效字段35b被設(shè)置(例如,二進(jìn)制“I”)并且出口可變ACL條目55的有效字段55b被清除(例如,二進(jìn)制“O “)時,雙向ACL條目(例如,數(shù)據(jù)庫30、40、和50中的第η個條目35、45、和55)可以被編程為僅入口。相反,當(dāng)出口可變ACL條目55的有效字段55b被設(shè)置(例如,二進(jìn)制“I”)并且入口可變ACL條目35的有效字段35b被清除(例如,二進(jìn)制“O “)時,雙向ACL條目可以被編程為僅出口。當(dāng)給定的雙向ACL條目的兩個有效字段(例如,入口可變ACL條目35和出口可變ACL條目55的有效字段35b和55b)均被設(shè)置(例如,二進(jìn)制“ I”)時,針對該雙向ACL條目的入口 ACL搜索和出口 ACL搜索二者均可以被執(zhí)行。
[0055]應(yīng)當(dāng)注意,本文關(guān)于“設(shè)置”可變ACL數(shù)據(jù)庫條目的有效字段的指代指的是向有效字段分配任意合適的值(例如,二進(jìn)制“ I ”、二進(jìn)制“O”),以指示相應(yīng)的ACL數(shù)據(jù)庫條目是有效的并且應(yīng)當(dāng)被包括在ACL數(shù)據(jù)庫的搜索中。相反,本文關(guān)于“清除”可變ACL數(shù)據(jù)庫條目的有效字段的指代指的是向有效字段分配任意合適的值(例如,二進(jìn)制“1”、二進(jìn)制“O”),以指示相應(yīng)的ACL數(shù)據(jù)庫條目是無效的并且不應(yīng)當(dāng)被包括在ACL數(shù)據(jù)庫的搜索中。而且,有效字段可以替代地被配置為多于一位,因此,雙向數(shù)據(jù)庫可以被實(shí)現(xiàn)為使用其他值來“設(shè)置”或“清除”有效字段。如果特定條目的可變字段與相應(yīng)的搜索關(guān)鍵字的搜索關(guān)鍵字字段相匹配,則入口搜索關(guān)鍵字31和出口搜索關(guān)鍵字51的有效字段可以被設(shè)置為使能可變ACL數(shù)據(jù)庫中的有效條目上的命中(即,當(dāng)該條目的有效位被設(shè)置時)。
[0056]系統(tǒng)10的數(shù)據(jù)庫結(jié)構(gòu)有效地消除了傳統(tǒng)的雙向ACL數(shù)據(jù)庫中的對恒定字段的重復(fù)存儲和搜索。相反,本文所描述的實(shí)施例提供了單個恒定ACL數(shù)據(jù)庫40,該恒定ACL數(shù)據(jù)庫40可以針對每個消息被搜索一次。針對入口 ACL搜索和出口 ACL搜索,結(jié)果恒定匹配向量42可以被共享。作為本創(chuàng)新的結(jié)果,用于重復(fù)恒定字段的資源被釋放,并且可以被用來支持附加的雙向ACL數(shù)據(jù)庫條目。而且,即使條目的數(shù)目并未增加,新配置也是有益的,因?yàn)橛捎谝瞥貜?fù)字段而減少了資源需求。
[0057]為了說明該效果,假設(shè)入口可變ACL數(shù)據(jù)庫30需要X區(qū)域,出口可變ACL數(shù)據(jù)庫50需要Y區(qū)域,并且恒定ACL數(shù)據(jù)庫需要Z區(qū)域。因此,總硬件區(qū)域等于X+Y+Z。然而,單獨(dú)的入口 ACL數(shù)據(jù)庫和出口 ACL數(shù)據(jù)庫中的重復(fù)的恒定字段導(dǎo)致總硬件區(qū)域等于X+Y+ (2*Z)。通常,恒定ACL字段構(gòu)成了巨大數(shù)量的雙向ACL數(shù)據(jù)庫條目,因而使(2*Z)減少一半可以獲得顯著的硬件增益。而且,針對硬件實(shí)施方式和軟件實(shí)施方式二者,系統(tǒng)10的數(shù)據(jù)庫結(jié)構(gòu)沒有增加延時,并且不損害吞吐量??梢燥@著增強(qiáng)針對基于硬件的雙向ACL設(shè)計的硬件利用率,并且可以將硬件利用率擴(kuò)展到軟件實(shí)施方式。具體地,在軟件實(shí)施方式中,避免遍歷每個消息的恒定字段的第二次搜索可以減少搜索次數(shù),從而改善延時和吞吐量。
[0058]轉(zhuǎn)向圖3,流程300示出了當(dāng)消息由系統(tǒng)10的ACL網(wǎng)絡(luò)節(jié)點(diǎn)20接收時可以在入口上被執(zhí)行的示例操作步驟。流程300可以開始于302,在302處,在ACL網(wǎng)絡(luò)節(jié)點(diǎn)20的傳入接口 21處從上游網(wǎng)絡(luò)節(jié)點(diǎn)12接收消息(例如,傳入消息15)。在一個實(shí)施例中,入口ACL模塊22可以被配置為執(zhí)行流程300的其余操作步驟??梢栽?04處從傳入消息15的可變數(shù)據(jù)創(chuàng)建入口可變搜索關(guān)鍵字31,其中,根據(jù)傳入消息的可變數(shù)據(jù),有效字段31b被設(shè)置(例如,二進(jìn)制“I”)并且可變搜索關(guān)鍵字字段31a被獲取(例如,從TCP/IP協(xié)議消息的層2和/或?qū)?)。在306處,可以利用入口可變搜索關(guān)鍵字31對入口可變ACL數(shù)據(jù)庫30進(jìn)行搜索。
[0059]如308處所示,可以通過利用入口可變搜索關(guān)鍵字31對入口可變ACL數(shù)據(jù)庫30進(jìn)行搜索來生成入口可變匹配向量32。在一個示例實(shí)施方式中,對于與入口可變搜索關(guān)鍵字31相匹配(或者由入口可變搜索關(guān)鍵字31識別為命中)的每個入口可變數(shù)據(jù)庫條目,可以對入口可變匹配向量32中的位進(jìn)行設(shè)置(例如,二進(jìn)制“I”)。相反,對于與入口可變搜索關(guān)鍵字31不匹配(或者未由入口可變搜索關(guān)鍵字31識別為命中)的每個條目,可以對入口可變匹配向量32中的位進(jìn)行清除(例如,二進(jìn)制“O”)。此外,在入口可變匹配向量32中被設(shè)置或被清除的位可以在該向量中具有與其表示的入口可變ACL數(shù)據(jù)庫30中的數(shù)據(jù)庫條目的偏移相對應(yīng)的位位置(例如,入口可變數(shù)據(jù)庫條目35的位位置η)。
[0060]在一個實(shí)施例中,每個入口可變數(shù)據(jù)庫條目的有效字段(例如,有效字段35b)被評估,以確定該特定條目是否應(yīng)該被包括在搜索中。例如,如果有效字段35b為“ I ”,則入口可變數(shù)據(jù)庫條目35可以在搜索中被評估,并且入口可變匹配向量32中的位可以被基于數(shù)據(jù)庫條目35是命中還是錯過而相應(yīng)地被設(shè)置或者被清除。另一方面,如果有效字段35b為“0”,則入口可變數(shù)據(jù)庫條目35不可以在搜索中被評估,并且入口可變匹配向量32中的位可以被清除(例如,二進(jìn)制“O”),指示數(shù)據(jù)庫條目35為錯過。
[0061]在310處,可以利用從傳入消息15的恒定數(shù)據(jù)(例如,從TCP/IP協(xié)議消息的層4和/或?qū)?)獲取的恒定搜索關(guān)鍵字字段41a來創(chuàng)建恒定搜索關(guān)鍵字41。在312處,可以利用恒定搜索關(guān)鍵字41來對恒定ACL數(shù)據(jù)庫40進(jìn)行搜索。如314處所示,可以通過利用恒定搜索關(guān)鍵字41對恒定ACL數(shù)據(jù)庫40進(jìn)行搜索來生成恒定匹配向量42。在一個示例實(shí)施方式中,對于與恒定搜索關(guān)鍵字41相匹配(或者由恒定搜索關(guān)鍵字41識別為命中)的每個恒定數(shù)據(jù)庫條目,可以對恒定匹配向量42中的位進(jìn)行設(shè)置(例如,二進(jìn)制“I”)。相反,對于與恒定搜索關(guān)鍵字41不匹配(或者未由恒定搜索關(guān)鍵字41識別為命中)的每個條目,可以對恒定匹配向量42中的位進(jìn)行清除(例如,二進(jìn)制“O”)。此外,恒定匹配向量42中的被設(shè)置或被清除的位可以在該向量中具有與恒定ACL數(shù)據(jù)庫40中的數(shù)據(jù)庫條目的偏移相對應(yīng)的位位置。盡管用于入口 ACL搜索和恒定ACL搜索的操作在圖3中被順序示出,但這些搜索可以被同時執(zhí)行或被以任意其他合適的重疊或時間安排順序執(zhí)行。
[0062]一旦入口可變匹配向量32和恒定匹配向量42被生成,則在316處,可以將這些匹配向量進(jìn)行比較來確定在這些搜索中識別出來的任何入口可變數(shù)據(jù)庫條目和恒定數(shù)據(jù)庫條目之間是否存在相關(guān)性。一個示例相關(guān)性可以是確定(在入口可變ACL數(shù)據(jù)庫30的搜索中識別出來的)入口可變數(shù)據(jù)庫條目具有與(在恒定ACL數(shù)據(jù)庫40的搜索中識別出來的)恒定數(shù)據(jù)庫條目相同的偏移。如果表示數(shù)據(jù)庫條目的位的位位置在入口可變匹配向量32中和恒定匹配向量42中是相同的,則可以確定該相關(guān)性。識別出的相關(guān)性指示入口 ACL規(guī)則可應(yīng)用于傳入消息15。在硬件實(shí)施方式中,可以通過經(jīng)由AND門38對匹配向量32和42進(jìn)行按位邏輯AND來執(zhí)行對這兩個向量的比較。在318處,入口融合匹配向量33作為AND門38對這兩個向量的操作的結(jié)果被生成。因此,有可能識別多個相關(guān)性,在這種情形中多個入口 ACL規(guī)則可以被應(yīng)用到傳入消息15。
[0063]在320處,做出關(guān)于任何入口 ACL規(guī)則是否應(yīng)用到傳入消息15的判定。例如,如果入口融合匹配向量33中的一個或多個位被設(shè)置為“1”,則入口 ACL規(guī)則應(yīng)當(dāng)被應(yīng)用到傳入消息15。因此,在322處,入口融合匹配向量33中指示的最高優(yōu)先級入口 ACL規(guī)則被識別出來。該識別可以由優(yōu)先級編碼器39實(shí)現(xiàn),其中,優(yōu)先級編碼器39可以對向量進(jìn)行優(yōu)先級編碼,以確定入口融合匹配向量33所指示的最高優(yōu)先級入口 ACL規(guī)則的地址(例如,第一命中索引),從而產(chǎn)生入口匹配索引34。入口匹配索引34可以被用來查找ACL動作60中與匹配索引34相關(guān)聯(lián)的ACL動作(例如,準(zhǔn)許流量、拒絕流量等)。
[0064]在324處,可以執(zhí)行與可應(yīng)用于消息的最高優(yōu)先級入口 ACL規(guī)則相關(guān)聯(lián)的ACL動作。例如,該消息可以被拒絕或被準(zhǔn)許,或者可以采取任意其他合適的動作。在326處,做出關(guān)于識別出的入口 ACL規(guī)則和相關(guān)聯(lián)的動作是否阻止轉(zhuǎn)發(fā)傳入消息15的判定。例如,如果在324處采取的ACL動作有效地丟棄或阻塞了消息,則該消息在ACL網(wǎng)絡(luò)節(jié)點(diǎn)20中的進(jìn)一步處理被拒絕,并且流程300結(jié)束。否則,如果在324處采取的ACL動作沒有阻塞或丟棄該消息,或者如果在320處確定沒有入口 ACL規(guī)則應(yīng)用到該消息,則在328處,該消息被提供給消息轉(zhuǎn)發(fā)引擎25。消息轉(zhuǎn)發(fā)引擎25可以通過橋接或路由將該消息進(jìn)行轉(zhuǎn)發(fā),并且可以將所轉(zhuǎn)發(fā)的消息(例如,傳出消息17)提供給傳出接口 23,以傳輸至下游節(jié)點(diǎn)14。
[0065]轉(zhuǎn)到圖4,流程400示出了在系統(tǒng)10的ACL網(wǎng)絡(luò)節(jié)點(diǎn)20中對消息進(jìn)行轉(zhuǎn)發(fā)之后可以在出口上執(zhí)行的示例操作步驟。在消息轉(zhuǎn)發(fā)引擎25的轉(zhuǎn)發(fā)邏輯被應(yīng)用到消息(例如,傳入消息15)之后,流程400可以開始于402。在402處,傳出接口 23可以從消息轉(zhuǎn)發(fā)引擎25接收傳出消息17。傳出消息17可以包含來自傳入消息15的已被修改的可變數(shù)據(jù)和未改變的恒定數(shù)據(jù)。例如,傳出消息17可以包含傳入消息15的分段和應(yīng)用數(shù)據(jù)(例如,層4和更高層),但具有新的幀(例如,層2)和/或網(wǎng)絡(luò)尋址(例如,層3)。
[0066]在一個實(shí)施例中,出口 ACL模塊24可以被配置為在傳出接口 23在402處接收到傳出消息17之后并且在將該消息在422處發(fā)送到下游網(wǎng)絡(luò)節(jié)點(diǎn)14之前執(zhí)行流程400的操作步驟。在404處,可以利用被設(shè)置(例如,二進(jìn)制“I”)的有效字段51b和從傳出消息17的可變數(shù)據(jù)(例如,從TCP/IP協(xié)議消息的層2和/或?qū)?)中獲取的出口可變搜索關(guān)鍵字字段51a來創(chuàng)建出口可變搜索關(guān)鍵字51。在406處,可以利用出口可變搜索關(guān)鍵字51對出口可變ACL數(shù)據(jù)庫50進(jìn)行搜索。
[0067]如408處所示,可以通過利用出口可變搜索關(guān)鍵字51對出口可變ACL數(shù)據(jù)庫50進(jìn)行搜索來生成出口可變匹配向量52。在一個示例實(shí)施方式中,對于與出口可變搜索關(guān)鍵字51相匹配(或者由出口可變搜索關(guān)鍵字51識別為命中)的每個出口可變數(shù)據(jù)庫條目,可以對出口可變匹配向量52中的位進(jìn)行設(shè)置(例如,二進(jìn)制“I”)。相反,對于與出口可變搜索關(guān)鍵字51不匹配(或者未由出口可變搜索關(guān)鍵字51識別為命中)的每個條目,可以對出口可變匹配向量52中的位進(jìn)行清除(例如,二進(jìn)制“O”)。此外,出口可變匹配向量52中的被設(shè)置或被清除的位可以在該向量中具有與其在出口可變ACL數(shù)據(jù)庫50中表示的數(shù)據(jù)庫條目的偏移相對應(yīng)的位位置(例如,出口可變數(shù)據(jù)庫條目55的位位置η)。
[0068]在一個實(shí)施例中,每個出口可變數(shù)據(jù)庫條目的有效字段(例如,有效字段55b)被評估,以確定該特定條目是否應(yīng)該被包括在搜索中。例如,如果有效字段55b為“ I ”,則出口可變數(shù)據(jù)庫條目55可以在搜索中被評估,并且出口可變匹配向量52中的位可以基于數(shù)據(jù)庫條目55是命中還是錯過而相應(yīng)地被設(shè)置或者被清除。另一方面,如果有效字段55b為“0”,則出口可變數(shù)據(jù)庫條目55不可以在搜索中被評估,并且出口可變匹配向量52中的該位可以被清除(例如,二進(jìn)制“O”),指示數(shù)據(jù)庫條目55為錯過。
[0069]在406處對出口可變ACL數(shù)據(jù)庫50進(jìn)行搜索并且在408處生成出口可變匹配向量52之前,可以由入口 ACL模塊22創(chuàng)建恒定匹配向量42。此外,恒定匹配向量42可以被存儲于可選的恒定匹配向量存儲設(shè)備44中,直到出口可變匹配向量52被生成為止。因此,一旦在408處出口可變匹配向量52被生成,則在410處,可以將出口可變匹配向量52和恒定匹配向量42進(jìn)行比較,以確定在這些搜索中識別出的任何出口可變數(shù)據(jù)庫條目和恒定數(shù)據(jù)庫條目之間是否存在相關(guān)性。一個示例相關(guān)性可以是確定(在出口可變ACL數(shù)據(jù)庫50的搜素中識別出的)出口可變數(shù)據(jù)庫條目具有與(在恒定ACL數(shù)據(jù)庫40的搜索中識別出的)恒定數(shù)據(jù)庫條目相同的偏移。如果表示數(shù)據(jù)庫條目的位的位位置在出口可變匹配向量52和恒定匹配向量42中是相同的,則可以確定該相關(guān)性。所識別出的相關(guān)性指示出口 ACL規(guī)則可應(yīng)用于傳出消息17。在硬件實(shí)施方式中,可以通過經(jīng)由AND門58對匹配向量52和42進(jìn)行按位邏輯AND來執(zhí)行對這兩個向量的比較。在412處,出口融合匹配向量53作為AND門58對這兩個向量的操作的結(jié)果被生成。因此,有可能識別多個相關(guān)性,在該情形中,多個出口 ACL規(guī)則可以被應(yīng)用到傳出消息17。
[0070]在414處,做出關(guān)于任何出口 ACL規(guī)則是否應(yīng)用到傳出消息17的判定。例如,如果出口融合匹配向量53中的一個或多個位被設(shè)置為“1”,則出口 ACL規(guī)則應(yīng)當(dāng)被應(yīng)用到傳出消息17。因此,在416處,出口融合匹配向量53中所指示的最高優(yōu)先級出口 ACL規(guī)則被識別出來。該識別可以由優(yōu)先級編碼器59來實(shí)現(xiàn),其中,優(yōu)先級編碼器59可以對向量進(jìn)行優(yōu)先級編碼,以確定出口融合匹配向量53所指示的最高優(yōu)先級出口 ACL規(guī)則的地址(例如,第一命中索引),從而產(chǎn)生出口匹配索引54。出口匹配索引54可以被用來查找ACL動作60中與匹配索引54相關(guān)聯(lián)的ACL動作(例如,準(zhǔn)許流量、拒絕流量等)。
[0071]在418處,可以執(zhí)行與可應(yīng)用于消息的最高優(yōu)先級出口 ACL規(guī)則相關(guān)聯(lián)的ACL動作。例如,該消息可以被拒絕或被準(zhǔn)許,或者可以采取任意其他合適的動作。在420處,做出關(guān)于所識別出的出口 ACL規(guī)則和相關(guān)聯(lián)的動作是否阻止將傳出消息17發(fā)送給下游網(wǎng)絡(luò)節(jié)點(diǎn)14的判定。例如,如果在418處采取的ACL動作有效地丟棄或阻塞了該消息,則該消息在ACL網(wǎng)絡(luò)節(jié)點(diǎn)20中的進(jìn)一步處理被拒絕,并且流程400結(jié)束。否則,如果在418處采取的ACL動作沒有阻塞或丟棄該消息,或者如果在414處確定沒有出口 ACL規(guī)則應(yīng)用到該消息,則在422處,該消息(例如,傳出消息17)被發(fā)送給下游網(wǎng)絡(luò)節(jié)點(diǎn)14。
[0072]在一些實(shí)施例中,系統(tǒng)10的一個或多個特征可以在例如ACL網(wǎng)絡(luò)節(jié)點(diǎn)20中的硬件中被實(shí)現(xiàn)。然而,在一些示例實(shí)施方式中,本文所概括的與該系統(tǒng)有關(guān)的至少一部分活動可以在軟件中實(shí)現(xiàn)。在一些實(shí)施例中,該軟件可以從網(wǎng)絡(luò)(web)服務(wù)器被接收或下載、被提供在計算機(jī)可讀介質(zhì)上、或由特定元件(例如,ACL網(wǎng)絡(luò)節(jié)點(diǎn)20)的制造商進(jìn)行配置,以向該系統(tǒng)提供雙向ACL的改善的硬件利用率。在其他實(shí)施例中,這些特征中的一個或多個可以在這些元件外部被提供,或者以任意適當(dāng)?shù)姆绞奖缓喜韺?shí)現(xiàn)預(yù)期的功能。
[0073]在本文所描述和所示的系統(tǒng)10的實(shí)施例中,與各種網(wǎng)絡(luò)元件相關(guān)聯(lián)的處理器和存儲器元件可以被移除或者被合并,從而使得單個處理器和單個存儲器位置負(fù)責(zé)某些活動。替代地,某些處理功能可以是分開的,并且獨(dú)立的處理器和/或物理機(jī)器可以實(shí)現(xiàn)各種功能。一般,附圖中所描繪的部署可以在其表示方式上更加合理,而物理架構(gòu)可以包括這些元件的各種排列、組合、和/或混合。需要注意,無數(shù)可能的設(shè)計配置可以被用來實(shí)現(xiàn)本文所概括的操作目標(biāo)。因此,相關(guān)聯(lián)的基礎(chǔ)設(shè)施具有大量代替部署、設(shè)計選擇、設(shè)備可能性、硬件配置、軟件實(shí)施方式、設(shè)備選項等。
[0074]應(yīng)當(dāng)注意,本文提供了大量的示例,因而可以描述涉及兩個、三個、四個、或更多個網(wǎng)絡(luò)元件的交互。然而,這只是出于清楚和示例的目的。應(yīng)當(dāng)理解,該系統(tǒng)可以以任意合適的方式進(jìn)行合并。隨著類似的設(shè)計替代,附圖中所示出的計算機(jī)、模塊、部件、和元件中的任意一個可以以各種可能的配置進(jìn)行組合,所有這些配置被清楚地包含在本說明書的廣義范圍之內(nèi)。在某些情形中,僅參照有限數(shù)目的網(wǎng)絡(luò)元件對給定的流程集的一個或多個功能進(jìn)行描述更加容易。應(yīng)當(dāng)理解,如附圖中所示,系統(tǒng)10及其教導(dǎo)易于擴(kuò)展,并且能夠適應(yīng)大量部件以及更復(fù)雜/精確的部署和配置。因此,所提供的示例不應(yīng)該限制該系統(tǒng)的廣泛教導(dǎo)和范圍可能被應(yīng)用到大量其他架構(gòu)。
[0075]注意到參照前述的圖所描述的操作和步驟僅示出可以由該系統(tǒng)或在該系統(tǒng)內(nèi)運(yùn)行的可能場景中的一些場景也很重要。這些操作中的一些操作可以根據(jù)需要被刪除或者被移動,或者在不背離所討論的概念的范圍的情況下這些步驟可以被大幅修改或改變。此外,這些操作的時序可以被大幅更改并且仍能獲得本公開所教導(dǎo)的結(jié)果。前述的操作流程是出于示例和討論的目的進(jìn)行提供。該系統(tǒng)提供了大量的靈活性,在于在不背離所討論的概念的教導(dǎo)的情況下可以提供任意合適的安排、時間表、配置和時序機(jī)制。
[0076]在前面的描述中,出于解釋的目的,提出了大量具體細(xì)節(jié),以便提供對所公開的實(shí)施例的徹底理解。然而,所公開的實(shí)施例可以無需這些具體細(xì)節(jié)而被實(shí)施,這對于本領(lǐng)域的技術(shù)人員而言是顯而易見的。在其他實(shí)例中,結(jié)構(gòu)和設(shè)備以框圖的形式被示出,以避免模糊所公開的實(shí)施例。此外,說明書中對“一個實(shí)施例”、“示例實(shí)施例”、“實(shí)施例”、“另一實(shí)施例”、“一些實(shí)施例”、“各個實(shí)施例”、“其他實(shí)施例”、“替代實(shí)施例”等的參考旨在于說明:與這些實(shí)施例相關(guān)聯(lián)的任意特征(例如,元件、結(jié)構(gòu)、模塊、部件、步驟、操作、特點(diǎn)等)被包括在本公開的一個或多個實(shí)施例中。
[0077]對于本領(lǐng)域的技術(shù)人員而言,大量其他的改變、替代、變更、更改和修改可以被查明,并且旨在于本公開包括落入所附權(quán)利要求的范圍之內(nèi)的所有這些改變、替代、變更、更改和修改。
【權(quán)利要求】
1.一種方法,包括: 從在網(wǎng)絡(luò)環(huán)境中接收到的消息的一個或多個可變數(shù)據(jù)創(chuàng)建第一搜索關(guān)鍵字; 從所述消息的一個或多個恒定數(shù)據(jù)創(chuàng)建第二搜索關(guān)鍵字; 基于所述第一搜索關(guān)鍵字來識別第一數(shù)據(jù)庫中的第一數(shù)據(jù)庫條目; 基于所述第二搜索關(guān)鍵字來識別第二數(shù)據(jù)庫中的第二數(shù)據(jù)庫條目;以及當(dāng)所述第一數(shù)據(jù)庫條目與所述第二數(shù)據(jù)庫條目之間的相關(guān)性被識別出來時,執(zhí)行與所述第一數(shù)據(jù)庫條目相關(guān)聯(lián)的動作。
2.如權(quán)利要求1所述的方法,其中,當(dāng)所述消息被轉(zhuǎn)發(fā)時,所述一個或多個可變數(shù)據(jù)被修改,而所述一個或多個恒定數(shù)據(jù)不被修改。
3.如權(quán)利要求2所述的方法,其中,所述第一搜索關(guān)鍵字在轉(zhuǎn)發(fā)所述消息之前被創(chuàng)建。
4.如權(quán)利要求2所述的方法,其中,所述第一搜索關(guān)鍵字在轉(zhuǎn)發(fā)所述消息之后被創(chuàng)建。
5.如權(quán)利要求1所述的方法,其中,當(dāng)所述第一數(shù)據(jù)庫中的所述第一數(shù)據(jù)庫條目的偏移與所述第二數(shù)據(jù)庫中的所述第二數(shù)據(jù)庫條目的偏移相同時,所述相關(guān)性被識別出來。
6.如權(quán)利要求1所述的方法, 其中,識別所述第一數(shù)據(jù)庫條目包括: 生成可變匹配向量;以及 在所述可變匹配向量中設(shè)置表示所述第一數(shù)據(jù)庫條目的位, 其中,識別所述第二數(shù)據(jù)庫條目包括: 生成恒定匹配向量;以及 在所述恒定匹配向量中設(shè)置表示所述第二數(shù)據(jù)庫條目的位。
7.如權(quán)利要求6所述的方法,其中,所述相關(guān)性是通過將所述可變匹配向量與所述恒定匹配向量進(jìn)行比較被識別出來的。
8.如權(quán)利要求7所述的方法,其中,所述比較是按位邏輯AND操作。
9.如權(quán)利要求3所述的方法,還包括: 從所述消息的所述一個或多個可變數(shù)據(jù)創(chuàng)建第三搜索關(guān)鍵字; 基于所述第三搜索關(guān)鍵字來識別第三數(shù)據(jù)庫中的第三數(shù)據(jù)庫條目;以及當(dāng)所述第三數(shù)據(jù)庫條目與所述第二數(shù)據(jù)庫條目之間的相關(guān)性被識別出來時,采取與所述第三數(shù)據(jù)庫條目相關(guān)聯(lián)的動作。
10.如權(quán)利要求1所述的方法,其中,所述第一數(shù)據(jù)庫條目 包括有效字段和可變字段;并且 在所述第一數(shù)據(jù)庫條目的所述有效字段未被設(shè)置時未被識別出來。
11.如權(quán)利要求1所述的方法,還包括: 基于所述第一搜索關(guān)鍵字來識別所述第一數(shù)據(jù)庫中的一個或多個其他第一數(shù)據(jù)庫條目; 基于所述第二搜索關(guān)鍵字來識別所述第二數(shù)據(jù)庫中的一個或多個其他第二數(shù)據(jù)庫條目; 分別識別所述一個或多個其他第一數(shù)據(jù)庫條目與所述一個或多個其他第二數(shù)據(jù)庫條目之間的一個或多個其他相關(guān)性;以及 確定與所述相關(guān)性相關(guān)聯(lián)的規(guī)則在優(yōu)先級上高于與所述一個或多個其他相關(guān)性相關(guān)聯(lián)的一個或多個其他規(guī)則。
12.—種被編碼在一個或多個非暫態(tài)計算機(jī)可讀介質(zhì)中的邏輯,所述邏輯包括用于運(yùn)行的代碼,并且所述代碼在被處理器運(yùn)行時可操作來執(zhí)行如下處理: 從在網(wǎng)絡(luò)環(huán)境中接收到的消息的一個或多個可變數(shù)據(jù)創(chuàng)建第一搜索關(guān)鍵字; 從所述消息的一個或多個恒定數(shù)據(jù)創(chuàng)建第二搜索關(guān)鍵字; 基于所述第一搜索關(guān)鍵字來識別第一數(shù)據(jù)庫中的第一數(shù)據(jù)庫條目; 基于所述第二搜索關(guān)鍵字來識別第二數(shù)據(jù)庫中的第二數(shù)據(jù)庫條目;以及當(dāng)所述第一數(shù)據(jù)庫條目與所述第二數(shù)據(jù)庫條目之間的相關(guān)性被識別出來時,執(zhí)行與所述第一數(shù)據(jù)庫條目相關(guān)聯(lián)的動作。
13.如權(quán)利要求12所述的邏輯,其中,所述用于運(yùn)行的代碼在被處理器運(yùn)行時可操作來進(jìn)一步執(zhí)行如下處理: 從所述消息的所述一個或多個可變數(shù)據(jù)創(chuàng)建第三搜索關(guān)鍵字; 基于所述第三搜索關(guān)鍵字來識別第三數(shù)據(jù)庫中的第三數(shù)據(jù)庫條目;以及當(dāng)所述第三數(shù)據(jù)庫條目與所述第二數(shù)據(jù)庫條目之間的相關(guān)性被識別出來時,采取與所述第三數(shù)據(jù)庫條目相關(guān)聯(lián)的動作。
14.一種裝置,包括: 存儲器元件,所述存儲器元件被配置為存儲數(shù)據(jù); 處理器,所述處理器能夠操作以運(yùn)行與所述數(shù)據(jù)相關(guān)聯(lián)的指令;以及第一訪問控制列表(ACL)模塊,所述第一 ACL模塊被配置為與所述存儲器元件和所述處理器相接口,其中,所述裝置被配置為: 從在網(wǎng)絡(luò)環(huán)境中接收到的消息的一個或多個可變數(shù)據(jù)創(chuàng)建第一搜索關(guān)鍵字; 從所述消息的一個或多個恒定數(shù)據(jù)創(chuàng)建第二搜索關(guān)鍵字; 基于所述第一搜索關(guān)鍵字來識別第一數(shù)據(jù)庫中的第一數(shù)據(jù)庫條目; 基于所述第二搜索關(guān)鍵字來識別第二數(shù)據(jù)庫中的第二數(shù)據(jù)庫條目;以及當(dāng)所述第一數(shù)據(jù)庫條目與所述第二數(shù)據(jù)庫條目之間的相關(guān)性被識別出來時,執(zhí)行與所述第一數(shù)據(jù)庫條目相關(guān)聯(lián)的動作。
15.如權(quán)利要求14所述的裝置,其中,當(dāng)所述消息被轉(zhuǎn)發(fā)時,所述一個或多個可變數(shù)據(jù)被修改,而所述一個或多個恒定數(shù)據(jù)不被修改。
16.如權(quán)利要求15所述的裝置,其中,所述第一搜索關(guān)鍵字在轉(zhuǎn)發(fā)所述消息之前被創(chuàng)建。
17.如權(quán)利要求15所述的裝置,其中,所述第一搜索關(guān)鍵字在轉(zhuǎn)發(fā)所述消息之后被創(chuàng)建。
18.如權(quán)利要求14所述的裝置,其中,當(dāng)所述第一數(shù)據(jù)庫中的所述第一數(shù)據(jù)庫條目的偏移與所述第二數(shù)據(jù)庫中的所述第二數(shù)據(jù)庫條目的偏移相同時,所述相關(guān)性被識別出來。
19.如權(quán)利要求14所述的裝置,其中,所述裝置還被配置為: 從所述消息的所述一個或多個可變數(shù)據(jù)創(chuàng)建第三搜索關(guān)鍵字; 基于所述第三搜索關(guān)鍵字來識別第三數(shù)據(jù)庫中的第三數(shù)據(jù)庫條目;以及當(dāng)所述第三數(shù)據(jù)庫條目與所述第二數(shù)據(jù)庫條目之間的相關(guān)性被識別出來時,執(zhí)行與所述第三數(shù)據(jù)庫條目相關(guān)聯(lián)的動作。
20.如權(quán)利要求14所述的裝置,其中,所述第一數(shù)據(jù)庫條目包括有效字段和可變字段;并且在所述第一數(shù)據(jù)庫條目的所述有效字段未被設(shè)置時未被識別出來。
【文檔編號】H04L29/06GK104509063SQ201380039760
【公開日】2015年4月8日 申請日期:2013年7月9日 優(yōu)先權(quán)日:2012年7月27日
【發(fā)明者】李明哲, 艾勒山多·弗里, 普圖·哈利·撒巴吉奧, 黃之聰 申請人:思科技術(shù)公司