DPU网络开发SDK——DPDK(一)

news/2024/4/27 0:43:38/文章来源:https://blog.csdn.net/lingshengxiyou/article/details/128104925

随着软件定义网络SDN的不断发展,网络数据转发面的需求越来越多样化,这体现在更快的数据包处理速率,更高的网络吞吐带宽,更灵活的自定义网络协议。传统的硬件设备无法满足网络协议的自定义,而基于Linux内核网络协议栈的网络数据转发则存在处理流程繁琐,效率低下等问题。在此背景下,Intel公司提供了一款高性能网络数据平面开发套件DPDK(data plane development kit),它提供了一个简单方便的,完整的,快速的数据包处理解决方案。

目前,DPDK被广泛应用在网络转发组件的开发当中,如负载均衡网关,NAT网关,虚拟机交换机OVS也同样包含了对DPDK的支持。由于DPDK能够向网络转发面组件提供快速高效的对原生数据包进行处理的能力,其在DPU的研发上也扮演着重要的角色。

DPDK主要包含以下几大特性,借助这些特性网络转发面组件得以实现快速高效的数据包处理:

  • 用户态数据包处理

传统情况下,当网卡收到数据包时,需要经过内核网络协议栈的处理,协议栈将头部一层层进行剥离之后,才能将最终数据交付给用户态进程;过程中会存在内核空间向用户空间进行内存拷贝的情况,这会消耗大量的计算资源。

Linux内核源码中提供了uio驱动模块,网卡硬件设备在绑定该模块之后,会将设备暴露在用户空间;DPDK通过读取该uio文件,能够直接收取原始的二层数据包并直接写入用户态进程的内存空间当中;用户态进程可直接对数据包的各层数据进行分析并根据需要进行修改、转发或选择丢弃;发送数据包时,则通过写入该uio文件进行发送。

在收取-处理-发送的过程中,数据包绕开了内核网络协议栈的处理逻辑,且处理过程中未发生过内存的拷贝,这就节省了大量的开销;且用户态进程拿到的数据包是原始的二层数据包,开发者可根据需要自主决定对该数据包的处理方式,更便于自定义网络协议的实现。

无DPDK与有DPDK的对比

DPDK工作原理

  • PMD轮询模式收包

传统Linux系统中,当网卡收到数据包时,会借助DMA技术将数据包发送到预先分配好的内存缓冲区里面,之后产生中断通知内核有数据包过来。Linux内核会对中断进行响应,将接收到的数据帧交给内核中的网络协议栈进行处理,最后数据被复制到了用户空间或者直接在内核协议栈中处理完毕。

通过中断通知内核有数据包到来的方法在低带宽低吞吐等环境下能够满足需求,但在云平台这样要求高带宽高吞吐的情况下,中断方式会引发中断风暴,内核需不间断的处理中断请求,不利于内核对数据包和其他内核运算的处理。

DPDK提供了PMD(Poll mode driving)轮询模式实现对数据包的收取,不需要网卡通过中断通知内核收取到数据包,而是由用户态进程不间断去查询网卡是否收取到数据包,有则处理之,无则进行下一轮查询。在高吞吐情况下,一次轮询可批量处理多个数据包,减少了中断引发的系统开销。

  • 大页内存

Linux内核中默认页面的大小是4KB,在64位系统中页表被划分为5级,用户态进程在寻址时需要经过4次页表查找才能将虚拟地址转换为物理地址。页表查找过程是高性能处理进程的一项瓶颈,而使用大页内存可有效减少页表查询的次数,减轻TLB的查询压力和查询miss的概率。在64位系统中支持2MB和1GB两种类型的大页内存,分别需要4级和3级页表的支持,DPDK一般使用1G大页内存,仅需2次页表查询即可实现虚拟地址到物理地址的转换。

  • CPU独占及亲和性

运行基于DPDK的网络转发面处理组件的主机会提前将部分CPU的Processor隔离出来专门提供给DPDK使用,DPDK进程在初始化阶段会根据配置初始化线程数量,并将线程和Processor进行绑定。绑定之后Processor不会再处理绑定线程以外的其他线程,被绑定线程也不会调度到其他Processor上进行处理,此举有效减少了因线程调度产生的上下文切换的开销,并减少了Cache Miss发生的概率。

  • 有助于转发处理逻辑的数据结构

DPDK提供了一些有助于编写网络转发平面处理逻辑的数据结构,如Timer,Mbuf,Ring等。Timer实现了计时器的功能;Mbuf提供了基本的内存缓存片段,用于缓存数据包,并支持片段向前后进行扩展;Ring实现了FIFO队列,且该队列是无锁的。

  • QoS和ACL

DPDK提供了相应的数据结构,基于此数据结构及关联的API,可以在用户态进程中实现限速和访问控制这两项网络转发平面必须的功能。

  • 适配多种类型的实体或虚拟网络设备

DPDK是由Intel开发并维护的,最初仅支持对Intel系列网卡的支持,后DPDK陆续支持了对Mellanox,Virtio等设备的支持,使得DPDK的使用范围进一步扩大。

以上是DPDK的在加速网络数据面处理上减少的开销和提供的便利,底层实现上仍然是基于Linux内核提供的功能,在接下来的几期文章中将对DPDK深入分析,以理清其内部实现机制。

原文链接:https://zhuanlan.zhihu.com/p/551726020 

(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂

更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加qun免费
领取,关注我持续更新哦! ! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_38952.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【能效管理】变电所运维云平台在上海某医院的设计分析

摘要:本文概述了变电所电力运维技术,分析了医院变电所中存在的技术设备老化和技术荷载不足的技术性问题,并从主变低压进出线路监测故障、环境监测故障、设备档案记录、运维排班记录、分析报告五个方面探讨了变电所电力运维技术的具体应用。变…

Java定时器选择

java计时器和死循环哪个好?哪个建议使用? 计时器性能更好,但是写起来稍微复杂一点。如果是非常短暂的延迟,用死循环也未尝不可。一般来说能不用死循环的尽量不用死循环!如果你使用的是JDK1.5以上的,可以使…

高空简易水果采摘装置设计(CAD+proe)

目 录 摘 要 I Abstract II 1 绪论 1 1.1 选题背景及意义 1 1.2研究现状 1 1.2.1国外果园采摘机械现状 1 1.2.2国内果园采摘机械现状 4 1.2.3果园机械存在问题 5 1.2.4果园采摘机械的发展趋势 6 1.3研究主要内容 7 2 高空简易水果采摘装置原理 8 2.1 水果实采摘方式的选择 8 2.…

时间序列:时间序列模型---随机游走过程(The Random Walk Process)

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 随机游走过程是一种特殊的ARMA序列。从分子运动到股价波动等现象都被建模为随机游走。 随机游走过程是AR(1)序列,而且,时间序列在时刻的值为: 随机游走过程本质上是到当前时间…

供应双功能螯合剂THP-Mal,THP 马来酰亚胺,CAS:1314929-99-1

一:产品描述 1、名称 THP-Mal THP Maleimide THP 马来酰亚胺 2、CAS编号:1314929-99-1 3、分子式:C44H57N9O13 4、分子量:919.41 5、外观:白色或者灰白色粉末 6、沸点:1389.365.0 C(Predicted) …

Lint-staged自动修复格式错误及小结

文章目录一、背景二、Lint-staged2.1 简介2.2 修改package.json2.3 修改pre-commit2.4 测试三、小结3.1 代码格式规范3.2 Git提交规范一、背景 通过前面几节的介绍,目前想要提交代码,就要保证代码格式规范和提交信息格式规范,特别是pre-subm…

CSS布局的三种方式

绝对定位 绝对定位&#xff1a; ​ 属性&#xff1a;position 值&#xff1a;absolute <style> p.abs{position: absolute;left: 150px;top: 50px; }</style><p >正常文字1</p> <p >正常文字2</p> <p class"abs" >绝对定…

图库 | 图计算的适用场景有哪些?

图计算适用的场景非常广泛。在其肇始的早期阶段&#xff0c;图计算仅限于学术界以及工业界资深的研究机构内部&#xff0c;随着计算机体系架构的发展&#xff0c;图计算也在更广泛的行业和场景中得到应用。按照时间维度我们大体可以把图计算的发展及适用范围分为如下几个阶段&a…

umask 设置文件权限掩码

我们在创建文件或者目录时&#xff0c;看到的权限往往和我们设置的不一样&#xff0c;原因就在于创建文件时要受到 umask的影响。 目录 一、实际情景介绍 二、文件权限掩码 1、什么是权限掩码&#xff1f; 2、权限掩码的作用过程 3、设置权限掩码的两种方式 (1) umask 命…

【SpringCloud】08 分布式事务 seata

文章目录seata一、seata服务端的搭建&#xff08;1&#xff09;下载seata服务端&#xff08;2&#xff09;解压&#xff08;3&#xff09;配置seata的存储方式&#xff08;4&#xff09;创建seata数据库并导入相关表&#xff08;5&#xff09;把mysql的驱动jar放入到seata服务的…

智能运维应用之道,告别企业数字化转型危机

面临的问题及挑战 数据中心发展历程 2000 年中国数据中心始建&#xff0c;至今已经历以下 3 大阶段。早期&#xff1a;离散型数据中心 IT 因以项目建设为导向&#xff0c;故缺乏规划且无专门运维管理体系&#xff0c;此外&#xff0c;开发建设完的项目均是独立运维维护&#…

产品经理要不要考PMP?进化你能力的阶梯!(附:新版考纲及教材)

产品经理和项目经理看起来是毫不相关的两个专业&#xff0c;那么产品经理要不要考PMP呢&#xff1f;其实是非常有必要的。 以前去面试产品经理&#xff0c;HR只会问1个问题&#xff1a;会用axure吗&#xff1f;一开始对产品经理的定义就是设计产品原型的。能设计产品原型&…

Pytest接口测试框架实战项目搭建(三)

一、前言 前面相当于已经讲完整体框架搭建了&#xff0c;本篇主要讲述在实际业务系统的接口请求中&#xff0c;如何运用好该接口自动化测试框架。 二、步骤演示 1、在conf/api_path.py新增需要测试的接口&#xff0c;标黄底色为新加 存放测试接口仅这一个文件就行&#xff0c…

【DevPress】V2.4.3版本发布,增加内容收录管理

DevPress V2.4.3版本于2022年11月10日发版&#xff0c;增加内容收录模块&#xff0c;方便用户内容收录。 一、该版本功能包含 1、新需求 1&#xff09;控制台增加内容收录管理模块&#xff0c;包括收录内容额度管理、自动收录功能、基于内容搜索做收录以及收录内容列表。 - …

[SWPUCTF 2018]SimplePHP

考点&#xff1a;文件上传 试了一下&#xff0c;直接上传php文件是不行的&#xff0c;.user.ini和.htaccess也不行 能看到有提示&#xff0c;flag在f1ag.php中 在查看文件功能处发现get传参&#xff0c;可能是文件包含 尝试包含当前页面 ?filefile.php 得到 <?php h…

测试大老都是怎么理解cookiesession的?

为什么要学习cookie和session呢&#xff1f;若是没有掌握cookie和session的会话机制&#xff0c;就不了解客户端与服务器之间的交互通信原理&#xff0c;也就定位不了产生bug的原因。 cookie与session他们是如何理解的呢&#xff1f; 1、cookie与session区别&#xff1f; co…

STC 51单片机44——实现0.5秒间隔的单向流水灯

// 12MHz晶振 #include "reg52.h" #include "intrins.h" #define time (65536-50000) // 单次定时50ms unsigned char cn; unsigned char temp; void main(void) { cn10; //10*50ms0.5s temp0x7f; TMOD 0x10; //set tim…

springboot+java+vue大学生求职招聘就业岗位匹配推荐系统

目 使用人职匹配推荐系统分为管理员和用户、企业三个权限子模块。 管理员所能使用的功能主要有&#xff1a;首页、个人中心、用户管理、企业管理、岗位信息管理、岗位类型管理、应聘信息管理、应聘状况管理、平台费用管理、系统管理等。 用户可以实现&#xff1b;首页、个人中…

GFS分布式

GFS是什么&#xff1f; 1.1 简单介绍 这个问题说大也大&#xff0c;说小也小。GFS是Google File System的缩写&#xff0c;字面意义上就是Google的文件系统&#xff0c;技术层面上来讲&#xff0c;GFS是Google在2003年前后创建的可扩展分布式文件系统 &#xff0c;用来满足 Goo…

【visual studio】visual studio 2022 无法 复制黏贴

visual studio 2022 cannot copy paste 其他网友也有反馈到微软&#xff1a;VS 2022 Copy and Paste form feature Broken?Copy paste still not fixed in Visual studio 2022表现是突然就无法复制和黏贴了其他的app 就没有这个问题每次都是重启电脑解决。 2022年11月fix 今…