DPDK源码分析之DPDK基础概览

本文介绍了DPDK的基本概念,包括为何需要DPDK、DPDK的框架及核心库,如EAL、Ring、Mempool、PMD等。DPDK通过轮询技术、巨页技术、CPU亲和性等优化手段提高数据处理性能,实现高速网络接口的高效处理。文章还提及DPDK的命令行启动参数和安装测试过程。
摘要由CSDN通过智能技术生成

本文主要介绍一下DPDK这项技术的基础概览,包括什么是DPDK,为什么有它存在的必要,它的框架是怎样的,使用了哪些技术实现,DPDK的应用场景有哪些,最后在centos7服务器上实装一个dpdk环境做一个简单的数据包收发的小实验。

网络基础知识

  1. 什么是路由器?

提供路由(host到host之间的最佳传输路径)与转发(路由器输⼊端的数据包移送⾄适当的输出端)两种重要机制的三层网络节点设备。

2. 什么是交换机?

交换机按部署方式分为二层交换机,三层交换机,四层交换机和七层交换机。

二层交换机工作在数据链路层,根据MAC进行交换机端口选择,转发通过ASIC (Application specific Integrated Circuit)芯片实现。总体的工作流程如下:

主机A通过ARP协议广播得到主机B的Mac地址,接着主机A以主机B的Mac地址和IP地址发送网络包,中间设备交换机根据Mac地址查找Mac-端口映射表,将数据包发送到对应的端口中,如果没有找到记录则会发送广播包,询问Mac地址并将响应包的端口归属进行新增记录。

三层交换机利用IP交换技术,在不同子网的两个主机通过映射关系直接硬件交换,而避开路由器,目的就是减轻路由器的负担。

四层交换机和七层交换机主要通过流的会话,传输层端口号以及协议内容,做出更智能的负载均衡决定。

3. 什么是网关?

网关就是网络的入口和出口,用于定义网络的边界,对于局域网来说网关就是路由器。

按照功能划分,最常见的就是传输网关,用于在2个网络间建立传输连接;其次还有应用网关是在使用不同数据格式间翻译数据的系统。典型的应用网关接收一种格式的输入,将之翻译, 然后以新的格式发送。

4. 什么是NFV?

NFV技术的诞生源于互联网发展迅速,原来运营商的架构存在很多痛点:能固化的运营设施与业务的灵活适配、稳定的通信标准与新业务的快速部署、粗粒度的网络资源调整与用户/业务资源的按需分配能力。

NFV技术,它使得专有的网络功能能够运行在通用x86架构硬件上的虚拟化网络功能(Virtual Network Function,VNF)中,即网络设备和网络功能解耦,为电信运营商和互联网服务商提供了一种灵活的业务部署手段和高效的组网方案,可以支持固移网络和 IDC 中 NAT(Network Address Translation,网络地址转换)、DPI(Deep Packet Inspection,深度分组检测)、EPC (Evolved Packet Core,演进分组核心网)、防火墙(Firewall)等各类业务功能的广域灵活部署与网元弹性扩展。

一个NFV的标准架构包括NFV infrastructure(NFVI),MANO(Management and Orchestration)和VNFs。

NFVI:提供VNF的运行环境,包括所需的硬件及软件。硬件包括计算、网络、存储资源;软件主要包括Hypervisor、网络控制器、存储管理器等工具,NFVI将物理资源虚拟化为虚拟资源,供VNF使用。
VNF:包括VNF和EMS,VNF网络功能,EMS为单元管理系统,对VNF的功能进行配置和管理。一般情况下,EMS和VNF是一一对应的。
VIM:NFVI管理模块,通常运行于对应的基础设施站点中,主要功能包括:资源的发现、虚拟资源的管理分配、故障处理等,为VNF运行提供资源支持。
VNFM:VNF管理模块,主要对VNF的生命周期(实例化、配置、关闭等)进行控制,一般情况下与VNF一一对应。
NFVO:NS生命周期的管理模块,同时负责协调NS、组成NS的VNFs以及承载各VNF的虚拟资源的控制和管理。
OSS/BSS:服务提供商的管理功能,不属于NFV框架内的功能组件,但NFVO需要提供对OSS/BSS的接口。

5. 什么是SDN?

SDN技术路线强调网络设备的控制面可直接编程,将网络服务从底层硬件设备中抽象出来,开发可编程的控制平面,硬件仍负责转发,数据中心使用较广。

SDN架构可分为基础设施层、控制层和应用层。

  • 基础设施层:主要为转发设备,实现转发功能,例如数据中心交换机。
  • 控制层:由SDN控制软件组成,可通过标准化协议与转发设备进行通信,实现对基础设施层的控制。
  • 应用层:常见的有基于OpenStack架构的云平台。另外,也可以基于OpenStack构建用户自己的云管理平台。

