IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 冲破内核瓶颈,让I/O性能飙升~【DPDK工程师手册】 -> 正文阅读

[网络协议]冲破内核瓶颈,让I/O性能飙升~【DPDK工程师手册】

在这里插入图片描述

一、什么是DPDK?

数据平面开发套件
(DPDK [1] ,Data Plane Development Kit)是由6WIND,Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。

二、DPDK的主要目的

开发DPDK的主要目的,是在数据平面应用中为快速的数据包处理提供一个简单而完善的架构。在理解此工具集之后,开发人员可以以此为基础进行新的原型设计,或简单地为我所用。

三、工作环境

DPDK的环境抽象层向应用与函数库隐藏了底层环境的细节,因而能扩展到任何处理器上使用。就操作系统来说,它提供了对Linux和FreeBSD的支持。

越来越多的岗位需要dpdk,那从dpdk该如何提升

在这里插入图片描述
在这里插入图片描述就市场而言,随着业务量用户量的增长,会有越来越多的公司用到dpdk,而学好dpdk也会成为你进军优秀的互联网公司甚至大厂的一个方向。关于dpdk的学习他不同与java偏业务,更多的是重视你对底层技术的理解,对计算机原理基础的学习程度以及你的学历。

一句话形容:与业务关联不大,与底层技术关系较大。

接下来就继续了解一下dpdk的四大核心技术:

四、DPDK技术核心技术

1、DPDK网络

①网络协议栈

dpdk-arpdpdk-icmpdpdk-udpdpdk-ipdpdk-tcp 

②dpdk组件

dpdk-mpdpdk-acldpdk-knidpdk-timerdpdk-bpfdpdk-mbuf 

③dpdk经典项目

dpdk-dnsdpdk-gatewaydpdk-natdpdk-ddosdpdk-firewall

dpdk -switchdpdk-pktgen

2. DPDK框架

①可拓展的矢量数据包处理框架vpp(c/c++)

vpp命令详解mac/ip转发pluginddos nodeload_balance pluginNAT pluginflowtable pluginvpp源码

②DPDK的虚拟交换机框架OV

S 0vS三大组件ovs-vswitchd ,ovsdb-server,openvswitch.ko0vS报文处理机制0vS 4种数据路径VXLAN数据协议

③golang的网络开发框架nff-go(golang)

AntiddosFirewallIpsecnetcap 

④轻量级的switch框架snabb(lua)

12vpnSnabbnfvIpfixlwaftr 

⑤高效磁盘io读写 spdk?

NVMe,I/OAT,IDXD, Virtio,VMD后端块设备NVMe/RBD/AIO 存储服务bdev与Blobstore 存储协议iSCSI,NVMe,vhost-scsi 

3. DPDK源码

①内核驱动

igb_uioVfiokni 

②内存

MbufMempool

③协议

IpsecBpfPciFlow_classify

④虚拟化

VhostVirtio

⑤cpu

RcuRingSched

⑥安全

SecurityCryptodevcompressdev

4. 性能测试

①性能指标

吞吐量

bps拆链/建链pps并发最大时延最小时延平均时延负载包速fps丢包率

②测试方法

测试用例vpp sandboxperf3灌包rfc2544 

③测试工具

perf3TrexTestpmdpktgen-dpdk 

五、DPDK市场发展

DPDK的大多数应用最初是在电信领域。 随着CSP采用网络虚拟化来降低运营成本并加快新服务的部署,他们虚拟化了需要高吞吐量和/或低延迟的用例,例如路由器,防火墙,无线电访问网络(RAN)和演进的分组核心(EPC)。 虚拟化平台的供应商,在这些情况下,VNF和应用程序

已在其产品中利用了DPDK,以实现CSP的性能目标。随着CSP探索新的边缘托管应用,例如视频缓存,监控,增强现实(AR),辅助驾驶,零售和工业物联网,DPDK仍然是实现积极性能目标的关键技术。

类似DPDK最先在电信应用程序中, 对数据包处理功能的性能要求一样, DPDK越来越多地应用于企业和云当中。 例如,在2018年,VMware引入了他们的NSX-T数据中心软件定义基础结构的基于DPDK的边缘配置。 此版本的NSX-T地址需要具有可变数据包大小的高数据包吞吐量的应用程序以及支持具有以下功能的高速NIC的服务器高达100Gbps的北/南流量。 通常,南北向流的包大小各不相同,数据包处理要求,即使它们只占总流量的不到20%。 在此用例中,通过使用带有小数据包(64字节)的DPDK,英特尔和VMware的分析表明,性能提高了五倍。

同时有几家公司已将DPDK用于金融应用,其中低延迟带来了巨大的竞争优势。 例如,在高频交易(HFT)中,延迟会直接影响交易者的交易效率 算法策略及其超越竞争对手的能力。 信息周刊

估计,对于一家大型经纪公司来说,一毫秒每年价值1亿美元。 DPDK是这个市场解决方案供应商开发所依赖的关键技术。

写在最后:

Dpdk作为目前在互联网越来越流行的底层技术,受到越来越多的优秀互联网公司的欢迎与使用。但对于不少程序员来说可能只是见过或是听过,并没有深入的学习和使用。如果你也是对dpdk感兴趣或是有往dpdk工程师岗位方向的朋友们可以了解一下【零声教育】的【dpdk/网络协议栈/vpp/OvS/DDos/SDN/NFV/虚拟化/高性能专家之路】系统课程。

学习后可从事开发岗位:

高级网络开发工程师
DPDK开发工程师
云产品研发工程师
云基础开发工程师
高性能优化工程师
SDN开发工程师
NFV开发工程师 
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:40:09  更:2021-12-15 18:42:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:58:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码