问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一文了解DPDK

发布网友 发布时间:14小时前

我来回答

1个回答

热心网友 时间:12小时前

在现代网络中,实时处理大量数据包是关键任务,以往高效数据包处理通常依赖昂贵的专用硬件。数据平面开发套件(DPDK)的出现,使低成本商用硬件成为可能,实现网络功能的转移与虚拟化运行。最初由Intel于2010年发起,后在2017年4月成为Linux基金会项目,DPDK已在众多开源项目中得到应用,包括MoonGen、mTCP、Ostinato、Lagopus、Fast Data (FD.io)、Open vSwitch、OPNFV和OpenStack等。

然而,DPDK亦面临挑战,如不支持某些网卡、对Windows支持有限、调试困难、版本兼容性问题等。那么,DPDK是如何改进数据包处理的?传统方式数据包先到内核再至用户层处理,增加了延迟与CPU开销,影响性能。DPDK通过在用户空间实现快速数据包处理,绕过内核空间,直接在网卡(NIC)和用户空间应用程序间传输数据包。它由一组网络驱动程序和库组成,环境抽象层(EAL)从应用程序抽象出硬件操作。传统中断驱动处理转变为轮询驱动,避免中断开销。重要优化包括零拷贝技术,避免数据包从内核空间复制到用户空间,用户空间对开发者更具吸引力,无需修改内核,任意DPDK网络堆栈均可针对特定应用优化。

DPDK的数据包处理模型主要有两种:Run-to-Completion和Pipeline。在Run-to-Completion中,CPU内核负责数据包接收、处理和传输,支持多个内核与专用端口关联。通过接收端扩展(RSS)分配单个端口流量至多个内核。Pipeline模型中,每个内核专注于特定任务,例如接收/传输或应用程序处理,数据包通过memory rings在内核间传递。单核多CPU部署中,一个CPU用于操作系统,另一个用于DPDK应用;多核部署下,内核可分配给特定任务,决定取决于数据包周期、数据模块间交换范围、特定优化、代码可维护性等。

尽管DPDK不包含TCP/IP堆栈,但可使用F-Stack、mTCP、TLDK、Seastar和ANS等用户空间网络堆栈,提供阻塞和非阻塞套接字API,适用于FreeBSD实现。DPDK避免了网络堆栈的通用实现低效率问题,应用程序可包含针对特定用例优化的网络模块,适用于不需更高层(L2以上)处理的用例。

在DPDK之前,厂商如何实现高效数据包处理?专用硬件如定制ASIC、可编程FPGA或网络处理单元(NPU)以优化方式完成任务,但成本高昂且维护耗时,全职网络管理员应用升级和安全补丁也极为耗时。转向商用现成(COTS)硬件虽然成本效益更高且易于维护,但性能受限。数据包从NIC移动至操作系统,并通过内核堆栈处理,即使快速NIC,内核堆栈亦为瓶颈。系统调用、中断、上下文切换、包复制和逐包处理降低性能。DPDK解决了COTS硬件上的性能问题,无需昂贵定制硬件即可实现高效数据包处理。

DPDK的应用场景广泛,包括负载均衡、流分类、路由、访问控制(防火墙)和流量监管等。不仅在电信行业,也在云环境和企业中使用,如流量生成器(TRex)和存储应用(SPDK)。DPDK移植到Open vSwitch后,性能提升了7倍。在物联网应用中,数据包小,DPDK减少延迟,允许处理更多数据包。5G中的用户平面功能(UPF)处理用户数据包,延迟、抖动和带宽为关键性能指标,部分研究已提出将DPDK用于5G UPF的实现。在边缘网络部署UPF时,可通过DPDK API连接UPF应用(UPF-C)和SmartNIC(UPF-U)。

DPDK面临的挑战包括需要专业知识、管理内存、传递数据包、多核架构使用、PID命名空间问题、mmap使用不当、线程与CPU内核分配、DPDK库选择、失去Linux内核保护与工具、协议(如ARP、IPSec)、调试难度与高CPU使用率等问题。其他替代选择包括Snabbswitch、Netmap、StackMap、PacketShader和修改Linux内核的工具如eXpress Data Path(XDP)和基于远程直接内存访问(RDMA)的网络堆栈等。其他有效工具还包括packet_mmap(不绕过内核)和PF_RING(带有ZC驱动程序)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...结构的施工分包给其他单位那么是不是EPC总承包就不能分包 Win11玩不了地平线4如何解决_Win11玩不了地平线4怎么办 Win11玩不了地平线4如何解决_Win11玩不了地平线4怎么解决 地平线5警告显卡内存过低怎么办 极限竞速地平线5闪退怎么解决 极限竞速地平线5闪退解决方法 怎样册除手机屏幕上(精品游戏)图标 烧结普通砖有哪些 烧结普通砖都有哪些 ...4年后的年龄与弟弟3年前的年龄和是35岁。今年哥与弟各几岁??_百度... ...等于弟弟7年后的年龄,哥哥4年后与弟弟3年前的年龄的和是35岁。哥哥... 20个基于DPDK开源项目,建议收藏 soul怎么注销自己账号 注销账户方法 ...缺什么.高姓,按八字,五格命理应该叫什么名字? 阴阳师 阴阳师可以送ssr给别人吗? 阴阳师 阴阳师师傅怎么给徒弟送式神? 阴阳师 阴阳师式神怎么赠送? 阴阳师 阴阳师怎么赠送式神? 阴阳师 阴阳师赠送式神条件是什么? 体温计腋下要加0.5度吗 体温计量腋下准不准 电脑有开机密码但键盘坏了咋办笔记本键盘坏了开机怎样输密码 尿检隐血3个加号怎么回事 隐血尿3+严重吗 遇到性暴力该如何办? 如何消除婚姻中的性暴力行为 别强奸了怎么反抗 早产对新生儿健康有哪些影响? 关于学习的古诗七言绝句 带“中书”的七言诗句 带“书”的七言诗句 职工薪酬放什么科目 DPDK技术介绍(上) 宸极实验室—『工具使用』DPDK工具集介绍及安装避坑记录 直面NVIDIA DPU挑战,Intel推出全新处理器家族IPU 一篇文章助你了解dpdk所有技术点 浅析基于DPDK框架下OVS与VPP的差异点 ETL工具 灵魂 功能组件—工作流调度(Beeload&BeeDI) etl工程师工作需要长期出差吗 ETL工程师的主要职责和工作内容是什么? win8.1 在metro界面中,爱奇异经常卡死,让内存逛彪到100%,电脑会出现几... 摩托车箱子锁怎么打开? SAP怎么查询一个月物料领出明细 木瓜香蕉奶昔相关人群 木瓜的最佳吃法 阪星注册过商标吗?还有哪些分类可以注册? 长寿星注册过商标吗?还有哪些分类可以注册? 陌瑶注册过商标吗?还有哪些分类可以注册? 陌羊注册过商标吗?还有哪些分类可以注册? 广东佛山著名的均安蒸猪是哪个区的美食? 广东佛山顺德有什么特产 为什么说荣耀20 pro是一款智商鉴定机?