CN113553137A - 一种nfv架构下基于dpdk的接入能力网元高速数据处理方法 - Google Patents
一种nfv架构下基于dpdk的接入能力网元高速数据处理方法 Download PDFInfo
- Publication number
- CN113553137A CN113553137A CN202110674581.7A CN202110674581A CN113553137A CN 113553137 A CN113553137 A CN 113553137A CN 202110674581 A CN202110674581 A CN 202110674581A CN 113553137 A CN113553137 A CN 113553137A
- Authority
- CN
- China
- Prior art keywords
- data packet
- queue
- core
- network
- network port
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种NFV架构下基于DPDK的接入能力网元高速数据处理方法。该方法包括:步骤1:配置I/O透传方式的虚拟主机接口;步骤2:加载VFIO和VFIO‑PCI驱动,分配内存挂载巨页,绑定网卡然后启动虚拟机;步骤3:设置网口、队列和逻辑核对应关系;所述逻辑核分为I/O核和Worker核;步骤4:网卡的RSS驱动接收数据包并将其分发到对应的队列,以供该队列所绑定的I/O核对其进行处理;步骤5:I/O核采用负载均衡算法再将数据包分配到不同的Worker核上;步骤6:Worker核接到数据包后先对数据包进行解析,然后查表判断该数据包是否应该丢弃,若为有效数据包,则接着判断该数据包应转发至哪个网口并送入该网口的发送队列。
Description
技术领域
本发明涉及通信网安全防护技术领域,尤其涉及一种NFV架构下基于DPDK的接入能力网元高速数据处理方法。
背景技术
随着通信技术的发展和业务种类的丰富,5G、IMS网络逐渐向IP化、扁平化的方向演进,主流运营商为了降低成本、实现业务快速部署和灵活化资源配置,普遍选择使用网络虚拟化技术(NFV)。然而这样则会面临新的问题,一方面,虽然NFV的数据包收发过程与传统网络架构处理流程基本一致,但虚拟化会造成设备接入处理能力下降;另一方面,带宽越来越大,业务承载数据体量越来越高,需要接入处理的流量呈现指数级增加。因此,面向5G、IMS网络的安全防护系统需要对高速接入数据进行监测处理。
发明内容
针对现有的面向5G、IMS网络的数据处理方法存在数据处理能力较低的问题,本发明提供一种NFV架构下基于DPDK的接入能力网元高速数据处理方法,能有效提高安全防护系统在虚拟环境下对高速接入数据的转发效率和业务处理性能。
本发明提供一种NFV架构下基于DPDK的接入能力网元高速数据处理方法,包括:
步骤1:配置I/O透传方式的虚拟机接口;
步骤2:加载VFIO和VFIO-PCI驱动,分配内存挂载巨页,绑定网卡然后启动虚拟机;
步骤3:设置网口、队列和逻辑核对应关系;所述逻辑核分为I/O核和Worker核;
步骤4:网卡的RSS驱动接收数据包并将其分发到对应的队列,以供该队列所绑定的I/O核对其进行处理;
步骤5:I/O核采用负载均衡算法再将数据包分配到不同的Worker核上;
步骤6:Worker核接到数据包后先对数据包进行解析,然后查表判断该数据包是否应该丢弃,若为有效数据包,则接着判断该数据包应转发至哪个网口并送入该网口的发送队列。
进一步地,步骤1具体包括:
采用SR-IOV技术,通过PCIe总线多路复用将一个物理网卡分成多个VF。
进一步地,步骤3具体包括:
为连接线路侧的第一网口配置m个接收队列和m个发送队列;为连接业务侧的第二网口配置m个接收队列和m个发送队列;其中,每个所述接收队列和发送队列均从0开始编号;
将两个网口编号相同的接收队列和发送队列绑定至同一个逻辑核。
进一步地,步骤4具体包括:
网卡的RSS驱动接收数据包,获取所述数据包的源IP地址、目的IP地址和协议信息;
根据源IP地址、目的IP地址和协议信息通过配置的哈希函数计算出哈希值,取哈希值的低n位作为RETA的索引,根据RETA存储的值分发到对应的接收队列。
进一步地,所述配置的哈希函数为RSS对称哈希算法。
本发明的有益效果:
本发明直接把物理设备分配给虚拟机使用的方式,能使虚拟机获得近乎本地的性能,并且CPU开销不高;并且通过引入SR-IOV技术可以解决一台物理设备赋予多个虚拟机时物理网卡不足的问题;通过引入DPDK技术极大提高了数据接入能力以及数据处理效率。
附图说明
图1为本发明实施例提供的一种NFV架构下基于DPDK的接入能力网元高速数据处理方法的流程图;
图2为本发明实施例提供的虚拟主机接口实现方式图;
图3为本发明实施例提供的DPDK在负载均衡模式下过滤分发报文的逻辑图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种NFV架构下基于DPDK的接入能力网元高速数据处理方法,包括以下步骤:
S101:配置I/O透传方式的虚拟机接口;
具体地,如图2所示,采用SR-IOV技术,通过PCIe总线多路复用将一个物理网卡分成多个VF。在NFV架构下,物理设备上的网络功能同硬件剥离,以软件化的VNF(virtualnetworkfunction,虚拟网络功能)形式运行,从而实现网络设备形态的通用化,方便设备功能灵活扩展。在图2中, VNF部署在虚拟机中,为了进一步优化虚拟机内部I/O性能,可以让DPDK接管网卡I/O驱动,这样VNF可以绕过Linux内核网络协议栈,通过调用DPDK的用户态API进行快速转发。
在实际应用中,具体操作为:在BIOS打开VT-D和SR-IOV支持选项,然后进入ESXi硬件配置页面,找到需要进行配置的SR-IOV网卡,配置完成后重新启动ESXi。
本发明实施例中的直接把物理设备分配给虚拟机使用的方式,能使虚拟机获得近乎本地的性能,并且CPU开销不高;并且通过引入SR-IOV技术可以解决一台物理设备赋予多个虚拟机时物理网卡不足的问题。
S102:加载VFIO和VFIO-PCI驱动,分配内存挂载巨页,绑定网卡然后启动虚拟机;
S103:设置网口、队列和逻辑核对应关系;所述逻辑核分为I/O核和Worker核;
具体地,使用该方法的系统包括两个网口:连接线路侧的第一网口和连接业务侧的第二网口。队列类型分为发送队列和接收队列。为连接线路侧的第一网口配置m个接收队列和m个发送队列;为连接业务侧的第二网口配置m个接收队列和m个发送队列;其中,每个所述接收队列和发送队列均均从0开始编号;将两个网口编号相同的接收队列和发送队列绑定至同一个逻辑核。
例如,如图3所示,使用该数据处理方法的系统一共有两个网口(即网口0(port0)和网口1(port1)),一个连接线路侧一个连接业务侧,为每个网口分别配置四个接收队列和四个发送队列,绑定在四个I/O核上。例如,对于I/O核Lcore 0来说,该I/O核上共有四个队列,分别是网口0的接收队列0、发送队列0和网口1的接收队列0、发送队列0;对于I/O核Lcore 1来说,该I/O核上共有四个队列,分别是网口0的接收队列1、发送队列1和网口1的接收队列1、发送队列1;以此类推可知I/O核Lcore 2和I/O核Lcore3所绑定的接收队列和发送队列。
本发明实施例中的上述队列配置方式能够更好地配合RSS对称算法,使得双向同源数据包可以分配到同一个逻辑核上进行处理。
S104:网卡的RSS驱动接收数据包并将其分发到对应的队列,以供该队列所绑定的I/O核对其进行处理;
具体地,网卡的RSS驱动接收数据包,获取所述数据包的源IP地址、目的IP地址和协议信息;根据源IP地址、目的IP地址和协议信息通过配置的哈希函数计算出哈希值,取哈希值的低n位作为RETA(redirection table)的索引,根据RETA存储的值分发到对应的接收队列,以便该接收队列所绑定的I/O核对数据包进行处理。RETA(redirection table):表示重定向表。
作为一种可实施方式,为了使对称信息的数据包在同一个逻辑核上处理,从而提高性能,此处选择的哈希函数为RSS对称哈希算法。
S105:I/O核采用负载均衡算法再将数据包分配到不同的Worker核上;
具体地,本发明实施例一共使用了8个逻辑核,其中四个逻辑核被称作“I/O核”,每个“I/O核”绑定两个网口的接收和发送队列(共四个),从而实现数据接入和转发;另外四个称作“Worker核”,用来解析处理数据包。这个过程就像流水线工作一样,网口现对接收到的数据包通过RSS对称哈希算法将数据包分配到不同的“I/O核”上,这样当数据量大的时候可以提高数据接入转发效率,这是第一层负载均衡;然后“I/O核”再根据数据包的源IP地址、目的IP地址和协议信息采用三元哈希算法计算得到哈希值将该数据包分配到不同Worker逻辑核上进行解析处理,且同源同宿,这是第二次负载均衡。
S106:Worker核接到数据包后先对数据包进行解析,然后查表判断该数据包是否应该丢弃,若为有效数据包,则接着判断该数据包应转发至哪个网口并送入该网口的发送队列。
具体地,该步骤中所查询的表由5G、IMS网络安全防护系统的控制模块进行维护。
本发明主要针对在网络功能虚拟化(NFV)情况下高速接入网元提高业务处理性能相关的场景,提供了一种面向5G、IMS网络的基于DPDK的高速数据处理方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种NFV架构下基于DPDK的接入能力网元高速数据处理方法,其特征在于,包括:
步骤1:配置I/O透传方式的虚拟机接口;
步骤2:加载VFIO和VFIO-PCI驱动,分配内存挂载巨页,绑定网卡然后启动虚拟机;
步骤3:设置网口、队列和逻辑核对应关系;所述逻辑核分为I/O核和Worker核;
步骤4:网卡的RSS驱动接收数据包并将其分发到对应的队列,以供该队列所绑定的I/O核对其进行处理;
步骤5:I/O核采用负载均衡算法再将数据包分配到不同的Worker核上;
步骤6:Worker核接到数据包后先对数据包进行解析,然后查表判断该数据包是否应该丢弃,若为有效数据包,则接着判断该数据包应转发至哪个网口并送入该网口的发送队列。
2.根据权利要求1所述的接入能力网元高速数据处理方法,其特征在于,步骤1具体包括:
采用SR-IOV技术,通过PCIe总线多路复用将一个物理网卡分成多个VF。
3.根据权利要求1所述的接入能力网元高速数据处理方法,其特征在于,步骤3具体包括:
为连接线路侧的第一网口配置m个接收队列和m个发送队列;为连接业务侧的第二网口配置m个接收队列和m个发送队列;其中,每个所述接收队列和发送队列均从0开始编号;
将两个网口编号相同的接收队列和发送队列绑定至同一个逻辑核。
4.根据权利要求1所述的接入能力网元高速数据处理方法,其特征在于,步骤4具体包括:
网卡的RSS驱动接收数据包,获取所述数据包的源IP地址、目的IP地址和协议信息;
根据源IP地址、目的IP地址和协议信息通过配置的哈希函数计算出哈希值,取哈希值的低n位作为RETA的索引,根据RETA存储的值分发到对应的接收队列。
5.根据权利要求4所述的接入能力网元高速数据处理方法,其特征在于,所述配置的哈希函数为RSS对称哈希算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110674581.7A CN113553137B (zh) | 2021-06-17 | 2021-06-17 | 一种nfv架构下基于dpdk的接入能力网元高速数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110674581.7A CN113553137B (zh) | 2021-06-17 | 2021-06-17 | 一种nfv架构下基于dpdk的接入能力网元高速数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113553137A true CN113553137A (zh) | 2021-10-26 |
CN113553137B CN113553137B (zh) | 2022-11-01 |
Family
ID=78130618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110674581.7A Active CN113553137B (zh) | 2021-06-17 | 2021-06-17 | 一种nfv架构下基于dpdk的接入能力网元高速数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553137B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301808A (zh) * | 2021-12-23 | 2022-04-08 | 北京集智达智能科技有限责任公司 | 基于dpdk技术的x86平台网口性能测试方法及装置 |
CN114710811A (zh) * | 2022-04-07 | 2022-07-05 | 中国联合网络通信集团有限公司 | 数据流转发方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294169A (zh) * | 2016-08-17 | 2017-01-04 | 华中科技大学 | 一种基于符号执行虚拟机的数据竞争检测与重放方法 |
CN107147517A (zh) * | 2017-03-24 | 2017-09-08 | 上海交通大学 | 一种针对虚拟网络功能的自适应计算资源分配方法 |
WO2017152633A1 (zh) * | 2016-03-09 | 2017-09-14 | 中兴通讯股份有限公司 | 一种端口绑定实现方法及装置 |
US20180173547A1 (en) * | 2016-12-20 | 2018-06-21 | Intel Corporation | Pinning of virtual network function (vnf) deployments using hardware metrics |
CN109739618A (zh) * | 2018-12-10 | 2019-05-10 | 新华三云计算技术有限公司 | 虚拟机迁移方法及装置 |
CN110636139A (zh) * | 2019-10-15 | 2019-12-31 | 广州市品高软件股份有限公司 | 一种云负载均衡的优化方法及系统 |
CN111953706A (zh) * | 2020-08-21 | 2020-11-17 | 公安部第三研究所 | 基于https流量信息识别移动应用的方法 |
CN112148421A (zh) * | 2019-06-29 | 2020-12-29 | 华为技术有限公司 | 虚拟机迁移的方法以及装置 |
CN112398687A (zh) * | 2020-11-13 | 2021-02-23 | 广东省华南技术转移中心有限公司 | 云计算网络的配置方法、云计算网络系统以及存储介质 |
-
2021
- 2021-06-17 CN CN202110674581.7A patent/CN113553137B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017152633A1 (zh) * | 2016-03-09 | 2017-09-14 | 中兴通讯股份有限公司 | 一种端口绑定实现方法及装置 |
CN106294169A (zh) * | 2016-08-17 | 2017-01-04 | 华中科技大学 | 一种基于符号执行虚拟机的数据竞争检测与重放方法 |
US20180173547A1 (en) * | 2016-12-20 | 2018-06-21 | Intel Corporation | Pinning of virtual network function (vnf) deployments using hardware metrics |
CN107147517A (zh) * | 2017-03-24 | 2017-09-08 | 上海交通大学 | 一种针对虚拟网络功能的自适应计算资源分配方法 |
CN109739618A (zh) * | 2018-12-10 | 2019-05-10 | 新华三云计算技术有限公司 | 虚拟机迁移方法及装置 |
CN112148421A (zh) * | 2019-06-29 | 2020-12-29 | 华为技术有限公司 | 虚拟机迁移的方法以及装置 |
CN110636139A (zh) * | 2019-10-15 | 2019-12-31 | 广州市品高软件股份有限公司 | 一种云负载均衡的优化方法及系统 |
CN111953706A (zh) * | 2020-08-21 | 2020-11-17 | 公安部第三研究所 | 基于https流量信息识别移动应用的方法 |
CN112398687A (zh) * | 2020-11-13 | 2021-02-23 | 广东省华南技术转移中心有限公司 | 云计算网络的配置方法、云计算网络系统以及存储介质 |
Non-Patent Citations (6)
Title |
---|
HANJI SHEN等: "A Method for Performance Optimization of Virtual Network I/O Based on DPDK-SRIOV", 《2018 IEEE INTERNATIONAL CONFERENCE ON INFORMATION AND AUTOMATION (ICIA)》 * |
SIMON BAUER等: "Intra-Node Resource Isolation for SFC with SR-IOV", 《2018 IEEE 7TH INTERNATIONAL CONFERENCE ON CLOUD NETWORKING (CLOUDNET)》 * |
兰天翼等: "基于可编程硬件的有状态网络功能硬件加速架构", 《电子学报》 * |
刘畅等: "智能网卡应用于云网络加速方案研究", 《电信工程技术与标准化》 * |
张驰等: "SR-IOV技术在OpenStack中的应用", 《计算机系统应用》 * |
曾理等: "DPDK技术应用研究综述", 《网络新媒体技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301808A (zh) * | 2021-12-23 | 2022-04-08 | 北京集智达智能科技有限责任公司 | 基于dpdk技术的x86平台网口性能测试方法及装置 |
CN114301808B (zh) * | 2021-12-23 | 2023-11-10 | 北京集智达智能科技有限责任公司 | 基于dpdk技术的x86平台网口性能测试方法及装置 |
CN114710811A (zh) * | 2022-04-07 | 2022-07-05 | 中国联合网络通信集团有限公司 | 数据流转发方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113553137B (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
US8005022B2 (en) | Host operating system bypass for packets destined for a virtual machine | |
EP3629162B1 (en) | Technologies for control plane separation at a network interface controller | |
CN107623646B (zh) | 数据流传输方法、发送设备及接收设备 | |
US9407550B2 (en) | Method and system for controlling traffic over a computer network | |
US7609718B2 (en) | Packet data service over hyper transport link(s) | |
US8392565B2 (en) | Network memory pools for packet destinations and virtual machines | |
US7788411B2 (en) | Method and system for automatically reflecting hardware resource allocation modifications | |
US8660133B2 (en) | Techniques to utilize queues for network interface devices | |
US20070050520A1 (en) | Systems and methods for multi-host extension of a hierarchical interconnect network | |
CN104580011B (zh) | 一种数据转发装置和方法 | |
CN113553137B (zh) | 一种nfv架构下基于dpdk的接入能力网元高速数据处理方法 | |
US7403525B2 (en) | Efficient routing of packet data in a scalable processing resource | |
US7751401B2 (en) | Method and apparatus to provide virtual toe interface with fail-over | |
CN106557444B (zh) | 实现sr-iov网卡的方法和装置、实现动态迁移的方法和装置 | |
JP2014509427A (ja) | Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け | |
US8458366B2 (en) | Method and system for onloading network services | |
CN110636139B (zh) | 一种云负载均衡的优化方法及系统 | |
US8902731B2 (en) | Method, network card, and communication system for binding physical network ports | |
CN112769905A (zh) | 一种基于numa架构的飞腾平台下高性能网卡性能优化方法 | |
US20030118023A1 (en) | Processor with packet processing order maintenance based on packet flow identifiers | |
CN114363269A (zh) | 一种消息传输方法、系统、设备以及介质 | |
JP2000235536A (ja) | データ通信方式及び装置 | |
US7113518B2 (en) | Processor with reduced memory requirements for high-speed routing and switching of packets | |
JP6036445B2 (ja) | 通信システム、中継装置、通信方法、及びプログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |