TW200415469A - Hardware-based packet filtering accelerator - Google Patents

Hardware-based packet filtering accelerator Download PDF

Info

Publication number
TW200415469A
TW200415469A TW092122897A TW92122897A TW200415469A TW 200415469 A TW200415469 A TW 200415469A TW 092122897 A TW092122897 A TW 092122897A TW 92122897 A TW92122897 A TW 92122897A TW 200415469 A TW200415469 A TW 200415469A
Authority
TW
Taiwan
Prior art keywords
processor
packet
accelerator
data
memory
Prior art date
Application number
TW092122897A
Other languages
English (en)
Inventor
George Cox
Jeff Courington
Original Assignee
Koninkl Philips Electronics Nv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninkl Philips Electronics Nv filed Critical Koninkl Philips Electronics Nv
Publication of TW200415469A publication Critical patent/TW200415469A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Description

200415469 玖、發明說明: 【發明所屬之技術領域】 本申請案係關於題為”嵌入式資料集處理”之美國專利中 請案第10/227,3 68號(檔案案號703 128),其同本申請案共同 提出,且其内容以引用方式併入本文。 本發明大體上係關於資料處理,且更特定言之,係關於 一種用於篩選資料封包之硬體加速器。 【先前技術】 網際網路提供了至各種基於網際網路之服務及資訊源之 存取。對於諸多使用者而言,在工作中及家中存取網際網 路功能為一關鍵工具。然而,在將私人網路或工作站連接 至網際網路過程中存在多個障礙。例如,除非充分保護, 否則連線至網際網路之連接會使用者的機密資訊曝露給世 界各地的不法入侵者。業已使用防火牆來實施網際網路安 全’以防止個人電腦及企業網路受到經由網際網路連接之 敵意攻擊。典型防火牆藉由在私人網路介面篩選傳入及傳 出之資料封包,以拒絕潛在有害通信。 通常會以根據一貝料通信協定定義之一個或多個資料集 或資料封包的形式在網際網路上傳輸資訊。傳輸控制協定/ 網際網路協定(TCP/IP)為用於網際網路應用之一套通信協定 之實例。TCP為用於在兩個網路連接型電腦之間建立連接以 便交換資料流之協定。TCP亦建立一用於確保資料傳遞並確 保以正確順序傳送資訊封包之方法。網際網路協定(IP)規定 介於網路連接型電腦之間所傳輸的資料封包格式(亦稱為資 87587 200415469 料包(Datagram))。ip亦規定用於將資料封包自一電腦傳輸 至另一電腦之定址方案。 一有效類型之防火牆使用封包篩選來保護一私人網路或 電腦之安全性。可將防火牆實施為硬體裝置,或實施為軟 體應用程式。在任一狀況下,均使防火牆位於連接網路之 間。例如,可在一位於一私人網路與網際網路之間的介面 裝置中實施防火牆,以防止該私人網路受到經由網際網路 連接之侵入。 封包篩選防火牆使用一封包蒒選程式來檢查進入或離開 该網路之每一 Ip封包或資料包。依據使用者定義之一組規 則集接受或拒絕封包。封包篩選程式攔截每一資料封包並 且在將封包轉遞至其目的地之前,先比較每一封包與該組 規則集。可將比較實施為一資料表查詢應用程式,用於比 較各種IP封包標頭攔位與查詢表中的值。比較封包標頭欄 位與且珣表中的值,直至在該查詢表中發現一匹配項或直 至未發現匹配項並選擇-預設規則集。通f,該封包筛選 程式所執行之比較涉及源位址、源璋、目的地位址、目的 地埠以及傳輸協定。 對源位址及目的地位址之篩選准予控制誰可與内部網路 通信。藉由該封包筛選程式可篩除來自不符合要求網路之 所有通信n方面’會運用源埠及目的地埠來區別網 路服務。藉由篩除一埠, ^ 犯巴外°卩世界存取該私人網路 上提供之服務。基於該封包盥準則 长 、卞則之比較,可將一封包丢 茉、轉遞至目的地,或在將該封包丟本 丁 ζ Τ匕云爪又同時向該封包源 87587 200415469 發送一訊息。 儘管利用封包篩選技術之防火牆為私人電腦網路提供一 定級別之安全性,但由於迫使進入及來自一私人網路之所 有資料通信量均通過該防火牆,因而形成一通信量瓶頸。 業界需要更快且更有效的實施封包篩選之方法。 【發明内容】 本發明針對一種用於加速網路系統資料通信之方法及系 統,且業已發現其特別適用於提供高速資料封包篩選。 根據本發明一實施例,一種加速器處理器根據一組規則 集將資料封包分類,並將分類結果傳回至一主處理器。該 加速器處理器以與該主處理器並行方式運作,且經由一並 行匯流排與該主處理器通信。將該主處理器與該加速器處 理器配置為一積體電路。該加速器處理器包括一匯流排介 面’該匯流排介面耦接至該並行匯流排,並且該匯流排介 面被調整成傳送來自該主處理器之資料封包之一部分以及 將貝料封包之分類結果傳回至該主處理器。該加速器處理 為還包括一1己憶體,該記憶體耦接至該匯流排介面,並且 邊王處理器可存取該記憶體。該記憶體被調整成儲存一自 待套用至該等資料封包之規則集轉換之機器碼指令之程 式 ^ €丨思體亦儲存由該加速器處理器確定之分類結果。 琢加速器處理器還包括封包剖析器電路,該封包剖析器電 路♦禺接至4匯排介面並被調整成將自該主處理器傳輸之 貝料封包邵分剖析為相關資料單元,並將該等相關資料單 兀儲存於孩加速器處理器内的記憶體中。將該加速器處理 87587 200415469 〈、包分析電路耦接至該記憶體單元並將其配置成執行 万、代表待套用至該等資料封包之規則集之機器碼指令程 1% 、、 為等機洛碼指令操縱自該資料封包部分剖析之該等相 關資料單元,以將該等封包分類。 ^本I明另一貫施例中,一種用於根據一組規則集將資 =封包刀類义方法包括將一直接自該組規則集轉換之機器 才曰令裎式儲存於一加速器處理器之記憶體中。將一資料封 ★、:個α卩刀自一主處理态傳輸至該加速器處理器。將該 等資料封包部分剖析為相關資料單元,並將該等相關资料 單元㈣於該加速器處理器之記憶體中。藉由在該加速器 處理為中執行該等機器碼指令以將資料封包分類;該等機 ,碼指令操縱料相關資料單元。將該分騎果自該加速 备處理器傳回至該主處理器。 本發明之再一實施例涉及一種系統,其包括:用於在一 加速器處理器之記憶體單元中儲存自該組規則集轉換之機 益碼指令程式之構件;用於將來自-主處理器之資料封包 又一個或多個部分傳輸至該加 、叩庭垤态爻構件;用於將 貫料封包剖析為相關資料單元 早(麵財相關資料單元儲存 於孩加速.處理器之記憶體單元中之構件;用於 用該等相關資料單元之加速界處 人υ 灵里σσ中執行該等機器碼指 々程式以將每一資料封包分麵 G刀痛艾構件,以及用於將分 果自該加速器處理器傳回至該主處理器之構件。 … 【實施方式】 儘管可對本發明進行各種修 改及形式變化 但業已藉由 87587 -9- 200415469 附圖中〈貫例展不了其細節並且將在下文詳細描述。然而, 吾人應理解’並非意欲將本發明侷限於描述之特纟實施例。 反之’本發明將涵蓋如隨附申請專利範圍所定義的本發明 範圍内的所有修改方案、同等方案及替代方案。 在下文之例證實施例說明内容中,參考了構成本份說明 書-部分之附圖’且其中藉由圖解方式來呈現可實施本發 明之各種實施例。應理解’可利用其他f施例,且可進行 結構及功能性變化而不會背離本發明之範疇。 在一實施例中,一以與一主介面處理器並行方式運作之 硬體基礎加速器被調整成根據一組規則集來剖析、檢查並 分類資料封包。將分類結果傳送至該主處理器以進一步處 理该貝料封包。已發現該並行連接型加速器特別適用於(例 如)篩選IP封包貝料包。可將此處描述之封包篩選程式加速 器有利的用於自主介面處理器卸載封包筛選功能。本發明 提供一種適用於封包篩選應用中資料集分類之彈性硬體加 速器,藉以增強網路介面之高速資料處理作業。 本發明之一態樣包括資料封包剖析電路,其用於將由該 王處理益傳迗至該加速器處理器之資料封包剖析為元件單 元。可將資料封包(例如Ϊ P資料包)之關鍵攔位剖析為相關資 料單元並儲存於記憶體中以便進一步處理。 本發明之另一態樣包括規則引擎邏輯,其用於執行一直 接由一組規則集轉換之機器碼指令序列,以將資料封包分 類。該規則引擎邏輯透過該主處理器可存取之一暫存器將 分類結果提供至該主處理器。因此,本發明提供—種彈性 87587 -10- 200415469 硬體輔助以增強高速資料封包篩選作業。 圖1提供-種根據本發明一實施例之通用網路結構之實 例-可用万』節-個或多個資料處理終端機之間的資料 傳輸。源終端機120可將資料封包(例如IP封包)經由網際網 路140傳輸至-個或多個目的地終端機170、180、190。終 碲機可為膝上型終端機122、桌上型終端機124、無線裝置 126:例如個人數位助理(pDA))’或任何其他類型資料處理 終端機128。可將目的地終端機17〇、ι8〇、ι9〇配置於可透 過介面裝置⑽存取之私人網路15〇中。該介面裝置16〇可為 執行IP封包篩選任務之防火牆,例如,阻擋吾人所不欲的 或潛在不安全的資料封包。 圖2顯示根據本發明一示範實施例之網路介面2〇〇之詳細 方塊圖。介面200可用於經由適當輸入/輸出連接21〇、22〇 將私人終端機或網路連接至網際網路。可將介面電路2 3 〇 之大部分併入耦接於該等1/0連接210、220之間的一個或多 個積體電路中。根據本發明一實施例,該介面電路230包括 經由一系統匯流排260耦接之主處理器24〇及加速器處理器 250。例如,該主處理器24〇與嵌入式處理器可配置於一積 體電路上,使用一處理器核心(例如一 ARM* MIps處理器核 心)實施孫主處理器240,並藉由高速並行匯流排結構將該 主處理芬2 4 0 _接至該加速器處理器2 $ 〇。 將該主處理器240與加速器處理器250配置為以並行方式 運作。在該組態下,主處理器24〇執行大部分的資料處理任 務。加速器250將IP封包剖析及分類任務自主處理器24〇卸 87587 -11 - 200415469 載,藉此使主處理器240不需要負責處理與封包篩選運作相 關的耗時處理内務操作部分。 v亥主處理态240控制該加速器處理器25〇之運作並管理該 加,器處理器25G所套用的封包㈣規則集。例如,該主處 理240可起始及終止使用加速器處理器、將加速器處 理,暫存器複製至該主處理器24Q,或使用替代值來覆窝加 速器處理器暫存器之内容。 π在此處論述之示範組態中,該主處理器24〇將待套用至資 料封包之一組規則集轉換為該加速器處理器可執行之機 器碼。該主處理器240將該規則機器碼下載至一位於該加速 器處理II25G内的指令快取區中。可視f要修改或更新該等 規則集。該規則機器碼可能係以當前資料集為基準,或係 以對當前資料集的預期回覆(例如,打開防火牆中的傳回通 路(return hole))為基準。 可將線型規則集或樹型規則集轉換為機器碼,並由該加 速器處理器25。來套用規則集。亦可運用其他規則集類:。 一規則集可包括〇至許多項規則。一規則通常在(例如)約5至 10個機器碼指令中執行。線型規則集適用於根據一定義之 規則集(其中規則之順序較為關鍵)來分析一資料集。各咳加 速器處理器250根據一線型規則集來分析一資料封包時,則 會從規則清單中的第一項規則開始並且繼續整個規則,以 線型方式比較該資料封包與整個規則清單中的規則,直二 一規則匹配該資料集,或該資料集與規則集之比較結束。 一線型規則集之實例為根據一靜態定義之封包篩選程式規 87587 -12 - 200415469 則集來測試一 ip資料包。 樹型規則集不具預定之順序流程,而是依據(例如)一先前 作業結果來提供大量分支選項。樹型規則集適用於根據大 型規則表(其中規則檢測順序並不重要)來分析一資料集。一 樹型規則集之實例為網路位址轉譯表,其中藉由使用IP位 址、IP埠及協定作為關鍵值,快速搜尋該樹型規則集來確 定適用的規則。 規則集可具有自一特定規則集鏈結之額外規則集。該鏈 結之規則集可為線型或樹型規則集。在某些應用中,規則 集可由前導之多個線型規則及一後接之較大樹型規則集所 組成。 圖3為一實例,其說明使用線型及樹型規則集來分析一資 料封包。首先相對於規則集A來分析一資料封包。若根據規 則集A來分析該資料封包且該資料封包不與規則集a中的任 何規則相匹配,則其後根據規則集B來分析該資料封包。若 在規則集B中未發現匹配規則,則其後根據規則集c來分析 該資料封包。規則集c以與所有資料封包相匹配之絕對規則 結束,且芫成茲分類。該加速器處理器將分類結果傳回至 主處理器。 圖流程圖說明根據本發明一實施例之ιρ封包篩選處理 程序。將待套μ該等資料封包之該組規則轉換為可由該 加速器處理器執行之機器碼指令序列。將該機器碼指令序 列下載至該加速器處理器並儲存於該加速器處理器之指令 快取區中。當—㈣包到達該主處理器時,藉由主處:: 87587 200415469 將該ip封包之標頭傳遞至該加速器裝 夏 以便使用標頭來 將ip封包分類。藉由該加速器處理器之剖析電路將封包標 頭剖析(步驟430)為相關資料單元。將自該封包標頭剖析之 相關資料單元儲存(步驟440)在該加速器處理器之記憶體 中為加速备處理器執行用於操縱該等相關資料單元之機 器碼指令以將封包分類(步驟450)。該封包分類結果被報告 給(步驟460)該主處理器。接著,該主處理器可根據該加速 器處理器確定之分類來處理資料封包。 圖5說明一 IP資料包之結構。可認為所說明之ip封包具有 兩個主要部分區段··封包標頭區段510及資料區段520。將 整個封包(包括標頭510及資料520區段)表示為一資料包。通 常封包標頭510的長度為20位元組。儘管IP封包標頭包括, 選項區段,但可不使用該選項區段。下文的表1中提供了對 ΪΡ封包標頭欄位之解釋。 87587 14- 200415469 表1 版本 現行網際網路協定(IP)版本 標頭長度 指定形成標頭之32-位元字組之數量(通常為5) 服務類型 指示自網路的特定服務品質需求 資料包大小 標頭及資料之組合長度 識別字 一 16-位元數字,用於連同源位址來唯一識別封包。在將 分段之資料包重組期間會使用該ID 旗標 用於控制是否允許路由器將一封包分段並向接收者指示 封包之部分 分段位移 用於執行分段之任一路由器所設定之自該初始發送封包 開始之位元組計數 使用期限 封包可經過之鏈接數量,由大部分路由器使其遞減,用 於防止意外路由迴圈 協定 指示所承載封包之類型(例如ICMP、TCP、UDP等) 標頭總和檢查 2的補數總和檢查碼(Checksum),其由發送者插入並且當 碼 一路由器修改總和檢查碼時更新總和檢查碼 源位址 封包初始發送者的IP位址 目的地位址 封包最終目的地之LP位址 選項 通常不使用此欄位 可將各種傳輸協定(例如TCP及UDP)與該IP封包結合使用 以在兩個網路連接型電腦之間建立連接以便交換資料流。 TCP或UDP標頭通常接在IP標頭之後,分別提供TCP或UDP 協定的特有資訊。傳輸協定標頭(例如TCP或UDP標頭)包括 亦可被該加速器處理器使用以將資料封包分類之額外資 87587 -15 - 200415469 訊0 圖6之方塊圖說明該加速器處理器之結構。該加速器處理 器600提供封包分析規則引擎邏輯61〇,其被實施為一高度 精簡指令集電腦(vRISC),並被連結至硬體基礎資料集剖析 裔邏輯620。將代表用於將資料集分類之該組規則集的機器 碼指令程式儲存於位於該嵌入式處理器記憶體内的指令快 取區630中。該資料集剖析器邏輯62〇剖析該封包標頭並將 該封包標頭之相關資料單元放置於一個或多個暫存器64〇 中。例如,儲存於暫存器中的該等相關資料單元可能是來 自該IP資料包標頭之源位址或目的地位址及來自該TCp標頭 I目的地埠或源埠。該VRISC規則引擎邏輯610執行機器碼 指令程式,以便依據自封包標頭剖析並儲存於暫存器6扣中 的該等已剖析相關資料單元來將該資料封包分類。 該主處理器透過匯流排介面650來存取該資料集剖析器邏 輯620、暫存器64G及指令絲區63()。可透過直接記憶體存 取(dmA)660(例如分散 /聚 t (scatter/gather)DMA)來棋接該 匯流排介Φ,以將資料集資訊自該主處理器(未圖示)饋送至 該資料集剖析器邏輯62〇。 μ圖7提供了該加速器處理器記憶體之記憶體映射說明。廣 義上可將嵌入式處理器記憶體分為堆疊"Ο、矛呈式記憶體 720、16個程式暫存器73〇、2個堆疊控制暫存器7^、4個程 式控制暫存器760及2個記憶體控制暫存器77〇。 可將該加速器處理器堆疊710實施為—位於該記憶體頂部 之下推堆疊。藉由堆叠控制暫存器750來實施堆疊控制。由 87587 * 16 - 200415469 該加速器處理器記憶體中 心、 7佯噓取大值(StackMax)暫存哭 75 1來確疋堆疊之大小。腺他、 ’曰仔口口 將推入孩堆疊上的每一值表 32-位元不帶正負號之值。若 為 、 右所推入又值為一 1 6-位元值,則 將遠所推入的堆疊項之悬古 且/、又取同仅16·位兀表示為0。起初,兮 堆疊指標暫存器752包含一 " 值〇 ,當將每一值推入該堆 疊時’:!會按4個位元组為單位來遞增該堆疊指標暫存器 752。若堆疊指標暫存器752遞增而超過堆疊最大值 (SUCkMax)暫存11751中的值,或遞減至低於0,則暫停程 式執行’將錯誤記錄於—狀態暫存器756中,並且將中斷發 送至該主介面處理器。 在位於該加速器處理器記憶體之程式區段72〇中的一個或 多個指令序列721、722、723中組織機器碼指令序列(機器 碼指令序列代表該規則引擎vRisc要套用至資料封包的規 /、J )規則可由一組比較作業群組與使用相關資料單元執行 之其他相關作業所组成,該等相關資料單元係剖析自資料 封包標頭並儲存於該加速器處理器之暫存器中的資料單 元。該主處理器藉由寫入一命令暫存器767,以向該加速器 處理器指示應從何處開始機器指令序列執行。該指令序列 執行之起點取決於套用至該資料封包之特定規則集。例如, 根據一規則集分析一第一資料封包可能需要機器碼指令序 列執行從指令序列A 721之起點繼續。如果要分析一第二資 料封包或進一步分析該第一資料封包,則指令執行可在記 憶體中與指令序列B722之開端有關的不同位置開始。 在—示範實施例中’該加速器處理器使用16個32_位元暫 87587 -17- 200415469 、 、進仃與貪料集分析相關之各種作業。7個暫存器 =^用途暫存器,並且該加速器處理器或該主處理器可 ^^7個暫存器。該資料集剖析邏輯使用9個特殊用途暫 予咨(如表2所描述)以儲存相關資料單元。 --——~— 暫存器 源位址 --——.„ 目的地位址 ——------- 協定 Ί~—_— 表 2__ ----— ~~~ - --*~------ 包之源位址〇 '~--^____ 存IP封包之目的地位址。 — 儲存封包所使用的正協定代碼。該協定攔位僅佔用暫存 器之前8個位元。 源埠 若封包為使用者資料包協定(UDP)或傳輸控制協定(Tcp) 封包,則儲存該封包之料。源埠值侧暫存器之前Μ —個位元。若封包非丁CPiTfJDP,目丨丨不中化一…r 目的地埠 ---!————〜 〜个疋我该暫存哭之借。 若封包為UDPATCP封包,則料騎包之目的地璋。 目的地埠·崎存器之前關位元。若封包非Tcp或 UDP,則不定義該暫存器之值。 MAC類型 儲存來自-乙太網路訊框的媒體存取控制(mac)類型欄 位0 F段~~ 儲存分段敍來自當餅封包之更多分段位元。若封包 _屬於分琴之一 §;^竺二^存器為非跫。 選項 儲存一指不該類型之位元向景。 ICMP類型 若封包為ICMP封包,_相際纟轉控他息協定 /TCP旗標 < :1_類_位之值。若封包統P封包,則儲存丁CP 1 漠標欄位之值。 ~---~~___ 87587 -18- 200415469 使用該等記憶體控制暫存器770來控制將一資料封包之多 個部分(例如封包標頭)傳送至該加速器處理器記憶體。該資 料集長度暫存器775指定要窝入至該加速器處理器記憶體之 位元組數量。該封包記憶體暫存器776提供該主處理器或該 DMA控制器可能寫入該加速器處理器記憶體之位置。 程式控制暫存器760包括程式計數器763、比較暫存器 764、退出暫存器765、狀態暫存器766及命令暫存器。 使用該程式計數器763來控制該指令執行之序列。該程式計 數器中的值表示該記憶體位置之位址,其包含該規則邏輯 vRISC所要執行的下一指令。 汶等加速咨處理為程式不能直接存取該退出暫存器7 6 $及 比較暫存器764,但該主處理器可存取該退出暫存器765及 比較暫存器764。該比較暫存器764包含該規則邏輯vRisc* 執仃I取後比較指令之結果,且該比較暫存器764為該系統 中唯一帶符號的暫存器。由該規則邏輯乂…%所執行之退出 指令來設定該退出暫存器765,並且會使用該退出暫存器 以將一傳回值傳遞至該主處理器。 涘〒令暫存态為該主處理器可寫入的一 32_位元暫存器, 並用於自該主處理器導向至該加速器處理器之命令。該狀 怨暫存器為-32位元暫存器,其用於向主處理器指示在處 理"月間可月匕發生的各種錯誤或狀態條件。_ 8及圖9分別說 明該命令暫存器及狀態暫存器。 現在請參閱圖8,當該主處理器寫入至該命令暫存器時, 則會觸發該規則邏輯vRISC執行命令。保留該命令暫^器的 87587 -19- 200415469 位元 16-17 及 24-31。 之作業的命令位元, 位元1 8-23為用於控制該加速器處理器 下文將詳細描述。 。。:在孩命令暫存器中設定「單步模式」位元時,該加速 Γ入理咨以单步模式運作以偵錯嵌人式處理it程式。當在 存器中μ「單步模式」位元時,該加速器處理 —單一指令並暫停。在執行該單-指令之後,該 加速益處理器設定該狀態暫存器中的「暫停」位元,並中 斷該主處理器發出「該單步作業已完成」之訊號。 Τ王處理器可結合使用該命令暫存器"「剖析」位元 7執行」位元。當在該命令暫存器中設定「剖析」位元 s·二會停止孩加速器處理器進行之程式執行,直至剖析 下一貝料封包。除非設定「執行 ^ 仏7、— 「 執仃」^兀,否則將忽略「剖 折」位7C。「執行」位元指示該 。 a 速态處理器開始執行該程 二’ =” —c位元指示之位置開始。「暫停」 令孩加速器處理器暫停執行當前正在執行之程式…一 該加速器處理器重設該指令記憶體二 有暫存…容。設定該「僅Ιρ」(ιρ。離元,命 Γ:理種T達之封包視為不具有乙太網路標頭“ 包第在=況下,該封包之第—位元組必須為 組。若未設定該「僅IP」(IP0nly)位元,則^ 析邏輯將—資料集之前14位以视為乙太網路標頭。“ 如圖9所示,可將該狀態暫存器用於指示、 :、指示程式計數器溢位或反向溢位、指示該嵌入= 备遇到+艮才曰令、堆疊溢位或反向溢位、暫停條件^單 87587 -20- 200415469 步模式。若將一狀態位元設 碼之錯誤條件已發生。 、/、由该特定狀態位元編 u $存器表示一組示範暫_ 等暫存器以執行資料封包篩 &據本發明可建構該 或不同暫存器來完成資料使用匕不同數量之暫存器 限於此處描述之執行資料;二外’本發明並非侷 執行不同命令集,根據本發::;:=示範命令集。可 封包分析相關之各種任務。〈万法及系統來完成與資料 個ί業7施例中’該規則引擎邏輯VRISC可執行-组9 度為1位元組之指令來定義每-作業。指令可:有=長 孩指令内的運算元。或者,該 於 取夕、$宵-> 7 了 L 5必須自該堆疊提 、疋,或包含遵循該程式記憶體中指令之運算元。 用於表示待套用至^ 存在兮力、η 、 κ規則集的指令序列係駐 =,處理器記憶體中’該主處理器可自由讀取及 :孩加速器處理器記憶體。主處理器可針對所要處理之 :一;f:集,將新的程式寫入至記憶體中。該加速器處理 ^己^可包含用於分析不同類型資料封包或以不同 分析資料封包或多個資料封包之多個程式。 , 匕執行-指令序列直至發生一例外狀況或直至執行—退出 才曰7在如堆豐溫位、堆疊反向溢位或無效指令之情況下 會發生例外狀況。當發生一退出或例外狀況時,會透過— 中斷以向王處理器發送已完成封包分析之訊號。此後,該 主處理器可㈣該加速器處理器中的退出暫存器及其他暫z 87587 -21 - 200415469 存器以擷取分析結果。參照表3,下文提供一示範規則邏輯 vRISC指令之描述。 表3 指令 選項/運算元 Noop(無作業) 無 Push(推進) 成流量之16-位元值 成流量之32-位元值 堆疊之雙頂部 暫存器之推進量 自封包之推進工作或「半工作」(halfwork) Compare(比較) 16-位元比較 32-位元比較 Jump(跳躍) 結果相等 結果非真 結果大於 結果小於 結果大於或等於 結果小於或等於 總是跳躍 And(及) 16-位元「及」運算 32-位元「及」運算 Exit(退出) 傳回值可位於一暫存器中,下一32位元位於指令流中, 或位於堆疊頂部 Store(儲存) 儲存16-位元值 儲存32-位元值 目標暫存器 待儲存之值可為内嵌資料 待儲存之值可為堆疊資料 Pop(取出)) 無 Split(分割) 無 87587 -22- 200415469 堆疊作業包括Push(推進)及Pop(取出)指令。(推進)指 令將-新值推進至該堆疊上。該值可為16_位元或A位元 值。該值可包含於暫存器中、位於記憶體的下— Μ位元或” 位元中、可為一來自該資料集之字組或—該堆疊頂部所包 含《值。若該待推進之值位於一暫存器中,則會推進該暫 存器的整個課心若該待推進之值包含於指令記奸中, 則將下一16位元或下一 32位元當做一 A位元值推進^若核 值為-來自該資料集之字組’則將位於堆Μ部之值取出, 並且將自堆疊取出之該值當做位元組位移,用以定義來自 該資料集之字組的推進位置。若該待推進之值為堆最之頂 部,則將堆叠頂部取出並推進兩次。_p〇p(取出)指令自該 堆疊移除一 32位元值。
Compare(比較)指令比較兩個16_位元值或兩個η—位元 值’並將比較結果放置在該比較暫存器中。該等待比转之 值可來自該堆#、纟自記憶體或兩者。該比較作業將^ 值減去第二值並將差值儲存於該比較暫存器中。若相比較 之值相等,則在執行Compare(比較)指令之後,該心 器將包含“〇”。若該第-值大於該第二值,則該比較暫存 :將為正’且若該第一值小於該第二值,則在執行該 Compare(比較)指令之後,該比較暫存器將為負。
Jump(跳躍)指令導致依據比較暫存器中衍生自—先前 C〇mpare(比較)指令的值來改變該程式計數器。將以下^ 式執行跳躍:總是跳躍、比較結果為小於時跳躍、比車”士 果為大於時跳躍、比較結果為小^或等於時跳躍、比車= 87587 -23 - 200415469 2為大於或等於時跳躍、比較結果為等於時跳躍以及比較 結果為不等於時跳躍。該Jump(跳躍)指令將指令記憶體中 的下一 1 6位元用作指示該跳躍位移的帶正負號整數。
And(及)指令執行兩個值的16_位元或32_位元逐位元邏 輯及」運算。該等兩個值可在堆疊上、在指令序列中或 兩者之組合。
Exit(退出)指令使程式之執行暫停並向主介面處理器發出 「資料集分析結束」之訊號。該退出暫存器所傳回之值指 向—暫存器或儲存資料集分類結果之其他位置。例如,退 出命令所傳回之值可為暫存器值、資料集中的值或堆疊頂 邵上之值。
Store(儲存)指令導致該程式將一值儲存在一暫存器中。 茲值可為16-位元不帶正負號值或32-位元帶正負號值。在任 一狀况下’該儲存之值都會覆寫將該暫存器的整個内容。 右儲存一 1 6-位元值,則將暫存器高位元之1 6_位元設定為〇。 居儲存之值可為(例如)堆疊上的頂部值或指令記憶體中的下 一值。 若為比較暫存器指示最後一次之比較產生了 一小於〇之 值’則Split(分割)指令導致程式計數器在該指令後遞增由第 一半字組(half-word)表示之量。若該比較暫存器指示最後 ’人之比較產生了 一大於〇之值,則Split(分割)指令導致程 式汁數咨在該指令後增加由第二半字組表示之量。若最後 ’人之比較產生了 一等於〇之值,則該SpHt(分割)指令不執 行任何功能。 87587 •24- 200415469 以上段落描述可用於封包分析之一組 视钿令集。視需 要或要求,可實施額外之指令或不同的 知7以貫現本發明 範圍内的各種資料集分析任務。 下文給出用於將資料封包分類之指令序列之特定實例。 在該特定實財’所套用之規則允許傳遞目的地^為η 之任何UDP封包。規則引擎邏輯可使用下列組合語言程 碼所提供的簡短程式序列來實施規則: 。王; push TCP.dstport ;推進目的地埠 compare32 stack 0x35 ;與 53 t匕較 jne next—rule push IP.proto comparel6 stack 0x8 jne next—rule exit 1 ;若不相等,規則之處理結束 ;推進協定暫存器 ;與8比較-指示UDP封包 ;若不相等,則封包不是UDP ;若相等,則退出,退出暫存器值 圖10…呈圖進—步說明用於執行該示範規則之機器碼 指令序列。在開始該指令序列之前’藉由剖析電路來剖析 封包標頭並將相關值儲存於該等加速器 在該謝,將來自傳輸之目的地蜂、封包標:(:二 或UDP標頭)儲存(步騾1〇〇5)於加速器處理器目的地埠暫存 态中,其在組合語I實例中表示為Tcp dsp〇rt。將來自⑺封 包標頭义協足位兀組儲存(步驟丨〇丨〇)於該加速器處理器之協 疋暫存益中。在上述組合語言程式碼中將該協定暫存器表 示為 IP.proto。 87587 -25- 200415469 規則引擎邏輯所進行的進-步處理確定該封包為卿協定 封包,則將允許該封包通過。 △由該加速器處理器規則邏輯引擎執行之資料封包分類開 始於(程式)步驟1015〇將目的地埠暫存器中的值推進(步驟 至堆疊頂部的4個位元組。比較(步驟ι〇2〇)堆疊頂部的 4個位元組與值53(0 X 35十六進位)。言亥比較暫存器提供比較 作業之結果。若堆疊頂部之值等於53,則在比較作業後該 比較暫存器包含〇值。若堆疊頂部之值小於或大於”,則在 比較作業後該比較暫存器分別包含一負值或正值。若該比 較暫存器不等於零(步驟則)’則目的地埠值不為Μ,且將 不允許該封包通過。該規則之處理結束(步驟1〇3〇)。若該比 較暫存器等於零(步驟1G25),則該目的地埠值為Μ,且若該 以IP封包標頭之&元組9指示封包之協定(例如Tcp、觀 等X參看圖5)。㈣包標頭協定位元財的㈣旨㈣封包 使用UDP協定。在(程式)步驟i㈣將來自㈣包標頭之協定 位元組儲存於該協定暫存器中,i因此可供該規則引擎邏 輯處理。將該協定暫存器推進(步驟_)至該堆疊。比較(步 驟1 040)堆疊值與值8。如前立所二人、f X,.. 又月J又所論迷,该比較暫存器提供 比較作業結果。若該堆叠了g却夕枯叉 戶1項#爻值寺於8,則在該比較作業 後該比較暫存器包含〇。若哕玱& TS龙々# τ〜 右β堆壹頂邵足值不等於8,則在 該比較作業後該比較暫存哭句人非_ 句什口口 a 5非〇值。右孩比較暫存器不 等於零(步驟1045),則嗜斜4 丁 σ & a ^ 4封包不是UDP封包且不允許其通 過。孩規則處理結束(步驟1〇5〇)。若該比較暫存器包含〇, 則邊封包付合規則標準··封包為具有目的地蜂^之仙p封 87587 ' 26 - 200415469 包。將退出暫存洛設定(步驟1〇55)為"丨,,,將封包之分類指 示為具有目的地埠5 3之UDP封包。該加速器處理器將丄中 斷傳迗至該王處理器(步騾1 060),且根據該等規則對該資料 封包之分類結束(步驟1〇65)。 上述實例提供_種可使用本發明實施資料封包分析的特 疋應用,用以根據一單一規則來分類一資料封包。熟悉此 項技術者將發現,使用不同之指令組合可實施諸多資料封 包篩選應用。若需更為特定之說明,請可參考與本發明同 .時提出的隨附文件,題為”pAM系統概述,,、”pAM說明”、,,ρΑΜ 微驅動器說明"及”原始程式碼Pam.c”,該等文件内容以 方式併入本文。 在不背離本發明之範圍情況下,可對上文論述之較佳實 施例進行各種修改及補充。因此,本發明之範圍不應偈二 於上述特足實施例,而應僅由下文提出之申請專利範圍及 其同等項定義。 【圖式簡單說明】 ^述對本發明之概述並非意欲描述本發明之每—實施例 或母-建構。ϋ由參照下文結纟附圖之詳細描$及中請專 利範圍’吾人將明白並暸解本發明之優勢及成就、連同3對 本發明更為詳盡之理解。 圖1為網路圖,該網路具有用於實施根據本發明—實施例 <用於篩選資料封包之加速器處理器之介面電路;男 圖2為根據本發明一實施例之具有一主處理器及—力速器 處理咨之介面電路之方塊圖; 87587 -27- 明 3為根據本發 明 馬施例之鏈結線型及樹型規則集之說 尽發明—余> y 圖5為根據本發明—余、α 處理器之方塊圖; 之資料封包篩選之流程圖; 用於將資料集分類之加速為 圖6為一資料集纟士 、^ 木、,、口構又貫例說明; 圖7為根據本發明一舍 ^ _ 月一只她例之用於將資料集分類之嵌入式 處理咨之記憶體映射; 圖8為一根據本發明一實施例之命令字組之結構說明; 圖9為一根據本發明一實施例之狀態字組之結構說明; 圖10為根據本發明一實施例之流程圖,其說明執行一用 於傳送具有特定目的地埠的UDP封包之規則之加速器處理 器碼之特定實例。 【圖式代表符號說明】 120 源終端機 122 膝上型終端機 124 桌上型終端機 126 無線裝置 128 資料處理終端機 140 網際網路 150 私人網路 160 介面裝置 170 目的地終端機 180 目的地終端機 87587 -28 - 200415469 190 目的地終端機 200 積體電路 210 輸入/輸出連接 220 輸入/輸出連接 230 介面電路 240 主處理器 250 加速器處理器 260 系統匯流排 430 將封包標頭剖析為相關資料單元 440 將自該封包標頭剖析之相關資料單元儲存在該加 速器處理器之記憶體中 450 將封包分類 460 將封包分類結果向該主處理器報告 510 封包標頭區段 520 資料區段 600 加速器處理器 610 封包分析電路 620 資料集剖析器邏輯 630 指令快取區 640 暫存器 6 5 0 匯流排介面 660 直接記憶體存取 710 堆疊 720 程式記憶體 87587 -29- 200415469 7 21 指令序列 722 指令序列 723 指令序列 7 3 0 程式暫存器 75 0 堆疊控制暫存器 751 堆疊最大值(StackMax)暫存器 752 堆疊指標暫存器 7 60 程式控制暫存器 7 63 程式電腦 764 比較暫存器 765 退出暫存器 766 狀態暫存器 767 命令暫存器 770 記憶體控制暫存器 775 資料集長度暫存器 776 封包暫存器 1005 一 w項夕1J 3口 Hr或 標頭)儲存於加速器處 1010 I Z备目的地埠暫存器中 將來自IP封包標頭之協定一 、_ 疋彳乂兀組儲存1010於該 速器處理器之暫存器中 1015 藉由該加速器處理器規則 包分類開始 邏輯引擎執行之資料封 1020 1025 比較堆疊頂部之4個位元組與值53(0 若該比較暫存器不等於零 X53十六 進位) 87587 -30· 200415469 1 030 規則之處理結束 1 035 將協定暫存器推進至該堆疊 1040 比較堆疊值與值8 1045 若該比較暫存器不等於零 1050 規則處理結束 1 055 將退出暫存器設定為一 1060 將一中斷傳送至該主處理器 1065 該資料封包之分類結束 -31 - 87587

Claims (1)

  1. 200415469 拾、申請專利範圍: 1· 一種用於根據一組規則集將資料封包分類之加速器處理器 (2 5 0),將泫加速备處理器與一主處理器(24〇)配置為一積 體電路,該加速為處理器以與主處理器並行方式運行並藉 由一並行匯流排(260)與該主處理器通信,該加速器處理 器包含:一耦接至該並行匯流排之匯流排介面(65〇),其 被調整成傳輸來自該主處理器之該等資料封包之多個部 分,並將該等資料封包之分類結果傳回至該主處理器;一 耦接至該匯流排介面之記憶體,其被調整成儲存一直接自 待套用至該等資料封包之該規則集轉換之機器碼指令程 式,並儲存該等資料封包之該分類的該等結果;一耦接至 該匯流排介面之封包剖析器電路(62〇),其被調整成將自 孩主處理器傳輸之每一資料封包部分剖析為相關資料單 元,並將該等相關資料單元儲存在該記憶體中;及一耦接 至孩記憶體之封包分析電路(610),將其配置用於藉由使 用該記憶ft中儲#的該等相M資料單元來執行該機:碼指 令程式,以將每一資料封包分類。 曰 2.如申請專利範圍第1項之加速器處理器,豆 /、τ 1史用一處理 器核心來實施該主處理器。 3·如申請專利範圍第丨項之加速器處理器,直 … 八τ听分類又該 等資料封包為IP資料包。 4·如申請專利範圍第1項之加速器處理器,並 /、甲邊?己憶體包 括=王處理器可存取之一指令快取區(63〇)以及用於儲广 該等相關資料單元之多個暫存器。 子 87587 200415469 5·如申請專利範圍第1項之加速器處理器,其中該記憶體中 儲存的該等相關資料單元包括一資料包標頭之部分。 6. 如申請專利範圍第1項之加速器處理器,其中該主處理器 將用於分類該等資料封包之該機器碼指令程式儲存於該記 憶體中。 7. 如申請專利範圍第6項之加速器處理器,其中該主處理器 根據該規則集中的變化來更新該機器碼指令程式。 8·如申請專利範圍第1項之加速器處理器,其中該記憶體包 括一用於接收來自該主處理器的命令之命令暫存器 (767) ’該等指令被導向至該封包分析電路以控制該等資 料封包之分類。 9·如申請專利範圍第8項之加速器處理器,其中接收自該主 處理器之該等命令包括一記憶體位置,這是開始執行該等 機咨碼指令以將每一資料封包分類的記憶體位置。 说如申請專利範圍第丨項之加速器處理器,其中該記憶體包 括比較暫存器(764),其用於向該主處理器報告一比較 指令之結果。 11.如申請專利範圍第1項之加速器處理器,其中該記憶體包 括一退出暫存器(765),其用於將該資料封包之該等分類 結果傳遞至該主處理器。 12·如申請專利範圍第1項之加速器處理器,其中該封包分析 電路包含一高度精簡指令集電腦。 13·如申請專利範圍第i項之加速器處理器,其中該封包分析 電路自該主處理器接收用以控制每一資料封包之該分類的 87587 200415469 14.如申請專利範圍第1項之加速器處理哭 ^ …其中該封包分析 笔路自該主處理器接收用以將該封包分叔 , _、 匕刀軒電路指向該記憶 月豆位置 < 命令,用以開始執行該等儲存 什於琢i己憶體中的機 器碼指令以將該資料封包分類。 I5·如申請專利範圍第14項之加速器處理哭 、、 …其中由待套用至 貝料封包之該組規則來確定由該封包分㈣路執行之該 等機器碼指令之該起點。 …如申請專利範圍第!項之加速器處理器,其中該等機器碼 指令操縱該等相關資料單元中的一個或多個資料單元,以 將該資料封包分類。 17.如申請專利範圍第巧之加速器處理器,其中該封包分析 電路被組態以將該分類的一個指示儲存於該記憶體之一傳 回暫存器中’配置該傳回暫存器以使該主處理器可存取該 傳回暫存器。 18_如申凊專利範圍第1項之加速器處理器,其中該封包分析 電路被組態以儲存一得自該封包分析電路執行之比較作業 之值。 9·如申清專利範圍第1項之加速器處理器,其中藉由該主處 理器將該等資料封包部分傳遞至該加速器處理器。 20·如申請專利範圍第1項之加速器處理器,其中藉由直接記 憶體存取電路將該等資料封包部分傳遞至該加速器處理 器。 21·—種根據一組規則集將資料封包分類之方法,其包含:將 87587 200415469 一直接自該組規則集轉換之機器碼指令程式儲存於一加速 器處理器之記憶體單元中;將該等資料封包之一個或多個 部分自一主處理器傳輸至該加速器處理器;將該等資料封 包之一部分剖析為相關資料單元並將該等相關資料單元儲 存於該加速器處理器之記憶體單元中;藉由使用該等相關 資料單元在該加速器處理器中執行該機器碼指令程式,以 將每一資料封包分類;及將該分類之結果自該加速器處理 器傳回至該主處理器。 22·如申請專利範圍第2 1項之方法,其中傳回該分類之該等結 果包括將該等結果儲存於該主處理器可存取之一暫存器 中。 23·如申請專利範圍第21項之方法,其中該資料封包之分類還 包括將一 IP資料包分類。 24·如申請專利範圍第2 1項之方法,其中將該資料封包之該等 邵分剖析為相關資料單元還包括將一 Ip資料包標頭剖析為 相關資料單元。 25·如申請專利範圍第2丨項之方法,其中儲存該機器碼指令程 式還包括根據該組規則集中的變化來更新該機器碼指令程 式。 26. 如申μ專利範圍第2丨項之方法,其中藉由執行該機器碼指 令程式來將每一資料封包分類還包括在由該主處理器指示 之位置開始執行該機器碼指令程式。 27. 如申請專利範圍第21項之方法,其中每一資料封包之分類 达包括將命令自該主處理器傳輸至該加速器處理器,該傳 87587 200415469 輸之命令控制每一資料封包之該分類。 28-種^於將多個資料封包分類之系統,其包含··用於在一 加速器處理器之記憶體單元中儲存一直接自該組規則集轉 換(機咨碼指令程式之構件;用於將該等資料封包之一個 或多個邵分自—主處理器傳輸至該加速器處理器之構件; 用於將孩等資料封包之多個部分剖析為相關資料單元並將 琢等相關資料單元儲存於該加速器處理器的記憶體單元中 之構件;用於藉由使用該等相關資料單元在該加速器處理 器中執行該機器碼指令程式以將每一資料封包分類之構 件;及用於將該分類之結果自該加速器處理器傳回至該主 處理器之構件。 87587
TW092122897A 2002-08-23 2003-08-20 Hardware-based packet filtering accelerator TW200415469A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/227,368 US20040039940A1 (en) 2002-08-23 2002-08-23 Hardware-based packet filtering accelerator

Publications (1)

Publication Number Publication Date
TW200415469A true TW200415469A (en) 2004-08-16

Family

ID=31887454

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092122897A TW200415469A (en) 2002-08-23 2003-08-20 Hardware-based packet filtering accelerator

Country Status (6)

Country Link
US (1) US20040039940A1 (zh)
EP (1) EP1540922A1 (zh)
CN (1) CN1679295A (zh)
AU (1) AU2003253132A1 (zh)
TW (1) TW200415469A (zh)
WO (1) WO2004019587A1 (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002312381A1 (en) 2001-06-07 2002-12-16 First Usa Bank, N.A. System and method for rapid updating of credit information
US7266839B2 (en) 2001-07-12 2007-09-04 J P Morgan Chase Bank System and method for providing discriminated content to network users
US7860120B1 (en) 2001-07-27 2010-12-28 Hewlett-Packard Company Network interface supporting of virtual paths for quality of service with dynamic buffer allocation
US7987501B2 (en) 2001-12-04 2011-07-26 Jpmorgan Chase Bank, N.A. System and method for single session sign-on
US7894480B1 (en) 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
US7724740B1 (en) 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US8301493B2 (en) 2002-11-05 2012-10-30 Jpmorgan Chase Bank, N.A. System and method for providing incentives to consumers to share information
JP2004179877A (ja) * 2002-11-26 2004-06-24 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20040123142A1 (en) * 2002-12-18 2004-06-24 Dubal Scott P. Detecting a network attack
US8296452B2 (en) * 2003-03-06 2012-10-23 Cisco Technology, Inc. Apparatus and method for detecting tiny fragment attacks
US7415012B1 (en) * 2003-05-28 2008-08-19 Verizon Corporate Services Group Inc. Systems and methods for high speed packet classification
US20050055555A1 (en) * 2003-09-05 2005-03-10 Rao Srinivasan N. Single sign-on authentication system
US7761569B2 (en) * 2004-01-23 2010-07-20 Tiversa, Inc. Method for monitoring and providing information over a peer to peer network
US7422152B2 (en) * 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
CN100347992C (zh) * 2004-07-09 2007-11-07 清华大学 实现线速对数据流按规则库近似匹配的可配置的硬件结构
WO2006049072A1 (ja) * 2004-11-04 2006-05-11 Nec Corporation ファイアウォール検査システムおよびファイアウォール情報抽出システム
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7529760B2 (en) * 2004-12-08 2009-05-05 International Business Machines Corporation Use of positive and negative filtering with flexible comparison operations
JP2006174350A (ja) * 2004-12-20 2006-06-29 Fujitsu Ltd 通信装置
US7624436B2 (en) * 2005-06-30 2009-11-24 Intel Corporation Multi-pattern packet content inspection mechanisms employing tagged values
US20080304481A1 (en) * 2005-07-12 2008-12-11 Paul Thomas Gurney System and Method of Offloading Protocol Functions
US7345585B2 (en) * 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
JP4551866B2 (ja) * 2005-12-07 2010-09-29 株式会社リコー 通信システムおよび呼制御サーバ装置およびプログラム
US7797406B2 (en) * 2006-07-27 2010-09-14 Cisco Technology, Inc. Applying quality of service to application messages in network elements based on roles and status
US8356361B2 (en) * 2006-11-07 2013-01-15 Spansion Llc Secure co-processing memory controller integrated into an embedded memory subsystem
JP4945410B2 (ja) * 2006-12-06 2012-06-06 株式会社東芝 情報処理装置及び情報処理方法
US7827343B2 (en) * 2007-09-20 2010-11-02 International Business Machines Corporation Method and apparatus for providing accelerator support in a bus protocol
US7817636B2 (en) * 2008-01-30 2010-10-19 Cisco Technology, Inc. Obtaining information on forwarding decisions for a packet flow
US7908376B2 (en) * 2008-07-31 2011-03-15 Broadcom Corporation Data path acceleration of a network stack
US8811177B1 (en) 2011-11-03 2014-08-19 Jpmorgan Chase Bank, N.A. Method and system for implementing a network analysis tool for endpoints deployments
WO2014077615A1 (en) * 2012-11-19 2014-05-22 Samsung Sds Co., Ltd. Anti-malware system, method of processing packet in the same, and computing device
GB2530513B (en) 2014-09-24 2016-08-24 Ibm Assembling response packets
GB2532055B (en) 2014-11-07 2016-12-14 Ibm Sticky and transient markers for a packet parser
US10114638B2 (en) * 2014-12-15 2018-10-30 Cisco Technology, Inc. Command message generation and execution using a machine code-instruction
US10187446B2 (en) 2015-03-23 2019-01-22 Sonicwall Inc. Firewall multi-level security dynamic host-based sandbox generation for embedded URL links
US9608959B2 (en) * 2015-03-23 2017-03-28 Quest Software Inc. Non RFC-compliant protocol classification based on real use
US10372700B2 (en) 2015-03-30 2019-08-06 International Business Machines Corporation Data filtering using a plurality of hardware accelerators
IL238690B (en) 2015-05-07 2019-07-31 Mellanox Technologies Ltd Network-based computational accelerator
US9485231B1 (en) 2015-05-26 2016-11-01 Dell Software Inc. Securing internet of things communications across multiple vendors
JPWO2016208178A1 (ja) * 2015-06-25 2018-04-19 日本電気株式会社 アクセラレータ制御装置、アクセラレータ制御方法およびプログラム
US9888011B2 (en) 2015-07-31 2018-02-06 Sonicwall Inc. Social media login and interaction management
CN109144906B (zh) * 2017-06-15 2019-11-26 北京忆芯科技有限公司 电子设备及其dma命令处理方法
US10530698B2 (en) * 2017-08-31 2020-01-07 Intel Corporation Method and apparatus for offloading packet classification processing of an access point in a residential gateway
US11005771B2 (en) 2017-10-16 2021-05-11 Mellanox Technologies, Ltd. Computational accelerator for packet payload operations
US11502948B2 (en) 2017-10-16 2022-11-15 Mellanox Technologies, Ltd. Computational accelerator for storage operations
US10841243B2 (en) 2017-11-08 2020-11-17 Mellanox Technologies, Ltd. NIC with programmable pipeline
US10708240B2 (en) 2017-12-14 2020-07-07 Mellanox Technologies, Ltd. Offloading communication security operations to a network interface controller
US10764211B2 (en) * 2018-10-19 2020-09-01 Avago Technologies International Sales Pte. Limited Flexible switch logic
US10824469B2 (en) * 2018-11-28 2020-11-03 Mellanox Technologies, Ltd. Reordering avoidance for flows during transition between slow-path handling and fast-path handling
US11184439B2 (en) 2019-04-01 2021-11-23 Mellanox Technologies, Ltd. Communication with accelerator via RDMA-based network adapter
DE102019210224A1 (de) * 2019-07-10 2021-01-14 Robert Bosch Gmbh Vorrichtung und Verfahren für Angriffserkennung in einem Rechnernetzwerk
CN111159002B (zh) * 2019-12-31 2023-04-28 山东有人物联网股份有限公司 一种基于分组的数据边缘采集方法、边缘采集设备及系统
IL276538B2 (en) 2020-08-05 2023-08-01 Mellanox Technologies Ltd A cryptographic device for data communication
CN114095153A (zh) 2020-08-05 2022-02-25 迈络思科技有限公司 密码数据通信装置
US11934333B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Storage protocol emulation in a peripheral device
US11934658B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Enhanced storage protocol emulation in a peripheral device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394394A (en) * 1993-06-24 1995-02-28 Bolt Beranek And Newman Inc. Message header classifier
US5606668A (en) * 1993-12-15 1997-02-25 Checkpoint Software Technologies Ltd. System for securing inbound and outbound data packet flow in a computer network
JPH0969047A (ja) * 1995-09-01 1997-03-11 Sony Corp Risc型マイクロプロセッサおよび情報処理装置
GB2340701B (en) * 1998-08-15 2003-06-25 Roke Manor Research Programmable packet header processor
JP2002538721A (ja) * 1999-03-01 2002-11-12 サン・マイクロシステムズ・インコーポレイテッド 高性能ネットワークインターフェースにおけるネットワークトラフィックを分類するための方法および装置
CN1293502C (zh) * 1999-06-30 2007-01-03 倾向探测公司 用于监控网络流量的方法和设备

Also Published As

Publication number Publication date
CN1679295A (zh) 2005-10-05
WO2004019587A1 (en) 2004-03-04
AU2003253132A1 (en) 2004-03-11
EP1540922A1 (en) 2005-06-15
US20040039940A1 (en) 2004-02-26

Similar Documents

Publication Publication Date Title
TW200415469A (en) Hardware-based packet filtering accelerator
US7467406B2 (en) Embedded data set processing
US8009672B2 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US8176300B2 (en) Method and apparatus for content based searching
US7269171B2 (en) Multi-data receive processing according to a data communication protocol
US7415596B2 (en) Parser table/production rule table configuration using CAM and SRAM
KR100647949B1 (ko) 네트워크 패킷 전달 방법 및 패킷 캡슐화 - 캡슐 해제 방법과 컴퓨터 판독 가능한 매체 및 프로세서
US7561573B2 (en) Network adaptor, communication system and communication method
US6701432B1 (en) Firewall including local bus
US8819217B2 (en) Intelligent graph walking
US8166547B2 (en) Method, apparatus, signals, and medium for managing a transfer of data in a data network
US8681819B2 (en) Programmable multifield parser packet
JP6269999B2 (ja) パケット処理方法および装置
US20030231632A1 (en) Method and system for packet-level routing
US8599859B2 (en) Iterative parsing and classification
JP4743894B2 (ja) データ・パケットを伝送しながらセキュリティを改良するための方法及び装置
WO2017000593A1 (zh) 报文处理方法及装置
JP2005522924A (ja) パケット処理方法およびパケット処理システム
JP2006325054A (ja) Tcp/ip受信処理回路及びそれを具備する半導体集積回路
EP3811576B1 (en) Flow cache support for crypto operations and offload
CN105939284B (zh) 报文控制策略的匹配方法及装置
EP3767508A1 (en) Method, apparatus, and system for detecting malicious file
US8365045B2 (en) Flow based data packet processing
US7561585B2 (en) Manufacture and method for accelerating network address translation
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message