TW201427342A - 用於高效的網路位址轉譯和應用層閘道處理的裝置和方法 - Google Patents

用於高效的網路位址轉譯和應用層閘道處理的裝置和方法 Download PDF

Info

Publication number
TW201427342A
TW201427342A TW101148655A TW101148655A TW201427342A TW 201427342 A TW201427342 A TW 201427342A TW 101148655 A TW101148655 A TW 101148655A TW 101148655 A TW101148655 A TW 101148655A TW 201427342 A TW201427342 A TW 201427342A
Authority
TW
Taiwan
Prior art keywords
packet
alg
processing
packets
tagged
Prior art date
Application number
TW101148655A
Other languages
English (en)
Inventor
Venkata Satish Kumar Vangala
Alok Mitra
Rohit Tripathi
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Priority to TW101148655A priority Critical patent/TW201427342A/zh
Publication of TW201427342A publication Critical patent/TW201427342A/zh

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明揭示用於高效的NAT和ALG處理的裝置和方法。示例性的方法包括下文的操作:對經由連接所接收的封包進行深度掃瞄,以決定要對該封包執行的應用層閘道(ALG)處理;將該連接與ALG處理進行關聯;及基於該關聯,對經由該連接所接收的額外封包進行轉發以接收ALG處理,使得繞過對該等額外的封包的深度掃瞄。示例性的裝置包括:處理器,其用於對經由連接所接收的封包進行深度掃瞄,以決定要對該封包執行的ALG處理;資料庫,其用於將該連接與ALG處理進行關聯;及經封包發射器,其用於基於該關聯,對由該連接所接收的其他封包進行轉發以接收ALG處理,使得繞過對該等額外的封包的深度掃瞄。

Description

用於高效的網路位址轉譯和應用層閘道處理的裝置和方 法
概括地說,本案係關於無線通訊系統的操作,具體地說,本案係關於實現高效的封包路由。
網路位址轉譯(NAT)用於擴展網路的可使用位址空間。在一種實現中,NAT模組只轉換資料封包的IP/傳輸標頭資訊。此影響在資料封包有效負荷中向其同級體傳輸網路IP/埠資訊的應用,此是由於NAT模組不對該資訊進行轉換。由於NAT模組可能拒絕該等IP/埠上的輸入封包連接,因此此舉導致丟棄的封包。
應用層閘道(ALGs)經由將應用有效負荷中嵌入的IP/埠資訊轉換成NAT外部的IP/埠,來實現特定於應用的NAT穿越(traversal)。ALG可以與NAT模組互動以允許輸入的資料連接,或者在NAT模組與外部領域中的同級體通訊的後臺,執行實現應用所需要的其他操作。
不幸地,在傳統系統中,ALG是特定於應用 的,並且由於其對應用有效負荷進行解析來搜尋嵌入的IP/埠資訊,因此引入了顯著的處理延遲。若在NAT處理路徑中直接引入該等延遲,則該等延遲可能影響所有封包流,從而導致往返時間(RTTs)的不適當的增加,並且因此亦使整個傳輸量下降。另外,無線嵌入設備(或者行動路由器)在CPU頻寬方面受到限制,此意味著NAT處理的增加將影響通用系統效能。此外,由於ALG增加而導致的增加的NAT處理亦將使行動路由器消耗更多的功率,此導致電池的更快速消耗和頻繁的充電。
因此,期望具有一種提供高效的NAT和ALG處理以克服如上所述之與傳統系統相關聯的問題的系統。
在一或多個示例性實施例中,提供了一種用於提高路由器(例如,行動路由器)中的NAT-ALG處理的效率的包括裝置和方法的系統。在一個示例性實施例中,維持用於將特定連接的封包與選擇的ALG處理相關聯的資料庫。當接收到額外的封包時,可以根據該資料庫容易地且快速地決定針對每一個封包所需要的ALG處理,從而避免需要對每一個封包進行深度掃瞄並且檢視ALG規則來決定其ALG處理需求。每一個ALG處理亦包括其自己的輸入/輸出佇列,因此進一步增加了NAT處理效率。
在一個態樣中,提供了一種用於進行封包路由的方法,該方法包括:對經由選擇的連接接收的封包進行深度掃瞄,以決定要對該封包執行的選擇的應用層閘道(ALG )處理;將所選擇的連接與所選擇的ALG處理進行關聯;及基於該關聯,對經由所選擇的連接接收的額外封包進行轉發以接收所選擇的ALG處理,使得繞過對該額外封包的深度掃瞄。
在一個態樣中,提供了一種用於進行封包路由的裝置,該裝置包括:處理器,其被配置為對經由選擇的連接接收的封包進行深度掃瞄,以決定要對該封包執行的選擇的應用層閘道(ALG)處理;資料庫,其被配置為將所選擇的連接與所選擇的ALG處理進行關聯;及封包發射器,其被配置為基於該關聯,對經由所選擇的連接接收的額外封包進行轉發以接收所選擇的ALG處理,使得繞過對該額外封包的深度掃瞄。
在一個態樣中,提供了一種用於進行封包路由的裝置,該裝置包括:用於對經由選擇的連接接收的封包進行深度掃瞄,以決定要對該封包執行的選擇的應用層閘道(ALG)處理的手段;用於將所選擇的連接與所選擇的ALG處理進行關聯的手段;及用於基於該關聯,對經由所選擇的連接接收的額外封包進行轉發以接收所選擇的ALG處理,使得繞過對該額外封包的深度掃瞄的手段。
在一個態樣中,提供了一種用於進行封包路由的電腦程式產品。該電腦程式產品包括非臨時性電腦可讀取媒體,非臨時性電腦可讀取媒體體現可由處理器執行以進行以下操作的指令:對經由選擇的連接接收的封包進行深度掃瞄,以決定要對該封包執行的選擇的應用層閘道(ALG) 處理;將所選擇的連接與所選擇的ALG處理進行關聯;及基於該關聯,對經由所選擇的連接接收的額外封包進行轉發以接收所選擇的ALG處理,使得繞過對該額外封包的深度掃瞄。
在閱讀下文闡述的對附圖、具體實施方式和申請專利範圍的簡短描述以後,其他態樣將變得顯而易見。
100‧‧‧配置
102‧‧‧NAT裝置
104‧‧‧區域網路連接
106‧‧‧NAT檢視模組
108‧‧‧ALG引擎
110‧‧‧NAT處理模組
112‧‧‧廣域網(WAN)連接
200‧‧‧系統
202‧‧‧NAT檢視模組
204‧‧‧LAN
206‧‧‧封包操縱器
208‧‧‧ALG引擎
210‧‧‧特定佇列
212‧‧‧NAT處理模組
214‧‧‧無線WAN
300‧‧‧NAT檢視模組
302‧‧‧處理器
304‧‧‧規則資料庫
306‧‧‧連接資料庫
308‧‧‧封包發射器
310‧‧‧封包接收器
312‧‧‧匯流排
400‧‧‧封包操縱器
402‧‧‧處理器
404‧‧‧NAT檢視介面
406‧‧‧NAT處理介面
408‧‧‧封包發射器
410‧‧‧封包接收器
412‧‧‧匯流排
500‧‧‧規則資料庫
502‧‧‧封包類型
504‧‧‧第四列
600‧‧‧連接資料庫
602‧‧‧識別符
604‧‧‧ALG引擎
700‧‧‧方法
702‧‧‧方塊
704‧‧‧方塊
706‧‧‧方塊
708‧‧‧方塊
712‧‧‧方塊
714‧‧‧方塊
716‧‧‧方塊
718‧‧‧方塊
720‧‧‧方塊
800‧‧‧方法
802‧‧‧方塊
804‧‧‧方塊
806‧‧‧方塊
808‧‧‧方塊
810‧‧‧方塊
900‧‧‧NAT檢視裝置
902‧‧‧方塊
904‧‧‧方塊
906‧‧‧方塊
1000‧‧‧分類裝置
1002‧‧‧方塊
1004‧‧‧方塊
1006‧‧‧方塊
1008‧‧‧方塊
1100‧‧‧方法
1102‧‧‧方塊
1104‧‧‧方塊
1106‧‧‧方塊
1200‧‧‧方法
1202‧‧‧方塊
1204‧‧‧方塊
1206‧‧‧方塊
1208‧‧‧方塊
參照下文結合附圖提供的詳細描述,本文描述的上述態樣將變得更加顯而易見,其中:圖1圖示用於在路由器使用的傳統NAT配置;圖2圖示用於高效的NAT和ALG處理的裝置的示例性實施例;圖3圖示示例性NAT檢視模組;圖4圖示示例性分類模組;圖5圖示示例性規則資料庫;圖6圖示示例性連接資料庫;圖7圖示了用於執行NAT處理的示例性方法,其中該方法減少封包掃瞄需求和對ALG規則的表格檢視,從而提供增加的效率;圖8圖示用於封包分類和傳輸的示例性方法;圖9圖示示例性NAT檢視裝置;圖10圖示示例性封包分類裝置;圖11圖示了用於執行減少封包掃瞄需求的NAT處理的示例性方法;及 圖12圖示用於封包分類和傳輸的示例性方法。
下文的說明描述了用於提高路由器(例如,行動路由器)中的NAT-ALG處理的效率的包括裝置和方法的系統。該系統特別適合於結合行動設備來使用,但亦可以結合作為路由器進行操作的任何類型的設備來使用。
圖1圖示用於在路由器使用的傳統NAT配置100。配置100包括NAT裝置102,NAT裝置102經由區域網路連接(LAN)104來接收和發送封包。NAT裝置102包括NAT檢視模組106、一或多個ALG引擎108和NAT處理模組110。
在操作期間,從LAN接收的封包流到NAT檢視模組106,其中在NAT檢視模組106處,對該等封包進行掃瞄以決定要執行哪一種ALG處理(若有的話)。例如,ALG處理操作以根據該等封包的有效負荷來決定任何應用規範資訊,其中該資訊將在對該等封包進行路由時使用。在掃瞄之後,將該等封包傳送給適當的ALG引擎108。在ALG引擎108進行的處理之後,該等封包流到NAT處理模組110,其中在NAT處理模組110處,決定用於該等封包的目的地路由位址。隨後,在廣域網(WAN)連接112上將該等封包發送給目的地位址。對於在相反的方向上行進的封包,該處理是相反的。
NAT配置100圖示了用於執行ALG處理的次最佳配置,此是由於直接在NAT資料路徑中處理該等封包。由ALG引擎處理的封包可以造成當處理在輸入佇列中等待的 其他封包時發生延遲,其導致建立輸入佇列,從而增加所有封包流的RTT。若ALG處理任務不夠快,則佇列可能被快速地建立,從而導致封包丟失。對於TCP連接,此轉換成可能的超時和回退,並最終造成較低的傳輸量。維持的同步處理亦造成CPU的不高效使用,從而減少了系統的閒置時間並且增加了電池消耗。
圖2圖示用於高效的NAT和ALG處理的系統200的示例性實施例。在各種實現中,針對LAN和WWAN處理或者為了處理與任何類型的連接相關聯的封包,可以對稱/非對稱地佈置ALG處理。系統200使ALG處理是非同步的,並且執行至少下文四個主要功能。
1、封包檢視
2、分類和非同步封包操縱
3、有效負荷轉換
4、封包路由
系統200包括NAT檢視模組202、分類和非同步封包操縱器206(其亦稱為「封包操縱器」)和NAT處理模組212。系統200亦包括一或多個ALG引擎208,並且每一個ALG引擎包括相關聯的輸入/輸出佇列210。
使用關於如何對與特定的應用相關聯的封包進行處理的規則,來對NAT檢視模組202進行初始化。例如,每一個ALG引擎208向NAT檢視模組202提供規則資訊,使得可以在NAT檢視模組202處維持規則資料庫。該規則資料庫包括規定各種封包封包類型的一組規則,並且每組規則與將用 於處理該相關聯的封包封包類型的相應ALG引擎相關聯。可以(例如經由使用者輸入或者經由使用從其他網路實體接收的資訊)使用任何其他輸入來初始化、更新或者維持該規則資料庫。
NAT檢視模組202亦包括連接資料庫。該連接資料庫將特定連接的封包與特定的ALG引擎進行關聯。其允許將特定連接的封包高效地傳送到適當的ALG引擎,而無需對與該連接相關聯的每一個封包皆進行深度掃瞄。
在示例性操作期間,NAT檢視模組202從LAN 204接收要被路由到無線WAN 214的封包。NAT檢視模組202首先決定接收的封包是否與已在該連接資料庫中識別的連接相關聯。若該封包與連接資料庫中識別的任何連接皆不相關聯,則將該封包視作新連接的第一封包。假定該封包是新連接的第一封包,則對該封包進行深度掃瞄,以決定針對該封包需要的ALG處理。例如,在深度掃瞄期間,對封包有效負荷或者任何其他封包資訊進行掃瞄以決定關於該封包的資訊。將經由對封包進行深度掃瞄所獲得的資訊與規則資料庫進行相互參照,以決定針對該封包所需要的ALG處理的類型。隨後,對連接資料庫進行更新,以便將該特定連接的封包與特定的ALG引擎相關聯。使用識別期望的ALG處理的資訊來標記該封包,隨後將該封包傳送給封包操縱器206以執行適當的ALG處理。
當NAT檢視模組202接收到該連接的額外封包時,將其相對於連接資料庫進行核查,以決定將用於處理 該封包的ALG引擎。使用識別根據連接資料庫所決定的期望的ALG處理的資訊,對該連接的每一個額外封包進行標記。隨後,將該等額外的封包傳送到封包操縱器206,以執行適當的ALG處理。因此,一旦使用來自特定連接的第一封包的資訊對連接資料庫進行了更新,就可以識別與該連接相關聯的所有其他封包,並將其傳送到封包操縱器206以進行適當的ALG處理,而無需對每一個額外的封包皆進行深度掃瞄。在一些情況下,封包將不需要任何ALG處理,並且將對該等封包進行標記以指示不需要ALG處理並將該等封包傳送到NAT處理模組以進行路由。因此,NAT檢視模組202可以從多個連接接收封包,並且可以使用連接資料庫將該等封包高效地路由到適當的ALG處理,同時繞過對每一個識別的連接的額外封包進行深度掃瞄的需要。
封包操縱器206操作以對去往/來自ALG引擎208和去往NAT處理模組212的封包的流進行協調。封包操縱器206接收意欲進行ALG處理的封包,並且將該等封包路由到與期望的ALG處理引擎208相關聯的特定佇列210。在一個示例性實施例中,向每一個ALG引擎提供輸入佇列和輸出佇列。例如,每一個佇列可以被配置為先入先出(FIFO)佇列或者任何其他類型的適當佇列。該等佇列為要由每個引擎處理的封包提供臨時儲存,並且為已經由每個引擎處理的封包提供臨時儲存。各個佇列操作以減少或者消除可能當沒有使用佇列並且系統被迫等待任何特定的ALG處理完成時發生的瓶頸。
封包操縱器206亦從佇列210接收已由ALG引擎208處理的封包。封包操縱器206將該等封包與來自NAT檢視模組202的不需要任何ALG處理的封包進行組合,以形成流到NAT處理模組212的封包串流。因此,封包操縱器206操作以執行非同步多處理,以允許ALG引擎對封包進行處理,並且形成向NAT處理模組212發送的封包串流。NAT處理模組212操作以對去往/來自無線WAN網路214上的實體的封包進行路由。因此,減少或者消除了系統的瓶頸,並且更高效地使用了CPU和電池資源。
圖3圖示示例性NAT檢視模組300。例如,NAT檢視模組300適合於在圖2中所示的NAT檢視模組202處使用。NAT檢視模組300包括處理器302、規則資料庫304、連接資料庫306、封包發射器308和封包接收器310,其均經由匯流排312耦合在一起以進行通訊。應當注意的是,NAT檢視模組300僅僅只是一種實現,並且其他實現是可能的。
封包接收器310包括硬體及/或執行軟體的硬體,其操作以允許NAT檢視模組300從網路(例如,LAN)接收封包。
規則資料庫304包括允許儲存、獲取和維持與接收的封包的ALG處理相關聯的規則的任何適當的記憶體或儲存裝置。例如,在初始化處理期間,將與每一個ALG引擎相關聯的規則提供給NAT檢視模組300,並儲存在規則資料庫304中。在操作期間,使用規則資料庫304來決定針對特定的封包所需要的ALG處理的類型。因此,可以針對滿足特定的 一組規則的任何封包,決定ALG處理的類型。
連接資料庫306包括允許儲存、獲取和維持連接/封包與ALG處理引擎之間的關聯的任何適當的記憶體或儲存裝置。連接資料庫306由處理器302維持,並被不斷地更新以反映連接/封包與ALG處理引擎之間的關聯。例如,當接收到與新連接相關聯的第一封包時,處理器302對該封包進行深度掃瞄以決定所需要的ALG處理,並在連接資料庫306中儲存該連接與所需要的ALG處理之間的關聯。經由使用連接資料庫306,可以高效地決定用於對在該連接上接收的任何額外的封包進行處理的適當ALG引擎,而無需對每一個額外的封包皆進行深度掃瞄,從而繞過對該等額外的封包的深度掃瞄。
封包發射器308包括硬體及/或執行軟體的硬體,其操作以允許NAT檢視模組300向封包操縱器(例如,圖2中所示的封包操縱器206)發送封包。
處理器302包括CPU、處理器、閘陣列、硬體邏輯、記憶體元件及/或執行軟體的硬體中的至少一個。處理器302操作以控制NAT檢視模組300來執行本文所描述的功能。例如,處理器302操作以使用任何適當的介面來與ALG引擎進行通訊,從而接收儲存在規則資料庫304中的規則。處理器302亦操作以對封包接收器310所接收的每一個連接的第一封包進行深度掃瞄,並且根據規則資料庫304決定該封包所需要的ALG處理的類型。隨後,處理器302更新連接資料庫306,以指示將與該連接相關聯的封包將傳送到所決定的ALG引擎以進行處理。此外,處理器302使用來自連接資料庫的指示要 向每一個封包應用的ALG處理的類型(若有的話)的資訊,對該等封包進行標記。隨後,處理器302控制封包發射器308向封包操縱器(例如,圖2中所示的封包操縱器206)發送標記的封包。下文提供NAT檢視模組300的操作的更詳細描述。
圖4圖示示例性封包操縱器400。例如,封包操縱器400適合用作圖2中所示的封包操縱器206。封包操縱器400包括處理器402、NAT檢視介面404、NAT處理介面406、封包發射器408和封包接收器410,其均經由匯流排412耦合在一起以進行通訊。應當注意的是,封包操縱器400僅僅是一種實現,並且其他實現是可能的。
NAT檢視介面404包括CPU、處理器、閘陣列、硬體邏輯、記憶體元件及/或執行軟體的硬體中的至少一個。NAT檢視介面404提供與NAT檢視模組(例如,圖2中所示的NAT檢視模組202或者圖3中所示的NAT檢視模組300)的通訊。NAT檢視介面404操作以從NAT檢視模組接收標記的封包。該等標記的封包指示要對每一個封包執行的ALG處理的類型。
封包發射器408包括CPU、處理器、閘陣列、硬體邏輯、記憶體元件及/或執行軟體的硬體中的至少一個。封包發射器408提供與可用的ALG引擎的通訊。例如,將需要ALG處理的封包發送到與期望的ALG引擎相關聯的適當佇列(亦即,佇列210)。進入每一個佇列的封包將由相關聯的ALG引擎按照順序進行處理。
封包接收器410包括CPU、處理器、閘陣列、 硬體邏輯、記憶體元件及/或執行軟體的硬體中的至少一個。封包接收器410提供與可用的ALG引擎/佇列的通訊。例如,從與ALG引擎相關聯的適當佇列(亦即,佇列210)接收處理後的封包。
NAT處理介面406包括硬體及/或執行軟體的硬體,其操作以允許封包操縱器400向NAT處理模組(例如,圖2中所示的NAT處理模組212)發送封包,以進行進一步路由。
處理器402包括CPU、處理器、閘陣列、硬體邏輯、記憶體元件及/或執行軟體的硬體中的至少一個。處理器402操作以控制封包操縱器400,以執行本文所描述的功能。例如,處理器402操作以使用介面404來與NAT檢視模組進行通訊,從而接收用於ALG處理的標記的封包。處理器402亦控制封包發射器408向適當的ALG佇列發送封包,以進行處理。該處理器亦控制封包接收器410從ALG佇列接收處理後的封包,並且控制NAT處理介面406向NAT處理模組發送該等處理後的封包。在一些情況下,介面404可以接收不需要ALG處理的封包。處理器402控制NAT處理介面406針對該等封包繞過ALG處理,並且將其發送到NAT處理模組。下文提供封包操縱器400的操作的更詳細描述。
應當注意的是,儘管已經將NAT檢視模組300和封包操縱器400描述成不同的實體,但亦可以將該等模組組合成單個模組或者實體。此外,在一或多個各種實施例中,可以根據期望對每一個模組的功能進行重新排列或者重新分 佈。
圖5圖示示例性規則資料庫500。例如,規則資料庫500代表圖3中所示的規則資料庫304。規則資料庫500包括識別規則的三列(規則1-規則3),其中該等規則當被滿足時,識別特定的封包類型502。例如,「X」指示滿足相關聯的規則。因此,規定了不滿足任何規則的第一封包類型,並且規定了滿足規則1和規則2但不滿足規則3的第四封包類型。應當注意的是,可以指定更多或者更少的規則,並且可以使用規則的任意期望的組合(與,或、非等等)來對任何特定的封包類型進行分類或者規定。例如,為了規定FTP協定封包的ALG處理,可以在規則資料庫500中指定下文兩種規則。
規則1下一個協定應當是TCP(與)
規則2 TCP目的地埠21
第四列504識別了與每一個封包類型相關聯並且將用於處理每一個封包類型的ALG引擎。應當注意的是,對於所選擇的封包類型來說,可以不需要ALG處理。此外,與不同的連接相關聯的封包亦可以滿足相同的一組規則,並且由相同的ALG引擎進行處理。
圖6圖示示例性連接資料庫600。例如,連接資料庫600代表圖3中所示的連接資料庫306。連接資料庫600包括提供連接識別符602的第一列和提供與每一個連接識別符相關聯的ALG引擎604的第二列。
在操作期間,當接收到每一個連接的第一封 包時,在連接資料庫中將新連接識別符與該連接進行關聯。隨後,對該第一封包進行深度掃瞄,以決定ALG處理需求。例如,規則資料庫500與根據深度掃瞄所決定的資訊進行相互參照,以決定該封包滿足的規則和相關聯的ALG引擎。隨後,在連接資料庫600中,將所決定的ALG引擎與該連接識別符進行關聯。因此,當接收到該連接的額外封包時,存取連接資料庫600以高效地決定針對該等封包的所需要的ALG處理,而無需對每一個額外的封包皆進行深度掃瞄。
應當注意的是,對於所選擇的連接識別符來說,可以不存在ALG處理需求。與不同的連接相關聯的封包亦可能需要相同的ALG處理引擎來處理該等封包。例如,在連接資料庫600中,與連接1相關聯的封包不需要ALG處理,與連接2和6相關聯的封包需要經由相同的ALG引擎(亦即,ALG引擎1)進行處理。
圖7圖示了用於執行NAT處理的示例性方法700,其中該方法減少封包掃瞄需求和對ALG規則的表格檢視,從而提供增加的效率。例如,方法700適合於由圖3中所示的NAT檢視模組300使用。在一種實現中,處理器302執行一組或多組代碼或指令,以控制檢視模組300來執行下文所描述的功能。
在方塊702處,維持ALG規則的資料庫。例如,處理器302維持規則資料庫304,以維持由一或多個ALG引擎、經由使用者輸入或者其他方式提供的規則。該等規則決定將使用哪個ALG引擎來處理具有特定的封包類型的封包( 亦即,滿足指定的一組規則的封包)。可以對規則資料庫304進行初始化,隨後在ALG引擎的數量及/或類型改變時並且在規則改變時,處理器302對規則資料庫304進行不斷地更新。
在方塊704處,維持封包/連接的資料庫。例如,處理器302維持連接資料庫306,以維持連接/封包和將用於處理該等連接的封包的ALG處理之間的關係。
在方塊706處,對封包進行接收,例如,在NAT檢視模組202處從LAN接收用於路由到WWAN的封包。在一種實現中,由封包接收器310接收該封包,並將其傳送給處理器302。
在方塊708處,決定所接收的封包是否與連接資料庫中識別的連接相關聯。例如,處理器302經由評估封包標頭或者關於該封包或連接的其他資訊並且將該資訊與連接資料庫306中的資訊進行比較,來進行該決定。若該封包與不存在於連接資料庫306中的連接相關聯,則決定該封包是新連接的第一封包,並且該方法前進至方塊712。若該封包與連接資料庫306中識別的連接相關聯,則決定該封包與現有的連接相關聯,並且該方法前進至方塊718。
在方塊712處,對所接收的封包進行深度掃瞄,以決定可以與規則資料庫306相互參照的關於該封包的資訊。例如,處理器302對該封包進行深度掃瞄,以決定來自其標頭、有效負荷及/或該封包的其他態樣的資訊,從而決定可以用於決定該封包是否滿足規則資料庫304中的規則中的任何一個的關於該封包的資訊。處理器302使用來自深度掃瞄的該 資訊,來決定該封包滿足規則資料庫304中的哪些規則,並因此決定封包類型。
在方塊714處,執行規則檢視,以決定針對該封包所需要的ALG處理。一旦決定了封包類型(亦即,滿足哪些規則),處理器302就根據規則資料庫304決定針對該封包的所需要的ALG處理。
在方塊716處,對連接資料庫進行更新。一旦決定了用於該封包的ALG引擎,就在連接資料庫306中添加新條目,其識別該連接和將用於對與該連接相關聯的封包進行處理的相關聯的ALG處理。一旦使用新連接對連接資料庫306進行了更新,就不需要在該連接條目的使用期,對與該連接相關聯的額外封包執行另外的深度掃瞄。此舉節省了處理時間,並且繞過對該連接的額外封包的深度掃瞄。
在方塊718處,使用來自連接資料庫的識別針對每一個封包所需要的ALG處理的類型的資訊,對封包進行標記。例如,在一個實施例中,將連接識別符和相關聯的ALG引擎識別符添加到該封包中。因此,使用識別該封包所需要的ALG處理的資訊來標記每一個封包。若不需要ALG處理,則沒有標記與封包相關聯,或者將指示不進行ALG處理的特定標記與該封包相關聯。
在方塊720處,發送該封包以進行處理。例如,處理器302控制封包發射器308將該等封包轉發到分類和非同步封包操縱器(例如,圖4中所示的封包操縱器400)。
因此,方法700操作以接收和識別用於ALG處 理的封包,而無需對每一個封包皆進行深度掃瞄。應當注意的是,方法700僅僅是一種實現,並且可以對方法700的操作進行重新排列或者以其他方式進行修改,使得其他實現是可能的。
圖8圖示用於實現非同步分類和封包操縱的示例性方法800。為了清楚起見,下文參照封包操縱器400來描述方法800。例如,方法800提供了對封包的非同步並行和多工ALG處理。例如,圖示可以並行地執行的兩個處理。該等非同步處理規定了以下內容。
1、當更快速地處理佇列時封包流的RTT降低,其導致該佇列中的封包丟棄的機率更低並且端到端傳輸量增加。
2、任何單個任務的CPU使用減少。
3、當將每一封包處理劃分成更小的單元時,CPU的效率增加,這是因為其可以並行處理多個任務,從而增加了系統的閒置時間並因此顯著地減少了電池功耗。
在一種實現中,處理器402執行一組或多組代碼或指令,以控制封包操縱器400執行下文所描述的功能。
在方塊802處,經由從NAT檢視模組接收標記的封包,來開始第一處理。例如,從圖2中所示的NAT檢視模組202或者圖3中所示的NAT檢視模組300接收該標記的封包。使用指示針對該封包所需要的ALG處理的類型的資訊來標記該封包,或者將該封包與該資訊相關聯。亦可以對該封包進行標記或者以其他方式指示不需要ALG處理。
在方塊804處,決定針對所接收的封包是否需要ALG處理。例如,處理器402檢查封包標記來決定是否需要ALG處理,若需要的話,決定需要哪種類型的ALG處理。若封包標記指示不需要ALG處理,則該方法前進至方塊810。若封包標記指示需要ALG處理,則該方法前進至方塊806。
在方塊810處,發送該封包以用於NAT處理。例如,向NAT處理模組212發送該封包,以進行進一步處理和路由。例如,處理器402控制NAT處理介面406來向NAT處理模組212發送該封包。
在方塊806處,將該封包轉發給經由封包的標記所決定的適當ALG引擎。在一個實施例中,每一個ALG引擎包括輸入佇列和輸出佇列,該等佇列允許ALG引擎按照接收封包的順序,對與多個連接相關聯的封包進行處理。佇列的使用空出了(free up)NAT處理,此是由於當系統等待ALG處理完成時,不需要對封包處理進行暫停或者延遲。例如,一旦選擇的封包輸入到適當的ALG佇列中,就可以在所選擇的封包由ALG引擎進行處理的同時,對額外的封包進行操縱。此種類型的多工幫助減少對端到端RTT的影響。
處理器402控制封包發射器408向適當的ALG引擎佇列發送該封包。向ALG引擎通知處於其接收佇列中的該封包,並當ALG引擎對該封包進行處理時,其根據協定規定來轉換該封包的應用有效負荷。在ALG處理完成之後,ALG引擎將該封包放入到其輸出佇列中。
第二處理開始於方塊808,其中在方塊808處 ,在處理之後,從ALG引擎接收處理後的封包。例如,處理後的封包由封包接收器410接收,並傳送給處理器402。隨後,該方法前進至方塊810,其中在方塊810處,發送處理後的封包以進行NAT處理,如上所述。
因此,方法800提供了由封包操縱器執行的兩個處理。在第一處理中,將從NAT檢視模組接收的封包導向選擇的ALG引擎以進行ALG處理。在第二處理中,將經ALG處理的封包和不需要ALG處理的任何封包發送給NAT處理模組,以進行進一步處理。應當注意的是,方法800僅僅是一種實現,並且可以對方法800的操作進行重新排列或者以其他方式進行修改,使得其他實現是可能的。
圖9圖示示例性NAT檢視裝置900。例如,NAT檢視裝置900適合用作圖3中所示的NAT檢視模組300。在一個態樣中,經由包括一或多個模組的至少一個積體電路來實現NAT檢視裝置900,其中該一或多個模組被配置為提供如本文所描述的NAT檢視模組的各個態樣。例如,在一個態樣中,每一個模組包括硬體及/或執行軟體的硬體。
NAT檢視裝置900包括第一模組,第一模組包括用於對經由選擇的連接接收的封包進行深度掃瞄,以決定要對該封包執行的選擇的應用層閘道(ALG)處理的手段(902)。NAT檢視裝置900亦包括第二模組,第二模組包括用於將所選擇的連接與所選擇的ALG處理進行關聯的手段(904),其在一個態樣包括連接資料庫306。NAT檢視裝置900亦包括第三模組,第三模組包括用於基於該關聯,對經由所選 擇的連接接收的額外封包進行轉發以接收所選擇的ALG處理的手段(906),其中繞過對該額外的封包的深度掃瞄,其在一個態樣包括處理器302。
圖10圖示示例性分類裝置1000。例如,分類裝置1000適合用作圖4中所示的分類模組400。在一個態樣中,經由包括一或多個模組的至少一個積體電路來實現分類裝置1000,其中該一或多個模組被配置為提供如本文所描述的分類和封包操縱器的各個態樣。例如,在一個態樣中,每一個模組包括硬體及/或執行軟體的硬體。
分類裝置1000包括第一模組,第一模組包括用於接收標記的封包的手段(1002),其在一個態樣包括NAT檢視介面404。分類裝置1000亦包括第二模組,第二模組包括用於基於與每一個標記的封包相關聯的ALG處理資訊,決定針對每一個標記的封包是否需要任何ALG處理的手段(1004),其在一個態樣包括處理器402。分類裝置1000亦包括第三模組,第三模組包括用於若決定針對所選擇的標記的封包需要ALG處理,則將所選擇的標記封包分別傳送給選擇的ALG引擎,以接收ALG處理的手段(1006),其在一個態樣包括封包發射器408。分類裝置1000亦包括第四模組,第四模組包括用於若決定針對其他標記的封包不需要ALG處理,則向網路位址轉譯(NAT)處理模組發送該等其他標記的封包的手段(1008),其在一個態樣包括NAT處理介面406。
圖11圖示了用於執行NAT處理的示例性方法1100,其中該方法減少封包掃瞄需求和對ALG規則的表格檢 視,從而提供增加的效率。例如,方法1100適合於由圖3中所示的NAT檢視模組300使用。在一種實現中,處理器302執行一組或多組代碼或指令,來控制檢視模組300執行下文所描述的功能。
在方塊1102處,對經由選擇的連接接收的封包進行深度掃瞄,以決定要對該封包執行的選擇的應用層閘道(ALG)處理。例如,對接收的封包進行深度掃瞄,以決定可以與規則資料庫306相互參照的關於該封包的資訊。例如,處理器302對封包進行深度掃瞄,以決定來自其標頭、有效負荷及/或該封包的其他態樣的資訊,從而決定可以用於決定該封包是否滿足規則資料庫304中的規則中的任何一個的關於該封包的資訊。處理器302使用來自深度掃瞄的該資訊,來決定該封包滿足規則資料庫304中的哪些規則,並因此決定封包類型。
在方塊1104處,將所選擇的連接與選擇的ALG處理進行關聯,並且對連接資料庫進行更新。一旦決定了用於該封包的ALG引擎,就在連接資料庫306中添加新條目,其識別該連接和將用於對與該連接相關聯的封包進行處理的相關聯的ALG處理。一旦使用新連接對連接資料庫306進行了更新,就不需要在該連接條目的使用期,對與該連接相關聯的額外封包執行另外的深度掃瞄。此舉節省了處理時間,並且繞過對該連接的額外封包的深度掃瞄。
在方塊1106處,基於連接資料庫306中的關聯,對經由所選擇的連接接收的額外封包進行轉發以接收所選 擇的ALG處理,使得繞過對該等額外封包的深度掃瞄。例如,處理器302控制封包發射器308將該等封包轉發給分類和非同步封包操縱器(例如,圖4中所示的封包操縱器400)。
因此,方法1100操作以接收並識別用於ALG處理的封包,而無需對每一個封包皆進行深度掃瞄。應當注意的是,方法1100僅僅是一種實現,並且可以對方法1100的操作進行重新排列或者以其他方式進行修改,使得其他實現是可能的。
圖12圖示了用於分類和封包操縱的示例性方法1200。為了清楚起見,下文參照封包操縱器400來描述方法1200。在一種實現中,處理器402執行一組或多組代碼或指令,來控制封包操縱器400執行下文所描述的功能。
在方塊1202處,從NAT檢視模組接收標記的封包。例如,從圖2中所示的NAT檢視模組202或者圖3中所示的NAT檢視模組300接收標記的封包。使用指示針對該封包所需要的ALG處理的類型的資訊來標記該封包,或者將該封包與該資訊相關聯。亦可以對該封包進行標記或者以其他方式指示不需要ALG處理。
在方塊1204處,決定針對所接收的封包是否需要ALG處理。例如,處理器402檢查封包標記來決定是否需要ALG處理,若需要的話,決定需要哪種類型的ALG處理。若封包標記指示不需要ALG處理,則該方法前進至方塊1208。若封包標記指示需要ALG處理,則該方法前進至方塊1206。
在方塊1206處,將該封包轉發給經由封包的標記所決定的適當ALG引擎。在一個實施例中,每一個ALG引擎包括輸入佇列和輸出佇列,該等佇列允許ALG引擎按照接收封包的順序,對與多個連接相關聯的封包進行處理。佇列的使用空出了NAT處理,此是由於當系統等待ALG處理完成時,不需要對封包處理進行暫停或者延遲。例如,一旦選擇的封包輸入到適當的ALG佇列中,就可以在所選擇的封包由ALG引擎進行處理的同時,進行額外封包的處理。此種類型的多工幫助減少對端到端RTT的影響。
處理器402控制封包發射器408向適當的ALG引擎佇列發送該封包。向ALG引擎通知存在於其接收佇列中的該封包,並當ALG引擎對該封包進行處理時,其根據協定規定來轉換該封包的應用有效負荷。在ALG處理完成之後,ALG引擎將該封包放入到其輸出佇列中。
在方塊1208處,發送該封包以用於NAT處理。例如,已決定不需要對該封包進行ALG處理,將該封包發送給NAT處理模組212,以進行進一步處理和路由。例如,處理器402控制NAT處理介面406來向NAT處理模組212發送該封包。
因此,方法1200操作以從NAT檢視模組接收標記的封包。若需要ALG處理,則將該等封包發送給適當的ALG引擎。若不需要ALG處理,則直接將該等封包發送給NAT處理模組。應當注意的是,方法1200僅僅是一種實現,並且可以對方法1200的操作進行重新排列或者以其他方式進行修 改,使得其他實現是可能的。
在一或多個示例性的實施例中,所描述的功能可以用硬體、軟體、韌體或其任意組合的方式來實現。若用軟體來實現,則可以將該等功能作為一或多個指令或代碼儲存在或傳送到電腦可讀取媒體上。電腦可讀取媒體包括非臨時性電腦儲存媒體和通訊媒體,其中通訊媒體包括便於從一個地方向另一個地方傳送電腦程式的任何媒體。電腦儲存媒體可以是電腦能夠存取的任何可用媒體,並且亦可以稱為電腦程式產品。舉例說明而非限制性地,此種電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存裝置,或者能夠用於攜帶或儲存具有指令或資料結構形式的期望的程式碼並能夠由電腦進行存取的任何其他媒體。此外,任何連接皆可以適當地稱為電腦可讀取媒體。例如,若軟體是使用同軸電纜、光纖電纜、雙絞線、數位用戶線路(DSL)或者諸如紅外線、無線電和微波之類的無線技術從網站、伺服器或其他遠端源傳輸的,則同軸電纜、光纖電纜、雙絞線、DSL或者諸如紅外線、無線和微波之類的無線技術包括在該媒體的定義中。如本文所使用的磁碟和光碟包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常磁性地再現資料,而光碟則用鐳射光學地再現資料。上文各項的組合亦應當包括在電腦可讀取媒體的範圍之內。
為了使本領域任何技藝人士能夠實現或者使用本發明,提供了對所揭示的態樣的描述。對於本領域技藝 人士來說,對該等態樣的各種修改是顯而易見的,並且本文定義的整體原理可以在不脫離本發明的精神或範圍的基礎上適用於其他態樣(例如,在即時訊息傳遞服務或者任何通用無線資料通訊應用中)。因此,本發明並不意欲限於本文所提供的該等態樣,而是與符合本文揭示的原理和新穎性特徵的最廣範圍相一致。本文專門使用的「示例性的」一詞意味著「用作實例、示例或說明」。本文描述為「示例性」的任何態樣不應被解釋為比其他態樣更較佳或更具優勢。
因此,儘管本文圖示和描述了用於高效的NAT和ALG處理的裝置和方法的各個態樣,但是應當清楚的是,在不脫離其精神或本質特徵的基礎上,可以對該等態樣做出各種修改。因此,本文的揭示內容和描述是說明性的,而不是對下文的請求項中闡述的本發明的範圍的限制。
1100‧‧‧方法
1102‧‧‧方塊
1104‧‧‧方塊
1106‧‧‧方塊

Claims (44)

  1. 一種用於進行封包路由的方法,包括以下步驟:對經由一選擇的連接接收的一封包進行深度掃瞄,以決定要對該封包執行的一選擇的應用層閘道(ALG)處理;將該選擇的連接與該選擇的ALG處理進行關聯;及基於該關聯,對經由該選擇的連接接收的額外封包進行轉發以接收該選擇的ALG處理,並且其中對該額外封包的深度掃瞄被繞過。
  2. 如申請專利範圍第1項所述之方法,進一步包括以下步驟:維持對與一或多個ALG處理相關聯的一或多個規則分別進行識別的一規則資料庫;及決定該封包滿足該一或多個規則中的哪一些,以決定該選擇的ALG處理。
  3. 如申請專利範圍第1項所述之方法,該關聯之步驟包括以下步驟:維持將該選擇的連接與該選擇的ALG處理進行關聯的一連接資料庫。
  4. 如申請專利範圍第1項所述之方法,該深度掃瞄之步驟包括以下步驟:對一封包標頭和一封包有效負荷中的至少一個進行深度掃瞄,以決定要對該封包執行的該選擇的應用層閘道(ALG)處理。
  5. 如申請專利範圍第1項所述之方法,該轉發之步驟包括以下步驟:使用ALG處理資訊標記該封包和該等額外封包以形成標記的封包,並且其中該ALG處理資訊包括識別要執行的該選擇的ALG處理的資訊。
  6. 如申請專利範圍第5項所述之方法,進一步包括以下步驟:接收該等標記的封包;基於與每一個標記的封包相關聯的該ALG處理資訊,決定針對每一個標記的封包是否需要任何ALG處理;若決定針對選擇的標記封包需要ALG處理,則將該等選擇的標記封包分別傳送給選擇的ALG引擎,以接收ALG處理;及若決定針對其他標記封包不需要ALG處理,則向一網路位址轉譯(NAT)處理模組發送該等其他標記封包。
  7. 如申請專利範圍第6項所述之方法,該傳送之步驟包括以下步驟:將該等選擇的標記封包分別輸入到與該選擇的ALG引擎相關聯的選擇的輸入佇列。
  8. 如申請專利範圍第6項所述之方法,進一步包括以下步驟:從該等選擇的ALG引擎接收經處理的封包;及 將該等經處理的封包轉發給該NAT處理模組。
  9. 如申請專利範圍第8項所述之方法,該接收之步驟包括以下步驟:分別從與該等選擇的ALG引擎相關聯的選擇的輸出佇列接收該等經處理的封包。
  10. 一種用於進行封包路由的裝置,包括:一處理器,其被配置為對經由一選擇的連接接收的一封包進行深度掃瞄,以決定要對該封包執行的一選擇的應用層閘道(ALG)處理;一資料庫,其被配置為將該選擇的連接與該選擇的ALG處理進行關聯;及一封包發射器,其被配置為基於該關聯,對經由該選擇的連接接收的額外封包進行轉發以接收該選擇的ALG處理,並且其中對該等額外封包的深度掃瞄被繞過。
  11. 如申請專利範圍第10項所述之裝置,該處理器被配置為:維持對與一或多個ALG處理相關聯的一或多個規則分別進行識別的一規則資料庫;及決定該封包滿足該一或多個規則中的哪一些,以決定該選擇的ALG處理。
  12. 如申請專利範圍第10項所述之裝置,該資料庫被配置為 :維持連接和ALG處理之間的關聯。
  13. 如申請專利範圍第10項所述之裝置,該處理器被配置為:對一封包標頭和一封包有效負荷中的至少一個進行深度掃瞄,以決定要對該封包執行的該選擇的應用層閘道(ALG)處理。
  14. 如申請專利範圍第10項所述之裝置,該處理器被配置為:使用ALG處理資訊標記該封包和該等額外封包以形成標記的封包,並且其中該ALG處理資訊包括識別要執行的該選擇的ALG處理的資訊。
  15. 如申請專利範圍第10項所述之裝置,進一步包括:一第一介面,其被配置為接收該等標記的封包;一第二處理器,其被配置為基於與每一個標記的封包相關聯的該ALG處理資訊,決定針對每一個標記的封包是否需要ALG處理;一第二封包發射器,其被配置為若決定針對選擇的標記封包需要ALG處理,則將該等選擇的標記封包分別傳送給選擇的ALG引擎,以接收ALG處理;及一第二介面,其被配置為若決定針對其他標記封包不需要ALG處理,則向一網路位址轉譯(NAT)處理模組發送該等其他標記封包。
  16. 如申請專利範圍第15項所述之裝置,該第二封包發射器被配置為將該等選擇的標記封包分別傳送到與該等選擇的ALG引擎相關聯的選擇的輸入佇列。
  17. 如申請專利範圍第15項所述之裝置,進一步包括:一封包接收器,其被配置為從該等選擇的ALG引擎接收經處理的封包;及該第二介面,其被配置為向該NAT處理模組發送該等經處理的封包。
  18. 如申請專利範圍第17項所述之裝置,該封包接收器被配置為分別從與該等選擇的ALG引擎相關聯的選擇的輸出佇列接收該等經處理的封包。
  19. 一種用於進行封包路由的裝置,包括:用於對經由一選擇的連接接收的一封包進行深度掃瞄,以決定要對該封包執行的一選擇的應用層閘道(ALG)處理的手段;用於將該選擇的連接與該選擇的ALG處理進行關聯的手段;及用於基於該關聯,對經由該選擇的連接接收的額外封包進行轉發以接收該選擇的ALG處理的手段,並且其中對該等額外封包的深度掃瞄被繞過。
  20. 如申請專利範圍第19項所述之裝置,進一步包括:用於維持對與一或多個ALG處理相關聯的一或多個規則分別進行識別的一規則資料庫的手段;及用於決定該封包滿足該一或多個規則中的哪一些,以決定該選擇的ALG處理的手段。
  21. 如申請專利範圍第19項所述之裝置,該用於關聯的手段包括:用於維持將該選擇的連接與該選擇的ALG處理進行關聯的一連接資料庫的手段。
  22. 如申請專利範圍第19項所述之裝置,該用於深度掃瞄的手段包括:用於對一封包標頭和一封包有效負荷中的至少一個進行深度掃瞄,以決定要對該封包執行的該選擇的應用層閘道(ALG)處理的手段。
  23. 如申請專利範圍第19項所述之裝置,該用於轉發的手段包括:用於使用ALG處理資訊標記該封包和該等額外封包以形成標記的封包的手段,並且其中該ALG處理資訊包括識別要執行的該選擇的ALG處理的資訊。
  24. 如申請專利範圍第19項所述之裝置,進一步包括:用於接收該等標記的封包的手段;用於基於與每一個標記的封包相關聯的該ALG處理資訊,決定針對每一個標記的封包是否需要任何ALG處理的手段 ;用於若決定針對選擇的標記封包需要ALG處理,則將該等選擇的標記封包分別傳送給選擇的ALG引擎,以接收ALG處理的手段;及用於若決定針對其他標記封包不需要ALG處理,則向一網路位址轉譯(NAT)處理模組發送該等其他標記封包的手段。
  25. 如申請專利範圍第24項所述之裝置,該用於傳送的手段包括:將該等選擇的標記封包分別輸入到與該等選擇的ALG引擎相關聯的選擇的輸入佇列中。
  26. 如申請專利範圍第24項所述之裝置,進一步包括:用於從該等選擇的ALG引擎接收經處理的封包的手段;及用於向該NAT處理模組轉發該等經處理的封包的手段。
  27. 如申請專利範圍第26項所述之裝置,該用於接收的手段包括:用於分別從與該等選擇的ALG引擎相關聯的選擇的輸出佇列接收該等經處理的封包的手段。
  28. 一種用於進行封包路由的電腦程式產品,包括:一非臨時性電腦可讀取媒體,其體現可由一處理器執行以進行以下操作的指令: 對經由一選擇的連接接收的一封包進行深度掃瞄,以決定要對該封包執行的一選擇的應用層閘道(ALG)處理;將該選擇的連接與該選擇的ALG處理進行關聯;及基於該關聯,對經由該選擇的連接接收的額外封包進行轉發以接收該選擇的ALG處理,並且其中對該等額外封包的深度掃瞄被繞過。
  29. 如申請專利範圍第28項所述之電腦可讀取媒體,該等指令被配置為使該處理器執行以下操作:維持對與一或多個ALG處理相關聯的一或多個規則分別進行識別的一規則資料庫;及決定該封包滿足該一或多個規則中的哪一些,以決定該選擇的ALG處理。
  30. 如申請專利範圍第28項所述之電腦可讀取媒體,該等指令被配置為使該處理器在一資料庫中維持連接和ALG處理之間的關聯。
  31. 如申請專利範圍第28項所述之電腦可讀取媒體,該等指令被配置為使該處理器對一封包標頭和一封包有效負荷中的至少一個進行深度掃瞄,以決定要對該封包執行的該選擇的應用層閘道(ALG)處理。
  32. 如申請專利範圍第28項所述之電腦可讀取媒體,該等指 令被配置為使該處理器使用ALG處理資訊標記該封包和該等額外封包以形成標記的封包,並且其中該ALG處理資訊包括識別要執行的該選擇的ALG處理的資訊。
  33. 如申請專利範圍第28項所述之電腦可讀取媒體,該等指令被配置為使該處理器執行以下操作:接收該等標記的封包;基於與每一個標記的封包相關聯的該ALG處理資訊,決定針對每一個標記的封包是否需要ALG處理;若決定針對選擇的標記封包需要ALG處理,則將該等選擇的標記封包分別傳送給選擇的ALG引擎,以接收ALG處理;及若決定針對其他標記封包不需要ALG處理,則向一網路位址轉譯(NAT)處理模組發送該等其他標記封包。
  34. 如申請專利範圍第33項所述之電腦可讀取媒體,該等指令被配置為使該處理器將該等選擇的標記封包分別傳送到與該等選擇的ALG引擎相關聯的選擇的輸入佇列。
  35. 如申請專利範圍第33項所述之電腦可讀取媒體,該等指令被配置為使該處理器執行以下操作:從該等選擇的ALG引擎接收經處理的封包;及向該NAT處理模組發送該等經處理的封包。
  36. 如申請專利範圍第35項所述之電腦可讀取媒體,該等指令被配置為使該處理器分別從與該等選擇的ALG引擎相關聯的選擇的輸出佇列接收該等經處理的封包。
  37. 一種用於進行封包路由的裝置,包括:一第一介面,其被配置為接收標記的封包;一處理器,其被配置為基於與每一個標記的封包相關聯的該ALG處理資訊,決定針對每一個標記的封包是否需要ALG處理;一封包發射器,其被配置為若決定針對選擇的標記封包需要ALG處理,則將該選擇的標記封包分別傳送給選擇的ALG引擎,以接收ALG處理;及一第二介面,其被配置為若決定針對其他標記封包不需要ALG處理,則向一網路位址轉譯(NAT)處理模組發送該等其他標記封包。
  38. 如申請專利範圍第37項所述之裝置,該封包發射器被配置為將該選擇的標記封包分別傳送到與該等選擇的ALG引擎相關聯的選擇的輸入佇列。
  39. 如申請專利範圍第37項所述之裝置,進一步包括:一封包接收器,其被配置為從該等選擇的ALG引擎接收經處理的封包;及該第二介面,其被配置為向該NAT處理模組發送該等經 處理的封包。
  40. 如申請專利範圍第39項所述之裝置,該封包接收器被配置為分別從與該等選擇的ALG引擎相關聯的選擇的輸出佇列接收該等經處理的封包。
  41. 一種用於進行封包路由的方法,包括以下步驟:接收標記的封包;基於與每一個標記的封包相關聯的該ALG處理資訊,決定針對每一個標記的封包是否需要任何ALG處理;若決定針對選擇的標記封包需要ALG處理,則將該等選擇的標記封包分別傳送給選擇的ALG引擎,以接收ALG處理;及若決定針對其他標記封包不需要ALG處理,則向一網路位址轉譯(NAT)處理模組發送該等其他標記封包。
  42. 如申請專利範圍第41項所述之方法,該傳送之步驟包括以下步驟:將該等選擇的標記的封包分別輸入到與該等選擇的ALG引擎相關聯的選擇的輸入佇列中。
  43. 如申請專利範圍第41項所述之方法,進一步包括以下步驟:從該等選擇的ALG引擎接收經處理的封包;及向該NAT處理模組轉發該等經處理的封包。
  44. 如申請專利範圍第43項所述之方法,該接收之步驟包括以下步驟:分別從與該等選擇的ALG引擎相關聯的選擇的輸出佇列接收該等經處理的封包。
