TW201917623A - 演算法的卸載方法、裝置和系統 - Google Patents
演算法的卸載方法、裝置和系統 Download PDFInfo
- Publication number
- TW201917623A TW201917623A TW107129270A TW107129270A TW201917623A TW 201917623 A TW201917623 A TW 201917623A TW 107129270 A TW107129270 A TW 107129270A TW 107129270 A TW107129270 A TW 107129270A TW 201917623 A TW201917623 A TW 201917623A
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- transport layer
- processing
- protocol
- extension device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 208
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 105
- 230000003213 activating effect Effects 0.000 title abstract 2
- 238000012545 processing Methods 0.000 claims abstract description 322
- 230000008569 process Effects 0.000 claims abstract description 141
- 230000001133 acceleration Effects 0.000 claims description 75
- 238000004458 analytical method Methods 0.000 claims description 50
- 238000005538 encapsulation Methods 0.000 claims description 19
- 238000004321 preservation Methods 0.000 claims description 14
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000005577 local transmission Effects 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 25
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 230000004907 flux Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 230000001934 delay Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- 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
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- 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
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/164—Implementing security features at a particular protocol layer at the network layer
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- 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/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
Abstract
本發明公開了一種演算法的卸載方法、裝置和系統。其中,該方法包括:擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務;在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝;擴展裝置內部署的網路控制器外發封裝後的資料報文。本發明解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。
Description
本發明涉及網際網路領域,具體而言,涉及一種演算法的卸載方法、裝置和系統。
隨著網際網路技術的發展,使用者可以藉由網際網路來獲取各種各樣的資訊,並享受網際網路提供的各種在線服務,例如,網上購物、支付、轉帳等。HTTP(Hyper Text Transfer Protocol)超文本傳輸協定是目前網際網路上應用最廣泛的應用層協定,基於傳輸層的TCP協定進行通訊,在客戶端與伺服器之間傳輸超文本文件。但是,由於網際網路是開放環境,而HTTP協定被用於在Web瀏覽器和網路伺服器之間傳遞資訊時,是以明文方式發送內容,不提供任何方式的資料加密,如果攻擊者截取了Web瀏覽器和網路伺服器之間的傳輸報文,可以直接讀懂其中的資訊,因而,HTTP協定不適合傳輸一些敏感資訊,例如,銀行卡號、密碼等資訊。 SSL(Secure Sockets Layer,保全插座層),及其繼任者傳送層保全(Transport Layer Security,TLS)是為網路通訊提供安全及資料完整性的一種安全傳輸協定,在HTTP的基礎上加入SSL協定(即HTTPS,Hyper Text Transfer Protocol over Secure Socket Layer),可以實現資料的安全傳輸。因而,HTTPS是以安全為目標的HTTP通道,在Web瀏覽器與網站伺服器進行資料加密傳輸、身份認證,可以用於敏感資訊的傳輸,例如,交易支付等資訊。 目前,TLS/SSL是現有網路通訊中應用最廣泛的安全協定層,許多網際網路公司也都早已提出全網HTTPS的目標。但是TLS/SSL協定的一個顯著代價是交握協商中(加密/解密/壓縮/解壓縮等運算步驟)的計算密集性,伺服器主機需要耗費大量時間處理(這也是HTTPS比HTTP明顯要慢的主要原因)。藉由硬體加速和卸載(即Offload,需要注意的是,此處的卸載是指藉由增加晶片或其他PCI插卡等來處理或運行本應該在伺服器上的CPU內運行的一些演算法,從而降低對伺服器CPU資源的消耗)的方式,可以將運算密集的加解密演算法等操作在伺服器主機的CPU之外單獨進行,從而使CPU能夠處理更多的協定疊和操作系統層面的請求、並達到較少延遲、提高性能的目的。 但是在傳統TLS/SSL卸載方法中,採用的都是局部卸載,即網路協定全流程仍然在主機上運行,只是對其中的若干步驟進行卸載。這種局部的卸載和優化程度不夠完全,雖然能夠減少主機上的一些主要加解密演算法步驟的計算壓力,但是對於整個流程而言,會另外引入一些資源開銷和時延代價。這部分引入的折衷代價在某些場景下甚至會和卸載方案本身帶來的好處抵消(如AES加密流資料時,頻繁調用卸載的開銷有時會大於主機直接計算的開銷)。 針對上述現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的問題,目前尚未提出有效的解決方案。
本發明實施例提供了一種演算法的卸載方法、裝置和系統,以至少解決現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。 根據本發明實施例的一個方面,提供了一種演算法的卸載方法,包括:擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務;在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝;擴展裝置內部署的網路控制器外發封裝後的資料報文。 根據本發明實施例的一個方面,還提供了一種演算法的卸載方法,包括:擴展裝置接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路協定處理單元進行解析;擴展裝置使用本地的傳送層保全協定對解析結果進行處理;擴展裝置將處理結果上傳到主機。 根據本發明實施例的另一方面,還提供了一種儲存媒體,儲存媒體包括儲存的程式,其中,在程式運行時控制儲存媒體所在設備執行上述任意一項的演算法的卸載方法。 根據本發明實施例的另一方面,還提供了一種電腦設備,電腦設備用於運行程式,其中,程式運行時執行上述任意一項的演算法的卸載方法。 根據本發明實施例的另一方面,還提供了一種演算法的卸載系統,包括:處理器;以及記憶體,與處理器連接,用於為處理器提供處理以下處理步驟的指令:擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務;在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝;擴展裝置內部署的網路控制器外發封裝後的資料報文。 根據本發明實施例的另一方面,還提供了一種演算法的卸載系統,包括:處理器;以及記憶體,與處理器連接,用於為處理器提供處理以下處理步驟的指令:擴展裝置接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路協定處理單元進行解析;擴展裝置使用本地的傳送層保全協定對解析結果進行處理;擴展裝置將處理結果上傳到主機。 根據本發明實施例的另一方面,還提供了一種演算法的卸載系統,包括:主機,用於提供應用程式;擴展裝置,與所述主機藉由擴展介面連接,用於在所述主機發送資料報文的情況下,根據主機調用的介面,啟動本地的傳送層保全協定來處理任務,並在所述傳送層保全協定處理任務之後,使用網路協定處理單元將處理結果作為資料報文進行封裝後,藉由網路控制器發送;其中,所述擴展裝置還用於在所述主機接收資料報文的情況下,接收所述資料報文,使用本地的網路控制器將所述資料報文傳輸至網路協定處理單元進行解析,並使用本地的傳送層保全協定對解析結果進行處理後,將處理結果上傳到所述主機。 根據本發明實施例的另一方面,還提供了一種集成晶片,包括:擴展介面,用於與主機連接,其中,所述主機用於提供應用程式;傳送層保全協定處理單元,用於根據所述主機調用的介面處理任務;網路協定處理單元,與所述傳送層保全協定處理單元通訊,用於資料報文進行封裝或解析;網路控制器,用於發送或接收資料報文。 在本發明實施例中,藉由擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務;在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝;擴展裝置內部署的網路控制器外發封裝後的資料報文,達到了使得擴充卡完成了TLS/SSL協定層之下的幾乎全部流程的目的,從而實現了減少主機上的計算壓力、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量的技術效果,進而解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基於本發明中的實施例,本領域具有通常知識者在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。 需要說明的是,本發明的說明書和申請專利範圍及上述圖式中的術語“第一”、“第二”等是用於區別類似的對象,而不必用於描述特定的順序或先後次序。應該理解這樣使用的資料在適當情況下可以互換,以便這裡描述的本發明的實施例能夠以除了在這裡圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在於覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限於清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對於這些過程、方法、產品或設備固有的其它步驟或單元。 首先,在對本發明實施例進行描述的過程中出現的部分名詞或術語適用於如下解釋: SSL:(Secure Socket Layer,保全插座層),位於可靠的面向連接的網路層協定和應用層協定之間的一種協定層。SSL藉由互相認證、使用數位簽名確保資料完整性、使用加密確保資料私密性,以實現客戶端和伺服器之間的安全通訊。該協定由兩層組成:SSL記錄協定和SSL交握協定。 TLS:(Transport Layer Security,安全傳輸層協定),用於在兩個通訊應用程式之間提供保密性和資料完整性。該協定由兩層組成:TLS記錄協定和TLS交握協定。 HTTP:(Hyper Text Transfer Protocol,超文本傳輸協定)是一種用於從網站伺服器傳輸超文本到本地Web瀏覽器的傳輸協定,以明文方式發送內容。不提供任何方式的資料加密,不適合傳輸敏感資訊,例如,銀行卡號、密碼等資訊。 HTTPS:(Hyper Text Transfer Protocol over Secure Socket Layer,安全套接字層協定),是以安全為目標的HTTP通道,即在HTTP的基礎上加入SSL協定。在Web瀏覽器與網站伺服器進行資料加密傳輸、身份認證,可以用於敏感資訊的傳輸,例如,交易支付等資訊。 NIC:(Network Interface Card,網路介面卡,簡稱網卡),是連接電腦與網路的硬體設備,無論是雙絞線連接、同軸電纜連接還是光纖連接,都必須借助網卡才能實現資料的通訊。Smart NIC為智慧網卡。 TOE(TCP Offload Engine,TCP卸載引擎),使用網卡上專用處理器來完成一些或所有資料包的處理任務,也就是說,藉由採用配有TOE晶片的專用網卡,包括TCP在內的四層處理請示都可以從主機處理器轉移到網卡,以便在加速網路回應的同時提高伺服器的性能。 MAC(Media Access Control,媒體存取控制),是資料鏈路層的一個子層,資料鏈路層分成LLC(Logical Link Control,邏輯鏈路控制)和MAC兩個子層,其中,上面的LLC子層用於實現資料鏈路層與硬體無關的功能,例如,流量控制、錯誤復原等;較低的MAC子層提供LLC和物理層之間的介面。 PHY(Physical Layer,物理層),OSI的最底層。網卡工作在OSI的物理層(第一層)和資料鏈路層(第二層),其中,物理層定義了資料傳送與接收所需要的電與光信號、線路狀態、時鐘基準、資料編碼和電路等,並向資料鏈路層設備提供標準介面;資料鏈路層則提供尋址機構、資料幀的構建、資料錯誤檢查、傳送控制、向網路層提供標準的資料介面等功能。 RSA(RSA algorithm,RSA演算法),目前最有影響力和最常用的公鑰加密演算法,是一種非對稱密碼演算法,即需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。 AES(Advanced Encryption Standard,先進加密標準),為對稱密鑰加密中的演算法之一。 卸載(Offload),本發明實施例中提到的卸載是指藉由系統內置的嵌入式晶片或PCI插卡來承擔伺服器CPU需要撐到的協定或加密演算法,從而降低伺服器CPU的資源佔用,提供系統的性能。例如,TTL/SSL卸載,是指將伺服器CPU上的TTL/SSL協定相關的加解密演算法在獨立於CPU之外的硬體加速卡(或稱擴充卡)上運行。而本發明實施例提供的演算法卸載系統是將載伺服器上相關協定(例如,TTL/SSL協定、TCP/IP協定疊處理以及對應的卸載控制等)、TTL/SSL加解密演算法,以及基礎網卡功能相關的控制和資料通路等的處理操作在獨立於伺服器的CPU之外上擴展裝置上進行,實現伺服器的全域卸載。實施例 1
根據本發明實施例,提供了一種演算法的卸載系統實施例。需要說明的是,本實施例可以在基於HTTPS協定在Web瀏覽器與網站伺服器之間進行資料傳輸的過程中,用於對網站伺服器的主機進行加速。 目前,為了提高資料傳輸的安全,大多應用或服務採用與HTTPS在Web瀏覽器與網站伺服器之間傳輸資料。HTTPS是HTTP和TTL/SSL協定的組合,TTL/SSL是一種加密協定,本身不具有實際的應用意義。當網站伺服器運行HTTP協定時,TTL/SSL的加解密會佔用伺服器主機較多的CPU資源,降低伺服器性能,導致網站伺服器向Web瀏覽器的回應速度變慢,嚴重影響使用者上網體驗。 為了減少CPU資源的佔用,現有技術中,採用專門的TTL/SSL硬體加速卡對伺服器進行SSL卸載,藉由TTL/SSL硬體加速卡來執行TTL/SSL加解密演算法等操作,減少伺服器主機上運行TTL/SSL加解密演算法步驟的計算壓力。例如,圖1是根據現有技術的一種可選的TLS/SSL卸載方案的硬體結構示意圖,如圖1所示,傳統的TLS/SSL卸載方案中,其硬體結構主要由三個部分組成:主機、網卡和TLS/SSL加速卡,三個部分之間藉由匯流排協定互聯。其中,伺服器主機上通常運行用以提供Web服務的應用程式,安全層協定疊(TLS/SSL)軟體,TCP/IP協定疊,擴充卡驅動等等。應用程式藉由調用傳送層保全框架(TLS/SSL)的介面,以及經由TLS/SSL加速卡的驅動,完成安全協定演算法的硬體卸載;並藉由主機的核心完成TCP/IP協定疊處理,經由網卡的驅動,完成底層網路報文的收發。網卡藉由主機介面接收控制面的配置,並藉由控制器完成資料面的處理和轉發。TLS/SSL加速卡上一般有多個平行處理的硬體加速單元用於卸載加解密演算法。所有的演算法加速核心都藉由可信仲裁單元進行任務派發和資料域的隔離。 圖2(a)和2(b)是根據現有技術的一種可選的TLS/SSL卸載方案的工作流程示意圖,其中,發送資料包的基本流程如圖2(a)所示,包括如下步驟: (1)主機發起任務,由應用程式到主機TLS/SSL協定疊,再到TLS/SSL加速卡驅動,藉由匯流排協定介面配置到加速卡硬體; (2)加速卡上開始進行仲裁和計算任務,完成後的結果藉由匯流排介面返回給主機; (3)主機根據不同的情況,可能會多次調用上邊的步驟(1)和(2); (4)主機對加密後的資料報文進行TCP/IP協定封裝,並藉由匯流排協定介面配置到網卡硬體; (5)網卡根據控制面的設置,對資料面的報文進行對應的外發操作處理。 其接收資料包的基本流程如圖2(b)所示,包括如下步驟: (1)網卡收到資料報文,藉由匯流排協定介面上送給主機; (2)主機對接收到的資料報文進行TCP/IP協定疊解析,處理得到的資料,如果是未經過加密的,則直接上送至應用程式;資料如果是經過加密的,則需要下述步驟: (3)進入TLS/SSL協定層解析,並由TLS/SSL加速卡驅動藉由匯流排協定介面配置到加速卡硬體; (4)主機根據不同的情況,可能會多次調用上邊的步驟(3); (5)解密後的明文資料上傳到應用程式。 從上述步驟可看出,傳統TLS/SSL卸載方法雖然減少了主機上的一些主要加解密演算法步驟的計算壓力,但是對於整個流程而言,卻另外引入了一些資源開銷和時延代價。這是因為,在傳統的TLS/SSL卸載方法中, 所有流量都走到主機,主機的CPU資源仍然會花費相當一部分比例在TCP/IP協定疊和TLS/SSL的協定層解析等步驟上。其次,在每一次發送/接收的資料通路中,在主機與兩個擴充卡之間包含多次的驅動介面調用、匯流排協定介面通訊、以及相應的核心模式/使用者模式上下文切換等等。另外,傳統的“主機+網卡+加速卡”的架構,其間的互聯都是藉由系統公共匯流排,每個資料包會對應有多次的匯流排資料交換,相當於是成倍增大了匯流排流量負擔。 由上可以看出,對於整個流程,會引入另外一些資源開銷和時延,例如AES加密流資料時,頻繁調用SSL卸載的開銷可能會大於伺服器主機直接計算加解密演算法的開銷。 發明人經研究發現,僅僅將HTTPS應用中的SSL加解密演算法進行卸載的方案,伺服器主機的仍然要消耗CPU資源來處理TCP/IP協定疊和TTL/SSL協定層的解析等步驟,如果可以將這些步驟從主機上卸載並轉移到TTL/SSL硬體加速卡上,可以在TTL/SSL硬體加速卡上完成安全協定演算法、交握流程,以及底層網路協定疊處理的全硬體卸載,達到減少對伺服器主機上CPU資源的佔用。 在上述應用場景下,作為一種可選的實施例,圖3是根據本發明實施例的一種可選的演算法的卸載系統示意圖,如圖3所示,該系統包括:主機301和擴展裝置303。 其中,主機301可以是基於HTTPS協定進行資料傳輸的伺服器主機,包括但不限於任意一種基於HTTPS應用的網站或業務伺服器,用於提供基於Web服務的應用程式、擴展裝置(擴充卡)驅動等。 擴展裝置301與主機301藉由主機匯流排連接,可以在主機301基於HTTPS協定進行資料傳輸的過程中,用於卸載伺服器上相關協定(例如,TTL/SSL協定、TCP/IP協定疊處理以及對應的卸載控制等)、TTL/SSL加解密演算法,以及基礎網卡功能相關的控制和資料通路等的處理,以減少主機301的CPU資源消耗。 需要說明的是,在伺服器主機與Web瀏覽器之間基於HTTPS協定進行資料傳輸時包括資料的發送和接收,下面從伺服器主機向Web瀏覽器發送資料和接收來自Web瀏覽器的資料兩個方面來進行說明。圖4是根據本發明實施例的一種可選的演算法的卸載系統示意圖,如圖4所示,主機301主要運行用來提供Web服務的應用程式,擴充卡驅動等;而擴展裝置303(也稱“擴充卡”、“加速網卡”等)上包含相關協定卸載(TCP/IP協定疊、TLS/SSL協定層以及對應的卸載控制等)模組、TLS/SSL演算法硬體加速模組、基礎網卡功能相關的控制和資料通路模組等。即將安全層協定疊軟體,TCP/IP協定疊,卸載到擴展裝置303(也稱加速網卡、擴充卡等)。其中,主機和擴充卡兩個部分之間藉由主機匯流排協定互聯。 其中,擴展裝置303藉由主機介面與主機301的應用程式進行通訊(全卸載方式下,此介面通訊中的資料都是明文)。應用程式藉由調用傳送層保全框架(TLS/SSL)的介面,將應用資料進行相應的TLS/SSL處理、TCP/IP封裝、以及其他網路通訊中所需要的處理等的資料路徑就全部卸載到了擴展裝置303(TLS/SSL加速網卡),藉由擴展裝置303完成安全協定演算法、交握流程、以及底層網路協定疊處理的完全硬體卸載。 需要說明的是,擴展裝置303(即擴充卡)上一般有多個平行處理的硬體加速單元用於卸載加解密演算法。所有這些演算法加速核心都藉由可信仲裁單元進行任務派發和資料域的隔離。 作為一種可選的實施方案,當伺服器主機向Web瀏覽器發送資料包時,主機301發起發送資料包的任務,並由主機301的應用程式調用擴展裝置303的傳送層保全協定的介面,擴展裝置303用於根據主機調用的介面,啟動本地的傳送層保全協定(TLS/SSL)來處理任務;並在傳送層保全協定(TLS/SSL)處理任務之後,擴展裝置303使用網路協定處理單元將處理結果作為資料報文進行封裝,並藉由擴展裝置303內部署的網路控制器外發封裝後的資料報文。 可選地,在擴展裝置303啟動本地的傳送層保全協定(TLS/SSL)來處理任務時,可以先判斷是否需要使用傳送層保全協定(TLS/SSL)來處理該任務,並在需要使用傳送層保全協定(TLS/SSL)來處理該任務的情況下,對任務進行仲裁,並將任務發送至演算法加速單元進行處理,得到該任務的處理結果。 在擴展裝置303將任務發送至演算法加速單元進行處理,得到該任務的處理結果後,擴展裝置303使用網路協定處理單元對該任務的處理結果進行封裝,並將封裝結果配置給網路控制器,使用網路控制器發送封裝後的資料報文。 由上可以看出,當主機發起發送資料包括的任務後,由擴展裝置303對該任務完成傳送層保全協定(例如,TLS/SSL)演算法、網路協定(例如,TCP/IP)封裝,和底層網路協定疊的功能。 作為一種可選的實施例,在擴展裝置303上,可以使用軟體疊來運行傳送層保全協定的服務,藉由傳送層保全協定的引擎單元來進行加解密演算法的卸載,藉由TCP卸載引擎(TOE)來執行網路協定(TCP/IP)的硬體加速處理。 基於上述實施例,作為一種可選的實施方式,在擴展裝置303使用網路(TCP/IP)協定處理單元將處理結果作為資料報文進行封裝之前,還可以判斷擴展裝置303中是否存在TCP卸載引擎(TOE);並在擴展裝置303中存在TCP卸載引擎(TOE)的情況下,使用TCP卸載引擎(TOE)執行網路協定(TCP/IP)的硬體加速處理。 可選地,在擴展裝置303中不存在TCP卸載引擎(TOE)的情況下,判斷擴展裝置303的資源(例如,CPU資源)使用量是否超過預定閾值,如果超過則使用負載均衡調度模組(或稱“流量調度模組”)將部分流量旁路到主機上處理。 作為另一種可選的實施方案,當伺服器主機接收來自Web瀏覽器的資料包時,擴展裝置303接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路協定處理單元(例如,TCP/IP處理單元)進行解析,得到解析結果,並使用本地的傳送層保全協定(TLS/SSL)對解析結果進行處理,得到處理結果,將該處理結果上傳到主機。 需要說明的是,作為一種可選的實施例,擴展裝置303可以藉由TCP卸載引擎(TOE)來執行網路協定(TCP/IP)的硬體加速處理。其中,當擴展裝置303接收資料報文後,可以首先判斷擴展裝置303中是否存在TCP卸載引擎(TOE),並在擴展裝置303中存在TCP卸載引擎(TOE)的情況下,使用TCP卸載引擎(TOE)執行網路協定處理單元(例如,TCP/IP處理單元)的硬體加速處理,並將資料報文儲存到處理器的記憶體區。 可選地,在將資料報文儲存到處理器的記憶體區之後,處理器對資料報文進行協定疊處理;如果需要執行TLS卸載,則發給保全插座層(SSL)進行解密處理,並調用傳送層保全協定來完成硬體加速;如果不需要執行TLS卸載,根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。 可選地,作為一種可選的實施方式,當擴展裝置303接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路(TCP/IP)協定處理單元進行解析,得到解析結果之後,可以判斷該解析結果中的資料是否經過加密,其中,當解析結果中的資料沒有經過加密的情況下,擴展裝置303直接將解析結果上傳至主機;當解析結果中的資料經過加密的情況下,再使用本地的傳送層保全協定(TLS/SSL)對解析結果進行處理。 具體地,在使用本地的傳送層保全協定(TLS/SSL)對解析結果進行處理時,擴展裝置303的處理器可以先判斷該解析結果是否需要發給傳送層保全協定的保全插座層進行處理,並在該解析結果需要發給傳送層保全協定的保全插座層進行處理的情況下,使用傳送層保全協定的保全插座層處理解析結果;在該解析結果不需要發給傳送層保全協定的保全插座層進行處理的情況下,則旁路到主機中處理解析結果。 其中,作為第一種可選的實施方式,在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行加解密資料,如果加解密結果滿足預定條件,則上傳至主機301。 作為第二種可選的實施方式,在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行解密資料,並根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機301。 基於上述任意一種可選的實施防方式,當擴展裝置303使用本地的傳送層保全協定(TLS/SSL)對解析結果進行處理的過程中,傳送層保全協定(TLS/SSL)層對解析結果進行處理,得到處理結果,並將處理結果進行仲裁,並發送至對應的演算法加速單元進行加解密處理,得到解密結果。 需要說明的是,對於一些應用場合的特殊需求(如加速網卡的韌體熱升級等),可以開啟主機的TCP/IP、TLS/SSL等協定疊處理,相當於是傳統TLS/SSL卸載方案的兼容版本。一旦熱升級之類的操作就緒,主機可以仍然切換回全卸載方案,以減少載荷、提高效率。 容易注意到的是,本發明實施例提供的TLS/SSL全卸載方案中,擴充卡完成了TLS/SSL協定層之下的幾乎全部流程,能夠顯著的減少主機上的計算壓力,在具體實現中,可以有多種不同的具體形式。例如,ARM核心的智慧網卡+TLS/SSL硬體加速模組+TOE等。實施例 2
根據本發明實施例,還提供了一種演算法的卸載方法實施例,用於基於HTTPS協定進行資料傳輸的伺服器主機向Web瀏覽器發送資料的過程中,本實施例可以應用於實施例1中的一種演算法的卸載系統中,包括但不限於實施例1中場景。需要說明的是,在圖式的流程圖示出的步驟可以在諸如一組電腦可執行指令的電腦系統中執行,並且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟。 由於現有的基於HTTPS協定的伺服器主機的硬體卸載加速方案,只能將基於HTTP協定進行資料傳輸的過程中關於TTL/SSL加解密演算法的部分卸載,而伺服器主機對相關協定(例如,TTL/SSL協定、TCP/IP協定疊處理以及對應的卸載控制等)、TTL/SSL加解密演算法,以及基礎網卡功能相關的控制和資料通路等的處理仍然消耗大量的CPU資源。 為了解決上述問題,本發明提供了一種演算法的卸載方法實施例,圖5是根據本發明實施例的一種演算法的卸載方法流程圖,如圖5所示,包括如下步驟: 步驟S502,擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務。 作為一種可選的實施例,上述主機可以是基於HTTPS協定進行資料傳輸的伺服器主機,包括但不限於任意一種基於HTTPS應用的網站或業務伺服器;上述擴展裝置可以是集成了TLS/SSL協定處理模組、TCP/IP協定層處理模組的擴充卡或硬體加速網卡,用於對主機上的應用資料進行TLS/SSL處理、TCP/IP封裝等操作。主機與擴展裝置之間藉由匯流排介面通訊,使得主機只需要提供基於Web服務的應用程式、擴充卡驅動即可。 需要說明的是,由於主機與擴展裝置藉由匯流排介面連接,主機需要發送資料時,可以建立發送資料的任務,並調用擴展裝置上的相應的介面(例如,TLS/SSL介面),使得擴展啟動本地的傳送層保全協定(TLS/SSL)來對當前任務進行處理(例如,TLS/SSL加密處理)。 容易注意的是,上述擴展裝置可以根據主機調用的介面,啟用相應的協定卸載流程,此時,擴展裝置上的TLS/SSL協定層(即傳送層保全協定層)可以對伺服器主機的協定卸載流程進行流程控制,例如,有計算任務則進行仲裁,將計算任務派發給對應的演算法硬體加速單元,直到計算結果返回。可選地,根據不同的情況下,可能進行多次上述流程控制操作。 步驟S504,在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝。 作為一種可選的實施例,上述網路協定處理單元可以是用於主機提供Web服務時對發送的資料報文進行TCP/IP封裝,對接收到的資料報文進行TCP/IP協定疊解析等處理操作;因而,當伺服器主機(即上述主機)發送資料時,調用擴展裝置上的相應的介面(例如,TLS/SSL介面),使得擴展啟動本地的傳送層保全協定(TLS/SSL)來對當前任務進行TLS/SSL加密處理得到處理結果後作為資料報文進行封裝,並藉由匯流排協定介面配置到網路控制器。 步驟S506,擴展裝置內部署的網路控制器外發封裝後的資料報文。 在上述步驟S506中,當擴展裝置上的TCP/IP協定疊處理單元對加密後的資料報文進行TCP/IP協定封裝,並配置到網路控制器後,藉由網路控制器根據控制面的設置,對資料面的報文進行對應的外發操作處理。 以圖4所示的演算法的卸載系統為例,本發明實施例提供的TLS/SSL全卸載的硬體加速方案主要包括如下幾個模組:主機301和擴展裝置303(即TLS/SSL卸載加速網卡,為表述簡潔,本發明的方案中使用“擴充卡”或者“加速網卡”來代替“TLS/SSL全卸載硬體加速網卡”的名稱)。主機301和擴展裝置303兩個部分之間藉由主機匯流排協定互聯。 其中,主機301,用於提供Web服務的應用程式,擴充卡驅動等。而安全層協定疊軟體,TCP/IP協定疊等作為可選項,可以卸載到加速網卡,也可以在主機完成。應用程式藉由調用傳送層保全框架(TLS/SSL)的介面後,之後的資料路徑就全部卸載到了TLS/SSL加速網卡,完成安全協定演算法、交握流程、以及底層網路協定疊處理的完全硬體卸載;對於一些應用場合的特殊需求(如加速網卡的韌體熱升級等),可以開啟主機的TCP/IP、TLS/SSL等協定疊處理,相當於是傳統TLS/SSL卸載方案的兼容版本。一旦熱升級之類的操作就緒,主機可以仍然切換回全卸載方案,以減少載荷、提高效率。 擴展裝置303(即TLS/SSL全卸載硬體加速網卡),包含有相關協定卸載(TCP/IP協定疊、TLS/SSL協定層以及對應的卸載控制等等)、TLS/SSL演算法硬體加速模組、基礎網卡功能相關的控制和資料通路模組等。擴充卡藉由主機介面與應用程式進行通訊(全卸載方式下,此介面通訊中的資料都是明文)。在擴充卡上對這些應用資料進行相應的TLS/SSL處理、TCP/IP封裝、以及其他網路通訊中所需要的處理等。擴充卡上一般有多個平行處理的硬體加速單元用於卸載加解密演算法。所有這些演算法加速核心都藉由可信仲裁單元進行任務派發和資料域的隔離。 由上可知,在本發明上述實施例中,伺服器主機向Web瀏覽器發送資料的過程中,藉由擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定(TLS/SSL)來處理主機發送資料的相關任務,並在傳送層保全協定(TLS/SSL)處理相關任務之後,使用擴展裝置內部的網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行TCP/IP封裝,最後藉由擴展裝置內部署的網路控制器外發封裝後的資料報文,達到了使得擴充卡完成了TLS/SSL協定層之下的幾乎全部流程的目的,從而實現了減少主機上的計算壓力、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量的技術效果,進而解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。 在一種可選的實施例中,在擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務之前,上述方法還可以包括如下步驟: 步驟S501,主機發起任務,並由主機的應用程式調用擴展裝置的傳送層保全協定的介面,使得擴展裝置對任務完成傳送層保全協定演算法、網路協定封裝,和底層網路協定疊的功能。 具體地,在上述實施例中,上述任務可以是伺服器主機向Web瀏覽器發送資料的任務;由於擴展裝置集成了TLS/SSL協定處理模組、TCP/IP協定層處理模組的擴充卡或硬體加速網卡,用於對主機上的應用資料進行TLS/SSL處理、TCP/IP封裝等操作,因而,當伺服器主機發起任務後,可以由主機的應用程式調用擴展裝置的TLS/SSL 介面,藉由擴展裝置來完成對發送資料的任務的TLS/SSL加解密、TCP/IP封裝、對協定卸載流程控制,以及將封裝後的資料報文配置到網路控制器等底層網路協定疊的功能。 藉由上述實施例,實現了藉由與伺服器主機獨立的擴充卡完成了TLS/SSL協定層之下的幾乎全部流程,能夠顯著的減少主機上的計算壓力。 在一種可選的實施例中,啟動本地的傳送層保全協定來處理任務,包括: 步驟S5021,判斷是否需要使用傳送層保全協定來處理任務; 步驟S5023,如果需要,則對任務進行仲裁,並將任務發送至演算法加速單元進行處理,得到任務的處理結果。 具體地,在上述實施例中,由於不是所有的資料包都需要執行TLS/SSL加解密操作,因而,在啟動本地的傳送層保全協定(TLS/SSL)來處理任務時,首先判斷主機發起的任務是否需要傳送層保全協定(TLS/SSL)來處理,在需要傳送層保全協定(TLS/SSL)處理的情況下,才將任務發送至擴展裝置內的演算法加速單元進行處理,得到任務的處理結果。 在一種可選的實施例中,擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝,包括:網路協定處理單元對處理結果進行封裝,並將封裝結果配置給網路控制器。 可選地,一種可選的實施例中,在擴展裝置上,可以使用軟體疊來運行傳送層保全協定的服務,藉由傳送層保全協定的引擎單元來進行加解密演算法的卸載,藉由TCP卸載引擎來執行網路協定的硬體加速處理。 基於上述實施例,作為一種可選的實施方式,在擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝之前,上述方法還可以包括如下步驟: 步驟S5031,判斷擴展裝置中是否存在TCP卸載引擎; 步驟S5033,如果存在,則使用TCP卸載引擎執行網路協定的硬體加速處理。 在一種可選的實施例中,上述方法還包括:步驟S5035,如果不存在,則判斷擴展裝置的資源使用量是否超過預定閾值,如果超過則使用負載均衡調度模組(或稱“流量調度模組”)將部分流量旁路到主機上處理。 作為一種可選的實施例,圖6(a)和圖6(b)是根據現有技術的一種可選的TLS/SSL卸載方案的工作流程示意圖,其中,發送資料包的基本流程如圖6(a)所示,包括如下步驟: (1)主機發起任務,由應用程式調用擴充卡(加速網卡)的TLS/SSL層介面,經由驅動程式,藉由匯流排協定介面進行配置; (2)擴充卡上的“協定卸載控制”單元根據主機調用的介面,啟用相應協定卸載流程; (3)擴充卡上的TLS/SSL協定層開始進行流程控制,如有計算任務則進行仲裁,將計算任務派發給對應的演算法硬體加速單元,直到計算結果返回; (4)根據不同的情況,可能會多次進行上邊的(3)步驟; (5)擴充卡上的TCP/IP協定疊處理單元對加密後的資料報文進行TCP/IP協定封裝,並配置到網路控制器; (6)網路控制器根據控制面的設置,對資料面的報文進行對應的外發操作處理。 作為一種可選的實施例,基於圖其接收資料包的基本流程如圖6(b)所示,包括如下步驟: (1)擴充卡收到資料報文; (2)擴充卡上的網路控制器將對應的資料傳送到TCP/IP協定解析處理; (3)解析後得到的資料如果是未經過加密的,則直接藉由“協定卸載控制單元”上送至主機的應用程式;資料如果是經過加密的,則需要下述步驟: (4)擴充卡上的TLS/SSL協定層開始解析,對計算任務則進行仲裁並派發給對應的演算法硬體加速單元,直到計算結果返回; (5)根據不同的情況,可能會多次進行上邊的(4)步驟; (6)解密後的明文資料藉由“協定卸載控制單元”上送到主機的應用程式。 從上述步驟可看出,本發明提出的TLS/SSL全卸載方案中,擴充卡完成了TLS/SSL協定層之下的幾乎全部流程,能夠顯著的減少主機上的計算壓力。而且對於包括主機在內的整個流程而言,有如下優點: ①避免了所有流量都經過主機,主機的CPU資源不再會花費在TCP/IP協定疊和TLS/SSL的協定層解析等網路傳輸相關的步驟上。 ②在每一次發送/接收的資料通路中,在主機與擴充卡之間的驅動介面調用次數明顯減少,也即匯流排協定介面通訊、相應的核心模式/使用者模式上下文切換等次數減少。 ③“主機+加速網卡”的架構,使得主機的資源能更多的分配給應用程式使用,而且主機匯流排介面一側僅需要處理明文資料,緩解了匯流排頻寬壓力、簡化了資料處理流程、同時還避免了額外資源開銷和時延代價。實施例 3
根據本發明實施例,還提供了一種演算法的卸載方法實施例,用於基於HTTPS協定進行資料傳輸的伺服器主機接收來自Web瀏覽器的資料的過程中,本實施例可以應用於實施例1中的一種演算法的卸載系統中,包括但不限於實施例1中場景。需要說明的是,在圖式的流程圖示出的步驟可以在諸如一組電腦可執行指令的電腦系統中執行,並且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟。 圖7是根據本發明實施例的一種演算法的卸載方法流程圖,如圖7所示,包括如下步驟: 步驟S702,擴展裝置接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路協定處理單元進行解析; 步驟S704,擴展裝置使用本地的傳送層保全協定對解析結果進行處理; 步驟S706,擴展裝置將處理結果上傳到主機。 具體地,在上述步驟中,當伺服器主機接收來自Web瀏覽器的資料的時候,上述主機用於接收資料,此時,藉由與主機獨立的擴展裝置(即TLS/SSL全卸載硬體加速網卡)來接收資料報文,並藉由擴展裝置上的網路控制器將對應的資料傳送到TCP/IP協定解析處理,然後藉由擴展擴展裝置上的傳送層保全協定(TLS/SSL)對解析結果進行處理,並將處理後的結果上傳的主機(即伺服器主機)。 容易注意到的是,擴展裝置上的TLS/SSL協定層(即傳送層保全協定層)進行的解析操作包括但不限於對計算任務則進行仲裁並派發給對應的演算法硬體加速單元,直到計算結果返回,根據不同的情況,可能會多次進行上述操作。 由上可知,在本發明上述實施例中,伺服器主機接收來自Web瀏覽器發送資料的過程中,藉由擴展裝置接收資料報文,並使用擴展裝置內部的網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行TCP/IP解析,得到解析結果,使用擴展裝置本地的傳送層保全協定(TLS/SSL)來處理解析結果,並將處理後的結果上傳上至主機(即伺服器主機),達到了使得擴充卡完成了TLS/SSL協定層之下的幾乎全部流程的目的,從而實現了減少主機上的計算壓力、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量的技術效果,進而解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。 在一種可選的實施例中,在使用本地的網路控制器將資料報文傳輸至網路(TCP/IP)協定處理單元進行解析之後,上述方法還可以包括如下步驟: 步驟S7051,判斷解析結果中的資料是否經過加密; 步驟S7053,如果解析結果中的資料沒有經過加密,則直接將解析結果上傳至主機; 步驟S7055,如果解析結果中的資料經過加密,則執行使用本地的傳送層保全協定對解析結果進行處理的步驟。 具體地,在上述實施例中,在使用本地的網路控制器將資料報文傳輸至網路(TCP/IP)協定處理單元進行解析之後,判斷解析得到的資料是否是經過加密的,如果是未經過加密的,則直接藉由“協定卸載控制單元”上送至主機的應用程式;資料如果是經過加密的,擴充卡上的TLS/SSL協定層開始解析,對計算任務則進行仲裁並派發給對應的演算法硬體加速單元,直到計算結果返回。 可選地,基於上述實施例,作為一種可選的實施方式,使用本地的傳送層保全協定對解析結果進行處理,可以包括如下步驟: 步驟S7055a,傳送層保全協定層對解析結果進行處理,得到處理結果; 步驟S7055b,將處理結果進行仲裁,並發送至對應的演算法加速單元進行解密處理,得到解密結果。 藉由上述實施例,採用演算法加速單元進行解密處理,可以實現硬體的加速。 可選地,一種可選的實施例中,在擴展裝置上,可以使用軟體疊來運行傳送層保全協定的服務,藉由傳送層保全協定的引擎單元來進行加解密演算法的卸載,藉由TCP卸載引擎(TOE)來執行網路協定(TCP/IP)的硬體加速處理。 基於上述實施例,作為一種可選的實施方式,在擴展裝置接收資料報文之後,上述方法還可以包括如下步驟: 步驟S7031,判斷擴展裝置中是否存在TCP卸載引擎; 步驟S7033,如果存在,則使用TCP卸載引擎執行網路協定處理單元(例如,TCP/IP處理單元)的硬體加速處理,並將資料報文儲存到處理器的記憶體區。 在一種可選的實施例中,在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行加解密資料,如果加解密結果滿足預定條件,則上傳至主機。 在一種可選的實施例中,在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行解密資料,並根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。 在一種可選的實施例中,擴展裝置使用本地的傳送層保全協定對解析結果進行處理,可以包括如下步驟: 步驟S7041,擴展裝置的處理器判斷解析結果是否需要發給傳送層保全協定的保全插座層進行處理; 步驟S7043,如果需要,則使用傳送層保全協定的保全插座層處理解析結果; 步驟S7044,如果不需要,則旁路到主機中處理解析結果。 一種可選的實施例中,圖8是根據本發明實施例的一種存在TOE的情況下加速網卡卸載協定模式示意圖,如圖8所示,在卸載協定模式下,主機運行Apache等HTTP網路服務應用程式,擴充卡上處理所有網路相關的協定控制和資料處理。擴充卡上的軟體疊可採用“ARM處理器+Linux操作系統”的實現形式。 在擴充卡上,分別藉由軟體疊運行TLS/SSL協定層服務,藉由TOE單元進行TCP/IP協定疊的硬體加速處理,藉由TLS/SSL引擎進行加解密演算法的計算卸載。 在實施例1中,以收包過程為例,簡述工作流程如下: (1)MAC收到資料報文後,經由TOE處理(S1); (2)將處理過的資料儲存到ARM的記憶體區(S2),ARM核心處理TOE的資料; (3)ARM的核心接到的資料是TLS/APP層的,根據協定和預設條件,判斷該資料包是交給SSL處理(S4),還是旁路上傳到Host(S6); (4)如果由SSL處理,藉由libcrypto和使用者模式驅動等調用設置到TLS engine硬體(S5); (5)處理過的資料如果是session data,上傳至Host(S6); (6)PCIe DMA寫入Host的記憶體區並給出中斷。 注:有TOE時,擴充卡的ARM上運行的核心不需要處理TCP/IP協定疊,只需要將TOE模組的介面和資料封裝成socket介面的各操作函數,便於其他進程調用。 注:PCIe DMA寫入Host記憶體區後,在等待Host回應中斷時,應該採用異步方式保證通量率,而Host段採用ring buffer類似的形式完成接收。 注:Host發送報文時,路徑相反,過程和思路類似。 此實施例能夠工作在大多數常見的伺服器應用背景下。 另一種可選的實施例中,圖9是根據本發明實施例的一種存在TOE的情況下主機和加速網卡混合協定模式示意圖,如圖9所示,在某些伺服器的應用場景中,會有如下的需求(混合協定模式) 有的輕量級應用程式也是可以卸載到擴充卡上的,好處是減少處理時延; 有時候主機上有少數的應用程式會直接調用openSSL的較低層介面,不需要對TLS/SSL進行硬體卸載。 所以主機運行HTTP網路服務應用程式的同時,還需要包括TLS/SSL協定層相關的運行庫(僅在很少的情況下才需要調用到);而擴充卡上處理所有網路相關的協定控制和資料處理,還可以有輕量級的應用程式。擴充卡上的軟體疊仍可採用“ARM處理器+Linux操作系統”的實現形式。 在擴充卡上,分別藉由軟體疊運行TLS/SSL協定層服務,藉由TOE單元進行TCP/IP協定疊的硬體加速處理,藉由TLS/SSL引擎進行加解密演算法的計算卸載。 在實施例2中,以收包過程為例,簡述工作流程如下: (1)MAC收到資料報文後,經由TOE處理(S1); (2)將處理過的資料儲存到ARM的記憶體區(S2),ARM核心處理TOE的資料; (3)ARM的核心接到的資料是TLS/APP層的,根據協定和預設條件,判斷該資料包是交給SSL處理(S4),還是旁路上傳到Host(S6); (4)如果由SSL處理,藉由libcrypto和使用者模式驅動等調用設置到TLS engine硬體(S5); (5)根據處理過資料的類型和目的位址,上送至ARM上的應用程式(藉由進程間通訊),或者藉由主機匯流排介面上傳至Host(S6); (6)PCIe DMA寫入Host的記憶體區並給出中斷。 注:有TOE時,擴充卡的ARM上運行的核心不需要處理TCP/IP協定疊,只需要將TOE模組的介面和資料封裝成socket介面的各操作函數,便於其他進程調用。 注:PCIe DMA寫入Host記憶體區後,在等待Host回應中斷時,應該採用異步方式保證通量率,而Host段採用ring buffer類似的形式完成接收。 注:Host發送報文時,路徑相反,過程和思路類似。 在一種可選的實施例中,上述方法還包括:步驟S7035,如果擴展裝置中不存在TCP卸載引擎,則將資料報文儲存到處理器的記憶體區,或旁路給主機進行處理。 在一種可選的實施例中,在將資料報文儲存到處理器的記憶體區之後,方法還包括: 步驟S7036a,處理器對資料報文進行協定疊處理; 步驟S7036b,如果需要執行TLS卸載,則發給保全插座層(SSL)進行解密處理,並調用傳送層保全協定來完成硬體加速。 在一種可選的實施例中,上述方法還包括:步驟S7036c,如果不需要執行TLS卸載,根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。 一種可選的實施例中,圖10是根據本發明實施例的一種不存在TOE的情況下主機和加速網卡混合協定模式示意圖,如圖10所示,在某些擴充卡的實現中,出於成本、設計複雜度等各方面考慮,是不包含TOE硬體模組的。在這種情況下擴充卡上的ARM處理器資源會分配一部分用於TCP/IP協定疊解析,需要考慮當擴充卡的處理資源飽和的情形、加入分流單元。 此實施例中描述在混合協定模式下、無TOE模組時的工作流程。 所以主機運行HTTP網路服務應用程式的同時,還需要包括TLS/SSL協定層相關的運行庫(僅在很少的情況下才需要調用到);而擴充卡上處理所有網路相關的協定控制和資料處理,還可以有輕量級的應用程式。擴充卡上的軟體疊仍可採用“ARM處理器+Linux操作系統”的實現形式。 在擴充卡上,分別藉由軟體疊運行TLS/SSL協定層和TCP/IP協定疊,藉由TLS/SSL引擎進行加解密演算法的計算卸載。由於此時在網口流量增大(如線速)的情況下ARM會成為系統流量的制約瓶頸,所以需要區分以下流量: (1)正常的HTTPS流量。這部分流量的特點是由客戶端發起,會優先交由ARM上的TLS/SSL卸載完成,當ARM核的資源使用超過一定的水位時,會將一部分新的流量旁路到PCIe,由Host直接處理; (2)混雜的HTTP和其他無關的流量。這部分一般是不應該進入到ARM的TLS/SSL卸載模組,可以考慮旁路到Host或是丟棄; (3)必需的HTTP和其他協定、其他埠的流量。這部分比如網路偵測、數位憑證驗證。這一部分流量有可能是由ARM發起,也可能是由子網內其它設備發起。所以需要判別發起來源和回包位址,以保證ARM、Host各自的網路流程和狀態機控制; 所以,在沒有TOE模組時就需要有分流模組,將與ARM無關的流量導流至Host、以及按照ARM配置下來的分流規則進行篩選。 在實施例3中,以接收資料包過程為例,簡述工作流程如下: (1)MAC收到資料報文後,送給分流單元做分流(S1); (2)將資料儲存到ARM的記憶體區(S2),或是旁路到PCIe給Host上送(S3); (3)ARM的核心接到的資料先做協定疊處理,若該資料包需要TLS的HW卸載,則交給SSL處理(S4),之後的流程上下文狀態和解密後的資料上傳到Host(S6); (4)如果由SSL處理,藉由libcrypto和使用者模式驅動等調用TLS/SSL硬體加速(S5); (5)根據處理過資料的類型和目的位址,上送至ARM上的應用程式(藉由進程間通訊),或者藉由主機匯流排介面上傳至Host(S6); (6)PCIe DMA寫入Host的記憶體區並給出中斷。 注:沒有TOE時,ARM的核心需要處理TCP/IP協定疊。 注:PCIe DMA寫入Host記憶體區後,在等待Host回應中斷時,應該採用異步方式保證通量率,而Host段採用ring buffer類似的形式完成接收。 注:Host發送報文時,路徑相反,思路類似。 需要說明的是,本發明提出的是將TLS/SSL協定層之下的部分進行全卸載的方式,在具體實現中,可以有多種不同的具體形式。比如ARM核心的智慧網卡+TLS/SSL硬體加速模組+TOE。 本發明提出的方案藉由對TLS/SSL協定層之下的流程進行全卸載,並且在擴充卡上採用了重新設計的“協定卸載”、“計算任務仲裁”、“基本網路控制”三個層面的架構,解決了傳統TLS/SSL協定局部卸載的“代價折衷”痛點。 可以看出,本發明提出的TLS/SSL全卸載方案中,主機上的計算壓力顯著減少、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量。實施例 4
根據本發明實施例,還提供了一種用於實現上述實施例2中演算法的卸載方法的裝置實施例,圖11是根據本發明實施例的一種演算法的卸載裝置示意圖,如圖11所示,該裝置包括:啟動模組111、封裝模組113和發送模組115。 其中,啟動模組111,用於藉由擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務; 封裝模組113,用於在傳送層保全協定處理任務之後,藉由擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝; 發送模組115,用於藉由擴展裝置內部署的網路控制器外發封裝後的資料報文。 此處需要說明的是,上述啟動模組111、封裝模組113和發送模組115對應於實施例2中的步驟S502至S506,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例2所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 由上可知,在本發明上述實施例中,伺服器主機向Web瀏覽器發送資料的過程中,藉由擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定(TLS/SSL)來處理主機發送資料的相關任務,並在傳送層保全協定(TLS/SSL)處理相關任務之後,使用擴展裝置內部的網路協定處理單元將處理結果作為資料報文進行TCP/IP封裝,最後藉由擴展裝置內部署的網路控制器外發封裝後的資料報文,達到了使得擴充卡完成了TLS/SSL協定層之下的幾乎全部流程的目的,從而實現了減少主機上的計算壓力、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量的技術效果,進而解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。 在一種可選的實施例中,上述裝置還包括: 第一處理模組,用於藉由主機發起任務,並由主機的應用程式調用擴展裝置的傳送層保全協定的介面,使得擴展裝置對任務完成傳送層保全協定演算法、網路協定封裝,和底層網路協定疊的功能。 此處需要說明的是,上述第一處理模組對應於實施例2中的步驟S501,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例2所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述啟動模組包括:第一判斷模組,用於判斷是否需要使用傳送層保全協定來處理任務;第一執行模組,用於如果需要,則對任務進行仲裁,並將任務發送至演算法加速單元進行處理,得到任務的處理結果。 此處需要說明的是,上述第一判斷模組和第一執行模組對應於實施例2中的步驟S5021至S5023,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例2所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述封裝模組還用於藉由網路協定處理單元對處理結果進行封裝,並將封裝結果配置給網路控制器。 在一種可選的實施例中,在擴展裝置上,使用軟體疊來運行傳送層保全協定的服務,藉由傳送層保全協定的引擎單元來進行加解密演算法的卸載,藉由TCP卸載引擎來執行網路協定的硬體加速處理。 在一種可選的實施例中,上述裝置還包括:第二判斷模組,用於判斷擴展裝置中是否存在TCP卸載引擎;第二執行模組,用於如果存在,則使用TCP卸載引擎執行網路協定的硬體加速處理。 此處需要說明的是,上述第二判斷模組和第二執行模組對應於實施例2中的步驟S5031至S5033,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例2所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述裝置還包括:第三執行模組,用於如果不存在,則判斷擴展裝置的資源使用量是否超過預定閾值,如果超過則使用負載均衡調度模組(或稱“流量調度模組”)將部分流量旁路到主機上處理。 此處需要說明的是,上述第三執行模組對應於實施例2中的步驟S5035,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例2所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。實施例 5
根據本發明實施例,還提供了一種用於實現上述實施例3中演算法的卸載方法的裝置實施例,圖12是根據本發明實施例的一種演算法的卸載裝置示意圖,如圖12所示,該裝置包括:解析模組121、第三處理模組123和上傳模組125。 其中,解析模組121,用於藉由擴展裝置接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路協定處理單元進行解析; 第三處理模組123,用於擴展裝置使用本地的傳送層保全協定對解析結果進行處理; 上傳模組125,用於藉由擴展裝置將處理結果上傳到主機。 此處需要說明的是,上述解析模組121、第三處理模組123和上傳模組125對應於實施例3中的步驟S702至S706,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例3所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 由上可知,在本發明上述實施例中,伺服器主機接收來自Web瀏覽器發送資料的過程中,藉由擴展裝置接收資料報文,並使用擴展裝置內部的網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行TCP/IP解析,得到解析結果,使用擴展裝置本地的傳送層保全協定(TLS/SSL)來處理解析結果,並將處理後的結果上傳上至主機(即伺服器主機),達到了使得擴充卡完成了TLS/SSL協定層之下的幾乎全部流程的目的,從而實現了減少主機上的計算壓力、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量的技術效果,進而解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。 在一種可選的實施例中,上述裝置還包括:第三判斷模組,用於判斷解析結果中的資料是否經過加密;第四執行模組,用於如果解析結果中的資料沒有經過加密,則直接將解析結果上傳至主機;第五執行模組,用於如果解析結果中的資料經過加密,則執行使用本地的傳送層保全協定對解析結果進行處理的步驟。 此處需要說明的是,上述第三判斷模組、第四執行模組和第五執行模組對應於實施例3中的步驟S7051至S7053,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例3所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述第五執行模組包括:第四處理模組,用於傳送層保全協定層對解析結果進行處理,得到處理結果;解密模組,用於將處理結果進行仲裁,並發送至對應的演算法加速單元進行加解密處理,得到解密結果。 此處需要說明的是,上述第四處理模組和解密模組對應於實施例3中的步驟S7055a至S7055b,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例3所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述裝置還包括:第四判斷模組,用於判斷擴展裝置中是否存在TCP卸載引擎;第六執行模組,用於如果存在,則使用TCP卸載引擎執行網路協定處理單元(例如,TCP/IP處理單元)的硬體加速處理,並將資料報文儲存到處理器的記憶體區。 此處需要說明的是,上述第四判斷模組和第六執行模組對應於實施例3中的步驟S7031至S7033,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例3所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述第三處理模組包括:第五判斷模組,用於擴展裝置的處理器判斷解析結果是否需要發給傳送層保全協定的保全插座層進行處理;第七執行模組,用於如果需要,則使用傳送層保全協定的保全插座層處理解析結果;第八執行模組,用於如果不需要,則旁路到主機中處理解析結果。 此處需要說明的是,上述第五判斷模組、第七執行模組和第八執行模組對應於實施例3中的步驟S7041至S7043,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例3所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述第七執行模組還用於在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行加解密資料,如果加解密結果滿足預定條件,則上傳至主機。 在一種可選的實施例中,上述第七執行模組還用於在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行解密資料,並根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。 在一種可選的實施例中,上述裝置還包括:第九執行模組,用於如果擴展裝置中不存在TCP卸載引擎,則將資料報文儲存到處理器的記憶體區,或旁路給主機進行處理。 此處需要說明的是,上述第九執行模組對應於實施例3中的步驟S7035,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例3所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述裝置還包括:第五處理模組,用於藉由處理器對資料報文進行協定疊處理;第六處理模組,用於如果需要執行TLS卸載,則發給保全插座層(SSL)進行解密處理,並調用傳送層保全協定來完成硬體加速。 此處需要說明的是,上述第五處理模組和第六處理模組對應於實施例3中的步驟S7036a至S7036b,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例3所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。 在一種可選的實施例中,上述裝置還包括:第七處理模組,用於如果不需要執行TLS卸載,根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。 此處需要說明的是,上述第七處理模組對應於實施例3中的步驟S7036c,上述模組與對應的步驟所實現的示例和應用場景相同,但不限於上述實施例3所公開的內容。需要說明的是,上述模組作為裝置的一部分可以在諸如一組電腦可執行指令的電腦系統中執行。實施例 6
本發明的實施例可以提供一種電腦設備,該電腦設備可以是電腦設備群中的任意一個電腦設備設備。可選地,在本實施例中,上述電腦設備也可以替換為電腦設備等終端設備。 可選地,在本實施例中,上述電腦設備可以位於電腦網路的多個網路設備中的至少一個存取設備。 圖13是根據本發明實施例的一種可選的電腦設備的硬體結構方塊圖。如圖13所示,電腦設備13可以包括一個或多個(圖中僅示出一個)處理器132(處理器132可以包括但不限於微處理器MCU或可編程邏輯裝置FPGA等的處理裝置)、用於儲存資料的記憶體134、以及用於通訊功能的傳輸裝置136。除此以外,還可以包括:顯示器、輸入/輸出介面(I/O介面)、通用串列匯流排(USB)埠(可以作為I/O介面的埠中的一個埠被包括)、網路介面、電源和/或相機。本領域具有通常知識者可以理解,圖13所示的結構僅為示意,其並不對上述電子裝置的結構造成限定。例如,電腦設備13還可包括比圖13中所示更多或者更少的組件,或者具有與圖13所示不同的配置。 需要說明的是,圖13示出的計算終端硬體結構方塊圖,不僅可以作為上述實施例1中可信伺服器201的示例性方塊圖,還可以作為上述伺服中心203的示例性方塊圖。 應當注意到的是上述一個或多個處理器132和/或其他資料處理電路在本文中通常可以被稱為“資料處理電路”。該資料處理電路可以全部或部分的體現為軟體、硬體、韌體或其他任意組合。此外,資料處理電路可為單個獨立的處理模組,或全部或部分的結合到電腦設備13中的其他元件中的任意一個內。如本發明實施例中所涉及到的,該資料處理電路作為一種處理器控制(例如與介面連接的可變電阻終端路徑的選擇)。 處理器132可以藉由傳輸裝置調用記憶體儲存的資訊及應用程式,以執行下述步驟:擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務;在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行封裝;擴展裝置內部署的網路控制器外發封裝後的資料報文。 記憶體134可用於儲存應用軟體的軟體程式以及模組,如本發明實施例中的監測配網設備的網路接入狀態的方法對應的程式指令/資料儲存裝置,處理器132藉由運行儲存在記憶體134內的軟體程式以及模組,從而執行各種功能應用以及資料處理,即實現上述的應用程式的監測配網設備的網路接入狀態的方法。記憶體134可包括高速隨機記憶體,還可包括非易失性記憶體,如一個或者多個磁性儲存裝置、快閃記憶體、或者其他非易失性固態記憶體。在一些實例中,記憶體134可進一步包括相對於處理器132遠程設置的記憶體,這些遠程記憶體可以藉由網路連接至電腦設備13。上述網路的實例包括但不限於網際網路、企業內部網、區域網路、移動通訊網及其組合。 傳輸裝置136用於經由一個網路接收或者發送資料。上述的網路具體實例可包括電腦設備13的通訊供應商提供的無線網路。在一個實例中,傳輸裝置136包括一個網路介面控制器(Network Interface Controller,NIC),其可藉由基地台與其他網路設備相連從而可與網際網路進行通訊。在一個實例中,傳輸裝置136可以為射頻(Radio Frequency,RF)模組,其用於藉由無線方式與網際網路進行通訊。 顯示器可以例如觸控螢幕式的液晶顯示器(LCD),該液晶顯示器可使得使用者能夠與電腦設備13的使用者介面進行互動。 此處需要說明的是,在一些可選實施例中,上述圖13所示的電腦設備13可以包括硬體元件(包括電路)、軟體元件(包括儲存在電腦可讀媒體上的電腦代碼)、或硬體元件和軟體元件兩者的結合。應當指出的是,圖13僅為特定具體實例的一個實例,並且旨在示出可存在於上述電腦設備13中的部件的類型。 此處需要說明的是,在一些實施例中,上述圖13所示的電腦設備具有觸摸顯示器(也被稱為“觸控螢幕”或“觸控顯示螢幕”)。在一些實施例中,上述圖13所示的電腦設備具有圖像使用者介面(GUI),使用者可以藉由觸摸觸敏表面上的手指接觸和/或手勢來與GUI進行人機互動,此處的人機互動功能可選的包括如下互動:創建網頁、繪圖、文字處理、製作電子文檔、遊戲、視頻會議、即時通訊、收發電子郵件、通話介面、播放數位視頻、播放數位音樂和/或網路瀏覽等、用於執行上述人機互動功能的可執行指令被配置/儲存在一個或多個處理器可執行的電腦程式產品或可讀儲存媒體中。 在本實施例中,上述電腦設備13可以執行應用程式的監測配網設備的網路接入狀態的方法中以下步驟的程式碼:擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務;在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行封裝;擴展裝置內部署的網路控制器外發封裝後的資料報文。 可選的,上述處理器還可以執行如下步驟的程式碼:擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務;在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行封裝;擴展裝置內部署的網路控制器外發封裝後的資料報文。 可選的,上述處理器還可以執行如下步驟的程式碼:主機發起任務,並由主機的應用程式調用擴展裝置的傳送層保全協定的介面,使得擴展裝置對任務完成傳送層保全協定演算法、網路(TCP/IP)協定封裝,和底層網路協定疊的功能。 可選的,上述處理器還可以執行如下步驟的程式碼:判斷是否需要使用傳送層保全協定來處理任務;如果需要,則對任務進行仲裁,並將任務發送至演算法加速單元進行處理,得到任務的處理結果。 可選的,上述處理器還可以執行如下步驟的程式碼:網路(TCP/IP)協定處理單元對處理結果進行封裝,並將封裝結果配置給網路控制器。 可選的,上述處理器還可以執行如下步驟的程式碼:在擴展裝置上,使用軟體疊來運行傳送層保全協定的服務,藉由傳送層保全協定的引擎單元來進行加解密演算法的卸載,藉由TCP卸載引擎(TOE)來執行網路協定(TCP/IP)的硬體加速處理。 可選的,上述處理器還可以執行如下步驟的程式碼:判斷擴展裝置中是否存在TCP卸載引擎(TOE);如果存在,則使用TCP卸載引擎(TOE)執行網路協定(TCP/IP)的硬體加速處理。 可選的,上述處理器還可以執行如下步驟的程式碼:如果不存在,則判斷擴展裝置的資源使用量是否超過預定閾值,如果超過則使用負載均衡調度模組將部分流量旁路到主機上處理。 可選的,上述處理器還可以執行如下步驟的程式碼:擴展裝置接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路協定處理單元(例如,TCP/IP處理單元)進行解析;擴展裝置使用本地的傳送層保全協定對解析結果進行處理;擴展裝置將處理結果上傳到主機。 可選的,上述處理器還可以執行如下步驟的程式碼:判斷解析結果中的資料是否經過加密;如果解析結果中的據沒有經過加密,則直接將解析結果上傳至主機;如果解析結果中的資料經過加密,則執行使用本地的傳送層保全協定對解析結果進行處理的步驟。 可選的,上述處理器還可以執行如下步驟的程式碼:傳送層保全協定層對解析結果進行處理,得到處理結果;將處理結果進行仲裁,並發送至對應的演算法加速單元進行加解密處理,得到解密結果。 可選的,上述處理器還可以執行如下步驟的程式碼:判斷擴展裝置中是否存在TCP卸載引擎(TOE);如果存在,則使用TCP卸載引擎(TOE)執行網路協定處理單元(例如,TCP/IP處理單元)的硬體加速處理,並將資料報文儲存到處理器的記憶體區。 可選的,上述處理器還可以執行如下步驟的程式碼:擴展裝置的處理器判斷解析結果是否需要發給傳送層保全協定的保全插座層進行處理;如果需要,則使用傳送層保全協定的保全插座層處理解析結果;如果不需要,則旁路到主機中處理解析結果。 可選的,上述處理器還可以執行如下步驟的程式碼:在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行加解密資料,如果加解密結果滿足預定條件,則上傳至主機。 可選的,上述處理器還可以執行如下步驟的程式碼:在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行解密資料,並根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。 可選的,上述處理器還可以執行如下步驟的程式碼:如果不存在,則將資料報文儲存到處理器的記憶體區,或旁路給主機進行處理。 可選的,上述處理器還可以執行如下步驟的程式碼:處理器對資料報文進行協定疊處理;如果需要執行TLS卸載,則發給保全插座層(SSL)進行解密處理,並調用傳送層保全協定來完成硬體加速。 可選的,上述處理器還可以執行如下步驟的程式碼:如果不需要執行TLS卸載,根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。 本領域具有通常知識者可以理解,圖13所示的結構僅為示意,電腦設備也可以是智慧型手機(如Android手機、iOS手機等)、平板電腦、掌聲電腦以及行動網際網路設備(Mobile Internet Devices,MID)、PAD等終端設備。圖13其並不對上述電子裝置的結構造成限定。例如,電腦設備13還可包括比圖13中所示更多或者更少的組件(如網路介面、顯示裝置等),或者具有與圖13所示不同的配置。 本領域具有通常知識者可以理解上述實施例的各種方法中的全部或部分步驟是可以藉由程式來指令終端設備相關的硬體來完成,該程式可以儲存於一電腦可讀儲存媒體中,儲存媒體可以包括:快閃記憶體、唯讀記憶體(Read-Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、磁碟或光碟等。實施例 7
本發明的實施例還提供了一種儲存媒體。可選的,在本實施例中,上述儲存媒體可以用於保存上述實施例所提供的監測配網設備的網路接入狀態的方法所執行的程式碼,其中,在程式運行時控制儲存媒體所在設備執行實施例中任意一項的可選的或優選的監測配網設備的網路接入狀態的方法。 可選的,在本實施例中,上述儲存媒體可以位於電腦網路中移動終端群中的任意一個移動終端中,或者位於移動終端群中的任意一個移動終端中。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務;在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行封裝;擴展裝置內部署的網路控制器外發封裝後的資料報文。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:主機發起任務,並由主機的應用程式調用擴展裝置的傳送層保全協定的介面,使得擴展裝置對任務完成傳送層保全協定演算法、網路(TCP/IP)協定封裝,和底層網路協定疊的功能。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:判斷是否需要使用傳送層保全協定來處理任務;如果需要,則對任務進行仲裁,並將任務發送至演算法加速單元進行處理,得到任務的處理結果。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:網路(TCP/IP)協定處理單元對處理結果進行封裝,並將封裝結果配置給網路控制器。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:在擴展裝置上,使用軟體疊來運行傳送層保全協定的服務,藉由傳送層保全協定的引擎單元來進行加解密演算法的卸載,藉由TCP卸載引擎(TOE)來執行網路協定(TCP/IP)的硬體加速處理。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:判斷擴展裝置中是否存在TCP卸載引擎(TOE);如果存在,則使用TCP卸載引擎(TOE)執行網路協定(TCP/IP)的硬體加速處理。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:如果不存在,則判斷擴展裝置的資源使用量是否超過預定閾值,如果超過則使用負載均衡調度模組將部分流量旁路到主機上處理。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:擴展裝置接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路協定處理單元(例如,TCP/IP處理單元)進行解析;擴展裝置使用本地的傳送層保全協定對解析結果進行處理;擴展裝置將處理結果上傳到主機。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:判斷解析結果中的資料是否經過加密;如果解析結果中的據沒有經過加密,則直接將解析結果上傳至主機;如果解析結果中的資料經過加密,則執行使用本地的傳送層保全協定對解析結果進行處理的步驟。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:傳送層保全協定層對解析結果進行處理,得到處理結果;將處理結果進行仲裁,並發送至對應的演算法加速單元進行加解密處理,得到解密結果。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:判斷擴展裝置中是否存在TCP卸載引擎(TOE);如果存在,則使用TCP卸載引擎(TOE)執行網路協定處理單元(例如,TCP/IP處理單元)的硬體加速處理,並將資料報文儲存到處理器的記憶體區。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:擴展裝置的處理器判斷解析結果是否需要發給傳送層保全協定的保全插座層進行處理;如果需要,則使用傳送層保全協定的保全插座層處理解析結果;如果不需要,則旁路到主機中處理解析結果。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行加解密資料,如果加解密結果滿足預定條件,則上傳至主機。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:在使用傳送層保全協定的保全插座層處理解析結果的過程中,TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行解密資料,並根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:如果不存在,則將資料報文儲存到處理器的記憶體區,或旁路給主機進行處理。 可選的,在本實施例中,儲存媒體被設置為儲存用於執行以下步驟的程式碼:處理器對資料報文進行協定疊處理;如果需要執行TLS卸載,則發給保全插座層(SSL)進行解密處理,並調用傳送層保全協定來完成硬體加速。 可選的,上述處理器還可以執行如下步驟的程式碼:如果不需要執行TLS卸載,根據解密結果的類型和目的位址,將解密結果上傳至處理器上的應用程式,或藉由主機匯流排上傳至主機。實施例 8
本發明的實施例還提供了一種演算法的卸載系統,包括:處理器;以及記憶體,與處理器連接,用於為處理器提供處理以下處理步驟的指令: 擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務; 在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行封裝; 擴展裝置內部署的網路控制器外發封裝後的資料報文。 由上可知,在本發明上述實施例中,伺服器主機向Web瀏覽器發送資料的過程中,藉由擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定(TLS/SSL)來處理主機發送資料的相關任務,並在傳送層保全協定(TLS/SSL)處理相關任務之後,使用擴展裝置內部的網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行TCP/IP封裝,最後藉由擴展裝置內部署的網路控制器外發封裝後的資料報文,達到了使得擴充卡完成了TLS/SSL協定層之下的幾乎全部流程的目的,從而實現了減少主機上的計算壓力、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量的技術效果,進而解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。實施例 9
本發明的實施例還提供了一種演算法的卸載系統,包括:處理器;以及記憶體,與處理器連接,用於為處理器提供處理以下處理步驟的指令: 擴展裝置接收資料報文,並使用本地的網路控制器將資料報文傳輸至網路協定處理單元(例如,TCP/IP處理單元)進行解析;擴展裝置使用本地的傳送層保全協定對解析結果進行處理;擴展裝置將處理結果上傳到主機。 由上可知,在本發明上述實施例中,伺服器主機接收來自Web瀏覽器發送資料的過程中,藉由擴展裝置接收資料報文,並使用擴展裝置內部的網路協定處理單元(例如,TCP/IP處理單元)將處理結果作為資料報文進行TCP/IP解析,得到解析結果,使用擴展裝置本地的傳送層保全協定(TLS/SSL)來處理解析結果,並將處理後的結果上傳上至主機(即伺服器主機),達到了使得擴充卡完成了TLS/SSL協定層之下的幾乎全部流程的目的,從而實現了減少主機上的計算壓力、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量的技術效果,進而解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。實施例 10
根據本發明實施例,還提供了一種用於實現上述實施例2和3中演算法的卸載方法的集成晶片實施例,圖14是根據本發明實施例的一種集成晶片示意圖,如圖14所示,該集成晶片包括: 其中,擴展介面141,用於與主機連接,其中,主機用於提供應用程式; 傳送層保全協定處理單元143,用於根據主機調用的介面處理任務; 網路協定處理單元145,與傳送層保全協定處理單元通訊,用於資料報文進行封裝或解析; 網路控制器147,用於發送或接收資料報文。 需要說明的是,本實施例提供的集成晶片可以藉由嵌入式的方式安裝在伺服器主機上,也可以藉由各種匯流排介面(例如,PCIe介面)與伺服器主機連接。 由上可知,在本發明上述實施例中,藉由擴展介面141與伺服器主機連接,當伺服器主機向Web瀏覽器發送資料的過程中,藉由傳送層保全協定處理單元143根據主機調用的介面,來處理主機發送資料的相關任務,並在傳送層保全協定(TLS/SSL)處理相關任務之後,使用網路協定處理單元145將處理結果作為資料報文進行協定封裝(例如TCP/IP封裝),最後藉由網路控制器147外發封裝後的資料報文;當伺服器主機接收來自Web瀏覽器資料的過程中,藉由網路控制器147接收資料報文,並藉由網路協定處理單元145對接收到的資料報文進行解析,使用傳送層保全協定處理單元143來處理解析結果,並將處理後的結果藉由擴展介面141上傳上至主機(即伺服器主機)達到了使得擴充卡完成了TLS/SSL協定層之下的幾乎全部流程的目的,從而實現了減少主機上的計算壓力、有更多的計算資源提供給應用程式使用,同時擴充卡上藉由平行計算核心等方式保證了安全網路協定中的延時和通量的技術效果,進而解決了現有技術採用局部硬體卸載的方案導致伺服器主機的資源佔用仍舊比較大的技術問題。 上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。 在本發明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。 在本發明所提供的幾個實施例中,應該理解到,所揭露的技術內容,可藉由其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是藉由一些介面,單元或模組的間接耦合或通訊連接,可以是電性或其它的形式。 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。 另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。 所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以儲存在一個電腦可讀取儲存媒體中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存媒體中,包括若干指令用以使得一台電腦設備(可為個人電腦、伺服器或者網路設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的儲存媒體包括:USB隨身碟、唯讀記憶體(ROM,Read-Only Memory)、隨機存取記憶體(RAM,Random Access Memory)、行動硬碟、磁碟或者光碟等各種可以儲存程式碼的媒體。 以上所述僅是本發明的優選實施方式,應當指出,對於本技術領域的具有通常知識者來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。
301‧‧‧主機
303‧‧‧擴展裝置
111‧‧‧啟動模組
113‧‧‧封裝模組
115‧‧‧發送模組
121‧‧‧解析模組
123‧‧‧第三處理模組
125‧‧‧上傳模組
13‧‧‧電腦設備
132‧‧‧處理器
134‧‧‧記憶體
136‧‧‧傳輸裝置
141‧‧‧擴展介面
143‧‧‧傳送層保全協定處理單元
145‧‧‧網路協定處理單元
147‧‧‧網路控制器
S502~S506‧‧‧步驟
S702~S706‧‧‧步驟
S0~S8‧‧‧步驟
此處所說明的圖式用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在圖式中: 圖1是根據現有技術的一種可選的TLS/SSL卸載方案的硬體結構示意圖; 圖2(a)是根據現有技術的一種可選的TLS/SSL卸載方案在發送資料包時的工作流程示意圖; 圖2(b)是根據現有技術的一種可選的TLS/SSL卸載方案在接收資料包時的工作流程示意圖; 圖3是根據本發明實施例的一種可選的演算法的卸載系統示意圖; 圖4是根據本發明實施例的一種可選的TLS/SSL卸載方案的硬體結構示意圖; 圖5是根據本發明實施例的一種演算法的卸載方法流程圖; 圖6(a)是根據本發明實施例的一種可選的TLS/SSL卸載方案在發送資料包時的工作流程示意圖; 圖6(b)是根據本發明實施例的一種可選的TLS/SSL卸載方案在發送資料包時的工作流程示意圖; 圖7是根據本發明實施例的一種演算法的卸載方法流程圖; 圖8是根據本發明實施例的一種存在TOE的情況下加速網卡卸載協定模式示意圖; 圖9是根據本發明實施例的一種存在TOE的情況下主機和加速網卡混合協定模式示意圖; 圖10是根據本發明實施例的一種不存在TOE的情況下主機和加速網卡混合協定模式示意圖; 圖11是根據本發明實施例的一種演算法的卸載裝置示意圖; 圖12是根據本發明實施例的一種演算法的卸載裝置示意圖;以及 圖13是根據本發明實施例的一種可選的電腦設備的硬體結構方塊圖;以及 圖14是根據本發明實施例的一種集成晶片示意圖。
Claims (23)
- 一種演算法的卸載方法,其特徵在於,包括: 擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務; 在該傳送層保全協定處理任務之後,該擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝; 該擴展裝置內部署的網路控制器外發該封裝後的資料報文。
- 根據申請專利範圍第1項所述的方法,其中,在擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務之前,該方法還包括: 該主機發起任務,並由該主機的應用程式調用該擴展裝置的傳送層保全協定的介面,使得該擴展裝置對該任務完成傳送層保全協定演算法、網路協定封裝,和底層網路協定疊的功能。
- 根據申請專利範圍第1項所述的方法,其中,啟動本地的傳送層保全協定來處理任務,包括: 判斷是否需要使用該傳送層保全協定來處理任務; 如果需要,則對該任務進行仲裁,並將該任務發送至演算法加速單元進行處理,得到任務的處理結果。
- 根據申請專利範圍第3項所述的方法,其中,該擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝,包括: 該網路協定處理單元對該處理結果進行封裝,並將封裝結果配置給該網路控制器。
- 根據申請專利範圍第1項所述的方法,其中,在該擴展裝置上,使用軟體疊來運行該傳送層保全協定的服務,藉由傳送層保全協定的引擎單元來進行加解密演算法的卸載,藉由TCP卸載引擎來執行網路協定的硬體加速處理。
- 根據申請專利範圍第5項所述的方法,其中,在該擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝之前,該方法還包括: 判斷該擴展裝置中是否存在該TCP卸載引擎; 如果存在,則使用該TCP卸載引擎執行該網路協定的硬體加速處理。
- 根據申請專利範圍第6項所述的方法,其中,如果不存在,則判斷該擴展裝置的資源使用量是否超過預定閾值,如果超過則使用負載均衡調度模組將部分流量旁路到該主機上處理。
- 一種演算法的卸載方法,其特徵在於,包括: 擴展裝置接收資料報文,並使用本地的網路控制器將該資料報文傳輸至網路協定處理單元進行解析; 該擴展裝置使用本地的傳送層保全協定對解析結果進行處理; 該擴展裝置將處理結果上傳到主機。
- 根據申請專利範圍第8項所述的方法,其中,使用本地的網路控制器將該資料報文傳輸至網路協定處理單元進行解析,包括: 判斷該解析結果中的資料是否經過加密; 如果該解析結果中的資料沒有經過加密,則直接將解析結果上傳至該主機; 如果該解析結果中的資料經過加密,則執行使用本地的傳送層保全協定對解析結果進行處理的步驟。
- 根據申請專利範圍第9項所述的方法,其中,使用本地的傳送層保全協定對解析結果進行處理,包括: 該傳送層保全協定層對該解析結果進行處理,得到處理結果; 將該處理結果進行仲裁,並發送至對應的演算法加速單元進行加解密處理,得到解密結果。
- 根據申請專利範圍第8項所述的方法,其中,在擴展裝置接收資料報文之後,該方法還包括: 判斷該擴展裝置中是否存在TCP卸載引擎; 如果存在,則使用該TCP卸載引擎執行該網路協定處理單元的硬體加速處理,並將該資料報文儲存到處理器的記憶體區。
- 根據申請專利範圍第11項所述的方法,其中,該擴展裝置使用本地的傳送層保全協定對解析結果進行處理,包括: 該擴展裝置的處理器判斷該解析結果是否需要發給該傳送層保全協定的保全插座層進行處理; 如果需要,則使用該傳送層保全協定的保全插座層處理該解析結果; 如果不需要,則旁路到主機中處理該解析結果。
- 根據申請專利範圍第12項所述的方法,其中,在使用該傳送層保全協定的保全插座層處理該解析結果的過程中,該TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行加解密資料,如果加解密結果滿足預定條件,則上傳至該主機。
- 根據申請專利範圍第13項所述的方法,其中,在使用該傳送層保全協定的保全插座層處理該解析結果的過程中,該TCP卸載引擎藉由調用驅動程式來使用傳輸層加密裝置進行解密資料,並根據解密結果的類型和目的位址,將解密結果上傳至該處理器上的應用程式,或藉由主機匯流排上傳至該主機。
- 根據申請專利範圍第11項所述的方法,其中,如果不存在,則將該資料報文儲存到處理器的記憶體區,或旁路給該主機進行處理。
- 根據申請專利範圍第15項所述的方法,其中,在將該資料報文儲存到處理器的記憶體區之後,該方法還包括: 該處理器對該資料報文進行協定疊處理; 如果需要執行TLS卸載,則發給保全插座層進行解密處理,並調用傳送層保全協定來完成硬體加速。
- 根據申請專利範圍第16項所述的方法,其中,如果不需要執行TLS卸載,根據解密結果的類型和目的位址,將解密結果上傳至該處理器上的應用程式,或藉由主機匯流排上傳至該主機。
- 一種儲存媒體,其特徵在於,該儲存媒體包括儲存的程式,其中,在該程式運行時控制該儲存媒體所在設備執行申請專利範圍第1至17項中任意一項所述的演算法的卸載方法。
- 一種電腦設備,其特徵在於,該電腦設備用於運行程式,其中,該程式運行時執行申請專利範圍第1至17項中任意一項所述的演算法的卸載方法。
- 一種演算法的卸載系統,其特徵在於,包括: 處理器;以及 記憶體,與該處理器連接,用於為該處理器提供處理以下處理步驟的指令: 擴展裝置根據主機調用的介面,啟動本地的傳送層保全協定來處理任務; 在傳送層保全協定處理任務之後,擴展裝置使用網路協定處理單元將處理結果作為資料報文進行封裝; 擴展裝置內部署的網路控制器外發封裝後的資料報文。
- 一種演算法的卸載系統,其特徵在於,包括: 處理器;以及 記憶體,與該處理器連接,用於為該處理器提供處理以下處理步驟的指令: 擴展裝置接收資料報文,並使用本地的網路控制器將該資料報文傳輸至網路協定處理單元進行解析; 該擴展裝置使用本地的傳送層保全協定對解析結果進行處理; 該擴展裝置將處理結果上傳到主機。
- 一種演算法的卸載系統,其特徵在於,包括: 主機,用於提供應用程式; 擴展裝置,與該主機藉由擴展介面連接,用於在該主機發送資料報文的情況下,根據主機調用的介面,啟動本地的傳送層保全協定來處理任務,並在該傳送層保全協定處理任務之後,使用網路協定處理單元將處理結果作為資料報文進行封裝後,藉由網路控制器發送; 其中,該擴展裝置還用於在該主機接收資料報文的情況下,接收該資料報文,使用本地的網路控制器將該資料報文傳輸至網路協定處理單元進行解析,並使用本地的傳送層保全協定對解析結果進行處理後,將處理結果上傳到該主機。
- 一種集成晶片,其特徵在於,包括: 擴展介面,用於與主機連接,其中,該主機用於提供應用程式; 傳送層保全協定處理單元,用於根據該主機調用的介面處理任務; 網路協定處理單元,與該傳送層保全協定處理單元通訊,用於資料報文進行封裝或解析; 網路控制器,用於發送或接收資料報文。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201711015191.9 | 2017-10-25 | ||
CN201711015191.9A CN109714302B (zh) | 2017-10-25 | 2017-10-25 | 算法的卸载方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201917623A true TW201917623A (zh) | 2019-05-01 |
Family
ID=66170737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107129270A TW201917623A (zh) | 2017-10-25 | 2018-08-22 | 演算法的卸載方法、裝置和系統 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11171936B2 (zh) |
EP (1) | EP3701690B1 (zh) |
JP (1) | JP2021501407A (zh) |
CN (1) | CN109714302B (zh) |
TW (1) | TW201917623A (zh) |
WO (1) | WO2019083977A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11336625B2 (en) | 2018-03-16 | 2022-05-17 | Intel Corporation | Technologies for accelerated QUIC packet processing with hardware offloads |
CN110677250B (zh) | 2018-07-02 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 密钥和证书分发方法、身份信息处理方法、设备、介质 |
CN110795742B (zh) | 2018-08-02 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 高速密码运算的度量处理方法、装置、存储介质及处理器 |
CN110795774B (zh) * | 2018-08-02 | 2023-04-11 | 阿里巴巴集团控股有限公司 | 基于可信高速加密卡的度量方法、设备和系统 |
CN110874478B (zh) | 2018-08-29 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 密钥处理方法及装置、存储介质和处理器 |
CN110958213B (zh) * | 2018-09-27 | 2021-10-22 | 华为技术有限公司 | 处理tcp报文的方法、toe组件以及网络设备 |
US20190199835A1 (en) * | 2018-11-28 | 2019-06-27 | Manasi Deval | Quick user datagram protocol (udp) internet connections (quic) packet offloading |
US11805109B1 (en) * | 2019-02-25 | 2023-10-31 | Amazon Technologies, Inc. | Data transfer encryption offloading using session pairs |
CN111988264A (zh) * | 2019-05-22 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 区块链与网络系统、数据接收与发送方法及设备 |
US11394700B2 (en) * | 2020-01-31 | 2022-07-19 | Pensando Systems Inc. | Proxy service through hardware acceleration using an IO device |
CN111245866B (zh) * | 2020-03-04 | 2021-09-14 | 深圳市龙信信息技术有限公司 | 基于硬件加速的以太网应用层协议控制系统及方法 |
US11934330B2 (en) | 2020-05-08 | 2024-03-19 | Intel Corporation | Memory allocation for distributed processing devices |
CN113778320A (zh) * | 2020-06-09 | 2021-12-10 | 华为技术有限公司 | 网卡以及网卡处理数据的方法 |
CN112055032B (zh) * | 2020-09-21 | 2022-05-17 | 迈普通信技术股份有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
US11709790B2 (en) * | 2021-02-24 | 2023-07-25 | Xilinx, Inc. | Spatial distribution in a 3D data processing unit |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
CN115643037B (zh) * | 2021-07-20 | 2024-04-19 | 广州汽车集团股份有限公司 | 车载can总线通信方法、装置和系统 |
CN113709135B (zh) * | 2021-08-24 | 2023-02-07 | 杭州迪普科技股份有限公司 | Ssl流量审计采集系统与方法 |
US11861023B2 (en) | 2021-08-25 | 2024-01-02 | International Business Machines Corporation | Matching cryptographic computing resources to the predicted requirements for decrypting encrypted communications |
CN114238187B (zh) * | 2022-02-24 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种基于fpga的全栈网卡任务处理系统 |
CN115118448B (zh) * | 2022-04-21 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN115225690B (zh) * | 2022-06-22 | 2024-04-19 | 中科驭数(北京)科技有限公司 | 基于硬件协议栈的tcp长连接保活方法及装置 |
CN115473861B (zh) * | 2022-08-18 | 2023-11-03 | 珠海高凌信息科技股份有限公司 | 基于通信与计算分离的高性能处理系统和方法、存储介质 |
CN116032545B (zh) * | 2022-12-06 | 2024-03-22 | 北京中睿天下信息技术有限公司 | 一种ssl或tls流量多级过滤方法和系统 |
CN116232944B (zh) * | 2023-05-06 | 2023-08-04 | 珠海星云智联科技有限公司 | 用于传输层安全协议报文业务的方法、设备及介质 |
CN116996592B (zh) * | 2023-09-27 | 2023-12-22 | 网络通信与安全紫金山实验室 | 网卡、数据发送处理方法和数据接收处理方法 |
CN117749865A (zh) * | 2024-02-06 | 2024-03-22 | 苏州元脑智能科技有限公司 | 会话处理方法、系统、装置、设备及存储介质 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
JP2000284865A (ja) | 1999-03-31 | 2000-10-13 | Fujitsu Ltd | 電源制御装置とそれを用いた情報処理装置 |
US7068772B1 (en) * | 2001-03-30 | 2006-06-27 | Accessline Communications Corporation | Economical call processing system and method, such as for providing one-number telecommunication services |
US7151831B2 (en) * | 2001-06-06 | 2006-12-19 | Sony Corporation | Partial encryption and PID mapping |
US6983382B1 (en) * | 2001-07-06 | 2006-01-03 | Syrus Ziai | Method and circuit to accelerate secure socket layer (SSL) process |
US7631107B2 (en) | 2002-06-11 | 2009-12-08 | Pandya Ashish A | Runtime adaptable protocol processor |
CN100363922C (zh) * | 2002-08-30 | 2008-01-23 | 美国博通公司 | 用于独立于带宽延迟产品的tcp/ip卸载的系统和方法 |
US7685254B2 (en) | 2003-06-10 | 2010-03-23 | Pandya Ashish A | Runtime adaptable search processor |
US7590736B2 (en) | 2003-06-30 | 2009-09-15 | Microsoft Corporation | Flexible network load balancing |
US7613822B2 (en) | 2003-06-30 | 2009-11-03 | Microsoft Corporation | Network load balancing with session information |
US7606929B2 (en) | 2003-06-30 | 2009-10-20 | Microsoft Corporation | Network load balancing with connection manipulation |
US7567504B2 (en) | 2003-06-30 | 2009-07-28 | Microsoft Corporation | Network load balancing with traffic routing |
US7636372B2 (en) * | 2003-12-19 | 2009-12-22 | Broadcom Corporation | Method and system for providing smart offload and upload |
US7783880B2 (en) * | 2004-11-12 | 2010-08-24 | Microsoft Corporation | Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management |
CN1809057A (zh) * | 2005-01-18 | 2006-07-26 | 英业达股份有限公司 | 通过装置卸载减轻主机负载的系统及其方法 |
US8713180B2 (en) * | 2005-06-22 | 2014-04-29 | Cisco Technology, Inc. | Zero-copy network and file offload for web and application servers |
US7430220B2 (en) * | 2005-07-29 | 2008-09-30 | International Business Machines Corporation | System load based dynamic segmentation for network interface cards |
US8447898B2 (en) * | 2005-10-28 | 2013-05-21 | Microsoft Corporation | Task offload to a peripheral device |
US20070266233A1 (en) * | 2006-05-12 | 2007-11-15 | Mahesh Jethanandani | Method and apparatus to minimize latency by avoiding small tcp segments in a ssl offload environment |
US8103785B2 (en) | 2007-12-03 | 2012-01-24 | Seafire Micros, Inc. | Network acceleration techniques |
US8990380B2 (en) | 2010-08-12 | 2015-03-24 | Citrix Systems, Inc. | Systems and methods for quality of service of ICA published applications |
US9589029B2 (en) | 2010-12-28 | 2017-03-07 | Citrix Systems, Inc. | Systems and methods for database proxy request switching |
CN103403707B (zh) | 2010-12-28 | 2017-11-14 | 思杰系统有限公司 | 用于数据库代理请求交换的系统和方法 |
US9325525B2 (en) | 2010-12-28 | 2016-04-26 | Citrix Systems, Inc. | Systems and methods for VLAN tagging via cloud bridge |
CN102143218B (zh) * | 2011-01-24 | 2014-07-02 | 上海红神信息技术有限公司 | web接入云体系结构及接入方法 |
EP2705632B8 (en) | 2011-05-06 | 2018-09-12 | Citrix Systems, Inc. | Systems and methods for cloud bridging between public and private clouds |
US8831041B2 (en) | 2011-06-27 | 2014-09-09 | Citrix Systems, Inc. | Prioritizing highly compressed traffic to provide a predetermined quality of service |
US8804740B2 (en) | 2012-06-15 | 2014-08-12 | Citrix Systems, Inc. | Systems and methods for reassembly of packets distributed across a cluster |
US9866475B2 (en) | 2012-06-15 | 2018-01-09 | Citrix Systems, Inc. | Systems and methods for forwarding traffic in a cluster network |
WO2014062405A1 (en) | 2012-10-16 | 2014-04-24 | Citrix Systems, Inc. | Systems and methods for bridging between public and private clouds through multi-level api integration |
US10044612B2 (en) | 2013-11-06 | 2018-08-07 | Citrix Systems, Inc. | Systems and methods for port allocation |
WO2015171469A1 (en) | 2014-05-04 | 2015-11-12 | Midfin Systems Inc. | Constructing and operating high-performance unified compute infrastructure across geo-distributed datacenters |
US20150341285A1 (en) | 2014-05-22 | 2015-11-26 | Akamai Technologies, Inc. | Metadata transport between mobile network core and external data network |
US9948505B2 (en) * | 2015-05-05 | 2018-04-17 | Citrix Systems, Inc. | Systems and methods for integrating a device with a software-defined networking controller |
IL238690B (en) | 2015-05-07 | 2019-07-31 | Mellanox Technologies Ltd | Network-based computational accelerator |
US10095558B2 (en) * | 2015-05-26 | 2018-10-09 | Cavium, Inc. | Systems and methods for offloading inline SSL processing to an embedded networking device |
US10057084B2 (en) | 2015-10-06 | 2018-08-21 | Citrix Systems, Inc. | Systems and methods of extending on premise network into the cloud |
US10116466B2 (en) | 2015-12-10 | 2018-10-30 | Vmware, Inc. | Transport protocol task offload emulation to detect offload segments for communication with a private network |
US10237187B2 (en) | 2016-04-29 | 2019-03-19 | Citrix Systems, Inc. | System and method for service chain load balancing |
US10225239B2 (en) | 2016-09-29 | 2019-03-05 | Chelsio Communications, Inc. | Method for in-line TLS/SSL cleartext encryption and authentication |
-
2017
- 2017-10-25 CN CN201711015191.9A patent/CN109714302B/zh active Active
-
2018
- 2018-08-22 TW TW107129270A patent/TW201917623A/zh unknown
- 2018-10-23 WO PCT/US2018/057067 patent/WO2019083977A1/en unknown
- 2018-10-23 EP EP18870198.1A patent/EP3701690B1/en active Active
- 2018-10-23 US US16/168,507 patent/US11171936B2/en active Active
- 2018-10-23 JP JP2020523252A patent/JP2021501407A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3701690A4 (en) | 2021-07-07 |
CN109714302B (zh) | 2022-06-14 |
CN109714302A (zh) | 2019-05-03 |
US20190124054A1 (en) | 2019-04-25 |
JP2021501407A (ja) | 2021-01-14 |
EP3701690B1 (en) | 2024-04-03 |
EP3701690A1 (en) | 2020-09-02 |
US11171936B2 (en) | 2021-11-09 |
WO2019083977A1 (en) | 2019-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201917623A (zh) | 演算法的卸載方法、裝置和系統 | |
EP3603003B1 (en) | Hardware-accelerated secure communication management | |
CN111480328B (zh) | 将通信安全操作卸载到网络接口控制器 | |
EP3725057A1 (en) | Hardware offload for quic connections | |
KR101201622B1 (ko) | 보안 기능을 가진 시스템 온 칩 및 이를 이용한 디바이스 및 스캔 방법 | |
US11757973B2 (en) | Technologies for accelerated HTTP processing with hardware acceleration | |
US11431681B2 (en) | Application aware TCP performance tuning on hardware accelerated TCP proxy services | |
WO2019237576A1 (zh) | 校验虚拟机通信性能的方法及装置 | |
CN117254976B (zh) | 基于VPP的国标IPsec VPN实现方法、装置、系统及电子设备 | |
US8316431B2 (en) | Concurrent IPsec processing system and method | |
US20170187548A1 (en) | Optimization of network data transfers over a wide area network | |
WO2010023951A1 (ja) | セキュア通信装置、セキュア通信方法及びプログラム | |
JP2004328359A (ja) | パケット処理装置 | |
Bucknall et al. | Network enabled partial reconfiguration for distributed FPGA edge acceleration | |
US20240106647A1 (en) | Methods and systems of a packet orchestration to provide data encryption at the ip layer, utilizing a data link layer encryption scheme | |
US20240048543A1 (en) | Encryption acceleration for network communication packets | |
US20230403260A1 (en) | Computer and Network Interface Controller Offloading Encryption Processing to the Network Interface Controller and Using Derived Encryption Keys | |
US20220038443A1 (en) | Methods and systems of a packet orchestration to provide data encryption at the ip layer, utilizing a data link layer encryption scheme | |
CN116405235A (zh) | 用于承载操作和叠加操作的双向加密/解密设备 | |
Hooda et al. | A new approach to design programmable secure network interface card |