TWI469055B - 網路工作卸載裝置與方法 - Google Patents
網路工作卸載裝置與方法 Download PDFInfo
- Publication number
- TWI469055B TWI469055B TW97124301A TW97124301A TWI469055B TW I469055 B TWI469055 B TW I469055B TW 97124301 A TW97124301 A TW 97124301A TW 97124301 A TW97124301 A TW 97124301A TW I469055 B TWI469055 B TW I469055B
- Authority
- TW
- Taiwan
- Prior art keywords
- packets
- unit
- unloading
- sequentially
- instruction
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0485—Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明有關於網路工作卸載,且尤指可平行地對複數個封包進行相應的網路工作的網路工作卸載裝置與方法。
習知的網路通訊硬體(如網路卡)可以讓電腦或其他裝置透過網路以無線或有線的形式與其他的裝置或電腦溝通,而在溝通的過程中有許多相關的網路工作(network task)需要被執行,例如,用來保護網路安全的資料連結層網路安全協定、網路層網路安全協定、傳輸層網路安全協定以及檢查碼確認等工作,然而此類的工作往往需要進行大量的運算,若僅利用中央處理器(CPU)進行該些運算,則會大幅度地消耗或佔用中央處理器的運算資源,從而壓縮了中央處理器可供給其他應用程式使用的資源。
因此,為減少中央處理器在網路工作方面的運算量,可利用硬體來執行一部份的網路工作,此即稱為硬體卸載(offload)或網路工作卸載(network task offload)。如此,即可節省中央處理器在這部分運算所消耗的資源,然而,如何使用硬體處理繁雜的網路工作亦為一大問題,故亟需一種有效率的網路工作卸載技術。
為解決上述問題,本發明的目的之一係提供一種可平行地對複數個封包進行相應的網路工作的網路工作卸載裝置與方法,以使得網路工作卸載的效率得以提昇。
本發明之一實施例揭露一種網路工作卸載裝置,包含一卸載單元與一緩衝記憶體排程器。卸載單元係依據一卸載指令平行地對複數個封包進行相應的網路工作;而緩衝記憶體排程器係耦接該卸載單元,並包含緩衝記憶體控制單元與複數個緩衝記憶體單元。緩衝記憶體控制單元,係用以控制該複數個緩衝記憶體單元之存取;而複數個緩衝記憶體單元係耦接該緩衝記憶體控制單元,且分別具有一輸入端與一輸出端,其係用以分別儲存該複數個封包。
本發明另一實施例揭露一種網路工作卸載方法,包含:依據一卸載指令平行地對複數個封包進行相對應的網路工作;以及利用分別具有一輸入端與一輸出端的複數個緩衝記憶體單元分別儲存該複數個封包。
第1圖係本發明網路工作卸載裝置應用於網路傳送端之一實施例的示意圖。請注意,為求簡潔,第1圖中僅顯示與本發明相關之元件。主機100可為個人電腦、筆記型電腦、個人數位助理、
行動通訊裝置等各種可透過網路以無線或有線的形式與其他裝置溝通的裝置,本實施例中,主機100包含有網路卡驅動程式(後稱驅動程式)110、記憶體120與處理器130。網路工作卸載裝置200得以晶片之形式內建於一網路卡中,網路工作卸載裝置200包含一卸載單元210與一緩衝記憶體排程器220,卸載單元210依據一卸載指令平行地對複數個封包進行相應的網路工作以減少主機100的處理器130在網路工作上的運算量,而緩衝記憶體排程器220用來儲存複數個封包以及控制複數個封包的存取,此外,傳送器實體層300用以傳送處理完畢的封包。
卸載單元210包含第一直接存取記憶體單元(後稱第一直接存取單元)211、傳輸控制協定分段單元(TCP segmentation unit,後稱分段單元)212、檢查碼處理單元(checksum unit)213、資訊暫存器214、第二直接存取記憶體單元(後稱第二直接存取單元)215、金鑰暫存器216以及運算單元217,此外,運算單元217更包含加密單元(encryption unit)218與完整性處理單元(integrity unit)219。緩衝記憶體排程器220耦接於卸載單元210,且包含緩衝記憶體控制單元222與複數個緩衝記憶體B0、B1、B2、B3、B4、B5、B6、...、Bn,其中,檢查碼處理單元213用以對封包進行檢查碼運算後寫入於封包,而緩衝記憶體控制單元222用以控制複數個緩衝記憶體B0~Bn之存
取。
為降低處理器130在網路工作上的運算量,驅動程式110發出一卸載指令至卸載單元200,以控制卸載單元200對欲傳送的封包進行相對應的網路工作卸載處理,例如對封包進行加密、完整性確認、檢查碼處理等。資訊暫存器214依據卸載指令儲存了那些封包應進行何種卸載處理以及該些封包在記憶體120中的位址等卸載工作資訊,在此實施例中,卸載單元200需依序對一個封包進行直接存取與檢查碼的處理、傳輸層完整性之確認、傳輸層加密、網路層加密、網路層完整性之確認、資料連結層加密與資料連結層完整性之確認,然後網路傳送端才可將處理完畢之封包藉由傳送器實體層300送出該處理後的封包。
第2圖係第1圖所示之網路工作卸載裝置200對各緩衝記憶體中的資料所進行之工作的操作示意圖。第2圖中之橫軸為時間,縱軸為各緩衝記憶體,而各方塊表示各緩衝記憶體中所儲存的封包在該時間中所被進行的網路工作。在時槽TS_0時,第一直接存取單元211依據資訊暫存器214中所儲存的資訊至記憶體120直接存取(簡稱為DMA)應進行卸載處理的一第一封包,分段單元212對第一封包進行傳輸控制協定分段(簡稱為TCP),而檢查碼處理單元213對第一封包進行檢查碼之相關處理,如:運算
以產生一檢查碼後,再將該檢查碼填入於封包中對應之位置(簡稱為CHK),之後再將第一封包送至緩衝記憶體排程器220,而緩衝記憶體控制單元222將第一封包儲存在緩衝記憶體B0。請注意到,在時槽TL_0時,卸載單元200亦得以不對第一封包進行傳輸控制協定分段與檢查碼之處理,而僅將第一封包自主機直接存入緩衝記憶體B0,而再於其他時槽對第一封包進行傳輸控制協定分段或檢查碼之處理。
第3圖係第1圖所示之運算單元217之一實施例的詳細示意圖。運算單元217包含資料連結層加密單元310、資料連結層完整性確認單元312、網路層加密單元320、網路層完整性確認單元322、傳輸層加密單元330及傳輸層完整性確認單元332。在時槽TS_1時,第二直接存取單元215依據資訊暫存器214中所儲存的資訊至記憶體120直接存取用來對第一封包加密的第一傳輸層加密金鑰,並將其儲存在金鑰暫存器216之中,傳輸層加密單元330依據資訊暫存器214中所儲存的資訊自緩衝記憶體B0讀取第一封包,並利用第一傳輸層加密金鑰對第一封包加密,例如進行SSL/TLS加密(簡稱為SSL/TLS),檢查碼處理單元213用以對該第一封包進行相關之處理,如:先產生檢查碼,接著再填入該第一封包中之相對位置,然後再將第一封包存回緩衝記憶體B0。而第一直接存取單元211依據資
訊暫存器214中所儲存的資訊至記憶體120直接存取應進行卸載處理的一第二封包,分段單元212對第二封包進行傳輸控制協定分段,而檢查碼處理單元213對第二封包進行檢查碼之相關處理,之後再將第二封包送至緩衝記憶體排程器220,而緩衝記憶體控制單元222將第二封包儲存在緩衝記憶體B1。
在時槽TS_2時,第二直接存取單元215依據資訊暫存器214中所儲存的資訊至記憶體120直接存取用來對第一封包加密的第一網路層加密金鑰,並將其儲存在金鑰暫存器216之中,網路層加密單元320依據資訊暫存器214中所儲存的資訊自緩衝記憶體B0讀取第一封包,並利用第一網路層加密金鑰對第一封包加密,例如進行網路層網路安全(IP security)加密(簡稱為IPsec_en),再將第一封包存回緩衝記憶體B0。第二直接存取單元215依據資訊暫存器214中所儲存的資訊至記憶體120直接存取用來對第二封包加密的第二傳輸層加密金鑰,並將其儲存在金鑰暫存器216之中,傳輸層加密單元330依據資訊暫存器214中所儲存的資訊自緩衝記憶體B1讀取第二封包,並利用第二傳輸層加密金鑰對第二封包進行SSL/TLS加密,再將第二封包存回緩衝記憶體B1。第一直接存取單元211依據資訊暫存器214中所儲存的資訊至記憶體120直接存取應進行卸載處理的一第三封包,分段單元212對第三封包進行傳
輸控制協定分段,而檢查碼處理單元213對第三封包進行檢查碼之相關處理,之後再將第三封包送至緩衝記憶體排程器220,而緩衝記憶體控制單元222將第三封包儲存在緩衝記憶體B2。
如上所述,本發明所提供的網路工作卸載裝置200得對複數個封包同時且平行地進行相對應的網路工作,例如在時槽TS_2時,網路工作卸載裝置200對第一封包進行IPsec加密、對第二封包進行SSL/TLS加密而對第三封包進行記憶體直接存取,如此一來即可在發送封包時更有效率的進行網路工作卸載。
類似於時槽TS_0~TS_2,在時槽TS_3、TS_4、TS_5時,網路層完整性處理單元322、資料連結層加密單元310、資料連結層完整性處理單元312依據卸載指令將第一封包自緩衝記憶體B0讀出,再分別進行網路層完整性處理,例如進行網路層完整性檢查值(integrity check value)運算(簡稱為IPsec_chk)、資料連結層加密,例如進行資料連結層網路安全(MAC security)加密(簡稱為MACsec_en)與資料連結層完整性檢查值運算(簡稱為MACsec_chk)後再存回緩衝記憶體B0,而在時槽TS_6時,利用傳送器實體層300發送已經處理完畢的第一封包。其餘封包亦按照類似於第一封包的方式來處理,為求簡潔,於此不再贅述。
第4圖係本發明網路工作卸載裝置應用於網路接收端之一實施例的示意圖。請注意到,為求簡潔,第4圖中僅顯示與本發明相關之元件,而第1圖與第4圖中具有相同標號之元件為進行相同或同性質處理工作的元件,故相關敘述在此省略。本實施例中,網路工作卸載裝置500包含一卸載單元510與一緩衝記憶體排程器220,卸載單元510依據一卸載指令平行地對複數個封包進行相應的網路工作以減少主機100的處理器130在網路工作上的運算量,而緩衝記憶體排程器220用來儲存複數個封包以及控制複數個封包的存取,此外,接收器實體層400用以接收待處理的封包。
卸載單元510包含第三直接存取記憶體單元(後稱第三直接存取單元)511、資訊暫存器514,運算單元512更包含解密單元(decryption unit)513與完整性處理單元219。緩衝記憶體排程器220耦接於卸載單元510。
類似地,為了降低處理器130於接收封包時在網路工作上的運算量,亦得利用卸載單元510對所接收的封包進行相應的網路工作卸載處理,例如對封包進行解密、完整性確認、檢查碼處理(如:檢查碼之確認)等,資訊暫存器514儲存了解析封包所需要的資訊,在此實施例中,卸載單元510會依序對一個封包進行直接存取、資料連結層完
整性確認、資料連結層解密、網路層完整性確認、網路層解密與傳輸層解密,傳輸層完整性確認,然後再利用第三直接存取單元511將該封包送至主機100。
第5圖係第4圖所示之網路工作卸載裝置500對各緩衝記憶體中的資料所進行之工作的操作示意圖。第5圖中之橫軸為時間,縱軸為各緩衝記憶體,而各方塊表示各緩衝記憶體中所儲存的封包在該時間中所被進行的網路工作,而第6圖係第4圖所示之運算單元512之一實施例的詳細示意圖。運算單元512包含資料連結層解密單元310’、資料連結層完整性確認單元312、網路層解密單元320’、網路層完整性確認單元322與傳輸層解密單元330’及傳輸層完整性確認單元332。
在時槽TS_0’時,卸載單元500自接收器實體層400(簡稱為DMA_PHY)直接將第一封包存入緩衝記憶體B0,而在時槽TS_1’~TS_5’時,資料連結層完整性確認單元312、資料連結層解密單元310’、網路層完整性確認單元322、網路層解密單元320’、傳輸層解密單元330’依據卸載指令將第一封包自緩衝記憶體B0讀出,再分別進行MACsec_chk、MACsec解密(簡稱為MACsec_de)、IPsec_chk、IPsec解密(簡稱為IPsec_de)、SSL/TLS解密(簡稱為SSL/TLS_de)、SSL/TLS完整性驗證,後再存回緩衝記憶體B0,而在時槽TS_6’時,利
用第三直接存取單元511將處理完畢的第一封包直接存至記憶體120(簡稱為DMA_host)。而在時槽TS_1’~TS_7’時,則對第二封包進行類似的運作,其餘封包亦以類似方式來處理,為求簡潔,於此不再贅述。
如上所述,本發明所提供的網路工作卸載裝置500得在接收封包時對複數個封包同時且平行地進行相對應的網路工作,例如在時槽TS_2’時,網路工作卸載裝置200對第一封包進行MACsec_en、對第二封包進行MACsec_chk而對第三封包進行直接存取,如此一來,即可在接收封包時更有效率的進行網路工作卸載。
綜上所述,本發明之實施例提供一種裝置與方法,利用平行地對複數個封包進行相應的網路工作的網路工作卸載技術,發揮硬體得平行處理的特色,以使得網路工作卸載的效率達到最佳化。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧主機
110‧‧‧驅動程式
120‧‧‧記憶體
130‧‧‧處理器
200、500‧‧‧卸載裝置
210、510‧‧‧卸載單元
211、215、511‧‧‧直接存取單元
212‧‧‧分段單元
213‧‧‧檢查碼處理單元
214、514‧‧‧資訊暫存器
215‧‧‧第二直接存取單元
216‧‧‧金鑰暫存器
217、512‧‧‧運算單元
218‧‧‧加密單元
219‧‧‧完整性確認單元
220‧‧‧緩衝記憶體排程器
222‧‧‧緩衝記憶體控制單元
300‧‧‧傳送器實體層
310‧‧‧資料連結層加密
單元
312‧‧‧資料連結層完
整性確認單元
320‧‧‧網路層加密單元
322‧‧‧網路層完整性確認單元
330‧‧‧傳輸層加密單元
332‧‧‧傳輸層完整性確認單元
400‧‧‧接收器實體層
513‧‧‧解密單元
第1圖係本發明網路工作卸載裝置應用於網路傳送端之一實施例的示意圖。
第2圖係第1圖所示之網路工作卸載裝置對各緩衝記憶體中的資料所進行之工作的操作示意圖。
第3圖係第1圖所示之運算單元之一實施例的詳細示意圖。
第4圖係本發明網路工作卸載裝置應用於網路接收端之一實施例的示意圖。
第5圖係第4圖所示之網路工作卸載裝置對各緩衝記憶體中的資料所進行之工作的操作示意圖。
第6圖係第4圖所示之運算單元之一實施例的詳細示意圖。
100‧‧‧主機
110‧‧‧驅動程式
120‧‧‧記憶體
130‧‧‧處理器
200‧‧‧卸載裝置
210‧‧‧卸載單元
211、215‧‧‧直接存取單元
212‧‧‧分段單元
213‧‧‧檢查碼處理單元
214‧‧‧資訊暫存器
215‧‧‧第二直接存取單元
216‧‧‧金鑰暫存器
217‧‧‧運算單元
218‧‧‧加密單元
219‧‧‧完整性處理單元
220‧‧‧緩衝記憶體排程器
222‧‧‧緩衝記憶體控制單元
300‧‧‧傳送器實體層
Claims (78)
- 一種網路工作卸載裝置,包含:一卸載單元,用來依序接收複數個封包,並依據一卸載指令平行地對複數個封包進行相應的網路工作,其中於同一時槽中該卸載單元對該複數個封包中每一個封包進行不同的網路工作;以及一緩衝記憶體排程器,耦接該卸載單元,包含:一緩衝記憶體控制單元,用以控制該複數個緩衝記憶體單元之存取;及複數個緩衝記憶體單元,耦接該緩衝記憶體控制單元,分別具有一輸入端與一輸出端,用以分別儲存該複數個封包。
- 如請求項1之裝置,其中該卸載單元包含:一加密單元,依據該卸載指令循序地對該複數個封包中至少一封包進行相應的加密工作。
- 如請求項2之裝置,其中該加密單元包含:一資料連結層加密單元,依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層加密。
- 如請求項2之裝置,其中該加密單元包含:一網路層加密單元,依據該卸載指令循序地對複數個封 包中至少一封包進行網路層加密。
- 如請求項2之裝置,其中該加密單元包含:一傳輸層加密單元,依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層加密。
- 如請求項1之裝置,其中該卸載單元包含:一解密單元,依據該卸載指令循序地對該複數個封包中至少一封包進行相應的解密工作。
- 如請求項6之裝置,其中該解密單元包含:一資料連結層解密單元,依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層解密。
- 如請求項6之裝置,其中該解密單元包含:一網路層解密單元,依據該卸載指令循序地對複數個封包中至少一封包進行網路層解密。
- 如請求項6之裝置,其中該解密單元包含:一傳輸層解密單元,依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層解密。
- 如請求項1之裝置,其中該卸載單元包含:一完整性確認單元,依據該卸載指令循序地對該複數個 封包中至少一封包進行相應的完整性確認工作。
- 如請求項10之裝置,其中該完整性確認單元包含:一資料連結層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層完整性確認。
- 如請求項10之裝置,其中該完整性確認單元包含:一網路層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行網路層完整性確認。
- 如請求項10之裝置,其中該完整性確認單元包含:一傳輸層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層完整性確認。
- 如請求項1之裝置,其中該卸載單元包含:一直接記憶體存取單元,耦接一主機,依據該卸載指令自該主機循序地讀取該複數個封包或將該複數個封包循序地寫入至該主機。
- 如請求項1之裝置,其中該卸載單元包含:一檢查碼確認單元,依據該卸載指令循序地對該複數個封包中至少一封包進行檢查碼確認。
- 如請求項1之裝置,其中該卸載單元包含:一傳輸控制協定分段單元,依據該卸載指令循序地對該複數個封包中至少一封包進行傳輸控制協定分段。
- 一種網路工作卸載方法,包含:依序接收複數個封包;依據一卸載指令平行地對複數個封包進行相對應的網路工作,其中於同一時槽中該複數個封包中每一個封包係進行不同的網路工作;以及利用分別具有一輸入端與一輸出端的複數個緩衝記憶體單元分別儲存該複數個封包。
- 如請求項17之方法,其中依據該卸載指令平行地對複數個封包進行相對應的網路工作之步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的加密工作。
- 如請求項18之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的加密工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層加密。
- 如請求項18之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的加密工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行網路層加密。
- 如請求項18之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的加密工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層加密。
- 如請求項17之方法,其中依據該卸載指令平行地對複數個封包進行相對應的網路工作之步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的解密工作。
- 如請求項22之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的解密工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層解密。
- 如請求項22之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的解密工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行網路層解密。
- 如請求項22之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的解密工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層解密。
- 如請求項17之方法,其中依據該卸載指令平行地對複數個封包進行相對應的網路工作之步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的完整性確認工作。
- 如請求項26之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的完整性確認工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層完整性確認。
- 如請求項26之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的完整性確認工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行網路層完整性確認。
- 如請求項26之方法,其中依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的完整性確認工作之步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層完整性確認。
- 如請求項17之方法,其中依據該卸載指令平行地對複數個封包進行相對應的網路工作之步驟包含:依據該卸載指令執行一直接記憶體存取操作以自該主機循序地讀取該複數個封包或將該複數個封包循序地寫入至該主機。
- 如請求項17之方法,其中依據該卸載指令平行地對複數個封包進行相應的網路工作之步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行檢查碼確認。
- 如請求項17之方法,其中依據該卸載指令平行地對複數個封包進行相應的網路工作之步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行傳輸控制協定分段。
- 一種具工作卸載功能之接收裝置,位於一第一裝置內,包含:一接收器,用以接收複數個封包;一卸載單元,經由該接收器接收該複數個封包,且依據一卸載指令以管線方式並行地對該複數個封包進行相應的網路通訊協定處理,其中於同一時槽中該卸載單元對該複數個封包中每一個封包進行不同的網路通訊協定處理;複數個記憶體,用以分別儲存該複數個封包;以及一記憶體排程單元,耦接該卸載單元,用以控制該複數個緩衝記憶體單元之存取;其中,該第一裝置可經由該接收裝置接收到經相應的網路通訊協定處理過之封包。
- 如請求項33之裝置,其中該卸載單元包含:一解密單元,依據該卸載指令循序地對該複數個封包 中至少一封包進行相應的解密工作。
- 如請求項33之裝置,其中該卸載單元包含:一資料連結層解密單元,依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層解密。
- 如請求項33之裝置,其中該卸載單元包含:一網路層解密單元,依據該卸載指令循序地對複數個封包中至少一封包進行網路層解密。
- 如請求項33之裝置,其中該卸載單元包含:一傳輸層解密單元,依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層解密。
- 如請求項33之裝置,其中該卸載單元包含:一完整性確認單元,依據該卸載指令循序地對該複數個封包中至少一封包進行相應的完整性確認工作。
- 如請求項33之裝置,其中該卸載單元包含:一資料連結層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層完整性確認。
- 如請求項33之裝置,其中該卸載單元包含: 一網路層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行網路層完整性確認。
- 如請求項33之裝置,其中該卸載單元包含:一傳輸層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層完整性確認。
- 如請求項33之裝置,其中該卸載單元包含:一直接記憶體存取單元,耦接一主機,依據該卸載指令自該主機循序地讀取該複數個封包或將該複數個封包循序地寫入至該主機。
- 如請求項33之裝置,其中該卸載單元包含:一檢查碼確認單元,依據該卸載指令循序地對該複數個封包中至少一封包進行檢查碼確認。
- 一種具工作卸載功能之傳送裝置,位於一第一裝置內,包含:一卸載單元,依據一卸載指令以管線方式並行地對來自該第一裝置之複數個封包進行相應的網路通訊協定處理,其中於同一時槽中該卸載單元對該複數個封包中每一個封包進行不同的網路通訊協定處理;複數個記憶體,用以分別儲存該複數個封包; 一記憶體排程單元,耦接該卸載單元,用以控制該複數個緩衝記憶體單元之存取;以及一傳送器,用以傳送該複數個封包;其中,該第一裝置可經由該傳送裝置來對封包進行相應的網路通訊協定處理及傳送。
- 如請求項44之裝置,其中該卸載單元包含:一加密單元,依據該卸載指令循序地對該複數個封包中至少一封包進行相應的加密工作。
- 如請求項44之裝置,其中該卸載單元包含:一傳輸層加密單元,依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層加密。
- 如請求項44之裝置,其中該卸載單元包含:一網路層加密單元,依據該卸載指令循序地對複數個封包中至少一封包進行網路層加密。
- 如請求項44之裝置,其中該卸載單元包含:一資料連結層加密單元,依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層加密。
- 如請求項44之裝置,其中該卸載單元包含:一完整性確認單元,依據該卸載指令循序地對該複數個封包中至少一封包進行相應的完整性確認工作。
- 如請求項44之裝置,其中該卸載單元包含:一傳輸層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層完整性確認。
- 如請求項44之裝置,其中該卸載單元包含:一網路層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行網路層完整性確認。
- 如請求項44之裝置,其中該卸載單元包含:一資料連結層完整性確認單元,依據該卸載指令循序地對複數個封包中至少一封包進行資料連結傳完整性確認。
- 如請求項44之裝置,其中該卸載單元包含:一直接記憶體存取單元,耦接一主機,依據該卸載指令自該主機循序地讀取該複數個封包或將該複數個封包循序地寫入至該主機。
- 如請求項44之裝置,其中該卸載單元包含: 一檢查碼確認單元,依據該卸載指令循序地對該複數個封包中至少一封包進行檢查碼確認。
- 如請求項44之裝置,其中該卸載單元包含:一傳輸控制協定分段單元,依據該卸載指令循序地對該複數個封包中至少一封包進行傳輸控制協定分段。
- 一種應用於一第一裝置之工作卸載方法,包含:透過一接收介面電路接收複數個封包;依據一卸載指令以管線方式並行地對該複數個封包進行相應的網路通訊協定處理,其中於同一時槽中該複數個封包中每一個封包係進行不同的網路通訊協定處理;利用複數個緩衝記憶體單元分別儲存該複數個封包;以及該第一裝置從該複數個緩衝記憶體單元接收到經相應的網路通訊協定處理之該複數個封包;其中,該卸載指令源自於該第一裝置。
- 如請求項56之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包 進行相對應的解密工作。
- 如請求項57之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層解密。
- 如請求項57之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行網路層解密。
- 如請求項57之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層解密。
- 如請求項57之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的完整性確認工作。
- 如請求項57之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層完整性確認。
- 如請求項57之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行網路層完整性確認。
- 如請求項57之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層完整性確認。
- 如請求項57之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令執行一直接記憶體存取操作以自該主機循序地讀取該複數個封包或將該複數個封包循序地寫入至該主機。
- 如請求項57之方法,其中進行相應的網路通訊協定處理之該步驟包含: 依據該卸載指令循序地對該複數個封包中至少一封包進行檢查碼確認。
- 一種應用於一第一裝置之工作卸載方法,包含:接收來自該第一裝置之複數個封包;依據一卸載指令以管線方式並行地對該複數個封包進行相應的網路通訊協定處理,其中於同一時槽中該複數個封包中每一個封包係進行不同的網路通訊協定處理;利用複數個緩衝記憶體單元分別儲存該複數個封包;以及該第一裝置透過一傳送介面電路傳送經相應的網路通訊協定處理之該複數個封包;其中,該卸載指令源自於該第一裝置。
- 如請求項67之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的加密工作。
- 如請求項67之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進 行傳輸層加密。
- 如請求項67之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行網路層加密。
- 如請求項67之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層加密。
- 如請求項67之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行相對應的完整性確認工作。
- 如請求項67之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行傳輸層完整性確認。
- 如請求項67之方法,其中進行相對應的網路通訊協定 處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行網路層完整性確認。
- 如請求項67之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對複數個封包中至少一封包進行資料連結層完整性確認。
- 如請求項67之方法,其中進行相對應的網路通訊協定處理之該步驟包含:依據該卸載指令執行一直接記憶體存取操作以自該主機循序地讀取該複數個封包或將該複數個封包循序地寫入至該主機。
- 如請求項67之方法,其中進行相應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包進行檢查碼確認。
- 如請求項67之方法,其中進行相應的網路通訊協定處理之該步驟包含:依據該卸載指令循序地對該複數個封包中至少一封包 進行傳輸控制協定分段。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97124301A TWI469055B (zh) | 2008-06-27 | 2008-06-27 | 網路工作卸載裝置與方法 |
US12/491,219 US9319353B2 (en) | 2008-06-27 | 2009-06-24 | Network task offload apparatus and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97124301A TWI469055B (zh) | 2008-06-27 | 2008-06-27 | 網路工作卸載裝置與方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201001290A TW201001290A (en) | 2010-01-01 |
TWI469055B true TWI469055B (zh) | 2015-01-11 |
Family
ID=41448999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW97124301A TWI469055B (zh) | 2008-06-27 | 2008-06-27 | 網路工作卸載裝置與方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9319353B2 (zh) |
TW (1) | TWI469055B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8726132B2 (en) | 2010-12-14 | 2014-05-13 | International Business Machines Corporation | Checksum verification accelerator |
WO2014113055A1 (en) * | 2013-01-17 | 2014-07-24 | Xockets IP, LLC | Offload processor modules for connection to system memory |
RU2016111141A (ru) * | 2013-08-29 | 2017-10-02 | Сейко Эпсон Корпорейшн | Передающая система, передающее устройство и способ передачи данных |
US9733980B1 (en) * | 2014-12-05 | 2017-08-15 | Amazon Technologies, Inc. | Virtual machine management using I/O device logging |
CN105162751B (zh) * | 2015-06-18 | 2018-06-22 | 南京国电南自电网自动化有限公司 | 一种基于lwIP协议栈多网口多连接的通讯*** |
US20210092103A1 (en) * | 2018-10-02 | 2021-03-25 | Arista Networks, Inc. | In-line encryption of network data |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050135396A1 (en) * | 2003-12-19 | 2005-06-23 | Mcdaniel Scott | Method and system for transmit scheduling for multi-layer network interface controller (NIC) operation |
US20050226238A1 (en) * | 2004-03-31 | 2005-10-13 | Yatin Hoskote | Hardware-based multi-threading for packet processing |
US20060056435A1 (en) * | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | Method of offloading iSCSI TCP/IP processing from a host processing unit, and related iSCSI TCP/IP offload engine |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6725371B1 (en) * | 1999-06-30 | 2004-04-20 | Intel Corporation | Secure packet processor |
US7003118B1 (en) * | 2000-11-27 | 2006-02-21 | 3Com Corporation | High performance IPSEC hardware accelerator for packet classification |
US6889222B1 (en) * | 2000-12-26 | 2005-05-03 | Aspect Communications Corporation | Method and an apparatus for providing personalized service |
US6950925B1 (en) * | 2002-08-28 | 2005-09-27 | Advanced Micro Devices, Inc. | Scheduler for use in a microprocessor that supports data-speculative execution |
US20040073716A1 (en) * | 2002-10-14 | 2004-04-15 | Boom Douglas D. | System, device and method for media data offload processing |
US7324547B1 (en) * | 2002-12-13 | 2008-01-29 | Nvidia Corporation | Internet protocol (IP) router residing in a processor chipset |
US7526085B1 (en) * | 2004-07-13 | 2009-04-28 | Advanced Micro Devices, Inc. | Throughput and latency of inbound and outbound IPsec processing |
CN1809058A (zh) | 2005-01-17 | 2006-07-26 | 英业达股份有限公司 | 通过装置卸载来减轻主机负载的***及其方法 |
-
2008
- 2008-06-27 TW TW97124301A patent/TWI469055B/zh active
-
2009
- 2009-06-24 US US12/491,219 patent/US9319353B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050135396A1 (en) * | 2003-12-19 | 2005-06-23 | Mcdaniel Scott | Method and system for transmit scheduling for multi-layer network interface controller (NIC) operation |
US20050226238A1 (en) * | 2004-03-31 | 2005-10-13 | Yatin Hoskote | Hardware-based multi-threading for packet processing |
US20060056435A1 (en) * | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | Method of offloading iSCSI TCP/IP processing from a host processing unit, and related iSCSI TCP/IP offload engine |
Also Published As
Publication number | Publication date |
---|---|
TW201001290A (en) | 2010-01-01 |
US20090327693A1 (en) | 2009-12-31 |
US9319353B2 (en) | 2016-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7509487B2 (en) | Secure networking using a resource-constrained device | |
TWI469055B (zh) | 網路工作卸載裝置與方法 | |
US7502925B2 (en) | Method and apparatus for reducing TCP frame transmit latency | |
US10630683B2 (en) | Encryption key updates in wireless communication systems | |
CN111859472B (zh) | 用于片上***平台的安全插件 | |
US8918646B2 (en) | Data processing apparatus | |
CN107103472B (zh) | 一种用于区块链的算法处理模块 | |
JP2022541057A (ja) | 暗号置換のための暗号アーキテクチャ | |
US8106916B1 (en) | Cryptographic computations on general purpose graphics processing units | |
CN106663178A (zh) | 用于使用固态驱动器来加速计算密集型操作的技术 | |
EP1341071A2 (en) | Memory card | |
EP3803672B1 (en) | Memory-efficient hardware cryptographic engine | |
CN107643992B (zh) | PCIe控制器与使用PCIe控制器的环回数据通路 | |
US20080028210A1 (en) | Packet cipher processor and method | |
EP4020163A1 (en) | Technologies for memory and i/o efficient operations on homomorphically encrypted data | |
US11722467B2 (en) | Secured communication from within non-volatile memory device | |
US20230205715A1 (en) | Acceleration framework to chain ipu asic blocks | |
JP2004112461A5 (zh) | ||
EP2545681B1 (en) | Network controller circuitry to issue at least one portion of packet payload to device in manner that by-passes communication protocol stack involvement | |
EP1692667B1 (en) | Method and apparatus for secure networking between a resource-constrained device and a remote network node | |
US8316431B2 (en) | Concurrent IPsec processing system and method | |
US20100122323A1 (en) | Storage device management systems and methods | |
CN117083612A (zh) | 处置未对齐事务以用于内联加密 | |
US20040111626A1 (en) | Security processing of unlimited data size | |
CN101789952A (zh) | 网络工作卸载装置与方法 |