TW101148655A 2012-12-20 2012-12-20 用於高效的網路位址轉譯和應用層閘道處理的裝置和方法 TW201427342A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101148655A TW201427342A (zh) 2012-12-20 2012-12-20 用於高效的網路位址轉譯和應用層閘道處理的裝置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101148655A TW201427342A (zh) 2012-12-20 2012-12-20 用於高效的網路位址轉譯和應用層閘道處理的裝置和方法

Publications (1)

Publication Number Publication Date
TW201427342A true TW201427342A (zh) 2014-07-01

Family

ID=51725791

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101148655A TW201427342A (zh) 2012-12-20 2012-12-20 用於高效的網路位址轉譯和應用層閘道處理的裝置和方法

Country Status (1)

Country Link
TW (1) TW201427342A (zh)

Similar Documents

Publication Publication Date Title
EP2544417B1 (en) Communication system, path control apparatus, packet forwarding apparatus and path control method
TWI646804B (zh) 用於經由封包中繼外部化網路功能之系統與方法
EP2676411B1 (en) Method and system for classification and management of inter-blade network traffic in a blade server
CN108809830B (zh) 一种实现OpenFlow的软件定义网络中报文排序的方法和网络设备
RU2523917C2 (ru) Система управления связью и способ управления связью
US10623314B2 (en) Switch system, and monitoring centralized control method
KR101574167B1 (ko) 네트워크 시스템 및 경로 제어 방법
US20160301603A1 (en) Integrated routing method based on software-defined network and system thereof
JP5993817B2 (ja) キャリア網における経路制御システム及び方法
CN104145457A (zh) 操作包含影子表的转发元件的方法以及相关的转发元件
US10069648B2 (en) Communication system, control apparatus, communication control method and program
CN104283786B (zh) 用于增加软件定义网络的可缩放性的系统和方法
CN106533943A (zh) 基于网络交换芯片的微码和流表的实现方法
CN104125149A (zh) 优化软件定义的网络的网络元件的配置系统的方法和设备
JP5534033B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
CN101699796B (zh) 一种基于流信任的数据报文高速转发的方法、系统及路由器
WO2017024818A1 (zh) 一种处理数据报文的方法及装置
JP5674179B1 (ja) 効率的なネットワークアドレス変換およびアプリケーションレベルゲートウェイ処理のための装置および方法
JPWO2014126094A1 (ja) 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム
JPWO2014125636A1 (ja) 通信装置またはパケット転送方法
TW201427342A (zh) 用於高效的網路位址轉譯和應用層閘道處理的裝置和方法
Bifulco et al. CATENAE: A scalable service function chaining system for legacy mobile networks
Jagetiya et al. Survey of transport layer multihoming protocols and performance analysis of MPTCP
US7733862B2 (en) Method and apparatus for implementing IPSec engine in IXDP2851
JP4418402B2 (ja) Ipパケット処理装置およびトラヒックカウント方法