SDN使用北向和南向应用程序接口(API)来进行层与层之间的通信,分为北向API和南向API。北向API负责应用层和控制层之间的通信,南向API负责基础设施层和控制层之间的通信。

SDN抽象物理网络资源(交换机、路由器等),并将决策转移到虚拟网络控制平面。控制平面决定将流量发送到哪里,而硬件继续引导和处理流量,无需依赖标准的硬件设备。NFV的目标是将所有物理网络资源进行虚拟化,允许网络在不添加更多设备的情况下增长,这依赖于标准的硬件设备。

为什么要有DPDK

大部分的目标平台都是以Intel为架构的多核处理器,在IA上,网络数据包处理远早于DPDK而存在。从商业版的Windows到开源的Linux操作系统,所有跨主机通信几乎都会涉及网络协议栈以及底层网卡驱动对于数据包的处理。然而,在应对如今的万兆带宽的高速网络处理,现在架构的操作系统逐渐产生瓶颈,甚至在2010年前采用IA处理器的用户会得出这样一个结论,那就是IA不适合做高速包处理

我们先以Linux为例,传统网络设备驱动包处理的动作可以概括如下:

❑数据包到达网卡设备。

❑网卡设备依据配置进行DMA操作。

❑网卡发送中断,唤醒处理器。

❑驱动软件填充读写缓冲区数据结构

❑数据报文达到内核协议栈,进行高层处理。

❑如果最终应用在用户态,数据从内核搬移到用户态。

❑如果最终应用在内核态,在内核继续进行。

综上所述,从软件结构上看,报文的收发需要经过物理网卡驱程、宿主机内核网络协议栈、内核态虚拟交换层、虚拟机(VM)网卡驱程、虚拟机内核态网络协议栈、虚拟机用户态App等多个转发通道,存在着海量系统中断、内核上下文切换、内存复制、虚拟化封装/解封等大量CPU费时操作过程。

随着芯片技术与高速网络接口技术的一日千里式发展,报文吞吐需要高达10Gbit/s的端口处理能力,市面上已经出现大量的25Gbit/s、40Gbit/s甚至100Gbit/s高速端口,但这么大的数据流量,早期的Linux和服务器根本无法处理。

什么是DPDK

data-plane-development-kit,数据平面的开发套件,可以极大提高数据处理性能和吞吐量,为数据平面应用程序提供更

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DPDK是一种高性能数据包处理框架,能够在标准Intel处理器上实现高速数据包收发,其源码开放并有详细的开发者手册PDF可供参考。DPDK作为一种用户态数据包处理框架,利用整个计算机所有可用的CPU核心,实现了数据包的高吞吐量和低延迟。相比于传统的内核协议栈方式,DPDK可以在处理网络数据包时减少唤醒操作和内存复制等开销,提高网络数据包处理的效率。DPDK框架包括了四个核心模块:环形缓冲、内存管理、线程管理和设备驱动。其中,环形缓冲是DPDK最核心的模块之一,也是实现高吞吐量数据收发的关键。DPDK源码很庞大,其中包含设备管理、调度管理、协议栈等众多模块,需要有一定的网络编程基础和对硬件知识的理解才能够进行开发与调试。开发者手册PDF详细介绍了DPDK的架构、核心API、样例代码等内容,对于一些想要了解DPDK架构和开发的消息人士来说非常有用。然而,由于DPDK需要使用专有硬件进行加速,因此在实际的部署和应用过程中,需要较高的技能门槛和较大的硬件成本支持。 ### 回答2: DPDK是一个开源的数据平面开发套件,是一种优化高性能数据包处理的工具集。DPDK源码开发者们在构建高性能网络应用时所使用的关键组件之一,它由一组通用库和驱动程序组成,可让应用程序通过网络卡直接访问内存。DPDK的目标是加速数据包处理,减少处理延迟和CPU开销,从而提升系统的吞吐量、性能和响应能力。 DPDK开发者手册pdf包括官方文档、范例和指南等。它提供了对DPDK如何工作、如何使用和如何开发应用程序的深入了解。开发者手册包括DPDK核心库和网络接口、存储接口、虚拟设备和安全功能等详细说明,涵盖了从安装和配置到开发和调试的全过程。同时,开发者手册中还包含大量的代码实例及应用场景,可以帮助开发者更快地上手,实现高效的数据平面处理。 总之,DPDK源码开发者手册为网络开发人员提供了优秀的工具和文档支持,让开发者可以更加轻松和高效地构建高性能的网络应用程序。无论是在业务处理、数据中心或云环境中,DPDK都是一个可靠的数据平面开发框架,为网络应用程序提供了高速、可靠的运行环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值