TW201352050A - 網路卸載方法與系統 - Google Patents

網路卸載方法與系統 Download PDF

Info

Publication number
TW201352050A
TW201352050A TW102118420A TW102118420A TW201352050A TW 201352050 A TW201352050 A TW 201352050A TW 102118420 A TW102118420 A TW 102118420A TW 102118420 A TW102118420 A TW 102118420A TW 201352050 A TW201352050 A TW 201352050A
Authority
TW
Taiwan
Prior art keywords
data packet
packet
header
processing
processor
Prior art date
Application number
TW102118420A
Other languages
English (en)
Other versions
TWI499342B (zh
Inventor
Brian Petry
Eric Spada
Stephan Anderson
Scott Winterble
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of TW201352050A publication Critical patent/TW201352050A/zh
Application granted granted Critical
Publication of TWI499342B publication Critical patent/TWI499342B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/037Protecting confidentiality, e.g. by encryption of the control plane, e.g. signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本發明涉及無線接入點的隧道加速。本發明提供的網路卸載方法及系統包括:在無線接入點的通訊介面接收數據包,以及在主機處理器對數據包進行處理之前,在流加速處理器對數據包進行處理。所述流加速處理器可以對數據包進行處理以便進行報頭校驗或安全處理。所述流加速處理器可將數據包提供給安全協同處理器以便進行安全處理。所述流加速處理器可以生成指示流加速處理器的處理是否成功的結果代碼。如果處理不成功,則將數據包提供給主機處理器以便進行異常處理。

Description

網路卸載方法與系統
本發明涉及將某分組處理從主機處理器卸載到其他處理資源。特別地,本發明涉及直列式隧道加速,其可從主機處理器卸載協議操作及安全算法,以便減少主機處理器的負載並提高無線接入點的控制和配置(Control and Provisioning of Wireless Access Points,CAPWAP)中的處理延遲和吞吐量。
在巨大消費者需求的推動下,電子和通訊技術迅速發展,已使無線接入點得到廣泛應用。無線接入點,或企業接入點(EAP),提供無線連接以便將數據傳輸至無線連接設備並從無線連接設備接收數據。無線接入點還可提供有線連接以便將數據傳輸至有線網路設備並從有線網路設備接收數據。當數據包移動通過無線接入點時,無線接入點對數據包進行處理。在處理數據包時,無線接入點可符合不同協議和標準,例如無線接入點的控制和配置(CAPWAP)、通用路由封裝(GRE)、網路地址與端口轉換(NAPT)、網際網路協議安全(IPsec)。處理這些協議和標準的不斷改善將繼續使無線接入點和其他網路設備對客戶來說是有吸引力的選擇。
根據本發明的一方面,提供了以下方法:
(1)一種方法,包括:在通訊介面接收數據包;在將所述數據包提供給主機處理器之前,將所述數據包提供 給流加速處理器;在所述流加速處理器:確定所述數據包的數據包報頭和數據包有效載荷;分析所述數據包,當所述數據包報頭、數據包有效載荷或這兩者不滿足識別標準時,將處理結果代碼分配給所述數據包,指示對所述數據包的異常處理;以及將所述處理結果代碼和所述數據包提供給所述主機處理器;以及在所述主機處理器:接收所述結果代碼;以及響應於接收所述結果代碼,對所述數據包執行異常處理。
(2)根據(1)所述的方法,其中,執行所述異常處理包括利用所述流加速處理器未執行的處理步驟對所述數據包進行處理。
(3)根據(1)所述的方法,其中,所述識別標準包括通過報頭校驗。
(4)根據(3)所述的方法,其中,通過所述報頭校驗包括驗證所述數據包報頭的安全報頭序列號。
(5)根據(1)所述的方法,其中,所述識別標準包括將從所述數據包報頭提取的流密鑰定位在流查找表中。
(6)根據(1)所述的方法,其中,所述識別標準包括成功解密所述數據包有效載荷。
(7)根據(1)所述的方法,其中,分析所述數據包包括將所述數據包有效載荷傳送至安全協同處理器用於進行安全處理。
根據本發明的一方面,提供了以下系統:
(8)一種系統,包括:通訊介面,被配置為接收數據包; 流加速處理器,與在將所述數據包提供給主機處理器之前接收所述數據包的通訊介面通訊;所述流加速處理器被配置為:確定所述數據包的數據包報頭和數據包有效載荷;分析所述數據包,當所述數據包報頭、數據包有效載荷或這兩者不滿足識別標準時,將處理結果代碼分配給所述數據包,指示對所述數據包的異常處理;以及將所述處理結果代碼和所述數據包提供給所述主機處理器;以及所述主機處理器被配置為:接收所述結果代碼;以及響應於接收所述結果代碼對所述數據包執行異常處理。
(9)根據(8)所述的系統,其中,所述異常處理被配置為利用所述流加速處理器未執行的處理步驟對所述數據包進行處理。
(10)根據(8)所述的系統,其中,當所述數據包通過報頭校驗時,滿足所述識別標準。
(11)根據(10)所述的系統,其中,所述數據包通過驗證所述數據包報頭的安全報頭序列號而通過報頭校驗。
(12)根據(8)所述的系統,其中,當從所述數據包報頭提取的流密鑰定位在流查找表中時,滿足所述識別標準。
(13)根據(8)所述的系統,其中,當所述數據包有效載荷被成功解密時,滿足所述識別標準。
(14)根據(8)述的系統,進一步被配置為通過將所述數據包有效載荷傳送至安全協同處理器以進行安全處理來分析所述數據包。
根據本發明的一方面,提供了以下方法:
(15)一種方法,包括: 在通訊介面接收數據包;確定將所述數據包卸載到流加速處理器,而不是在主機處理器對所述數據包進行處理;在所述流加速處理器:確定所述數據包的報頭部分和所述數據包的有效載荷部分;根據所述數據包的所述報頭部分確定所述數據包的數據包封裝格式;當所述流加速處理器識別出所述數據包的所述數據包封裝格式時,在所述流加速處理器開始對數據包進行處理;以及當所述流加速處理器未識別出所述數據包的所述數據包封裝格式時,利用結果代碼將所述數據包提供給所述主機處理器;以及在所述主機處理器:響應於所述結果代碼,確定所述結果代碼指示所述流加速處理器未識別出所述數據包的所述數據包封裝格式;將所述數據包的所述數據包封裝格式修改為更新的數據包封裝格式;以及將具有所述更新的數據包封裝格式的數據包提交給所述流加速處理器。
(16)根據(15)所述的方法,進一步包括:當流加速處理器對所述數據包進行處理時,根據所述報頭部分確定所述有效載荷部分包括安全性;將所述數據包卸載到安全協同處理器用於進行安全處理;以及在所述流加速處理器接收來自所述安全協同處理器的安全處理有效載荷部分。
(17)根據(16)所述的方法,其中,安全處理包括所述數據包有效載荷的解密處理,其中所述安全處理有效載荷部分包 括解密的有效載荷。
(18)根據(15)所述的方法,進一步包括:當在所述流加速處理器處理所述數據包時,確定所述數據包的所述報頭部分的報頭類型;分析所述報頭類型;如果所述流加速處理器識別出所述報頭類型,則在流加速處理器對所述數據包進行處理;以及如果流加速處理器未識別出所述報頭類型,則利用結果代碼將所述數據包提供給所述主機處理器。
(19)根據(15)所述的方法,其中,識別所述數據包封裝格式包括將從所述報頭部分提取的流密鑰定位在流查找表中。
(20)根據(15)所述的方法,進一步包括:使所述流加速處理器的緩衝狀態與所述主機處理器的主機處理狀態同步。
100‧‧‧無線接入點
102‧‧‧主機處理器
104‧‧‧流加速處理器(FAP)
106‧‧‧安全協同處理器
108‧‧‧通訊介面
110‧‧‧儲存控制器
112‧‧‧儲存器
114‧‧‧PCI介面
116‧‧‧無線電
118‧‧‧交換機
120‧‧‧乙太網端口
130‧‧‧數據路徑
200‧‧‧無線接入點
202‧‧‧企業分組處理橋接器
204‧‧‧流加速驅動器
206‧‧‧802.11驅動器
300‧‧‧數據包
302‧‧‧乙太網報頭字段
304‧‧‧IPv4或IPv6字段
306‧‧‧用戶數據報協議(UDP)或UDP-Lite報頭字段
308‧‧‧DTLS記錄報頭字段
310‧‧‧上層協議消息字段
312‧‧‧加密消息認證碼(MAC)尾部字段
314‧‧‧加密填充尾部字段
400‧‧‧乙太網
900‧‧‧示例流程圖
902‧‧‧報頭分析及有效載荷
904‧‧‧數據包封裝格式
906‧‧‧流密鑰查找
908‧‧‧發起安全處理來繼續處理數據包
910‧‧‧有效載荷緩衝及數據包長度檢查
912‧‧‧報頭相關校驗及DTLS處理
914‧‧‧處理安全結果;執行DTLS MAC檢查
916‧‧‧非CPAWAP處理
918‧‧‧使數據包、報頭、有效載荷、結果代碼同步
920‧‧‧接收緩衝器
926‧‧‧流描述符查找表
1000‧‧‧流程圖
1008‧‧‧拆分Tx描述符及有效載荷
1010‧‧‧計算分段大小
1012‧‧‧插入報頭
1014‧‧‧填充初始化向量
1016‧‧‧初始化安全處理
1020‧‧‧傳輸緩衝器
1030‧‧‧隨機數發生器
1100‧‧‧流程圖
1102‧‧‧命令處理器
參照以下附圖及描述可以更好地理解本發明。在圖中,類似參考標號在不同的視圖中指的是對應部件。
圖1示出了使用流加速處理器使數據包移動通過無線接入點的系統的實例。
圖2是無線接入點中使用的協議棧的實例。
圖3是安全數據傳輸層(DTLS)專有數據包(無CAPWAP)的數據包封裝格式的實例。
圖4是安全CAPWAP數據包的數據包封裝格式的實例。
圖5是安全CAPWAP控制數據包的數據包封裝格式的實例。
圖6是具有CAPWAP DTLS報頭的安全多DTLS握手數據包的數據包封裝格式的實例。
圖7是純文本CAPWAP數據包的數據包封裝格式的實例。
圖8是純文本CAPWAP控制數據包的數據包封裝格式的實例。
圖9是使用流加速處理器的接收處理的流程圖的實例。
圖10是使用流加速處理器的傳輸處理的流程圖的實例。
圖11是使用流加速處理器的命令處理的流程圖的實例。
下述討論參照流。流可以被視為網路中共享某條狀態訊息的一系列數據包。流可通過無線接入點接收或傳輸,並且該流中的數據包可以由無線接入點進行處理。當無線接入點對數據包進行處理時,該處理可包括由網路標準指定的協議操作和安全算法,例如,處理可包括安全算法處理、上下文切換、數據包碎片處理、協議報頭插入、報頭校驗、序列號插入及驗證、中斷處理。例如,該處理可以與無線接入點的控制和配置(CAPWAP)、通用路由封裝(GRE)、網路地址與端口轉換(NAPT)、網際網路協議安全(IPsec)或其他協議規定的處理相關聯。無線接入點可以用於無線區域網路(WLAN)並且可以與802.11兼容。在其他實現中,無線接入點可被配置為用於其他無線數據系統,例如GSM、3G、WCDMA、4G、WiMAX、CDMA、CDMA2000,並且可被配置為與無線數據系統的任意組合一起使用。
無線接入點的流分組處理可由諸如CPU的主機處理器執行,或可以卸載到諸如ASIC的專用處理器,該處理器可以對數據包進行處理。在一種實現中,主機處理器可執行一部分分組處理並且該專用處理器可執行一部分分組處理。無線接入點可以接收數據包,傳輸數據包,或進行這兩種操作,並且當無線接入點接收數據包時,在無線接入點傳輸數據包或進行這兩種操作之前,可進行分組處理。執行的分組處理類型可以取決於數據包類型。除此之外,分組處理還可包括驗證數據包,識別數據包的報頭部分和有效載荷部分,解密數據包的加密部分,將數據包分割成更小的數據包或在流中確定數據包的成員關係(如果有的話)。分組處理不限於這些實例,並且可對數據包執行其他分組處理。
當主機處理器對數據包進行處理時,主機處理器可使用軟體來處理數據包。使用主機處理器上的軟體對數據包進行處理會消耗主機處理器的大量資源。如果數據包流的數據傳輸速率高,則主機處理器的處理能力會不足以對數據包進行快速處理。如果主機處理器不能以足以匹配數據傳輸速率的速度來對數據包進行處理,則可能會發生數據包延遲,主機處理器可能沒有必要減慢數據包可移動通過無線接入點的速率。
為了更快速地對數據包進行處理並減少主機處理器的負載,主機處理器可將分組處理卸載到流加速處理器。流加速處理器可執行一部分或所有分組處理以減輕主機處理器的負載。通過這種方法,無線接入點能夠以高的數據傳輸速率在沒有數據包延遲的情況下對數據包進行處理。
當數據包移動通過無線接入點的不同組件時,無線接入點可包括用於數據包的某些數據路徑。數據路徑可包括接收路徑、傳輸路徑及控制路徑,可根據數據包採用的路徑對數據包執行各種類型的處理。圖1示出了無線接入點100中的組件及數據路徑的實例。主機處理器102可包含用於處理數據包的軟體並且可以通過通訊介面108與流加速處理器104連接。流加速處理器(FAP)104可以是用於處理數據包的專用處理器。安全協同處理器106可直接與FAP 104通訊並且可通過通訊介面108與主機處理器102通訊。數據路徑130示出了通過無線接入點100的數據包路徑的實例。
作為接收路徑的實例,無線接入點可接收乙太網端口120上的數據包。交換機118可將接收的數據包中繼轉發至FAP 104以便進行接收數據包處理。作為接收數據包處理的一部分,FAP 104可將數據包傳遞至安全協同處理器106以便對數據包或數據包的一部分進行安全處理。一旦完成安全處理,安全協同處理器106將數據包返回FAP 104以便進行進一步的接收數據包處理。當FAP 104對數據包完成處理時,FAP 104可經由通訊介面108和儲存控制器110將數據包儲存在儲存器112中,其中主機處理器102可通過儲存控制器110來存取數據包以便執行額外的接收數據包處理或異常處理。通訊介面可以是內部並行總線或交換架構介面,例如包括高級可擴展介面(AXI)。儲存器112可以是DRAM,可位於FAP 104的外部或內部。例如,儲存器112可以是雙倍數據速率(DDR)儲存器,並且儲存控制器110可以是直接儲存器存取(DMA)儲存控制器。在其他實現中,無線接入點可以使用其他類型的通訊介面、儲存器或儲存控制器。
作為傳輸路徑的實例,主機處理器102可通過儲存控制器110將數據包置於儲存器112中以便進行傳輸。在某些情況下,主機處理器102在將數據包置於儲存器112中之前可執行傳輸處理,以便FAP 104執行額外的傳輸處理。傳輸處理可包括應用報頭訊息、數據包分割或安全處理。在FAP 104執行傳輸處理之後,可以將數據包中繼轉發至交換機118以便通過乙太網端口120進行有線傳輸。替代地,可將數據包中繼轉發至儲存器112以便利用無線電116無線傳輸數據包。例如,無線電116可以是802.11控制器晶片,例如可從加州Irvine的博通公司購買的型號為BCM43460的晶片。
圖2示出了FAP 104可在無線接入點200處使用的協議棧。例如,主機處理器102可使用企業分組處理橋接器202來引導數據包通過無線接入點200。企業分組處理橋接器202可使用流加速驅動器204來與流加速處理器104通訊並使用802.11驅動器206來與無線電116通訊。在FAP 104內,不同協議可作為協議棧的一部分進行處理,例如包括使用CAPWAP、DTLS、UDP、UDP-Lite、IPv4、IPv6、乙太網分組處理的協議。下文將對與協議棧相關聯的不同數據包類型進行更詳細描述。
數據包封裝格式
FAP 104可以對不同類型的數據包進行處理。每個類型的數據包可具有包括報頭字段、數據字段及尾部字段的數據包封裝格式。如果FAP 104識別出數據包封裝格式,則FAP 104可以對數據包進行處理。如果FAP 104未識別出數據包封裝格式,FAP 104可以將數據包提供給主機處理器102以便進行異常處理。例如,圖3至圖9示出了FAP 104可以識別的示例性數據包封裝格式。當數據包封裝格式是FAP 104識別出的數據包封裝格式時,則可滿足識別標準,並且FAP 104可以繼續處理數據包。如果FAP 104確定數據包封裝格式是FAP 104未識別出的數據包封裝格式,則不滿足識別標準,並且FAP 104可以將數據包提供給主機處理器102以便進行異常處理。
每個數據包封裝格式都可包括一系列字段。字段類型可以是報頭字段、數據字段(有效載荷或消息)或尾部字段。每個字段都可包括多個子字段。另外,每個子字段都可包括用於儲存與子字段相對應的特定訊息的多個數據位。例如,訊息可用於路由訊息、安全訊息或有效載荷數據。可以對不同字段進行認證或加密處理。表1列出數據包封裝格式中可包括的不同字段及子字段的實例。
圖3示出了包括如表1所述的不同子字段的數據包300的實例。數據包300的數據包封裝格式可以是傳輸層安全(DTLS)專有數據包(無CAPWAP)的數據包封裝格式。在該實例中,數據包300中包括有乙太網報頭字段302、IPv4或IPv6字段304、用戶數據報協議(UDP)或UDP-Lite報頭字段306、DTLS記錄報頭字段308、上層協議消息字段310、加密消息認證碼(MAC)尾部字段312以及加密填充尾部字段314。如果數據包300由FAP 104接收用於進行處理並且如果FAP 104識別出數據包封裝格式,則FAP 104可以對字段和子字段進行解析和處理。在某些實現中,FAP 104可對包括數據包封裝的第一128字元數據的一系列字段。另外,DTLS記錄報頭類型308及上層協議消息類型310可以是FAP 104可以進行處理以便利用安全協同處理器106進行認證的字段類型。另外,加密MAC報頭類型312和加密填充報頭類型314可以是FAP 104可以進行處理以便利用安全協同處理器106進行加密/解密的報頭類型。
圖4至圖9示出了可包括表1中所列出的不同字段類型的數據包封裝格式的額外實例。字段和子字段的組合及順序可與所示的組合及順序不同並且可取決於數據包的類型。另外,額外字段,比如自定義報頭字段,可以添加在圖3至圖9中所列出的數據包封裝格式之前。FAP 104在對數據包進行處理之前對自定義報頭字段進行預處理並在執行進一步處理之前刪除自定義報頭。
流描述符
為了識別與數據包相關聯的流,FAP 104可使用流密鑰來識別流。流密鑰可以是從數據包報頭中提取的一組字段。流密鑰可以唯一識別CAPWAP隧道端點。在一個實例中,流密鑰可以為108位元並且包括以下字段:流密鑰類型(3位元)、IP類型(1位元)、IPv4(72位元)、UDP源端口(16位元)、UDP目的端口(16位元)。在另一實例中,流密鑰可以為300位元並且包括以下字段: 流密鑰類型(3位元)、IP類型(1位元)、IPv6(264位元)、UDP源端口(16位元)、UDP目的端口(16位)。在其他實現中,流密鑰可包括其他字段以及位元長。
FAP 104可以使用流密鑰來指流的協議上下文。協議上下文可指示可用於數據包的處理類型。協議上下文可包括數據用協議上下文及控制用協議上下文。協議上下文可分組為作為流描述符的記錄。流密鑰可以用作記錄,該記錄被識別為查找與給定流密鑰相關聯的流描述符。作為流描述符的一個實例,流描述符可以為149字元並且可包括下列表2中所列出的字段。在其他實現中,流描述符可包括其他字段及位元長。
接收處理路徑
如上所述,無線接入點可接收用於處理的數據包。當無線接入點接收數據包時,FAP 104可對數據包執行處理。圖9示出了處理數據包時FAP 104可以使用的處理階段的示例流程圖900。當FAP 104接收數據包時,FAP 104可確定數據包的報頭部分及數據包的有效載荷部分(902)。FAP 104然後校驗數據包報頭以提取流密鑰並確定數據包是否具有FAP 104識別的數據包封裝格式(904)。如果FAP 104未識別出數據包報頭,則FAP 104可生成指示未識別出報頭的結果代碼,然後將數據包發送至主機處理器102進行進一步處理(918)。如果FAP 104識別出報頭格式,則FAP 104可通過確定報頭格式是否指示CAPWAP數據包類型來繼續對數據包進行處理。如果數據包類型是非CAPWAP,則FAP 104可使用非CAPWAP處理來處理數據包(916)。如果數據包類型是CAPWAP,FAP 104可在流描述符查找表926中查找數據包的流密鑰以獲得與數據包的流密鑰相關聯的流描述符(906)。如上所述,流描述符提供FAP 104可用來處理數據包的協議上下文。進一步地,主機處理器102可更新儲存在流描述符查找表926中的值。
如果流密鑰查找不成功或者如果FAP 104未識別出流描述符,FAP 104可生成指示流密鑰查找不成功或未識別出流描述符的結果代碼,然後將數據包發送至主機處理器102以便進行進一步處理(918)。如果流密鑰查找成功或者如果FAP 104識別出流描述符,FAP 104可通過發起安全處理來繼續處理數據包(908)。為了執行安全處理,FAP 104可以將數據包傳遞至安全協同處理器106以便進行安全處理。安全處理可包括解密數據包的有效載荷部 分,計算消息認證碼(MAC)散列或進行這兩種操作。如果安全處理不成功,FAP 104可生成指示安全處理不成功的結果代碼,然後將數據包發送至主機處理器102以便進行進一步處理(918)。
如果安全處理成功,則FAP 104可通過校驗有效載荷緩衝和數據包長度繼續處理數據包(910)。接下來,FAP 104可繼續執行報頭相關校驗及DTLS處理(912)。如果報頭相關校驗及DTLS處理不成功,FAP 104可生成指示報頭相關校驗及DTLS處理不成功的結果代碼,然後將數據包發送至主機處理器102以便進行進一步處理(918)。如果報頭相關校驗及DTLS處理成功,以及如果安全協同處理器106尚未執行作為安全協同處理器106中安全處理一部分的報頭相關校驗及DTLS處理,則FAP 104可通過處理安全結果並執行DTLS MAC校驗來繼續處理數據包(914)。如果安全結果及DTLS MAC校驗不成功,則FAP 104可生成指示安全結果及DTLS MAC校驗不成功的結果代碼,然後將數據包發送至主機處理器102以便進行進一步處理(918)。
在方框918中,FAP 104重組數據包報頭、數據包有效載荷及結果代碼並將重組數據包置於接收緩衝器920中,以便傳輸至儲存器112。接收緩衝器920例如可以是FIFO緩衝器。一旦重組數據包位於儲存器112中,主機處理器102就可獲得重組數據包以便進行進一步接收處理。如果FAP 104生成指示某個處理步驟不成功的結果代碼,主機處理器102可以對數據包執行異常處理。
例如,可利用一下算法實現流程圖900。在其他實現中,報頭偏移、位元長、跳過報頭、支援報頭類型及處理序列可與下面列出的不同。
I. 協議上下文獨立(“無狀態的”)處理
a. 驗證自定義報頭。32位元及64位元格式,取決於操作碼。
i. 如果操作碼用於CAPWAP,提取14位元DTLS報頭偏移。
b. 如果未預料到乙太網目的地址,則停止處理。不將數據包及結果描述符傳遞至軟體。注意:停止CAPWAP處理,但FAP可能需要轉發數據包以便進行橋接處理並轉發至另一個節點。
c. 如果存在則跳過802.1q報頭。注意,FAP可忽略優先順序及虛擬區域網路(VLAN)標簽。
d. 如果存在則跳過LLC/SNAP報頭。忽略LLC長度。
e. 如果乙太網型不是IPv4(0x800)或IPv6(0x86DD),則發送至主機處理器以便進行軟體處理。
f. 如果IPv4
i. 根據RFC1071計算報頭校驗和。如果校驗和與數據庫匹配,則發送至主機處理器以便進行軟體處理。
ii. 如果IP版本號字段!=4,則發送至主機處理器以便進行軟體處理。
iii. 如果IP更多分段位元==1或分段偏移>0,則發送至主機處理器以便進行軟體處理。
iv. 如果IP協議!=UDP(17),則發送至主機處理器以便進行軟體處理。
v. 如果IP報頭長度!=5(5個32位元字),則發送至主機處理器以便進行軟體處理。(小於5表示誤差,大於5表示存在IP選項)
vi. 如果UDP校驗和!=0,則發送至主機處理器以便進行軟體處理。
vii. 利用協議、源地址、目的地址、源端口及目的端口初始化IPv4流密鑰。
g. 如果IPv6
i. 如果IP版本號字段!=6,則發送至主機處理器以便進行軟體處理。
ii. 如果IP的下一報頭不是UDP(17)或UDP-Lite(136),則發送至主機處理器以便進行軟體處理。
iii. 如果下一報頭是UDP,並且校驗和字段不為0,則發送至主機處理器以便進行軟體處理。
iv. 如果下一報頭是UDP-Lite
1. 如果UDP校驗和覆蓋字段!=8,則發送至主機處理器以便進行軟體處理。
2. 根據RFC3828計算UDP校驗和。注意:UDP校驗和包括來自IP報頭(稱之為“偽報頭”)的某些字段。
3. 如果UDP校驗失配,則發送至主機處理器以便進行軟體處理。
v. 利用協議、源地址、目的地址、源端口及目的端口初始化IPv6流密鑰。
h. 利用CAPWAP/DTLS流密鑰類型及IPv4或IPv6流密鑰發起流描述符查找。緩衝數據包數據,並同時進行流查找。
i. 接收流查找結果。
j. 如果未找到流描述符,則發送至主機處理器以便進行軟體處理。
II. 協議上下文相關(“有狀態的”)處理
a. 如果數據包封裝格式是純文本,則發送至主機處理器以便進行軟體處理。
b. 如果自定義報頭指示DTLS記錄偏移
i. 緩衝數據包直至達到DTLS偏移或數據包結束。
ii. 如果在DTLS偏移之前達到數據包結束,則發送至主機處理器以便進行軟體處理(DTLS記錄偏移無效)。
c. 其他(不跳至DTLS記錄偏移)
i. 如果數據包封裝格式是CAPWAP/DTLS報頭存在
1. 如果CAPWAP/DTLS報頭本文!=0,則發送至主機處理器以便進行軟體處理。
2. 如果類型!=1(意思是無DTLS封裝),則發送至主機處理器以便進行軟體處理。
d. 如果數據包封裝格式不是CAPWAP/DTLS報頭存在或DTLS專有中的一個,則發送至主機處理器以便進行軟體處理(未被識別的數據包封裝)。
e. 如果DTLS記錄曆元字段與流描述符中的曆元失配,則發送至主機處理器以便進行軟體處理。
f. 驗證DTLS序列號在預期範圍內。FAP按照RFC4347 4.1.2.5及RFC2401附錄C實現滑動窗口驗證以免受重放攻擊(對DTLS來說是強制性的)
i. 驗證序列號。注意:與Psec序列號驗證相同。如果需要邏輯,則可提供。
ii. 如果不允許序列號,則發送至主機處理器以便進行軟體處理。
注意:在驗證DTLS記錄報頭之前,我們必須驗證整個DTLS記錄上的DTLS MAC。
g. 從DTLS記錄提取長度。DTLS長度指示DTLS記錄中的有效載荷字元數,不包括DTLS記錄報頭。長度還包括 初始化向量(IV)、MAC字段、加密填充及加密填充長度。
h. 在緩衝器中接收DTLS報頭及DTLS記錄字元。如果數據包結束在DTLS長度之前到達,則發送至主機處理器以便進行軟體處理(DTLS長度無效)。注意,在緩衝器中接收處理可與以下步驟並行進行,將字元饋送至安全引擎以便解密。
i. 命令安全引擎解密有效載荷,提供以下參數。注意,區塊加密算法應為NULL。注意:即使為NULL,仍然可通過安全引擎運行以便達到調試目的。
i. 區塊加密算法(根據流描述符及配置查找)
ii. 加密密鑰長度(根據流描述符及配置查找)
iii. 加密密鑰(根據流描述符及配置查找)
iv. 數據長度。加密涵蓋繼DTLS報頭之後的第一字元以及DTLS有效載荷的所有字元,包括尾部。與DTLS報頭中的長度相同。
v. 數據
j. 接收從安全引擎回來的解密數據。當解密數據到達,FAP可通過安全引擎將其送回以便進行MAC校驗(下一步驟)。然而,如果安全引擎事先要求長度,則必須首先完成整個消息解密過程,因為下一步驟的長度僅在解密最後一個字元之後才是已知的。最後一個字元包含加密填充長度,該長度確定MAC計算的長度。
k. 此時,接收數據包緩衝器包含解密數據,剩餘步驟中的任意解析異常,從而導致“發送至主機處理器以便進行軟體處理”傳遞解密數據,而不是原始加密數據包。
l. 驗證加密填充字元。如果區塊加密算法為NULL,則不存在填充字元並且填充長度字段為0。填充長度字段為一字元字段,解密消息的最後一個字元。檢查填充長度字段之前的所有填充字元具有等於填充字元數的值。如果任意填充字元值錯誤,則發送至主機處理器以便進行軟體處理。
m. 命令安全引擎根據RFC2104計算MAC散列,提供以下參數。注意,MAC散列算法為NULL。如果為NULL,則仍然可通過安全引擎運行以便達到調試目的。同樣應注意,DTLS MAC計算包括DTLS報頭,但首先放置曆元及序列號。
i. MAC散列算法(根據流描述符及配置查找)
ii. MAC秘密長度(根據流描述符及配置查找)
iii. MAC秘密(根據流描述符)
iv. 數據的長度。根據DTLS記錄報頭(13字元)+DSTLS記錄有效載荷-MAC散列大小-填充長度-1來計算MAC。注意:安全引擎還可採用MAC字段來執行MAC驗證,在此情況下,MAC散列大小應包括在長度中。
v. 數據。注意,在計算MAC之前,FAP需要將DTLS曆元及序列號從DTLS記錄移至前兩個字段。符合RFC4347,4.1.2.1節以及RFC4346,6.2.3.1節。
1. DTLS曆元
2. DTLS序列號
3. DTLS類型
4. DTLS版本
5. 長度(上文算出的)
6. DTLS記錄有效載荷
n. 等待MAC結果及DTLS記錄緩衝及MAC緩衝。
o. 驗證MAC。注意:安全引擎已比較MAC並提供結果。
p. 如果MAC失配,則發送至主機處理器以便進行軟體處理。
q. 如果序列號大於最後一個驗證的序列號,則我們將具有新的最大驗證序列號。
i. 將序列號儲存在流描述符中作為最後一個驗證的序列號。
ii. 更新流描述符中的序列窗口校驗掩碼(移動窗口)。注意:如果需要可提供精確算法。
r. 其他(序列號比最後一個驗證的序列號舊一因為在窗口中,所以始終可接受)。
i. 根據接收的序列號與最後一個驗證的序列號之間的差異在流描述符中的窗口校驗掩碼中標誌位元。如果需要,可提供序列號窗口驗證的精確算法。
ii. 增量統計:可接受的DTLS舊窗口內的序列號。
s. 如果DTLS版本!=配置值(例如,0xfeff),則發送至主機處理器以便進行軟體處理。
t. 如果配置支援更改密碼規範解析及DTLS記錄類型==ChangeCipherSpec(20),則
i. 如果繼DTLS報頭之後的下一字元==1(更改密碼規範)(注意,對1字元DTLS有效載荷進行加密)。
1. 如果待決密碼規範指數==7,指示沒有密碼規範可用於流描述符,則發送至主機處理器以便進行軟體處理,但有誤差。
2. 將流描述符中的待決密碼規範複製到當前密碼規範並取消當前密碼規範。
ii. 注意,單個數據包可包含多個DTLS記錄,ChangeCipherSpec可以不是數據包中的第一個或最後一個DTLS記錄。將待決密碼規範複製到(新的)當前密碼規範是有效的(且必須的),因為新的密碼規範要用於數據包中的剩餘DTLS。密鑰使用案例為“完成”DTLS握手消息。參見RFC4346的7.4.9。
iii. 將結果代碼設置到執行的更改密碼規範中。
u. 其他
i. 將結果代碼設置到找到的DTLS記錄中。
III. 完成
a. 將結果描述符及數據包通過接收FIFO寫入DMA。
b. 當最後一個字元離開FIFO時,如果啟動接收中斷,則中斷CPU。
如上所述,FAP 104可以生成結果代碼以表示一部分分組處理成功還是不成功。為了將該結果代碼提供給主機處理器102,FAP 104可使結果代碼與接收的數據包有關。主機處理器102可以使用結果代碼,以便對數據包執行異常處理。FAP 104可通過結果描述符在結果代碼與接收數據包之間創建鏈接。結果描述符可包括:處理結果代碼(5位元);流密鑰(300位元);以及流描述符表中的流描述符的流密鑰索引。注意,如果FAP 104在早期處理階段(例如,處理階段902,圖9)不能從數據包中提取流密鑰,則流密鑰和流密鑰索引可能未被定義。處理結果代碼可以指示分組處理的哪個步驟不成功。表3中列出了不同處理結果代碼的實例。在其他實現中,處理結果代碼可包括其他字段及位元長。
傳輸處理路徑
除了處理接收數據包之外,無線接入點可對傳輸數據包進行處理。如上所述,主機處理器102可通過儲存控制器110存取已儲存在儲存器112中的數據包。如果需要對數據包進行傳輸處理,主機處理器102可執行傳輸處理,然後將數據包中繼轉發至無線電116以便無線傳輸數據包。再如,主機處理器102可對數據包進行部分處理,然後將數據包中繼轉發至FAP 104。FAP 104可對 數據包執行傳輸處理,然後中繼轉發數據包以便通過端口120進行有線傳輸或通過無線電116進行無線傳輸。
例如,主機處理器102可構建數據包並經由儲存器112將數據包傳遞至傳輸緩衝器。例如,傳輸緩衝器可以是傳輸FIFO緩衝器。FAP 104從傳輸緩衝器接收數據包並通過生成乙太網、IP、UPD及CAPWAP/DTLS報頭,計算DTLS MAC,並加密數據包等方式對數據包進行處理。FAP 104還可採用比最大傳輸單元(MTU)大的有效載荷消息並將該消息分割成多個CAPWAP消息。注意,有利的是在CAPWAP層處而不是IP層處進行分割以便啟動通過更多不同的中間路由器及NAPT閘道器的遍曆。FAP 104可允許數據包繞過FAP 104中的正常傳輸處理並將數據包直接中繼轉發至交換機118。與FAP 104處理接收數據包時不同,當FAP 104處理傳輸數據包時,FAP 104可以不將結果代碼傳遞至主機處理器102。相反,如下文更詳細描述的,FAP 104可編譯關於FAP 104是否檢查到誤差或丟失數據包的流加速處理器統計。
當FAP 104從儲存器112獲得傳輸數據包時,主機處理器104可能已經添加關於FAP 104應如何處理數據包以便進行傳輸的指令。主機處理器104可利用傳輸描述符添加指令。作為傳輸描述符的一個實例,傳輸描述符可以為114字元並且可包括下表4中所列出的字段。在其他實現中,可使用不同字段及位元長。
流描述符可包括指示安全配置的訊息。配置可通過設置配置字段來選擇。配置字段可包括表5中列出的字段。在其他實現中,可使用不同配置字段和位元長。
在傳輸數據包之前,主機處理器102可為數據包提供MTU大小及最大CAPWAP分段有效載荷大小。MTU大小由有線傳輸的數據包字段組成,開始於乙太網介質存取控制目的地址的第一字元,結束於DTLS尾部的最後字元(DTLS填充長度字元),不包括乙太網FCS。即使不是有線傳輸,MTU中也包括可選自定義報頭。CAPWAP分段有效載荷大小是CAPWAP報頭之後、可選DTLS MAC之前的有效載荷數據的長度。例如,參照圖4,“無線有效載荷”414的長度為有效CAPWAP分段有效載荷大小。
主機處理器102可根據供應數據或執行路徑MTU發現來確定MTU,如RFC5415所述。主機處理器102還可計算最大CAPWAP分段有效載荷大小,而不將該計算卸載到FAP 104。最大分段大小可因幀不同而不同,主要取決於主機處理器102選擇的數據包封裝格式。例如,不會總是存在CAPWAP DTLS報頭及DTLS記錄報頭。在一種實現中,最大CAPWAP分段有效載荷大小可計算為MTU大小減去報頭及填充開銷。CAPWAP分段有效載荷大小可包括表6中列出的參數。在其他實現中,可使用不同的參數和參數長度。
作為最大CAPWAP分段有效載荷大小的一個實例,假設具有14字元乙太網報頭、20字元IPv4報頭的1518 MTU大小,及利用美國加密標準(AES)AES-256和安全散列算法SHA-256的可選DTLS產生116字元的未填充開銷及1518-116=1402字元的有效載荷。所需的填充字元數(不包括最後一個密碼填充長度字元)為1402模16=10。因此,該實例中的最大CAPWAP分段有效載荷大小為1518-116-10=1392。在該實例中,報頭及填充開銷為126字元。主機處理器102可計算分段的數量以便針對每個傳輸數據包生成,從而記錄DTLS序列號。FAP 104傳輸處理可不返回傳輸結果或“使用的最後一個序列號”。
現在參照圖10,其示出了FAP 104對數據包進行傳輸處理時可以使用的處理階段的示例流程圖900。FAP 104可經由儲存器112利用DMA 110從主機處理器102獲得傳輸數據包。FAP 104可將數據包緩存在傳輸緩衝器1020中。
如果不需要或不要求對數據包進行傳輸處理,FAP 104可將來自傳輸緩衝器1020的數據包引導至交換機118並繞過通過FAP 104對數據包進行額外的傳輸處理。如果需要或要求對數據包進行傳輸處理,FAP 104可拆分來自數據包有效載荷的傳輸描述符(1008)。接下來,FAP 104可根據傳輸描述符中包含的訊息計算分段大小(1010)並將有效載荷分割成分段部分。接下來,FAP 104 可以為數據包的分段部分插入報頭(1012)。在為數據包的分段部分插入報頭之後,如果已插入DTLS記錄報頭,FAP 104可生成DTLS初始化向量(IV)並利用隨機數發生器1030填充初始化向量(1014)。然後FAP 104可利用安全協同處理器106來初始化安全處理(1016)以便加密分段的數據包部分並應用消息認證碼。
FAP 104可確定數據包有效載荷是否具有用於處理的下一分段部分。如果否,組合數據包部分並傳輸至交換機118。如果數據包有效載荷具有用於處理的額外部分,FAP 104可返回方框1010,計算數據包有效載荷的下一分段部分。FAP 104可繼續處理分段部分直至已處理數據包有效載荷並傳輸至交換機118。
例如,可利用以下算法來實現流程圖1000。在其他實現中,數據包制定、數據包緩衝、初始化、報頭插入、位元長、跳過報頭、支援的報頭類型、分段、安全校驗及處理序列可能與下文列出的不同。
1. 主機處理器在儲存器中與傳輸描述符一起制定數據包。準備DMA引擎將它們傳遞到FAP傳輸FIFO。數據包可以只包含CAPWAP有效載荷而不包含報頭(無乙太網、IP、UDP、CAPWAP或DTLS報頭)。
2. 拆分來自數據包有效載荷的傳輸描述符。
3. 緩存用於本地讀寫存取的傳輸描述符。
4. 準備輸出MTU大小的數據包緩衝器(可能針對原始數據包的分段)。
a. FAP可採用累加器來記錄插入數據包緩衝器的數據的大小。使用數據包緩衝器來確定在分段處理中要向交換機發送多少數據,如果大小超過MTU,將檢測錯誤。
b. 將數據包有效載荷大小複製到剩餘有效載荷大小。FAP將針對每個傳輸的分段減小剩餘有效載荷大小。
c. 如果CAPWAP分段的數量>0,則為該數據包設置分段生效標誌。
d. 將分段ID初始化為0並將分段偏移初始化為0。
e. FAP可記錄某些報頭字段位於數據包緩衝器中的位置。 在數據包緩衝器中為每個數據包構建報頭模板之後,FAP可寫入報頭字段,該字段為長度、分段識別數據及序列號。可能需要更新的數據包字段如下:
i. 長度字段
1. IPv4.總長度
2. IPv6報頭.有效載荷長度
3. UDP長度
4. DTLS記錄.長度
ii. 分段訊息
1. CAPWAP.F
2. CAPWAP.分段ID
3. CAPWAP.分段偏移
iii. 序列號
1. IPv4.ID
2. DTLS記錄.序列號
iv. UDP-Lite校驗和
v. IPv4報頭檢驗和
5. 如果使用自定義報頭,則選擇配置的32-或64-格式,並插入輸出數據包緩衝器。交換機在傳輸之前對其進行處理並跳過。
6. 插入乙太網DST及SRC地址。
7. 如果使用外部802.1q報頭,則插入。
8. 如果使用內部802.1q報頭,則插入。
9. 插入乙太網類型。
10. 如果IPv6,則
a. 插入IPv6報頭。
b. 記住有效載荷長度字段所在的位置。
否則
c. 插入IPv4報頭。
d. 記住總長度字段所在的位置。
e. 記住ID字段所在的位置。
f. 記住報頭校驗和所在的位置。
11. 插入UDP/UDP-Lite報頭。
12. 如果使用UDP-Lite
a. 記住校驗和所在的位置。
其他
b. 記住長度所在的位置。
13. 如果使用CAPWAP DTLS報頭,則插入。
14. 如果使用DTLS記錄報頭,則插入。
a. 記住序列號所在的位置。
b. 記住長度所在的位置。
15. 如果使用CAPWAP報頭,則將指示的字元數插入流描述符中。
a. 記住分段字段所在的分支。
16. 如果使用DTLS記錄報頭,則插入CBC區塊大小字元。
17. 插入來自數據包有效載荷(待加密)的MIN(剩餘有效載荷大小、最大分段大小)字元。
a. 將剩餘有效載荷大小減小所插入的字元數。
b. 如果分段未生效且剩餘有效載荷大小>0,則這是錯誤。終止數據包及增量統計。
18. 如果使用DTLS,則計算CBC開銷字元數並插入填充字元和填充長度字段。每個填充字元具有填充字元數的值。如果填充字元數為零,則不插入填充字元。
a. 開銷為CBC區塊大小+MAC散列大小+CBC填充開銷。 CBC區塊大小(對於初始化向量來說)通過查找配置來確定,傳輸描述符中給出了CBC算法索引。MAC散列大小以相同方式確定。CBC填充開銷是用於填充加密數據(數據包有效載荷大小+MAC散列大小+CBC填充+1)至CBC區塊總數的字元數。‘1’附加字元為填充長度字段。由此開銷為:
i. X=CBC區塊大小-((MIN(剩餘有效載荷大小、最大分段大小)+MAC散列大小+1)模數(modulo)CBC區塊大小)。
ii. 如果(X==16),則開銷為0,否則開銷為X。
b. 插入填充長度字段,其值等於填充字元的數量。注意:0為有效。
19. 如果數據包中的累積字元數(可能是分段)超過MTU,則這是錯誤。
a. 終止數據包及所有剩餘分段。
b. 增量MTU超過統計。
20. 如果使用IPv4。
a. 通過可選填充長度將IPv4總長度設置為IPv4報頭中的字元數。
b. 計算IPv4報頭校驗和並將其儲存在數據包中。
21. 如果使用IPv6,則通過可選填充長度(不包括IPv6報頭)將IPv6有效載荷長度設置為報頭中的字元數。
22. 如果不使用UDP-Lite(使用UDP),則通過可選填充長度將長度設置為UDP報頭中的字元數。
23. 如果使用UDP-Lite,則計算校驗和,該校驗和包括選自IPv6報頭的字段。
24. 通過可選填充長度將DTLS記錄報頭長度設置為符合DTLS記錄報頭的字元數。
25. 如果使用CAPWAP報頭,則設置分段訊息。
a. 如果針對該數據包啟動分段,則
i. 設置CAPWAP.F=1。
ii. 設置CAPWAP.分段ID=當前分段ID。
iii. 設置CAPWAP.分段偏移=當前分段偏移。
b. 否則
i. 將CAPWAP.F、分段ID、分段偏移設置為0。
26. 如果使用DTLS記錄報頭,則生成IV,計算MAC並加密。
a. 命令隨機數發生器計算密碼區塊大小的隨機數並插入IV字段。
b. 命令安全引擎根據MAC散列算法計算MAC。開始於DTLS報頭的第一字元,結束於有效載荷的最後一個字元(不包括空MAC字段、CBC填充及填充長度)。使用來自傳輸描述符的MAC秘密。
c. 根據MAC散列算法將MAC結果、長度寫入數據包緩衝器MAC字段。
d. 命令安全引擎根據流描述符中指示的CBC算法和加密密鑰加密數據。加密數據開始於第一字元,隨後是DLTS記錄報頭,結束於填充長度字段。
e. 從安全引擎接收加密數據並寫入數據包緩衝器。
27. 將數據包緩存轉發至交換機。
28. 如果剩餘有效載荷大小!=0,則準備下一分段(如上述步驟4類似)。
a. 重設數據包數據累加計數器。
b. 將分段ID增加1。
c. 增加發送至分段偏移的CAWAP有效載荷字元數。
d. 重設定位長度字段、序列號及校驗和的內部寄存器。
e. 進入步驟5。
29. 發佈傳輸完成中斷。
命令處理路徑。
除了接收處理和傳輸處理之外,FAP 104還可支援命令處理。命令處理路徑可用於更新流描述符查找表(926,圖9)或用於對數據包執行可選接收處理。例如,如果FAP 104不執行某種接收處理,在FAP 104將數據包傳遞至儲存器112之後,主機處理器102可執行額外的處理步驟。當主機處理器102接收數據包及結果代碼時,主機處理器102可執行異常處理以便在主機處理器102處理數據包。在主機處理器102執行異常處理之後,命令處理路徑允許FAP 104再處理數據包。一旦主機處理器102執行完異常處理,主機處理器102可經由儲存器112將數據包返回FAP 104以便進行進一步接收處理。
例如,如上所述,當FAP 104確定數據包封裝格式不滿足識別標準時,FAP 104可生成數據包的結果代碼並將數據包返回儲存器112。主機處理器102可從儲存器112中檢索數據包以便執行可 對數據包封裝格式進行調整使得FAP 104可識別調整後的數據包封裝格式的異常處理。然後,主機處理器102可以將數據包返回儲存器112,以便作為命令處理路徑的一部分,FAP 104可繼續處理數據包。
在另一實例中,命令處理允許主機處理器102重組分段數據包,並經由儲存器112將重組數據包傳遞至FAP 104以便對重組數據包進行進一步接收處理。命令處理路徑允許數據包在主機處理器102與FAP 104之間前後移動以便允許主機處理器102或FAP 104對數據包執行所需的處理。
命令處理可使用與數據包相關聯的命令描述符來規定數據包的命令處理指令。命令描述符可具有一組命令處理字段。例如,命令描述符可具有表7中列出的格式。
命令處理可使用命令結果描述符來提供命令處理是否成功的結果。命令結果描述符可具有一組命令結果描述符字段。例如,命令描述符可具有表8中列出的格式。
圖11示出了命令處理流程圖1100的實例,示出了命令處理路徑。FAP 104可經由儲存器112利用DMA 110從主機處理器102獲得命令處理數據包。FAP 104可通過執行命令描述符中包含的指令在命令處理器1102處理數據包。根據收到的指令,命令處理器1102可執行不同處理以便執行指令。命令處理器可執行處理命令,例如包括發送使進行中的數據包傳輸狀態及傳輸和接收緩衝器的狀態與主機處理的狀態同步的同步命令,將新的流描述符添加至流描述符查找表926(圖9),從流描述符查找表926中去除流描述符(圖9),啟動接收處理,禁止接收處理,提供用於安全處理的更新更改密碼規範,或傳輸可緊跟命令描述符的接收數據包。作為命令處理器1102實現的同步命令的一部分,命令處理器1102可通過檢查傳輸緩衝器920以確認傳輸數據路徑為空並通過檢查接收緩衝器1020以確認接收數據路徑為空來使FAP 104的傳輸緩衝器狀態與主機處理器102的主機處理狀態同步。除了執行處理命令之外,命令處理路徑可用於測試和調試目的。
安全處理
安全處理可由主機處理器102、FAP 104或安全協同處理器106執行。安全處理可涉及不同安全算法。為了讓處理器能夠識別要用於處理的安全算法,安全算法可具有安全算法類型。
例如,在一種實現中,三個算法類型可有助於DTLS安全處理:符號、區塊密碼加密及公鑰加密。符號算法類型用於在數據塊上生成簽名,以便收件人可以相信數據塊沒有改變,因為發送實體對其簽字。區塊密碼加密算法類型使用密鑰來加密一系列數據塊,每個塊的大小相同。公鑰加密算法類型允許接收器通過只瞭解密鑰的一部分(公共部分或私用部分)來解密來自發射器的消息。公鑰加密算法類型通常採用識別發射器的證書,並且可以通過來自根證書的信任鏈。每個處理器可支援一部分或所有安全算法或根本不支援。
另外,算法類型可以綁定在一起以形成密碼套件。密碼套件可包括一組標準的密碼標識符,例如由DTLS及TLS標準定義的密碼標識符。例如,TLS定義一組標準的密碼套件標識符,其中密碼套件標識符包括一連串命名算法。為了認證DTLS端點,密碼套件可包括:(1)密鑰更改算法;(2)總體加密算法;以及(3)消息認證算法。對於CAPWAP,可支援表9中所列的密碼套件。
安全處理可利用密鑰交換算法。TLS限定可能的密鑰交換算法的數量並且CAPWAP可使用這些密鑰交換算法的子集。表10中列出的密鑰交換算法可用於安全處理。
如上所述,FAP 104可保持與FAP 104執行的分組處理有關的統計訊息。統計訊息可用於調試及故障排除目的。表11示出了FAP 104可以記錄的統計訊息類型的實例。
上述方法、設備及邏輯可以以多種不同方式以硬體、軟體或硬體和軟體這兩者的不同組合實現。例如,所有或部分系統可以包括控制器中的電路、微處理器或專用集成電路(ASIC),或可以利用分立邏輯或組件,或組合在單個集成電路上或分佈在多個集成電路之間的其他類型的模擬或數字電路的組合來實現。上述的所有或部分邏輯可以被實現為由處理器、控制器或其他處理設備執行的指令並且可以儲存在有形或非瞬態機器可讀或計算機可讀介質中,例如閃存、隨機存取儲存器(RAM)或只讀儲存器(ROM)、可擦除可編程只讀儲存器(EPROM)或其他機器可讀介質比如光碟只讀儲存器(CDROM)、磁碟或光碟。因此,諸如計算機程序產品的產品可以包括儲存介質及儲存在介質上的計算機可讀指令,在端點、計算機系統或其他設備中執行時,計算機可讀指令使設備根據上述任意描述執行操作。
系統的處理能力可以分佈在多個系統組件之間,例如,分佈在多個處理器及儲存器之間,任選地,包括多個分佈式處理系統。參數、數據庫及其他數據結構可以單獨儲存並管理,可以併入單個儲存器或數據庫,可以邏輯地或物理地以多種不同方式進行整 理,並且可以以多種方式實現,包括諸如鏈表、散列表或隱性儲存機制等數據結構。程序可以是單一程序、單獨程序的一部分(例如,子程序),可以分佈在若干儲存器及處理器上,或可以以多種不同方式實現,例如在諸如共享庫(例如,動態鏈接庫(DLL))等庫中實現。例如,DLL可以儲存有執行上述任意系統處理的代碼。儘管已經描述了本發明的各個實施方式,但對本領域普通技術人員來說顯而易見的是,更多的實施方式及實現可在本發明的範圍內。因此,本發明僅根據所附申請專利範圍及其等價物,不受其他限制。
100‧‧‧無線接入點
102‧‧‧主機處理器
104‧‧‧流加速處理器(FAP)
106‧‧‧安全協同處理器
108‧‧‧通訊介面
110‧‧‧儲存控制器
112‧‧‧儲存器
114‧‧‧PCI介面
116‧‧‧無線電
118‧‧‧交換機
120‧‧‧乙太網端口
130‧‧‧數據路徑

Claims (10)

  1. 一種方法,包括:在通訊介面接收數據包;在將所述數據包提供給主機處理器之前,將所述數據包提供給流加速處理器;在所述流加速處理器:確定所述數據包的數據包報頭和數據包有效載荷;分析所述數據包,當所述數據包報頭、數據包有效載荷或這兩者不滿足識別標準時,將處理結果代碼分配給所述數據包,指示對所述數據包的異常處理;以及將所述處理結果代碼和所述數據包提供給所述主機處理器;以及在所述主機處理器:接收所述結果代碼;以及響應於接收所述結果代碼,對所述數據包執行異常處理。
  2. 根據申請專利範圍第1項所述的方法,其中,執行所述異常處理包括利用所述流加速處理器未執行的處理步驟對所述數據包進行處理。
  3. 根據申請專利範圍第1項所述的方法,其中,所述識別標準包括通過報頭校驗。
  4. 根據申請專利範圍第3項所述的方法,其中,通過所述報頭校驗包括驗證所述數據包報頭的安全報頭序列號。
  5. 一種系統,包括:通訊介面,被配置為接收數據包;流加速處理器,與在將所述數據包提供給主機處理器之前接收所述數據包的通訊介面通訊;所述流加速處理器被配置為: 確定所述數據包的數據包報頭和數據包有效載荷;分析所述數據包,當所述數據包報頭、數據包有效載荷或這兩者不滿足識別標準時,將處理結果代碼分配給所述數據包,指示對所述數據包的異常處理;以及將所述處理結果代碼和所述數據包提供給所述主機處理器;以及所述主機處理器被配置為:接收所述結果代碼;以及響應於接收所述結果代碼對所述數據包執行異常處理。
  6. 根據申請專利範圍第5項5所述的系統,其中,當所述數據包通過報頭校驗時,滿足所述識別標準。
  7. 根據申請專利範圍第6項所述的系統,其中,所述數據包通過驗證所述數據包報頭的安全報頭序列號而通過報頭校驗。
  8. 一種方法,包括:在通訊介面接收數據包;確定將所述數據包卸載到流加速處理器,而不是在主機處理器對所述數據包進行處理;在所述流加速處理器:確定所述數據包的報頭部分和所述數據包的有效載荷部分;根據所述數據包的所述報頭部分確定所述數據包的數據包封裝格式;當所述流加速處理器識別出所述數據包的所述數據包封裝格式時,在所述流加速處理器開始對數據包進行處理;以及 當所述流加速處理器未識別出所述數據包的所述數據包封裝格式時,利用結果代碼將所述數據包提供給所述主機處理器;以及在所述主機處理器:響應於所述結果代碼,確定所述結果代碼指示所述流加速處理器未識別出所述數據包的所述數據包封裝格式;將所述數據包的所述數據包封裝格式修改為更新的數據包封裝格式;以及將具有所述更新的數據包封裝格式的數據包提交給所述流加速處理器。
  9. 根據申請專利範圍第8項所述的方法,進一步包括:當流加速處理器對所述數據包進行處理時,根據所述報頭部分確定所述有效載荷部分包括安全性;將所述數據包卸載到安全協同處理器用於進行安全處理;以及在所述流加速處理器接收來自所述安全協同處理器的安全處理過的有效載荷部分。
  10. 根據申請專利範圍第8項所述的方法,進一步包括:當在所述流加速處理器處理所述數據包時,確定所述數據包的所述報頭部分的報頭類型;分析所述報頭類型;如果所述流加速處理器識別出所述報頭類型,則在流加速處理器對所述數據包進行處理;以及如果流加速處理器未識別出所述報頭類型,則利用結果代碼將所述數據包提供給所述主機處理器。
TW102118420A 2012-06-07 2013-05-24 網路卸載方法與系統 TWI499342B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/490,875 US8964554B2 (en) 2012-06-07 2012-06-07 Tunnel acceleration for wireless access points

Publications (2)

Publication Number Publication Date
TW201352050A true TW201352050A (zh) 2013-12-16
TWI499342B TWI499342B (zh) 2015-09-01

Family

ID=48613388

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102118420A TWI499342B (zh) 2012-06-07 2013-05-24 網路卸載方法與系統

Country Status (5)

Country Link
US (2) US8964554B2 (zh)
EP (1) EP2672669A1 (zh)
KR (1) KR101466188B1 (zh)
CN (1) CN103491573A (zh)
TW (1) TWI499342B (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9420619B2 (en) * 2012-12-06 2016-08-16 Cisco Technology, Inc. Dynamic quality of service for wireless subscribers on a network
US10057387B2 (en) * 2012-12-26 2018-08-21 Realtek Singapore Pte Ltd Communication traffic processing architectures and methods
WO2014105650A1 (en) * 2012-12-26 2014-07-03 Cortina Systems, Inc. Communication traffic processing architectures and methods
US9531704B2 (en) * 2013-06-25 2016-12-27 Google Inc. Efficient network layer for IPv6 protocol
US9191209B2 (en) 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US9357410B2 (en) * 2013-09-03 2016-05-31 Cisco Technology, Inc. Wireless network flow monitoring
US9585014B2 (en) * 2013-12-23 2017-02-28 Marvell International Ltd. Fast recovery from ciphering key mismatch
US10129831B2 (en) 2014-04-25 2018-11-13 Microchip Technology Incorporated Wireless quiet enrolment
CN104202248B (zh) * 2014-07-21 2019-07-05 上海寰创通信科技股份有限公司 无线热点控制器中快速集中转发的实现方法
US9961170B2 (en) * 2014-11-25 2018-05-01 Qualcomm Incorporated Ethertype packet discrimination data type
RU2585988C1 (ru) * 2015-03-04 2016-06-10 Открытое Акционерное Общество "Байкал Электроникс" Устройство шифрования данных (варианты), система на кристалле с его использованием (варианты)
TWI535246B (zh) * 2015-03-05 2016-05-21 智邦科技股份有限公司 封包傳輸方法
IL238690B (en) * 2015-05-07 2019-07-31 Mellanox Technologies Ltd Network-based computational accelerator
US10152441B2 (en) 2015-05-18 2018-12-11 Mellanox Technologies, Ltd. Host bus access by add-on devices via a network interface controller
US10320568B1 (en) 2015-06-09 2019-06-11 Google Llc Protocol-independent multi-table packet routing using shared memory resource
CN105245450B (zh) * 2015-09-23 2018-11-30 盛科网络(苏州)有限公司 Capwap分片重组的芯片实现方法
FR3057132A1 (fr) * 2016-10-04 2018-04-06 Orange Procede d'authentification mutuelle entre un equipement utilisateur et un reseau de communication
US20180376516A1 (en) * 2017-06-21 2018-12-27 Aruba Networks, Inc. Establishing a Datagram Transport Layer Security Connection between Nodes in a Cluster
US10382350B2 (en) 2017-09-12 2019-08-13 Mellanox Technologies, Ltd. Maintaining packet order in offload of packet processing functions
US10935577B2 (en) 2017-09-12 2021-03-02 Hubbell Incorporated Voltage booster isolation transformer system and method of operating the same
WO2019055503A1 (en) 2017-09-12 2019-03-21 Hubbell Incorporated OVERVOLTAGE ISOLATION TRANSFORMER SYSTEM AND METHOD OF OPERATION
US11502948B2 (en) 2017-10-16 2022-11-15 Mellanox Technologies, Ltd. Computational accelerator for storage operations
US11005771B2 (en) * 2017-10-16 2021-05-11 Mellanox Technologies, Ltd. Computational accelerator for packet payload operations
US11108751B2 (en) * 2017-10-27 2021-08-31 Nicira, Inc. Segmentation of encrypted segments in networks
US10841243B2 (en) 2017-11-08 2020-11-17 Mellanox Technologies, Ltd. NIC with programmable pipeline
US10708240B2 (en) 2017-12-14 2020-07-07 Mellanox Technologies, Ltd. Offloading communication security operations to a network interface controller
CN108616355A (zh) * 2018-05-03 2018-10-02 盛科网络(苏州)有限公司 软件握手协商硬件加解密的capwap隧道dtls加解密方法
US10824469B2 (en) 2018-11-28 2020-11-03 Mellanox Technologies, Ltd. Reordering avoidance for flows during transition between slow-path handling and fast-path handling
CN111614574A (zh) * 2019-02-26 2020-09-01 华为技术有限公司 一种通信方法、装置及系统
US11184439B2 (en) 2019-04-01 2021-11-23 Mellanox Technologies, Ltd. Communication with accelerator via RDMA-based network adapter
US20210067956A1 (en) * 2019-08-30 2021-03-04 U-Blox Ag Methods and apparatus for end-to-end secure communications
WO2021084309A1 (en) * 2019-10-30 2021-05-06 Telefonaktiebolaget Lm Ericsson (Publ) In-band protocol-based in-network computation offload framework
WO2021084668A1 (ja) * 2019-10-30 2021-05-06 日本電信電話株式会社 送信制御装置、送信制御方法、および、送信制御プログラム
EP4064617A4 (en) * 2019-12-25 2022-12-07 Huawei Technologies Co., Ltd. COMMUNICATION METHOD AND DEVICE
US11800497B2 (en) * 2020-02-14 2023-10-24 Intel Corporation Frame replication and interfaces for time sensitive networking
CN114095153A (zh) 2020-08-05 2022-02-25 迈络思科技有限公司 密码数据通信装置
IL276538B2 (en) 2020-08-05 2023-08-01 Mellanox Technologies Ltd A cryptographic device for data communication
US11934658B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Enhanced storage protocol emulation in a peripheral device
US11720550B2 (en) * 2021-05-28 2023-08-08 Microsoft Technology Licensing, Llc Transaction log validation in a database transaction log service
US12007921B2 (en) 2022-11-02 2024-06-11 Mellanox Technologies, Ltd. Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA)
CN116866055B (zh) * 2023-07-26 2024-02-27 中科驭数(北京)科技有限公司 数据泛洪攻击的防御方法、装置、设备及介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5251205A (en) * 1990-09-04 1993-10-05 Digital Equipment Corporation Multiple protocol routing
US6463477B1 (en) * 1996-09-27 2002-10-08 Mci Communications Corporation Detection of presence of multiprotocol encapsulation in a data packet
US7996670B1 (en) 1999-07-08 2011-08-09 Broadcom Corporation Classification engine in a cryptography acceleration chip
US20050086325A1 (en) * 2001-06-12 2005-04-21 Slipp Mark W. Method and apparatus for network content insertion and phase insertion
US20030196081A1 (en) 2002-04-11 2003-10-16 Raymond Savarda Methods, systems, and computer program products for processing a packet-object using multiple pipelined processing modules
AU2003237344A1 (en) * 2002-06-03 2003-12-19 Karl Auerbach Testing device
US7639674B2 (en) * 2004-10-25 2009-12-29 Alcatel Lucent Internal load balancing in a data switch using distributed network processing
US8935416B2 (en) * 2006-04-21 2015-01-13 Fortinet, Inc. Method, apparatus, signals and medium for enforcing compliance with a policy on a client computer
US20080159150A1 (en) * 2006-12-28 2008-07-03 Furquan Ahmed Ansari Method and Apparatus for Preventing IP Datagram Fragmentation and Reassembly
US7813843B2 (en) 2007-01-04 2010-10-12 Cisco Technology, Inc Ad-hoc mobile IP network for intelligent transportation system
US7864764B1 (en) * 2008-09-16 2011-01-04 Juniper Networks, Inc. Accelerated packet processing in a network acceleration device
GB2466651A (en) * 2008-12-31 2010-07-07 St Microelectronics Security co-processor architecture for decrypting packet streams
CA2755792A1 (en) * 2009-03-18 2010-09-23 Robert Lariviere Methods and systems for providing a logical network layer for delivery of input/output data
US8611352B2 (en) * 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline

Also Published As

Publication number Publication date
US20130329557A1 (en) 2013-12-12
KR20130137567A (ko) 2013-12-17
US8964554B2 (en) 2015-02-24
EP2672669A1 (en) 2013-12-11
US20150131447A1 (en) 2015-05-14
TWI499342B (zh) 2015-09-01
KR101466188B1 (ko) 2014-12-10
CN103491573A (zh) 2014-01-01

Similar Documents

Publication Publication Date Title
TWI499342B (zh) 網路卸載方法與系統
US9015467B2 (en) Tagging mechanism for data path security processing
US7774593B2 (en) Encrypted packet, processing device, method, program, and program recording medium
US8370921B2 (en) Ensuring quality of service over VPN IPsec tunnels
US7454610B2 (en) Security association updates in a packet load-balanced system
US7398386B2 (en) Transparent IPSec processing inline between a framer and a network component
US8055895B2 (en) Data path security processing
US9369550B2 (en) Protocol for layer two multiple network links tunnelling
US10454928B2 (en) Apparatus and method for inssec packet generation
JP5205075B2 (ja) 暗号処理方法、暗号処理装置、復号処理方法および復号処理装置
US11418434B2 (en) Securing MPLS network traffic
US10044841B2 (en) Methods and systems for creating protocol header for embedded layer two packets
GB2424556A (en) Packet fragment deciphering with cipher state storage
US8281122B2 (en) Generation and/or reception, at least in part, of packet including encrypted payload
JP2004343731A (ja) 暗号化パケット処理装置、方法、プログラム及びプログラム記録媒体
CN118381684B (zh) 软硬件协同加密的安全通信实现方法及网络设备
CN118540159A (zh) 一种基于ipsec的多会话设计系统及操作方法
JP2010268293A (ja) 通信装置及び通信処理方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees