CN115085962A - 用于ipsec流的增强处理 - Google Patents
用于ipsec流的增强处理 Download PDFInfo
- Publication number
- CN115085962A CN115085962A CN202210253802.8A CN202210253802A CN115085962A CN 115085962 A CN115085962 A CN 115085962A CN 202210253802 A CN202210253802 A CN 202210253802A CN 115085962 A CN115085962 A CN 115085962A
- Authority
- CN
- China
- Prior art keywords
- packet
- flow
- packets
- security association
- processing
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 97
- 238000007781 pre-processing Methods 0.000 claims abstract description 71
- 230000004044 response Effects 0.000 claims abstract description 15
- 230000015654 memory Effects 0.000 claims description 27
- 230000006854 communication Effects 0.000 claims description 25
- 238000004891 communication Methods 0.000 claims description 25
- 238000013507 mapping Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 24
- 238000013459 approach Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private 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
-
- 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/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及用于处理互联网协议安全性(IPsec)流的方法、装置和计算机可读存储介质。一种方法包括确定针对传入流的安全性关联,传入流包括多个分组;基于安全性关联对多个分组执行预处理;以及响应于对多个分组中的至少一个分组执行预处理,对多个分组中的该至少一个分组执行并行处理。
Description
技术领域
本公开的实施例总体上涉及电信领域,特别是涉及用于处理互联网协议安全性(IPsec)流的装置、方法和计算机可读存储介质。
背景技术
IPsec是一种安全网络协议套件,它对数据分组进行认证和加密,以便通过互联网协议网络在两个实体之间提供安全的加密通信。IPsec可用于创建站点到站点的IPsec隧道。根据第三代合作伙伴项目(3GPP)的技术规范,基站收发器站(BTS)和服务网关(S-GW)通过IPsec隧道传输用户平面的数据分组。IPsec的标准在互联网工程任务组(IETF)征求意见稿(RFC)-4301、RFC-4303及其RFC系列中有所描述。为了支持5G通信系统的高吞吐量,例如所需的每秒几十Gb的吞吐量,根据标准通过IPsec隧道传输数据分组应该是高效的并且应该被优化。
发明内容
一般而言,本公开的示例实施例提供了用于处理IPsec流的装置、方法和计算机可读存储介质。
在第一方面,提供了一种装置。该装置包括至少一个处理器;以及至少一个包括计算机程序代码的存储器;至少一个存储器和计算机程序代码被配置为与用至少一个处理器使得装置确定用于传入流的安全性关联,传入流包括多个分组;基于安全性关联对多个分组执行预处理;以及响应于对多个分组中的至少一个执行预处理,对多个分组中的至少一个执行并行处理。
在第二方面,提供了一种方法。该方法包括确定用于传入流的安全性关联,传入流包括多个分组;基于安全性关联对多个分组执行预处理;以及响应于对多个分组中的至少一个执行预处理,对多个分组中的至少一个执行并行处理。
在第三方面,提供了一种装置,包括:用于确定用于传入流的安全性关联的部件,传入流包括多个分组;用于基于安全性关联对多个分组执行预处理的部件;以及用于响应于对多个分组中的至少一个执行预处理,对多个分组中的至少一个执行并行处理的部件。
在第四方面,提供了一种非暂时性计算机可读介质,其包括用于使装置至少执行根据上述第二方面的方法的程序指令。
应当理解,发明内容部分并不旨在标识本公开的实施例的关键或基本特征,也不旨在用于限制本公开的范围。通过以下描述,本公开的其他特征将变得容易理解。
附图说明
通过对附图中本公开的一些示例实施例的更详细描述,本公开的上述和其他目的、特征和优点将变得更加明显,其中:
图1示出了可实施本公开的一些示例实施例的示例环境的框图;
图2A示出了在加密情况下处理IPsec流的示例过程的流程图;
图2B示出了在解密情况下处理IPsec流的示例过程的流程图;
图3示出了用于处理IPsec流的分级方法的框图;
图4示出了根据本公开的一些示例实施例的用于处理IPsec流的装置的简化框图;
图5示出了根据本公开的一些示例实施例的用于处理IPsec流的示例方法的流程图;
图6示出了根据本公开的一些示例实施例的用于确定安全性关联的示例方法的流程图;
图7A示出了根据本公开的一些示例实施例的新IPsec流的分组的处理流程的框图;
图7B示出了根据本公开的一些示例实施例的经预处理的IPsec流的分组的处理流程的框图;
图7C示出了根据本公开的一些示例实施例的用于新的非IPsec流的分组的处理流程的框图;
图7D示出了根据本公开的一些示例实施例的用于经预处理的非IPsec流的分组的处理流程的框图;
图8示出了显示序列号生成情况下的吞吐量的曲线图;
图9示出了适用于实施本公开的实施例的设备的简化框图;以及
图10示出了根据本公开的一些示例实施例的示例计算机可读介质的框图。
在所有附图中,相同或类似的参考标号代表相同或类似的元件。
具体实施方式
现在将参考一些示例实施例描述本公开的原理。应当理解,描述这些实施例仅仅是出于说明的目的,并且帮助本领域技术人员理解和实施本公开,而不建议对本公开的范围进行任何限制。本文所描述的公开可按除下文所描述的方式之外的各种方式实施。
在以下描述和权利要求中,除非另有定义,否则本文中使用的所有技术和科学术语的含义与本公开所属领域的普通技术人员通常理解的含义相同。
本公开中对“一个实施例(one embodiment)”、“实施例(embodiment)”、“示例实施例(an example embodiment)”等的引用指示,所描述的实施例可包括特定的特征、结构或特性,但并非每个实施例均必须包括特定的特征、结构或特性。此外,这些短语不一定指同一实施例。另外,当结合示例实施例描述特定特征、结构或特性时,无论是否明确描述,本领域技术人员均认为结合其他实施例影响此类特征、结构或特性。
应当理解,尽管本文中可使用术语“第一(first)”和“第二(second)”等来描述各种元件,但这些元件不应受到这些术语的限制。这些术语仅用于区分一种元件和另一种元件。例如,在不脱离示例实施例的范围的情况下,第一元件可被称为第二元件,并且类似地,第二元件可被称为第一元件。如本文所用,术语“和/或(and/or)”包括一个或多个所列术语的任何和所有组合。
本文所用的术语仅用于描述特定实施例,并不旨在限制示例实施例。如本文所用,除非上下文另有明确指示,否则单数形式“一个(a/an)”和“该(the)”也旨在包括复数形式。将进一步理解,术语“包括(comprises)”、“包括(comprising)”、“具有(has)”、“具有(having)”、“包括(includes)”和/或“包括(including)”,当在本文中使用时,规定了所述特征、元件和/或组件等的存在,但不排除一个或多个其他特征、元件、组件和/或其组合的存在或添加。
本申请中使用的术语“电路系统(circuitry)”可指以下项中的一项或多项或全部:
(a)仅硬件电路实施方式(诸如仅在模拟和/或数字电路系统中的实施方式),以及
(b)硬件电路和软件的组合,诸如(如适用):
(i)模拟和/或数字硬件电路(一个或多个)与软件/固件的组合,以及
(ii)具有软件(包括数字信号处理器(一个或多个)的硬件处理器(一个或多个)、软件和存储器(一个或多个)的任何部分,它们一起工作以使得装置(诸如移动电话或服务器)执行各种功能),以及
(c)硬件电路(一个或多个)和/或处理器(一个或多个),诸如微处理器(一个或多个)或微处理器(一个或多个)的一部分,其需要软件(例如固件)进行操作,但当不需要软件来操作时,软件可能不存在。
电路系统的这一定义适用于术语在本申请中的所有用途,包括在任何权利要求中。作为进一步的示例,如在本申请中所用,术语电路系统还涵盖仅硬件电路或处理器(或多个处理器)或硬件电路或处理器的一部分及其(或它们的)伴随的软件和/或固件的实施方式。术语电路系统还涵盖,例如,并且如果适用于特定权利要求元件,移动设备的基带集成电路或处理器集成电路,或者服务器、蜂窝网络设备或其他计算或网络设备中的类似集成电路。
如本文所用,术语“通信网络(communication network)”是指遵循任何合适的通信标准的网络,诸如长期演进(LTE)、LTE高级(LTE-A)、宽带码分多址(WCDMA)、高速分组接入(HSPA)、窄带物联网(NB-IoT)、新无线电(NR)等。此外,通信网络中的终端设备和网络设备之间的通信可根据任何合适的一代通信协议执行,包括但不限于第一代(1G)、第二代(2G)、2.5G、2.75G、第三代(3G)、第四代(4G)、4.5G、未来的第五代(5G)通信协议,和/或目前已知或未来将开发的任何其他协议。本公开的实施例可应用于各种通信系统中。鉴于通信的快速发展,当然还会有未来类型的通信技术和系统,利用这些技术和系统可实现本公开。不应将其视为将本公开的范围仅限于上述系统。
如本文所用,术语“网络设备(network device)”是指通信网络中的节点,终端设备通过该节点访问网络并从网络接收服务。取决于所应用的术语和技术,网络设备可指基站(BS)或接入点(AP),例如,节点B(NodeB或NB)、演进节点B(eNodeB或eNB)、NR-NB(也称为gNB)、远程无线电单元(RRU)、无线电头端(RH)、远程无线电头端(RRH)、中继节点、低功率节点,诸如femto、pico等。中继节点的示例可为集成接入和回程(IAB)节点。IAB节点的分发式单元(DU)部分可执行“网络设备”的功能性,因此可作为网络设备操作。在以下描述中,术语“网络设备”、“BS”和“节点(node)”可互换使用。
术语“终端设备(terminal device)”指能够进行无线通信的任何终端设备。作为示例而非限制,终端设备还可被称为通信设备、用户装备(UE)、用户站(SS)、便携式用户站、移动站(MS)或接入终端(AT)。终端设备可包括但不限于移动电话、蜂窝电话、智能电话、IP语音(VoIP)电话、无线本地环路电话、平板电脑、可穿戴终端设备、个人数字助理(PDA)、便携式计算机、台式计算机、诸如数码相机的图像捕获终端设备、游戏终端设备、音乐存储和回放器具、车载无线终端设备、无线端点、移动站、笔记本嵌入式装备(LEE)、笔记本安装装备(LME)、USB加密狗、智能设备、无线客户场所装备(CPE)、物联网(loT)设备、手表或其他可穿戴装置、头戴式显示器(HMD)、车辆、无人机、医疗设备和应用(例如,远程手术)、工业设备和应用(例如,在工业和/或自动化处理链环境中操作的机器人和/或其他无线设备)、消费电子设备、中继节点、在商业和/或工业无线网络等上操作的设备。IAB节点的移动终端(MT)部分可执行“终端设备”的功能性,因此可作为终端设备进行操作。在以下描述中,术语“终端设备”、“通信设备”、“终端”、“用户装备”和“UE”可互换使用。
如本文所用,术语“IPsec流”指受IPsec保护的数据流。IPsec流的分组也称为“IPsec分组”。类似地,术语“非IPsec流”指不受IPsec保护的数据流。非IPsec流的分组也称为“非IPsec分组”。
示例环境和工作原理
图1示出了一个示例环境100,其中可实施本公开的一些示例实施例。如图1所示,环境100包括终端设备150、无线接入网(RAN)130和核心网(CN)140。还应当理解,示例环境100仅出于说明的目的而示出,并不暗示对本公开的范围的任何限制。本公开的实施例也可应用于具有不同结构的环境。
RAN 130和CN 140中的每一个均可包括网络设备或元件。如图1所示,RAN 130包括基站收发器站(BTS)110,CN 140包括服务网关(S-GW)120。网络设备或元件中的一些可能需要处理IPsec流。例如,BTS 110需要在上行链路(UL)方向和下行链路(DL)方向上处理IPsec流。
在UL方向上,BTS 110接收普通分组(例如,从终端设备150),将普通分组转换成加密分组,并且通过IPsec隧道将加密分组发送到S-GW 120。在DL方向上,BTS 110从S-GW 120接收加密的IPsec分组。加密的IPsec分组被解密并转换成普通分组,然后进行进一步处理。
图2A示出了在加密情况下处理IPsec流的示例过程200的流程图。IPsec流的IPsec分组经由例如网络接口卡(NIC)或接收器(RX)被接收。然后,在210处,对IPsec分组执行层2(L2)处理。在220处,对IPsec分组执行层3(L3)处理。在230处,对IPsec分组执行IPsec处理。如图2A所示,230处的IPsec处理可包括231处的IPsec策略匹配和安全性关联(SA)查找、232处的序列号生成/分配、233处的加解密操作以及234处的加解密后操作。在240处,对IPsec分组执行其他模块/上层处理。然后,经处理的IPsec分组准备好例如经由发射机(TX)进行传输。
图2B示出了用于在解密情况下处理IPsec流的示例过程201的流程图。IPsec流的IPsec分组经由例如NIC或RX接收。然后,在250处,对IPsec分组执行L2处理。在260处,对IPsec分组执行L3处理。在270处,对IPsec分组执行IPsec处理。如图2B所示,270处的IPsec处理可包括271处的IPsec安全性关联查找、272处的防重放窗口(ARW)检查、273处的加解密操作以及274处的加解密后操作和ARW更新。在280处,对IPsec分组执行其他模块/上层处理。然后,经处理的IPsec分组准备好例如经由TX进行传输。
在单个中央处理器(CPU)核心上实施上述过程200和201无法处理5G系统的高吞吐量要求。因此,多个CPU核心用于执行IPsec分组的并行处理。当在多个CPU核心上实施过程200和201时,主要有三个子过程需要核心之间的同步性。在加密的情况下,在232处,需要核心之间的同步性来生成/分配序列号。在解密的情况下,272处的ARW检查和274处的ARW更新需要核心之间的同步性。在下文中,ARW检查和ARW更新可统称为“ARW处理”。
因此,当多个CPU核心并行处理IPsec分组时,它在执行同步性和共享资源/数据结构的完整性保护方面带来了挑战。对于在多个CPU核心上的实施方式,有两种主要的常规解决方案。
分级(staging)方法是众所周知的常规解决方案。图3示出了用于处理IPsec流的分组的分级方法的框图300。在分级方法中,在经由输入接口350接收分组后,整个分组处理被划分成多个被称为级的部分,例如,如图3所示的级310、320、330和340。在这种方法中,级310、320、330和340可按并行方式或原子方式执行。如图3所示,级310和330分别由核心301、302、303和核心305、306、307以并行方式执行。级320和级340分别由核心304和核心308以原子方式执行。
在同步点处,分组汇聚到以原子方式执行的级320和340,在其中执行变为单线程。这保护了共享资源/数据结构的完整性。由于分组处理被划分成多个级,因此分组在CPU核心之间被交换以进行处理。分组从源CPU核心到目的地CPU核心的交换导致目的地CPU核心将分组重新加载到其高速缓存中。目前,随着现代CPU核心的效率不断提高,存储器访问正成为以性能为中心的程序的限制因素。在每个级将分组重新加载到高速缓存中会恶化这种存储器访问的瓶颈。级数越多,执行效率越低,导致整体吞吐量下降越多。因此,分级方法在执行的每个级均会在存储器中重新加载分组,CPU高速缓存的利用率较低,吞吐量也较低。
带锁运行至完成(Run to completion with locks),也称为“带锁定的RtC”是另一种众所周知的常规解决方案。在这种解决方案中,在整个处理过程中,分组的执行始终约束到单个CPU核心上。在多个CPU核心上并行执行必须使用同步机制,诸如自旋锁,以保护共享资源的完整性。虽然带锁定的RtC避免了失去CPU高速缓存的益处(这在分级方法中是缺失的),但锁定的代价非常高。一个线程/核心获取的锁将暂停其他线程/核心的进一步执行,直到锁被释放。这会造成极高的性能损失。性能损失随着同一锁的争用CPU核心数的增加而增加。由于这一缺点,在添加几个CPU核心后,添加一个额外的CPU核心以帮助实现更高的吞吐量并不能增加期望的吞吐量。
表1显示了添加额外CPU核心时,带锁定的RtC方法的测试结果。从表1可看出,带锁定的RtC方法是一种不可扩展的解决方案。
表1使用带锁定的RtC方法实现的吞吐量
如上所述,5G通信系统需要高吞吐量。例如,BTS和S-GW之间的用户面流量的速率在千兆比特(>15Gbps)的量级,并且预期增长到50Gbps或更大。因此,需要一种高效且可扩展的解决方案来处理IPsec流。在这种情况下,如果采用常规的解决方案,诸如分级方法或在多个CPU核心上使用带锁定的RtC方法,则每种方法均会带来非常不理想的缺点。如果采用分级方法,由于CPU核心之间的分组交换和CPU核心高速缓存优势的丧失,将导致较低的吞吐量。如果采用带锁定的RtC方法,由于锁争用的增加,吞吐量不会随着每个CPU核心的增加而线性增加。我们希望有一种避免上述缺点的解决方案。
除了两种常规解决方案外,还提出了其他解决方案,包括基于硬件的解决方案和基于软件的解决方案。基于硬件的解决方案使用例如在片上系统(SoC)中实施的专用硬件。尽管在专用硬件中处理IPsec流有助于提高性能,但可扩展性受到硬件中流水线和快速/零拷贝内存操作的系统性机会的限制。此外,另一个缺点在于,在商用硬件或GPU上云部署的情况下,专用硬件无法提供帮助。基于软件的解决方案无法实现高吞吐量和线性扩展两者。
鉴于上述情况,需要符合标准的解决方案来解决上述问题和其他潜在问题中的至少一个。此类解决方案可利用并行的多CPU核心处理,不涉及从一个核心到另一个核心的分组跳跃,并且避免使用锁(用于序列号生成和ARW处理),从而以线性可扩展性高效地产生更高的吞吐量。
本公开的实施例提供了一种处理IPsec流的解决方案。在该解决方案中,在预处理模块处确定针对包括多个分组的传入流的SA。在预处理模块处,基于安全性关联对多个分组执行预处理。对于不同类型的分组,执行不同的预处理。在出站分组的情况下,在预处理模块处对出站分组基于SA执行序列号生成和分配,该序列号生成和分配原本由处理核心在L2和L3处理后在执行IPsec处理时稍后执行。在入站分组的情况下,在预处理模块处对入站分组执行ARW检查和ARW更新,该ARW检查原本由处理核心在处置解密时执行,而该ARW更新原本由处理核心在执行完整性检查验证(ICV)后执行。
在对多个分组中的至少一个分组进行预处理后,经预处理的分组被分发到并行处理模块的相应处理核心。在并行处理模块处,对经预处理的分组执行并行处理。由于传入流的SA在预处理模块处被确定,并且基于SA对传入流的分组执行预处理,因此在并行处理模块处消除了常规解决方案所需的锁定、原子操作和分级的需要。因此,对传入流的分组的并行处理是无锁的。
根据本公开的示例实施例,可实现若干个优点。在一个方面,在并行处理之前,基于SA对传入流的分组进行预处理。因此,并行处理是无锁的,并且避免了同步和原子操作的需要。通过这种方式,可实现可扩展性。在另一方面,通过基于SA的预处理,分级和跳跃可被避免,并且分组可在IPsec处理的整个执行过程中处于单个核心处。通过这种方式,可优化高速缓存的利用率,并且可实现更高的吞吐量。在另一方面,本公开的示例实施例可完全在软件中实施,因此也可在云部署中使用。
在另一个方面,本公开的示例实施例可实现高吞吐量和可扩展性,而不依赖于对IPsec标准的任何偏离。因此,完全符合标准的解决方案是可能的,并且可与第三方产品相互操作。在又一方面,本公开的示例实施例不将特定分组限制到任何特定CPU核心。所有分组均可分发到任意/多个核心。通过这种方式,也可处理SA内高流量的集成接入和回程(IAB)用例。
示例装置和方法
将参考图4-8描述根据本公开的示例实施例的更多细节。通过以下描述,本公开的上述方面和其他方面将变得显而易见。
图4示出了根据本公开的一些示例实施例的用于处理IPsec流的示例装置400的简化框图。一般而言,装置400包括预处理模块410、引子(primer)模块420、并行预处理模块430、分发模块440和重新排序模块450。
传入流包括多个分组。预处理模块410从输入源(例如,NIC、物理功能(PF)、虚拟功能(VF)或主机)接收传入流的分组。预处理模块410被配置为确定针对传入流的SA,并且基于SA预处理传入流的分组。
为此,预处理模块410可实施以下功能:确定SA、基于确定的SA将序列号分配给出站分组以及基于确定的SA对入站分组执行ARW处理。如将从下面描述的方法中看到的,预处理模块410的主要意图是快速地将传入流映射到预先学习到的SA以用于序列号分配或ARW处理,并且将传入流的分组引导到装置400中的下一个模块。
预处理模块410可在多个核心上实施,且无需局限于单个核心。另选地,预处理模块410也可实施为硬件的一部分,例如SoC。
在一些示例实施例中,为了确定针对传入流的SA,预处理模块410可与引子模块420交互。引子模块420用于协助预处理模块410确定新的传入流的SA。如本文所用,新的传入流被称为之前未被预处理模块410预处理的流。
一旦传入流的分组在预处理模块410处被预处理,则经预处理的分组被发送到分发模块440。分发模块440(例如调度器)被配置为将经预处理的分组分发到并行处理模块430的处理核心。
并行处理模块430包括多个处理核心,简称为“核心”。图4示出了作为示例的核心431、432和433。由于需要同步的操作在预处理模块410处被执行,因此并行处理模块430的不同核心处的处理是独立的,因此并行处理模块430的核心可为无锁的。常规的L2处理、L3处理、除了序列号生成或ARW处理之外的IPsec处理的剩余部分在这些核心的每一个中执行。因此,作为IPsec处理的一部分,剩余的SA查找、IPsec加解密(crypto)处理(包括加密/解密和加解密后操作)保持不变。由于没有锁或原子级,因此添加更多的核心会使吞吐量结果线性增加。
在核心完成并行处理后,分组可被发送到重新排序模块450。重新排序模块450被配置为通过使用任何合适的分组排序方法来重新排序分组。因此,重新排序的分组已准备好传输。
应当理解,图4所示的模块仅用于说明目的,不对保护范围构成任何限制。模块中的一些,例如分发模块440和重新排序模块450可省略或与另一个模块集成。此外,装置400可包括未示出的模块或功能。
装置400可用于网络元件中,例如,基站(例如eNodeB、gNodeB)和云RAN(例如CU和DU)。作为示例,该装置可在BTS 110或S-GW120处实施,如图1所示。装置400还可用于提供安全性网关功能性的任何通用网络功能,例如路由器、提供IPsec网关的用户面功能。
现在参考图5。图5示出了根据本公开的一些示例实施例的用于处理IPsec流的示例方法500的流程图。方法500可在任何合适的设备上实施,例如,如图4所示的装置400。出于说明的目的,应当理解,方法500可包括未示出的附加框和/或可省略一些示出的块,并且本公开的范围不限于此。
在框510,确定针对包括多个分组的传入流的SA。例如,在接收到传入流的一个或多个分组后,预处理模块410可确定针对传入流的SA。在一些示例实施例中,预处理模块410可通过正常的SA查找过程来确定SA。
在一些示例实施例中,预处理模块410可维护或利用存储IPsec流和预定SA之间的映射信息的表。该表可称为“第一表”或“白名单表”。在此类示例实施例中,在接收到传入流的分组时,预处理模块410可查找白名单表以找出传入流的预定SA。白名单表是动态填充的,并且可按任何合适的方式存储映射信息。
例如,白名单表可实施为哈希表。白名单表可存储指示IPsec流的接收端缩放(RSS)哈希值到相关联的SA引用的映射的信息。如本文所用,术语“SA引用”是指特定SA的索引或标识符。在这种情况下,每个接收到的分组的RSS哈希值被用作白名单表的关键字,以快速找到相关联的SA引用。如果RSS哈希值对应于包括多个SA引用的条目,则可执行基于安全参数索引(SPI)的值的附加查找。
下面将参考图6详细描述此类示例实施例。
在确定SA后,方法500前进至框520。在框520,基于针对传入流的SA对多个分组执行预处理。可对不同类型的分组执行不同的预处理。
对于多个分组中的特定分组,预处理模块410可确定该特定分组是出站分组还是入站分组。如果特定分组是出站分组,则基于所确定的SA的序列号计数器生成序列号并将其分配给特定分组。例如,如果在白名单表中找到的SA引用是出站SA引用,则SA用于将序列号分配给特定分组。基于分组处理架构,特定分组使用的序列号可作为分组元数据的一部分被包括在内。
将序列号预先分配给分组的主要目的是确保分组可分发给并行处理核心。因此,不再需要锁或中间原子级以同步核心之间的序列号分配。
在一些示例实施例中,序列号可通过将SA的序列号计数器的值增加例如1来生成。在一些示例实施例中,可能需要在稍后的级将特定分组划分成片段。相应地,预处理模块410可确定特定分组将被划分成的片段的数量。片段的数量可基于特定分组的大小、可用于传输的分组大小和安全性关联(例如,关于加密开销的信息)来确定。然后,可通过将序列号计数器的值增加片段的数量来生成序列号。
在此类示例实施例中,当在装置400的稍后的级执行特定分组的片段化时,新创建的片段的序列号将为原始分组序列号的连续递增。这也确保了正确的序列号被分配给分段的流量。
如果特定分组是入站分组,则基于SA执行ARW检查。预处理模块410可验证特定分组的序列号是否在SA的ARW内,并且将验证的结果包括在特定分组中。ARW状态可填充在分组的元数据中。例如,如果在白名单表中找到的SA引用是入站SA引用,则SA被用来验证分组的序列号是否在SA的ARW内。根据ARW检查的成功或失败,相应地标记特定分组。
此外,在一些示例实施例中,可基于来自并行处理模块430处的并行处理的反馈来更新SA的ARW。例如,来自并行处理模块430的各个核心431、432和433的反馈消息可排队进入预处理模块410。可基于反馈消息相应地更新SA的ARW。以这种方式,并行处理模块430的核心不必采取锁或通过原子级来同步处理。
在框530,在对多个分组中的至少一个分组执行预处理后,对多个分组中的至少一个分组执行并行处理。换句话说,一旦传入流的分组被预处理,预处理的分组被发送到分发模块440。例如,在对出站分组执行序列号分配后,出站分组可被发送到分发模块440。类似地,在对入站分组执行ARW检查后,可将入站分组发送到分发模块440。分发模块440将预处理的分组分发给并行处理模块430的处理核心。
由于出站分组的序列号的存在或ARW状态被预填充在入站分组的元数据中,因此在并行处理模块430处消除了序列号生成或ARW处理,该序列号生成或ARW处理本来需要使用锁或创建附加级来在核心之间进行同步。对于出站分组,或者换句话说,在加密流程的情况下,核心431、432、433可仅将分组的元数据中存在的序列号复制到加密头端,并且继续剩余的处理。另选地,对于入站分组,或者换句话说,在解密流程的情况下,核心431、432、433可基于ARW状态丢弃或继续处理分组。
如上文参考框510所述,在一些示例实施例中,预处理模块410可通过使用白名单表来确定SA。现在参考图6。图6示出了根据本公开的一些示例实施例的用于确定SA的示例方法600的流程图。方法600可被视为图5的框510的具体实施方式。
在框610,在接收到传入流的分组时,预处理模块410基于接收到的分组确定传入流是否映射到白名单表中指示的至少一个预定安全性关联。例如,可计算所接收分组的RSS哈希值,并且将其用作白名单表的关键字。
如果在框610确定传入流映射到白名单表中指示的至少一个预定SA,则方法600前进至框620。在框620,预处理模块410从至少一个预定SA中确定针对传入流的SA。例如,如果分组的RSS哈希值对应于白名单表中的SA引用。SA引用所指示的SA可被确定为针对传入流的SA。
如果白名单表存储了特定传入流和相关联的SA之间的映射信息,则特定传入流为已知(learnt)流。在此类示例实施例中,可通过利用白名单表来加速对已知流的分组的处理。
如果在框610确定传入流未映射到白名单表中指示的任何预定SA,则将分组从预处理模块410发送到引子模块420。引子模块420可确定传入流是IPsec流还是非IPsec流。换句话说,引子模块420可确定该分组是IPsec分组还是非IPsec分组。
在一些示例实施例中,引子模块420可维护一个表以指示非IPsec流。此类表被称为“第二表”或“黑名单表”。黑名单表的条目指示非IPsec流。类似于白名单表,黑名单表可实施为哈希表。
如图6所示,在此类示例实施例中,方法600可前进至框630。在框630,引子模块420基于从预处理模块410接收的分组,确定传入流是否与黑名单表的条目匹配。如果在框630,确定传入流与黑名单表的条目匹配,则方法600前进至框680。例如,如果从预处理模块410接收的分组的哈希值与黑名单表的条目匹配,则意味着传入流是非IPsec流,因此该分组被标识为非IPsec分组。在这种情况下,方法600前进至框680。在框680,非IPsec分组被发送出去以进行正常的分组处理。
如果在框630,确定传入流与黑名单表的条目不匹配,则方法600前进至框640。例如,如果从预处理模块410接收的分组的哈希值与黑名单表的条目不匹配,则意味着需要进一步确定传入流是否是非IPsec流。在这种情况下,方法600前进至框640。
在框640,引子模块420对分组执行L2和L3处理,以确定分组是映射到入站流还是出站流。L2和L3处理包括IPsec策略查找,以确定分组是映射到入站(即解密)流还是出站(即加密)流。在框650,引子模块420确定传入流是IPsec流还是非IPsec流。例如,如果分组映射到入站流或出站流,则入站流被确定为IPsec流。如果分组既没有映射到入站流也没有映射到出站流,则传入流被确定为非IPsec流。
如果在框650,传入流被确定为非IPsec流,这意味着传入流的分组不需要IPsec处理。在这种情况下,方法600前进至框670和框680。在框670,更新黑名单表以指示传入流。因此,在框630,传入分组的后续分组将被标识为非IPsec分组,并且将被直接发送出去进行正常处理。
在此类示例实施例中,动态更新黑名单表,以指示非IPsec流。以这种方式,可快速标识不需要IPsec处理的非IPsec分组,并且可进一步加速引子模块420处的处理。另选地,在一些示例实施例中,黑名单表可由预处理模块410维护。
继续方法600,如果在框650,传入流被确定为IPsec流,则这意味着传入流的分组需要IPsec处理。在这种情况下,方法600前进至框660。在框660,引子模块420基于为IPsec流建立的预定SA来确定传入分组的SA。例如,引子模块420可查找或检索在建立安全连接的协商期间创建的SA的SA引用。换句话说,如果被标识为IPsec流,则取决于分组是加密流还是解密流,执行相应的SA查找,并且标识传入流的相关联的出站或入站SA引用。
在这种情况下,可更新分组的元数据,以包括所确定的SA引用或SA引用的信息。附加标志也可包括在分组的元数据中。附加标志可指示该分组已被发送到引子模块420,并且包括传入流的SA信息。
在框660完成时,作为IPsec分组的分组被发送回预处理模块410。然后,预处理模块410可更新白名单表,以存储传入流和所确定的SA之间的映射信息。例如,基于分组的元数据中的附加标志和相关联的SA引用,白名单表被更新以存储将传入流的RSS哈希值映射到相关联的SA引用的信息。因此,通过使用动态填充的白名单表,可快速确定用于相同传入流的后续分组的SA。以这种方式,无需再次运行引子模块420。
在一些示例实施例中,如果接收到相同传入流的多个分组,则传入分组的特定分组(例如,第一分组)可被发送到引子模块420。剩余的分组可在预处理模块410中缓冲。一旦特定分组(例如,第一分组)在引子模块420处理后重新入队,剩余的缓冲分组可出队并映射到SA引用。以这种方式,可进一步优化预处理模块410的性能。
从上文可看出,每个新的IPsec流只触发一次引子模块420。引子模块420用于确保用相关联的SA引用来更新白名单表。
应当理解,图6中所示的框仅用于说明目的。用于确定SA的方法可包括更多或更少的框。在一些示例实施例中,可不维护黑名单表,并且可省略框630。在此类示例实施例中,如果在框610,确定传入流未映射到白名单表中指示的任何预定SA,则方法600可前进至框640。在一些示例实施例中,可过滤非IPsec流,并且不允许其进入预处理模块410。例如,装置400可专用于处理IPsec流。在此类示例实施例中,可省略框630、640、650、670和680。
根据上文参考图5和图6的描述,不同分组的处理流可能不同。图7A示出了用于未经预处理模块410预处理的新IPsec流的分组的处理流程701的框图。处理流程701发生在新的IPsec流进入装置400并需要经由SA引用发现来被学习的情况下,作为引子模块420的一部分。图7B示出了用于已由预处理模块410预处理的IPsec流的分组的处理流程702的框图。处理流程702发生在IPsec流的SA信息已经被填充在白名单表中的情况下。从图7A和7B可看出,通过使用白名单表,表示主要场景的处理流程702比处理流程701具有更少的步骤,并且导致更快的分组处理。
图7C示出了用于新的非IPsec流的分组的处理流程703的框图。处理流程703发生在新的非IPsec流进入装置400并需要由引子模块420学习的情况下。图7D示出了用于经预处理的非IPsec流的分组的处理流程704的框图。处理流程704发生在非IPsec流的信息已经被填充在黑名单表中的情况下。从图7C和7D可看出,通过使用黑名单表,可快速标识非IPsec流的分组,并且可进一步减少处理负载。
已经进行了一些测试,以比较带锁定的RtC方法和提出的解决方案。表2显示了序列号生成(加密)情况下的测试结果。表3显示了ARW处理(解密)情况下的测试结果。表2和表3均显示了相对于处理核心池中使用的核心总数,无丢包情况下达到的最大分组数量。
表2序列号生成情况下的测试结果
图8示出了对应于表2的在序列号生成的情况下显示吞吐量的曲线图800。在曲线图800中,曲线810显示了用带锁定的RtC方法的吞吐量,而曲线820显示了提出的解决方案的吞吐量。
表3 ARW处理情况下的测试结果
从表2、表3和图8中的结果可看出,随着使用的核心数量的增加,用带锁定的RtC方法的可扩展性明显降低。这是因为对具有更多核心的锁的争用呈指数级增长,导致添加核心的总体效益降低。相比之下,所提出的解决方案的结果显示,随着核心的增加,分组处理吞吐量呈线性增长。此外,表还显示了使用提出的解决方案实现的改进百分比。所提出的解决方案的性能优于并实现了高性能和可扩展性这两个预期目标。
从上文可看出,根据本公开的示例实施例,可实施与附加核心数量成比例的吞吐量线性增加。对于固定数量的核心,如表2、表3和图8所示,本公开的示例实施例可显著增加总吞吐量。通过消除并行处理核心之间的同步需求,本公开的示例实施例创建了真正独立的并行处理核心,从而与常规解决方案相比提高了吞吐量。此外,由于本公开的示例实施例符合现有RFC的标准,并且没有向外部接口引入任何新参数,因此它可由于本公开的示例实施例符合现有RFC的标准,而无需在任一端进行任何附加修改。
示例实施例和设备
在一些示例实施例中,能够执行方法500的装置可包括用于执行方法500的各个步骤的部件。该方法可按任何合适的形式实施。例如,该部件可在电路系统或软件模块中实施。
在一些示例实施例中,能够执行方法500的装置包括:用于确定用于传入流的安全性关联的部件,传入流包括多个分组;用于基于安全性关联对多个分组执行预处理的部件;以及用于响应于对多个分组中的至少一个执行预处理,对多个分组中的至少一个执行并行处理的部件。
在一些示例实施例中,用于确定用于传入流的安全性关联的部件包括:用于响应于接收传入流的第一分组,基于第一分组确定传入流是否映射到第一表中指示的至少一个预定安全性关联的部件,第一表存储互联网协议安全性IPsec流和预定安全性关联之间的映射信息;以及用于根据传入流映射到至少一个预定安全性关联的确定,从至少一个预定安全性关联确定安全性关联的部件。
在一些示例实施例中,能够执行方法500的装置进一步包括:用于根据确定传入流未映射到第一表中指示的任何预定安全性关联的确定,确定传入流是否是IPsec流的部件;以及用于根据传入流是IPsec流的确定,基于为IPsec流建立的预定安全性关联来确定安全性关联的部件。
在一些示例实施例中,能够执行方法500的装置进一步包括:用于更新第一表以存储传入流和安全性关联之间的映射信息的部件。
在一些示例实施例中,用于确定传入流是否是IPsec流的装置包括:用于基于第一分组确定传入流是否与第二表的条目匹配的部件,第二表的条目指示非IPsec流;用于根据传入流与第二表的条目不匹配的确定,对第一分组执行层2和层3处理以确定第一分组是映射到入站流还是出站流的部件;以及用于根据第一分组映射到入站流或出站流的确定,确定传入流是IPsec流的部件。
在一些示例实施例中,能够执行方法500的装置进一步包括:响应于接收到另外的传入流的第二分组,基于第二分组确定另外的传入流是否与第二表的条目匹配的部件;用于根据另外的传入流与第二表的条目不匹配的确定,对第二分组执行层2和层3处理以确定第二分组是映射到入站流还是出站流的部件;以及用于根据第二分组既未映射到入站流也未映射到出站流的确定,更新第二表以指示另外的传入流的部件。
在一些示例实施例中,用于基于安全性关联对多个分组执行预处理的部件包括:用于确定多个分组中的第三分组是否是出站分组的部件;以及用于根据第三分组是出站分组的确定,基于安全性关联的序列号计数器将序列号分配给第三分组的部件。
在一些示例实施例中,基于安全性关联的序列号计数器将序列号分配给第三分组的部件包括:基于第三分组的大小、可用于传输的分组大小和安全性关联确定第三分组将被划分成的片段的数量的部件;以及用于通过将序列号计数器的值增加片段的数量来确定序列号的部件。
在一些示例实施例中,用于基于安全性关联对多个分组执行预处理的部件包括:用于确定多个分组中的第四分组是否是入站分组的部件;用于根据第四分组是入站分组的确定,验证第四分组的序列号是否落入安全性关联的防重放窗口内的部件;以及用于将验证结果包括在第四分组中的部件。
在一些示例实施例中,能够执行方法500的装置进一步包括:用于基于并行处理的反馈更新安全性关联的防重放窗口的部件。
图9是适用于实施本公开的实施例的设备900的简化框图。可提供设备900以实现装置400。如图所示,设备900包括一个或多个处理器910、耦合到处理器910的一个或多个存储器920,以及耦合到处理器910的一个或多个通信模块940。
通信模块940用于双向通信。通信模块940具有至少一个天线以便于通信。通信接口可表示与其他网络元件通信所必需的任何接口。
处理器910可为适合本地技术网络的任何类型,并且可包括以下一种或多种:通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核心处理器架构的处理器,作为非限制性示例。设备900可具有多个处理器,诸如在时间上从属于同步主处理器的时钟的专用集成电路芯片。
存储器920可包括一个或多个非易失性存储器和一个或多个易失性存储器。非易失性存储器的示例包括但不限于只读存储器(ROM)924、电可编程只读存储器(EPROM)、闪存、硬盘、光盘(CD)、数字视频盘(DVD)以及其他磁存储器和/或光存储器。易失性存储器的示例包括但不限于随机存取存储器(RAM)922和在断电持续时间内不会持续的其他易失性存储器。
计算机程序930包括由相关联的处理器910执行的计算机可执行指令。程序930可存储在ROM 920中。处理器910可通过将程序930加载到RAM 920中来执行任何合适的动作和处理。
本公开的实施例可通过程序930实施,以便设备900可执行参考图5至6所论述的本公开的任何过程。本公开的实施例也可通过硬件或软件和硬件的组合来实施。
在一些实施例中,程序930可有形地包含在计算机可读介质中,该介质可包括在设备900(诸如存储器920)或设备900可访问的其他存储设备中。设备900可将程序930从计算机可读介质加载到RAM 922以供执行。计算机可读介质可包括任何类型的有形非易失性存储器,诸如ROM、EPROM、闪存、硬盘、CD、DVD等。图10示出了CD或DVD形式的计算机可读介质1000的示例。计算机可读介质上存储有程序930。
应当理解,未来的网络可利用网络功能虚拟化(NFV),这是一种网络架构概念,提出将网络节点功能虚拟化为“构建块”或实体,这些“构建块”或实体可在操作上连接或链接在一起以提供服务。虚拟化网络功能(VNF)可包括使用标准或通用类型的服务器而不是定制的硬件来运行计算机程序代码的一个或多个虚拟机。也可使用云计算或数据存储。在无线电通信中,这可能意味着至少部分地在操作上耦合到分发式单元DU(例如无线电头端/节点)的中央/集中式单元CU(例如服务器、主机或节点)中执行节点操作。节点操作也可能分发在多个服务器、节点或主机之间。还应当理解,核心网络运营和基站运营之间的劳动力分发可能会取决于实施方式而有所不同。
在一个实施例中,服务器可生成虚拟网络,通过该虚拟网络,服务器与分发式单元进行通信。一般而言,虚拟联网可能涉及将硬件和软件网络资源和网络功能性组合成单个基于软件的管理实体(虚拟网络)的过程。此类虚拟网络可在服务器和无线电头端/节点之间提供灵活的操作分发。实际上,任何数字信号处理任务均可在CU或DU中执行,并且可根据实施方式来选择CU和DU之间责任转移的边界。
因此,在一个实施例中,实施了CU-DU体系结构。在此类情况下,设备900可包含在中央单元(例如,控制单元、边缘云服务器、服务器)中,该中央单元可操作地耦合(例如,经由无线或有线网络)到分发式单元(例如,远程无线电头端/节点)。也就是说,中央单元(例如边缘云服务器)和分发式单元可为经由无线电路径或经由有线连接彼此通信的独立装置。另选地,它们可位于经由有线连接等进行通信的同一实体中。边缘云或边缘云服务器可服务于多个分发式单元或无线接入网络。在一个实施例中,所描述的过程中的至少一些可由中央单元执行。在另一个实施例中,设备900可替代地包括在分发式单元中,并且所描述的过程中的至少一些可由分发式单元执行。
在一个实施例中,设备900的功能性中的至少一些的执行可在形成一个操作实体的两个物理上独立的设备(DU和CU)之间共享。因此,可看到该装置描绘了包括用于执行至少一些所描述的过程的一个或多个物理上分离的装置的操作实体。在一个实施例中,此类CU-DU体系结构可在CU和DU之间提供灵活的操作分发。实际上,任何数字信号处理任务均可在CU或DU中执行,并且可根据实施方式来选择CU和DU之间责任转移的边界。在一个实施例中,设备900控制处理的执行,而不管装置的位置,也不管过程/功能在哪里执行。
一般而言,本公开的各种实施例可在硬件或专用电路、软件、逻辑或其任何组合中实施。一些方面可在硬件中实施,而其他方面可在可由控制器、微处理器或其他计算设备执行的固件或软件中实施。虽然本公开的实施例的各个方面被示出并描述为框图、流程图或使用一些其他图形表示,但应当理解,作为非限制性示例,本文所描述的框、装置、系统、技术或方法可在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其一些组合中实施。
本公开还提供了至少一种有形存储在非暂时性计算机可读存储介质上的计算机程序产品。计算机程序产品包括在目标真实或虚拟处理器上的设备中执行的计算机可执行指令,诸如那些包括在程序模块中的指令,以执行如以上参考图5-6所描述的方法500或600。一般而言,程序模块包括执行特定任务或实施特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,可根据需要在程序模块之间组合或划分程序模块的功能性。程序模块的机器可执行指令可在本地或分发式设备中执行。在分发式设备中,程序模块可位于本地和远程存储介质中。
可采用一种或多种编程语言的任意组合编写用于实施本公开的方法的程序代码。这些程序代码可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码在被处理器或控制器执行时,使得流程图和/或框图中指定的功能/操作得以实施。程序代码可完全在机器上执行,部分在机器上执行,作为独立软件包执行,部分在机器上执行,部分在远程机器上执行,或者完全在远程机器或服务器上执行。
在本公开的上下文中,计算机程序代码或相关数据可由任何合适的载体承载,以使设备、装置或处理器能够执行上述各种过程和操作。载波的示例包括信号、计算机可读介质等。
计算机可读介质可为计算机可读信号介质或计算机可读存储介质。计算机可读介质可包括但不限于电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或者上述的任何适当组合。计算机可读存储介质的更具体示例包括具有一条或多条导线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或上述任何合适的组合。
此外,虽然操作是按特定次序描述的,但这不应当理解为要求按所示的特定次序或顺序执行此类操作,或要求执行所有图示的操作,以获得理想的结果。在某些情况下,多任务和并行处理可能是有利的。类似地,尽管在上述论述中包含若干个具体实施方式细节,但这些细节不应被解释为对本公开范围的限制,而应被解释为对可特定于特定实施例的特征的描述。在单独实施例的上下文中描述的某些特征也可在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可在多个实施例中单独或以任何合适的子组合来实施。
尽管本公开以特定于结构特征和/或方法动作的语言进行了描述,但应当理解,所附权利要求中定义的本公开不一定限于上述特定特征或动作。相反,上述具体特征和动作是作为实施权利要求的示例形式公开的。
Claims (22)
1.一种用于通信的装置,包括:
至少一个处理器;以及
至少一个存储器,包括计算机程序代码;
所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使得所述装置:
确定针对传入流的安全性关联,所述传入流包括多个分组;
基于所述安全性关联对所述多个分组执行预处理;以及
响应于对所述多个分组中的至少一个分组执行所述预处理,对所述多个分组中的所述至少一个分组执行并行处理。
2.根据权利要求1所述的装置,其中所述装置还被使得:
响应于接收到所述传入流的第一分组,基于所述第一分组确定所述传入流是否被映射到第一表中指示的至少一个预定安全性关联,所述第一表存储互联网协议安全性IPsec流和预定安全性关联之间的映射信息;以及
如果确定所述传入流被映射到所述至少一个预定安全性关联,从所述至少一个预定安全性关联确定所述安全性关联。
3.根据权利要求2所述的装置,其中所述装置还被使得:
如果确定所述传入流未被映射到所述第一表中指示的任何预定安全性关联,确定所述传入流是否是IPsec流;以及
如果确定所述传入流是所述IPsec流,基于为所述IPsec流建立的预定安全性关联来确定所述安全性关联。
4.根据权利要求3所述的装置,其中所述装置还被使得:
更新所述第一表以存储所述传入流和所述安全性关联之间的映射信息。
5.根据权利要求3所述的装置,其中所述装置还被使得:
基于所述第一分组,确定所述传入流是否与第二表的条目匹配,所述第二表的条目指示非IPsec流;
如果确定所述传入流与所述第二表的条目不匹配,对所述第一分组执行层2和层3处理,以确定所述第一分组是被映射到入站流还是出站流;以及
如果确定所述第一分组被映射到入站流或出站流,确定所述传入流是所述IPsec流。
6.根据权利要求5所述的装置,其中所述装置还被使得:
响应于接收到另外的传入流的第二分组,基于所述第二分组确定所述另外的传入流是否与所述第二表的条目匹配;
如果确定所述另外的传入流与所述第二表的条目不匹配,对所述第二分组执行层2和层3处理,以确定所述第二分组是被映射到入站流还是出站流;以及
如果确定所述第二分组未被映射到入站流也未被映射到出站流,更新所述第二表以指示所述另外的传入流。
7.根据权利要求1所述的装置,其中所述装置还被使得:
确定所述多个分组中的第三分组是否是出站分组;以及
如果确定所述第三分组是所述出站分组,基于所述安全性关联的序列号计数器将序列号分配给所述第三分组。
8.根据权利要求7所述的装置,其中所述装置还被使得:
基于所述第三分组的大小、可用于传输的分组大小和所述安全性关联,确定所述第三分组将被划分成的片段的数量;以及
通过将所述序列号计数器的值增加所述片段的所述数量来确定所述序列号。
9.根据权利要求1所述的装置,其中所述装置还被使得:
确定所述多个分组中的第四分组是否是入站分组;
如果确定所述第四分组是所述入站分组,验证所述第四分组的所述序列号是否落入所述安全性关联的防重放窗口内;以及
将所述验证的结果包括在所述第四分组中。
10.根据权利要求9所述的装置,其中所述装置还被使得:
基于所述并行处理的反馈来更新所述安全性关联的所述防重放窗口。
11.一种用于通信的方法,包括:
确定针对传入流的安全性关联,所述传入流包括多个分组;
基于所述安全性关联对所述多个分组执行预处理;以及
响应于对所述多个分组中的至少一个分组执行所述预处理,对所述多个分组中的所述至少一个执行并行处理。
12.根据权利要求11所述的方法,其中确定针对所述传入流的所述安全性关联包括:
响应于接收到所述传入流的第一分组,基于所述第一分组确定所述传入流是否被映射到第一表中指示的至少一个预定安全性关联,所述第一表存储互联网协议安全性IPsec流和预定安全关联之间的映射信息;以及
如果确定所述传入流被映射到所述至少一个预定安全性关联,从所述至少一个预定安全性关联确定所述安全性关联。
13.根据权利要求12所述的方法,还包括:
如果确定所述传入流未被映射到所述第一表中指示的任何预定安全性关联,确定所述传入流是否是IPsec流;以及
如果确定所述传入流是所述IPsec流,基于为所述IPsec流建立的预定安全性关联来确定所述安全性关联。
14.根据权利要求13所述的方法,还包括:
更新所述第一表以存储所述传入流和所述安全性关联之间的映射信息。
15.根据权利要求13所述的方法,其中确定所述传入流是否是IPsec流包括:
基于所述第一分组确定所述传入流是否与第二表的条目匹配,所述第二表的条目指示非IPsec流;
如果确定所述传入流与所述第二表的条目不匹配,对所述第一分组执行层2和层3处理,以确定所述第一分组是被映射到入站流还是出站流;以及
如果确定所述第一分组被映射到入站流或出站流,确定所述传入流是所述IPsec流。
16.根据权利要求15所述的方法,还包括:
响应于接收到另外的传入流的第二分组,基于所述第二分组确定所述另外的传入流是否与所述第二表的条目匹配;
如果确定所述另外的传入流与所述第二表的条目不匹配,对所述第二分组执行层2和层3处理,以确定所述第二分组是被映射到入站流还是出站流;以及
如果确定所述第二分组未被映射到入站流也未被映射到出站流,更新所述第二表以指示所述另外的传入流。
17.根据权利要求11所述的方法,其中基于所述安全性关联对所述多个分组执行所述预处理包括:
确定所述多个分组中的第三分组是否是出站分组;以及
如果确定所述第三分组是所述出站分组,基于所述安全性关联的序列号计数器将序列号分配给所述第三分组。
18.根据权利要求17所述的方法,其中基于所述安全性关联的所述序列号计数器将所述序列号分配给所述第三分组包括:
基于所述第三分组的大小、可用于传输的分组大小和所述安全性关联,确定所述第三分组将被划分成的片段的数量;以及
通过将所述序列号计数器的值增加所述片段的所述数量来确定所述序列号。
19.根据权利要求11所述的方法,其中基于所述安全性关联对所述多个分组执行所述预处理包括:
确定所述多个分组中的第四分组是否是入站分组;
如果确定所述第四分组是所述入站分组,验证所述第四分组的所述序列号是否落入所述安全性关联的防重放窗口内;以及
将所述验证的结果包括在所述第四分组中。
20.根据权利要求19所述的方法,还包括:
基于所述并行处理的反馈来更新所述安全性关联的所述防重放窗口。
21.一种用于通信的装置,包括:
用于确定针对传入流的安全性关联的部件,所述传入流包括多个分组;
用于基于所述安全性关联对所述多个分组执行预处理的部件;以及
用于响应于对所述多个分组中的至少一个分组执行所述预处理,对所述多个分组中的所述至少一个分组执行并行处理的部件。
22.一种计算机可读存储介质,包括存储在其上的程序指令,所述指令在由装置执行时使得所述装置:
确定针对传入流的安全性关联,所述传入流包括多个分组;
基于所述安全性关联对所述多个分组执行预处理;以及
响应于对所述多个分组中的至少一个分组执行所述预处理,对所述多个分组中的所述至少一个分组执行并行处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI20215284 | 2021-03-16 | ||
FI20215284 | 2021-03-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115085962A true CN115085962A (zh) | 2022-09-20 |
Family
ID=80682602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210253802.8A Pending CN115085962A (zh) | 2021-03-16 | 2022-03-15 | 用于ipsec流的增强处理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220303310A1 (zh) |
EP (1) | EP4060936A1 (zh) |
CN (1) | CN115085962A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205332A1 (en) * | 2003-04-12 | 2004-10-14 | Bouchard Gregg A. | IPsec performance optimization |
US7434045B1 (en) * | 2003-04-21 | 2008-10-07 | Cisco Technology, Inc. | Method and apparatus for indexing an inbound security association database |
US7624263B1 (en) * | 2004-09-21 | 2009-11-24 | Advanced Micro Devices, Inc. | Security association table lookup architecture and method of operation |
US20100268935A1 (en) * | 2009-04-21 | 2010-10-21 | Richard Rodgers | Methods, systems, and computer readable media for maintaining flow affinity to internet protocol security (ipsec) sessions in a load-sharing security gateway |
US20130263249A1 (en) * | 2012-03-30 | 2013-10-03 | Futurewei Technologies, Inc. | Enhancing IPSEC Performance and Security Against Eavesdropping |
CN103597798A (zh) * | 2011-07-15 | 2014-02-19 | 德国电信股份公司 | 增强安全电信网络中的高可用性的方法以及包括多个远程节点的电信网络 |
US20140281530A1 (en) * | 2013-03-13 | 2014-09-18 | Futurewei Technologies, Inc. | Enhanced IPsec Anti-Replay/Anti-DDOS Performance |
WO2018234849A1 (en) * | 2017-06-20 | 2018-12-27 | Telefonaktiebolaget Lm Ericsson (Publ) | FLOW MULTIPLEXING UNDER IPSEC |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600131B1 (en) * | 1999-07-08 | 2009-10-06 | Broadcom Corporation | Distributed processing in a cryptography acceleration chip |
GB2571576B (en) * | 2018-03-02 | 2022-06-15 | Ssh Communications Security Oyj | Processing packets in a computer system |
-
2022
- 2022-03-07 EP EP22160549.6A patent/EP4060936A1/en active Pending
- 2022-03-08 US US17/689,385 patent/US20220303310A1/en active Pending
- 2022-03-15 CN CN202210253802.8A patent/CN115085962A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205332A1 (en) * | 2003-04-12 | 2004-10-14 | Bouchard Gregg A. | IPsec performance optimization |
US7434045B1 (en) * | 2003-04-21 | 2008-10-07 | Cisco Technology, Inc. | Method and apparatus for indexing an inbound security association database |
US7624263B1 (en) * | 2004-09-21 | 2009-11-24 | Advanced Micro Devices, Inc. | Security association table lookup architecture and method of operation |
US20100268935A1 (en) * | 2009-04-21 | 2010-10-21 | Richard Rodgers | Methods, systems, and computer readable media for maintaining flow affinity to internet protocol security (ipsec) sessions in a load-sharing security gateway |
CN103597798A (zh) * | 2011-07-15 | 2014-02-19 | 德国电信股份公司 | 增强安全电信网络中的高可用性的方法以及包括多个远程节点的电信网络 |
US20130263249A1 (en) * | 2012-03-30 | 2013-10-03 | Futurewei Technologies, Inc. | Enhancing IPSEC Performance and Security Against Eavesdropping |
CN104247367A (zh) * | 2012-03-30 | 2014-12-24 | 华为技术有限公司 | 提升IPsec性能和防窃听安全性 |
US20140281530A1 (en) * | 2013-03-13 | 2014-09-18 | Futurewei Technologies, Inc. | Enhanced IPsec Anti-Replay/Anti-DDOS Performance |
WO2018234849A1 (en) * | 2017-06-20 | 2018-12-27 | Telefonaktiebolaget Lm Ericsson (Publ) | FLOW MULTIPLEXING UNDER IPSEC |
Also Published As
Publication number | Publication date |
---|---|
EP4060936A1 (en) | 2022-09-21 |
US20220303310A1 (en) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9065701B2 (en) | Enhanced serialization mechanism | |
US20210297410A1 (en) | Mec platform deployment method and apparatus | |
US11595159B2 (en) | HARQ design for wireless communications | |
CN109309650B (zh) | 处理数据的方法、终端设备和网络设备 | |
WO2014055145A1 (en) | Hardware message queues for intra-cluster communication | |
WO2022073213A1 (en) | Mechanism for dynamic authorization | |
US11997636B2 (en) | Method and apparatus for link operation of multi-link device | |
WO2024066248A1 (zh) | 一种接入访问的控制方法、装置、设备和非易失性可读存储介质 | |
JP7187574B2 (ja) | 媒体アクセス制御サブヘッダの向上 | |
WO2021219385A1 (en) | Securely identifying network function | |
RU2739925C1 (ru) | Способ передачи данных путем преобразования и относящийся к нему продукт | |
CN115085962A (zh) | 用于ipsec流的增强处理 | |
US11711809B2 (en) | System and method for providing an enhanced acknowledgement frame | |
CN117044144A (zh) | Harq-ack码本处理 | |
WO2021160386A1 (en) | Authorization service for providing access control | |
US11936635B2 (en) | Method, electronic device, and program product implemented at an edge switch for data encryption | |
EP4270870A1 (en) | Method, device and computer readable medium for communications | |
US20240095328A1 (en) | Systems and methods for running multiple logical secure elements on the same secure hardware | |
US20220038422A1 (en) | Authentication and firewall enforcement for internet of things (iot) devices | |
EP4199469A1 (en) | Method and apparatus to assign and check anti-replay sequence numbers using load balancing | |
US20240048384A1 (en) | Method and apparatus for providing strong mutual authentication, encryption, and integrity for constraint devices without secure storage and pki support | |
US20240098095A1 (en) | Access control systems and methods for logical secure elements running on the same secure hardware | |
WO2023208313A1 (en) | Cpu and method associated with a security association | |
WO2021155918A1 (en) | Sending data to a network function | |
CN117063441A (zh) | 离线网络安全配置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |