用于處理有限自動(dòng)機(jī)的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明的各實(shí)施例涉及用于處理有限自動(dòng)機(jī)的方法和裝置。
【背景技術(shù)】
[0002]開放系統(tǒng)互連(OSI)參考模型定義了用于通過傳輸介質(zhì)進(jìn)行通信的7個(gè)網(wǎng)絡(luò)協(xié)議層(L1-L7)。上層(L4-L7)表示端到端通信并且下層(L1-L3)表示本地通信。
[0003]聯(lián)網(wǎng)應(yīng)用感知系統(tǒng)需要處理、過濾和切換L3到L7網(wǎng)絡(luò)協(xié)議層的范圍,例如,L7網(wǎng)絡(luò)協(xié)議層諸如超文本傳輸協(xié)議(HTTP)和簡單郵件傳輸協(xié)議(SMTP),以及L4網(wǎng)絡(luò)協(xié)議層諸如傳輸控制協(xié)議(TCP)。除了處理網(wǎng)絡(luò)協(xié)議層以外,聯(lián)網(wǎng)應(yīng)用感知系統(tǒng)需要以線速(即,在其上傳輸和接收數(shù)據(jù)的網(wǎng)絡(luò)的物理介質(zhì)上的數(shù)據(jù)傳輸速率)通過L4-L7網(wǎng)絡(luò)協(xié)議層來同時(shí)通過基于訪問和內(nèi)容的安全性來保護(hù)這些協(xié)議,這些協(xié)議層包括防火墻、虛擬專用網(wǎng)(VPN)、安全套接字層(SSL)、入侵檢測系統(tǒng)(IDS)、互聯(lián)網(wǎng)協(xié)議安全(IPSec)、防病毒(AV)和防垃圾郵件功能。
[0004]網(wǎng)絡(luò)處理器可用于高吞吐量L2和L3網(wǎng)絡(luò)協(xié)議處理,S卩,執(zhí)行數(shù)據(jù)包處理從而以線速轉(zhuǎn)發(fā)數(shù)據(jù)包。通常,通用處理器用于處理需要更多智能處理的L4-L7網(wǎng)絡(luò)協(xié)議。雖然通用處理器可以執(zhí)行此類計(jì)算密集型任務(wù),但是沒有足夠用于處理數(shù)據(jù)使得其能夠被以線速轉(zhuǎn)發(fā)的性能。
[0005]入侵檢測系統(tǒng)(IDS)應(yīng)用可以檢查流過網(wǎng)絡(luò)的各個(gè)數(shù)據(jù)包的內(nèi)容,并且可以標(biāo)識可能指示試圖侵入或損害系統(tǒng)的可疑圖樣??梢蓤D樣的一個(gè)示例可以是數(shù)據(jù)包中的特定文本串,該特定文本串在100個(gè)字符以后跟隨另一特定文本串。此類內(nèi)容感知聯(lián)網(wǎng)可能要求以線速檢查數(shù)據(jù)包的內(nèi)容。可以對內(nèi)容進(jìn)行分析,以確定是否存在安全漏洞或入侵。
[0006]可以應(yīng)用大量的處于正則表達(dá)式形式的圖樣和規(guī)則(本文中也稱為正則表達(dá)式圖樣)以確保檢測到所有的安全漏洞或入侵。正則表達(dá)式是用于描述字符串中的圖樣的一種緊湊的方法。通過正則表達(dá)式匹配的最簡單的圖樣是單個(gè)字符或字符串,例如/c/或/cat/。正則表達(dá)式還可以包括具有特殊含義的運(yùn)算符和元字符。通過使用元字符,正則表達(dá)式可以用于更復(fù)雜的搜索,如“abc.*xyz.”。即,在“abc”和“xyz”之間的無限量字符的情況下,找到字符串“abc”,之后是字符串“xyz”。另一示例是正則表達(dá)式“abc..abc.*xyz ; ”,即,找到字符串“abc”,后面兩個(gè)字符,然后是字符串“abc”并且在無限量字符后由字符串“xyz”跟隨。通常使用搜索算法(如用于處理正則表達(dá)式的確定有限自動(dòng)機(jī)(DFA)或非確定有限自動(dòng)機(jī)(NFA))執(zhí)行內(nèi)容搜索。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的實(shí)施例提供了一種可以使用至少一個(gè)有限自動(dòng)機(jī)對輸入流搜索至少一個(gè)正則表達(dá)式圖樣的方法、裝置、計(jì)算機(jī)程序產(chǎn)品、和相應(yīng)的系統(tǒng)。
[0008]根據(jù)一個(gè)實(shí)施例,一種方法可以在至少一個(gè)存儲(chǔ)器中存儲(chǔ)包括從至少一個(gè)正則表達(dá)式圖樣生成的多個(gè)節(jié)點(diǎn)的至少一個(gè)有限自動(dòng)機(jī)。該方法包括將該至少一個(gè)存儲(chǔ)器操作地耦合到至少一個(gè)處理器。該至少一個(gè)處理器可以被配置成用于以經(jīng)由操作地耦合到網(wǎng)絡(luò)的一個(gè)硬件網(wǎng)絡(luò)接口接收的一個(gè)輸入流的多個(gè)區(qū)段來行走該至少一個(gè)有限自動(dòng)機(jī),以對該輸入流中的該至少一個(gè)正則表達(dá)式圖樣進(jìn)行匹配。該行走可以包括在該輸入流中的一個(gè)數(shù)據(jù)包的一個(gè)有效載荷之內(nèi)的一個(gè)給定偏移下用一個(gè)區(qū)段并行地行走該至少一個(gè)有限自動(dòng)機(jī)中的一個(gè)給定有限自動(dòng)機(jī)的至少兩個(gè)節(jié)點(diǎn)。該行走可以包括在該至少兩個(gè)節(jié)點(diǎn)中的每一個(gè)節(jié)點(diǎn)處在該有效載荷之內(nèi)的該給定偏移下確定對于該區(qū)段的一個(gè)匹配結(jié)果。該行走可以進(jìn)一步包括基于所確定的每個(gè)匹配結(jié)果的集合來確定用于行走該給定有限自動(dòng)機(jī)的至少一個(gè)后續(xù)行動(dòng)。
[0009]該區(qū)段在此還可以被稱為有效載荷區(qū)段或該有效載荷的一個(gè)區(qū)段。該區(qū)段可以是該有效載荷的一個(gè)正在被檢查的部分,以確定該區(qū)段與正在用該區(qū)段遍歷(即,行走)的該至少一個(gè)有限自動(dòng)機(jī)的一個(gè)節(jié)點(diǎn)所指示的元素的匹配。該區(qū)段可以是值、字符、字母、字節(jié)或其他適合的類型的數(shù)據(jù)。該區(qū)段可以具有任何合適的粒度(如,長度或大小)。例如,該區(qū)段的粒度可以是一個(gè)字節(jié)、多個(gè)字節(jié)、小于一個(gè)字節(jié)、任何數(shù)量的位、或任何其他適合的粒度。該元素的類型可以是字符、字符串、字符類、或任何其他適合的元素類型。
[0010]該至少一個(gè)有限自動(dòng)機(jī)可以包括一個(gè)確定型有限自動(dòng)機(jī)(DFA)和至少一個(gè)非確定型有限自動(dòng)機(jī)(NFA)。至少一個(gè)有限自動(dòng)機(jī)中的該給定的有限自動(dòng)機(jī)可以是該至少一個(gè)NFA中的一個(gè)給定的NFA。
[0011]在該至少兩個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處的該確定可以是在該至少一個(gè)處理器的同一個(gè)處理周期之內(nèi)。
[0012]該至少兩個(gè)節(jié)點(diǎn)可以包括一個(gè)元素節(jié)點(diǎn)和一個(gè)并行節(jié)點(diǎn),該元素節(jié)點(diǎn)可以被配置成用于匹配在該有效載荷中的一個(gè)第一元素的單個(gè)實(shí)例。該第一元素可以是一個(gè)第一字符或第一字符類。該并行節(jié)點(diǎn)可以是如下各項(xiàng)之一:(i)被配置成用于匹配在該有效載荷中的一個(gè)第二元素的可變數(shù)目的連續(xù)實(shí)例的一個(gè)可變計(jì)數(shù)節(jié)點(diǎn),或者(ii) 一個(gè)投機(jī)節(jié)點(diǎn)。該投機(jī)節(jié)點(diǎn)可以被配置成用于基于從一個(gè)分離節(jié)點(diǎn)或到改分離節(jié)點(diǎn)的轉(zhuǎn)換弧線來匹配在該有效載荷中的一個(gè)第二元素的可變數(shù)目的連續(xù)實(shí)例。該第二元素可以是一個(gè)第二字符或第二字符類。
[0013]該可變計(jì)數(shù)節(jié)點(diǎn)可以是該分離節(jié)點(diǎn)和該投機(jī)節(jié)點(diǎn)的集合。該分離節(jié)點(diǎn)可以被配置成用于獨(dú)立于該有效載荷并且不從該有效載荷進(jìn)行消耗(即,處理)而將該行走經(jīng)由ε轉(zhuǎn)換弧線前進(jìn)到該元素節(jié)點(diǎn)和該投機(jī)節(jié)點(diǎn)并且用在該給定偏移下的該區(qū)段并行地行走該元素和投機(jī)節(jié)點(diǎn)。該投機(jī)節(jié)點(diǎn)可以被配置成用于將該行走前進(jìn)回到該分離節(jié)點(diǎn),并且基于在該投機(jī)節(jié)點(diǎn)處與該第二元素的肯定匹配,通過更新該給定偏移來消耗該區(qū)段。
[0014]該給定的有限自動(dòng)機(jī)可以是NFA圖形,該NFA圖形可以包括一個(gè)從該可變計(jì)數(shù)節(jié)點(diǎn)到該元素節(jié)點(diǎn)的轉(zhuǎn)換弧線。在NFA圖形中,該可變計(jì)數(shù)節(jié)點(diǎn)可以在該元素節(jié)點(diǎn)之前。
[0015]該可變計(jì)數(shù)節(jié)點(diǎn)可以是一個(gè)與或直接或間接地標(biāo)識該元素節(jié)點(diǎn)的元數(shù)據(jù)相關(guān)聯(lián)的懶惰型節(jié)點(diǎn),以基于在該有效載荷中的該第二元素的該可變數(shù)目的連續(xù)實(shí)例中的單個(gè)匹配實(shí)例使該行走前進(jìn)到該元素節(jié)點(diǎn)。
[0016]與該可變計(jì)數(shù)懶惰節(jié)點(diǎn)相關(guān)聯(lián)的該元數(shù)據(jù)可以包括一個(gè)用于追蹤在該有效載荷中匹配的該第二元素的連續(xù)實(shí)例總數(shù)的計(jì)數(shù),以允許該總數(shù)與該可變數(shù)目的比較。
[0017]基于該并行節(jié)點(diǎn)為該投機(jī)節(jié)點(diǎn),該給定的有限自動(dòng)機(jī)可以包括該多個(gè)節(jié)點(diǎn)中的一個(gè)分離節(jié)點(diǎn)。該元素節(jié)點(diǎn)和該投機(jī)節(jié)點(diǎn)可以基于與該分離節(jié)點(diǎn)相關(guān)聯(lián)的元數(shù)據(jù)來標(biāo)識。該分離節(jié)點(diǎn)可以被配置成用于獨(dú)立于該有效載荷并且不從該有效載荷進(jìn)行消耗而將該行走經(jīng)由ε轉(zhuǎn)換弧線前進(jìn)到該元素節(jié)點(diǎn)和該投機(jī)節(jié)點(diǎn),并且基于包括在與該分離節(jié)點(diǎn)相關(guān)聯(lián)的元數(shù)據(jù)中的一個(gè)投機(jī)處理指示符,用在該給定偏移下的該區(qū)段并行地行走該元素和投機(jī)節(jié)點(diǎn)。
[0018]該方法可以基于在與該分離節(jié)點(diǎn)相關(guān)聯(lián)的該元數(shù)據(jù)中不包括該投機(jī)處理指示符而不并行地行走該元素和投機(jī)節(jié)點(diǎn)。
[0019]在該給定偏移下用該區(qū)段行走該投機(jī)節(jié)點(diǎn)可以是基于在該元素節(jié)點(diǎn)處在該給定偏移下對于該區(qū)段的一次。
[0020]在該給定偏移下用該區(qū)段行走該投機(jī)節(jié)點(diǎn)可以是進(jìn)一步基于存儲(chǔ)和取回未探索的上下文。該未探索的上下文可以或直接或間接地標(biāo)識該投機(jī)節(jié)點(diǎn)和該給定偏移。
[0021]存儲(chǔ)該未探索的上下文可以包括在一個(gè)堆棧條目中存儲(chǔ)該未探索的上下文并且將該堆棧條目推送到一個(gè)堆棧上。取回該未探索的上下文可以包括從該堆棧彈出該堆棧條目。
[0022]該投機(jī)節(jié)點(diǎn)可以被配置成用于基于在該投機(jī)節(jié)點(diǎn)處與該第二元素的肯定匹配將該行走前進(jìn)到該分離節(jié)點(diǎn)。
[0023]基于該集合包括在并行行走的該至少兩個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處的一個(gè)否定匹配結(jié)果,該至少一個(gè)后續(xù)行動(dòng)可以包括在并行行走的該至少兩個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處不繼續(xù)行走一個(gè)給定的路徑。該給定的路徑可以部分地匹配在該給定的有限自動(dòng)機(jī)中的該至少一個(gè)正則表達(dá)式圖樣。該方法可以基于感測未探索的上下文用在該有效載荷內(nèi)的一個(gè)下一給定偏移處的一個(gè)下一區(qū)段來行走該多個(gè)節(jié)點(diǎn)中的一個(gè)下一節(jié)點(diǎn)。該方法可以基于沒有感測到該未探索的上下文而終止該行走。
[0024]該未探索的上下文可以或直接或間接地標(biāo)識該下一節(jié)點(diǎn)和該下一給定偏移,以便用該下一區(qū)段在該下一節(jié)點(diǎn)處沿另一個(gè)路徑前進(jìn)該行走,該路徑部分匹配該給定的有限自動(dòng)機(jī)中的該至少一個(gè)正則表達(dá)式圖樣。
[0025]感測該未探索的上下文可以包括確定一個(gè)堆棧的非空狀態(tài)并且從該堆棧彈出一個(gè)堆棧條目。該堆棧條目可以包括該未探索的上下文并可以是一個(gè)最近推送到該堆棧上的條目。
[0026]該至少兩個(gè)節(jié)點(diǎn)可以包括一個(gè)元素節(jié)點(diǎn)和一個(gè)并行節(jié)點(diǎn)?;谠摷习ㄔ谠撛毓?jié)點(diǎn)對于該區(qū)段的一個(gè)肯定匹配結(jié)果和在該并行節(jié)點(diǎn)對于該區(qū)段的該肯定匹配結(jié)果或一個(gè)否定匹配結(jié)果,該至少一個(gè)后續(xù)行動(dòng)包括更新該給定偏移以產(chǎn)生一個(gè)下一偏移,基于與該元素節(jié)點(diǎn)相關(guān)聯(lián)的元數(shù)據(jù)來標(biāo)識該多個(gè)節(jié)點(diǎn)中的一個(gè)下一節(jié)點(diǎn),在該有效載荷內(nèi)的該下一偏移處用一個(gè)下一區(qū)段來行走所標(biāo)識的該下一節(jié)點(diǎn),確定在所標(biāo)識的該下一節(jié)點(diǎn)處對于該下一區(qū)段的一個(gè)下一匹配結(jié)果,以及基于所確定的該下一匹配結(jié)果來確定用于行走該給定的有限自動(dòng)機(jī)的至少一個(gè)下一后續(xù)行動(dòng)。
[0027]基于在該并行節(jié)點(diǎn)處對于該區(qū)段的該肯定匹配結(jié)果,該至少一個(gè)后續(xù)行動(dòng)可以進(jìn)一步包括在一個(gè)堆棧條目中存儲(chǔ)一個(gè)未探索的上下文并且將該堆棧條目推送到一個(gè)堆棧上,該未探索的上下文或直接或間接地標(biāo)識該并行節(jié)點(diǎn)和該給定偏移。
[0028]基于該下一匹配結(jié)果為該否定匹配結(jié)果,該至少一個(gè)下一后續(xù)行動(dòng)可以包括基于感測未探索的上下文用在該有效載荷內(nèi)的該給定偏移處的該區(qū)段行走該并行節(jié)點(diǎn),并且基于未感測該未探索的上下文來終止該行走。
[0029]感測該未探索的上下文可以包括確定一個(gè)堆棧的非空狀態(tài)并且從該堆棧彈出一個(gè)堆棧條目。該堆棧條目可以包括該未探索的上下文并可以是一個(gè)最近推送到該堆棧上的條目。
[0030]更新該給定偏移以產(chǎn)生該下一偏移可以包括基于該行走的方向?yàn)橐粋€(gè)正向方向而增大該給定偏移并且基于該行走的方向?yàn)橐粋€(gè)反向方向而減小該給定偏移。
[0031]該至少兩個(gè)被并行行走的節(jié)點(diǎn)可以包括一個(gè)元素節(jié)點(diǎn)和一個(gè)并行節(jié)點(diǎn)?;谠摷习ㄔ谠撛毓?jié)點(diǎn)處對于該區(qū)段的一個(gè)否定匹配結(jié)果和在該并行節(jié)點(diǎn)處對于該區(qū)段的一個(gè)肯定匹配結(jié)果,該至少一個(gè)后續(xù)行動(dòng)可以進(jìn)一步包括更新該給定偏移以產(chǎn)生一個(gè)下一偏移并且用在該下一偏移處的一個(gè)下一區(qū)段并行地行走該元素節(jié)點(diǎn)和該并行節(jié)點(diǎn)。
[0032]更新該給定偏移以產(chǎn)生改下一偏移可以包括基于該行走的方向?yàn)橐粋€(gè)正向方向而增大該給定偏移并且基于該行走的方向?yàn)橐粋€(gè)反向方向而減小該給定偏移。
[0033]并行行走該至少兩個(gè)節(jié)點(diǎn)可以優(yōu)化該匹配的性能,這是通過免除存儲(chǔ)和取回上下文(如果不并行行走該至少兩個(gè)節(jié)點(diǎn)時(shí)則需要),以便基于在該給定偏移處的該區(qū)段的一個(gè)否定匹配結(jié)果,用在該給定偏移處的該區(qū)段使該行走從該至少兩個(gè)節(jié)點(diǎn)中的一個(gè)第一節(jié)點(diǎn)前進(jìn)到該至少兩個(gè)節(jié)點(diǎn)中的一個(gè)第二節(jié)點(diǎn)。
[0034]在此披露的另一個(gè)不例實(shí)施例包括一種對應(yīng)于與在此披露的方法實(shí)施例相一致的操作的裝置。
[0035]另外,再另一個(gè)示例實(shí)施例可以包括一種非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有一個(gè)指令序列,該指令序列當(dāng)被處理器加載并執(zhí)行時(shí)致使處理器執(zhí)行在此披露的方法。
【附圖說明】
[0036]根據(jù)本發(fā)明的示例性實(shí)施例的以下更具體的說明,上述內(nèi)容將是明顯的,如在這些附圖中展示的,其中貫穿這些不同的視圖的相同的參照字符是指相同的部分。附圖不一定按比例,而是著重于展示本發(fā)明的實(shí)施例。
[0037]圖1是一個(gè)安全裝置的實(shí)施例的框圖,其中,可以實(shí)現(xiàn)在此披露的實(shí)施例。
[0038]圖2A-G是示例NFA和DFA圖形以及展示圖爆(graph explos1n)概念的一個(gè)表。
[0039]圖3是一個(gè)安全裝置的實(shí)施例的另一個(gè)框圖,其中,可以實(shí)現(xiàn)在此披露的實(shí)施例。
[0040]圖4是一個(gè)超非確定型自動(dòng)機(jī)(HNA)協(xié)處理器的一個(gè)環(huán)境的不例實(shí)施例的框圖。
[0041]圖5A是一個(gè)非確定型有限自動(dòng)機(jī)(NFA)圖的不例實(shí)施例的框圖,該框圖可以由一個(gè)行走器(walker)使用以匹配在一個(gè)輸入流中的正則表達(dá)式圖樣。
[0042]圖5B是用于以一種非投機(jī)(lazy non-speculative)方式以一個(gè)有效載荷行走圖5A的NFA圖形的處理周期的示例實(shí)施例的一個(gè)表。
[0043]圖5C是投機(jī)型處理規(guī)則的一個(gè)表的不例實(shí)施例的框圖。
[0044]圖是用于以一種投機(jī)方式以該有效載荷遍歷圖5A的NFA圖形的處理周期的示例實(shí)施例的一個(gè)表。
[0045]圖6A是一個(gè)NFA圖形的另一個(gè)示例實(shí)施例的框圖,該框圖可以由一個(gè)行走器使用以匹配在一個(gè)輸入流中的正則表達(dá)式圖樣。
[0046]圖6B是用于以一種非投機(jī)方式以該有效載荷遍歷圖6A的NFA圖形的處理周期的不例實(shí)施例的一個(gè)表。
[0047]圖6C是用于以該有效載荷遍歷圖6A的NFA圖形的處理周期的另一個(gè)示例實(shí)施例的一個(gè)表。
[0048]圖6D是可以用圖6A的NFA圖形遍歷的另個(gè)有效載荷的框圖。
[0049]圖6E是用于以一種非投機(jī)方式以圖6D的有效載荷遍歷圖6A的NFA圖形的處理周期的示例實(shí)施例的一個(gè)表。
[0050]圖6F是用于以一種投機(jī)方式以圖6D的有效載荷遍歷圖6A的NFA圖形的處理周期的另一個(gè)示例實(shí)施例的一個(gè)表。
[0051]圖7是一種方法的示例實(shí)施例的一個(gè)流程圖,該方法可以被實(shí)現(xiàn)在至少一個(gè)處理器中,該處理器與操作地耦合到網(wǎng)絡(luò)的一個(gè)安全裝置中的至少一個(gè)存儲(chǔ)器操作地耦合。
[0052]圖8是任選地在此處披露的實(shí)施例內(nèi)的一臺計(jì)算機(jī)的示例內(nèi)部結(jié)構(gòu)的一個(gè)框圖。
【具體實(shí)施方式】
[0053]在詳細(xì)描述本發(fā)明的示例實(shí)施例之前,直接在下面描述了一種示例安全應(yīng)用以幫助讀者理解在此披露的本發(fā)明的特征,這些實(shí)施例可以實(shí)現(xiàn)在該安全應(yīng)用中并且典型的處理使用確定型有限自動(dòng)機(jī)(DFA)和非確定型有限自動(dòng)機(jī)(NFA)。
[0054]圖1是一個(gè)安全裝置102的實(shí)施例的框圖,其中,可以實(shí)現(xiàn)在此披露的實(shí)施例。安全裝置102可以包括一個(gè)網(wǎng)絡(luò)服務(wù)處理器100。安全裝置102可以是一個(gè)單獨(dú)的系統(tǒng),該系統(tǒng)可以將在一個(gè)網(wǎng)絡(luò)接口 103a接收的包切換到另一個(gè)網(wǎng)絡(luò)接口 103b并且可以在轉(zhuǎn)發(fā)這些包之前在所接收的數(shù)據(jù)包上執(zhí)行多個(gè)安全功能。例如,安全裝置102可以用于對數(shù)據(jù)包1la執(zhí)行安全處理,這些數(shù)據(jù)包可以是在一個(gè)廣域網(wǎng)(WAN) 105a或者任何其他合適的網(wǎng)絡(luò)上接收的,然后將這些處理過的數(shù)據(jù)包1lb轉(zhuǎn)發(fā)到一個(gè)局域網(wǎng)(LAN) 105b或者任何其他合適的網(wǎng)絡(luò)。
[0055]網(wǎng)絡(luò)服務(wù)處理器100可以被配置成用于處理封裝在所接收的數(shù)據(jù)包中的開放系統(tǒng)互連(OSI)網(wǎng)絡(luò)L2-L7層協(xié)議。如本領(lǐng)域技術(shù)人員公知的,OSI參考模型定義了七個(gè)網(wǎng)絡(luò)協(xié)議層(L1-7)。物理層(LI)表示將設(shè)備連接到傳輸媒介的實(shí)際接口,包括電氣接口和物理接口。數(shù)據(jù)鏈路層(L2)執(zhí)行數(shù)據(jù)組幀。網(wǎng)絡(luò)層(L3)將數(shù)據(jù)格式化為數(shù)據(jù)包。傳輸層(L4)處理端到端的傳輸。會(huì)話層(L5)管理設(shè)備之間的通信,例如,無論通信是半雙工的還是全雙工的。表現(xiàn)層(L6)管理數(shù)據(jù)格式化及表現(xiàn),例如,語法、控制代碼、特殊圖形及字符集。應(yīng)用層(L7)允許多個(gè)用戶之間的通信,例如,文件傳送及電子郵件。
[0056]網(wǎng)絡(luò)服務(wù)處理器100可以為高層網(wǎng)絡(luò)協(xié)議(例如,L4-L7)調(diào)度和排列工作(例如,數(shù)據(jù)包處理操作),并且允許在所接收到的待執(zhí)行的數(shù)據(jù)包中進(jìn)行高層網(wǎng)絡(luò)協(xié)議的處理,以便以線速轉(zhuǎn)發(fā)數(shù)據(jù)包。通過處理這些協(xié)議來以線速轉(zhuǎn)發(fā)這些數(shù)據(jù)包,該網(wǎng)絡(luò)服務(wù)處理器100不會(huì)降低網(wǎng)絡(luò)數(shù)據(jù)傳送速率。網(wǎng)絡(luò)服務(wù)處理器100可以從網(wǎng)絡(luò)接口 103a或103b接收數(shù)據(jù)包,這些接口可以是物理硬件接口并且可以對所接收的數(shù)據(jù)包執(zhí)行L2-L7網(wǎng)絡(luò)協(xié)議處理。網(wǎng)絡(luò)服務(wù)處理器100可以后續(xù)地將處理過的數(shù)據(jù)包1lb通過網(wǎng)絡(luò)接口 103a或103b轉(zhuǎn)發(fā)到網(wǎng)絡(luò)中的另一跳、最終目的地、或通過另一個(gè)總線(未展示)以便由一個(gè)主機(jī)處理器(未展示)進(jìn)行進(jìn)一步處理。網(wǎng)絡(luò)協(xié)議處理可以包括網(wǎng)絡(luò)安全協(xié)議的處理,如防火墻、應(yīng)用防火墻、虛擬專用網(wǎng)(VPN)包括IP層安全協(xié)議(IPSec)和/或安全套接層(SSL)、入侵檢測系統(tǒng)(IDS)和防病毒(AV)。
[0057]網(wǎng)絡(luò)服務(wù)處理器100可以使用多個(gè)處理器(即,內(nèi)核)來提供高應(yīng)用性能。每個(gè)內(nèi)核(未展示)可以專用于執(zhí)行數(shù)據(jù)面或控制面的操作。數(shù)據(jù)面操作可以包括用于轉(zhuǎn)發(fā)數(shù)據(jù)包的數(shù)據(jù)包操作。控制面操作可以包括處理復(fù)雜的高層協(xié)議部分,如IP層安全協(xié)議(IPSec)、傳輸控制協(xié)議(TCP)