dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/ 0vS/TRex/dpvs技术专家成长体系教程
课程围绕安全,网络,存储,云原生4个维度去讲解核心技术点。
6个专栏组成:dpdk网络专栏、存储技术专栏、安全与网关开发专栏、虚拟化与云原生专栏、测试工具专栏、性能测试专栏
一、dpdk网络
dpdk基础知识
- 多队列网卡,vmxnet/e1000
- igb_uio 与 vfio 模块
- kni 模块
- hugepage 的理解
- 零拷贝
- dpdk 与netmap 区别
- dpdk 的工作环境
网络协议栈
- dpdk-arp .
- netsh 静态 arp 表设置
- dpdk-icmp
- dpdk-udp
- udp 协议格式分析
- udp 协议 sendto,recvfrom 实现
- dpdk-ip .
- dpdk-tcp
- tcp 协议栈 bind,listen,accept 实 现
- tcp 协议栈 recv,send, close 的实现
- tcp 三次握手实现
- tcp 四次挥手实现
- tcp acknum 与 seqnum 的确认机制实现
- tcp 的并发连接设计
- epoll 并发的实现
- tcp 协议栈与 epoll 之间的回调实现
dpdk组件项目
- dpdk-acl
- dpdk-kni
- /dev/kni 的原理分析
- kni_dev 的流程
- kni 的 tx缓冲区,rx缓冲区
- kni 的用户空间与内核空间映射
- mbuf 如何转化为 kernel 的 sk_buff
- dpdk-timer
- bpftrace 的使用
- dpdk-bpf 源码流程
dpdk经典项目
- dpdk-dns
- dpdk-gateway
- dpdk-ddos 熵计算源码
- ddos-attach 检测精确度调试
- ddos attach 测试工具 hping3
- 布谷鸟 hash 原理与使用
二、存储
高效磁盘io读写 spdk ©
- 存储框架 spdk,为技术栈打开一扇存储的大门
- spdk 运行环境与 vhost
- NVMe 与 PCI 的关系
- 手把手实现spdk_ server
- nvme 与 pcie 以及手写 nvme 读写操作
- bdev 与 blob 之间的关系
- 实现 blob 异步读写
- blobstore 的读写操作实现与 rpc 的关系
- fio 性能测试性能对比 libaio,io_uring, psync
- fio plugin 工作流程
- fio plugin 开发
spdk文件系统的实现
- 文件系统功能拆解
- spdk_env_init 与 spdk_app_init 的差 别
- spdk_thread_poll 实现 rpc 回调
- fs_operations 结构体定义
- file_operat ions 结构体定义
- dir_operat ions 结构体定义
- syscall 的 hook 实现
- io 内存管理
- 基数树对文件系统内存管理
- spdk_blob 的 open, read, write, close
- 测试用例与调试入口函数
spdkkv存储的实现
- KV 存储拆解 Set, Get, Mod, Del
- app/. a库/. so库对于kv存储的选择
- bdev 与 blob 对于kv存储的选择
- kv service 启动 blob 资源操作
- kv service 关闭 blob 资源回收
- kv service 接口 set, get, modify, delete
- kv遍历与查找实现
- page 存储 chunk 的管理
- pagechunk 的 get 与 put
- page 单查找与多页查找
- btree,artree, hashmap,radixtree, rbtree之 间的选择
- slab 的实现
- slab 分配 slot 与释放 slot
- 为kv加上 conf 文件
- 测试用例与性能测试
三、安全与网关开发
可扩展的矢量数据包处理框架vpp (c/c++)
- vpp 命令详解
- mac/ip 转发 plugin
- load_balance plugin
- flowtable plugin
- vpp 源码
- 多网卡数据接收与转发
- 解决 plugin 编译加载
- vpp 启动 load so 的流程
- vpp 的结构体 vlib_main
- vpp 的结构体 vnet_main
- vector 的操作实现
- vpp vcl 库与 LD_PRELOAD
- vcl 原理讲解
- vcl tcpserver 实现原理
- vc| tcpclient 实现原理
- vcl 与 iperf3 的客户端与服务器
- vcl 与 nginx 的 wrk 性能测试
- vcl 与 haproxy 的性能测试
- vpp 1801版本与vpp 2206版本之间的差异
- vpp httpserver 的实现源码
- vpp plugin quic 源码分析
- vpp plugin hs_app 的源码实现分析
- vpp plugin rdma 的实现分析
- vpp plugin loadbalance 实现分析
- vpp plugin nat 的源码分析
- vpp host-stack tcp 协议实现
- vpp plugin 的测试用例实现
golang的网络开发框架nff- go (go lang)
- nff-go 实现的技术原理
- nff-go/low.h 实现分析
- nff-go 数据接收的实现
- nff-go 数据发送的实现
- ipsec 协议解析与 strongswan 的 ipsec
- nff-go 的缺陷与不足
四、虚拟化与云原生
DPDK的虚拟交换机框架OvS
- ovs编译安装,ovs核心组件内容
- ovs-vswitchd 的工作原理
- ovs-vswitchd 与 dpdk 的关系
- ovs-vsctI 的网桥,网口操作
- qemu-system-x86_64 构建多子网
- ovs 与 qemu 数据流分发
- ovs 搭建 docker 跨主机通信
- ovsdb-server 与 ovsdb 协议
- json-rpc 为控制面提供开发
- ovs-tcpdump/ ovs-l3ping
- 0vS 4种数据路径
- VXLAN数据协议
- ovs流量统计
高性能4层负载均衡器 DPVS
- dpvs 的技术组件与功能边界
- Ivs+keepalived 配置高可用 server
- dpvs 与 Ivs+keepalived 的关系
- dpvs.conf 的配置文件
- dpvs 的 FNat/NAT/SNAT模式
- dpvs 的 DR 模式
- dpvs 的 tun 模式
- 通过 quagga 配置 ospf
- dpvs 的 tc 流控操作与源码实现
- dpvs 代码架构分析
- dpvs 测试用例 ipset,tc,mempool
五、测试工具
perf3
- vpp vcl 的 perf3 接口 hook
- perf3 测网络带宽
- tcp 吞吐量测试
- udp 丢包与延迟测试
- son 测试结果输出
TRex
- TRex 的运行原理
- TRex 与 dpdk
- 构建 TRex 测试系统
- t-rex-64-debug-gdb 调试
- bg-sim-64 模拟单元测试
- YAML 文件编写
- 流编排与自动化框架
- 报文变量设置
dpdk- pktgen
- pktgen 命令讲解
- default.cfg 配置文件分析
- 120M bits/s 的转发速率
fio
- ioengine 的实现
- ioengine_ops 的分析
- iodepth 的分析
- spdk_nvme 的 fio 分析
- spdk_bdev 的 fio 分析
- spdk_blob 的 ioengine 实现
- psync,io_uring, libaio 性能对比
六、性能测试
性能指标
- 吞吐量 bps
- 拆链/建链 pps
- 并发
- 最大时延
- 最小时延
- 平均时延
- 负载
- 包速 fps
- 丢包率
测试方法
- 测试用例
- vpp sandbox
- perf3 灌包
- rfc2544
dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/0vS/TRex/dpvs技术专家成长体系教程
目标岗位
- 高级网络开发工程师
- DPDK开发工程师
- 云产品研发工程师
- 云基础开发工程师
- 高性能优化工程师
- SDN开发工程师
- NFV开发工程师
相关文章:

dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/ 0vS/TRex/dpvs技术专家成长体系教程
课程围绕安全,网络,存储,云原生4个维度去讲解核心技术点。 6个专栏组成:dpdk网络专栏、存储技术专栏、安全与网关开发专栏、虚拟化与云原生专栏、测试工具专栏、性能测试专栏 一、dpdk网络 dpdk基础知识 多队列网卡࿰…...

树莓派玩转openwrt软路由:5.OpenWrt防火墙配置及SSH连接
1、SSH配置 打开System -> Administration,打开SSH Access将Interface配置成unspecified。 如果选中其他的接口表示仅在给定接口上侦听,如果未指定,则在所有接口上侦听。在未指定下,所有的接口均可通过SSH访问认证。 2、防火…...
Gin:获取本机IP,获取访问IP
获取本机IP func GetLocalIP() []string {var ipStr []stringnetInterfaces, err : net.Interfaces()if err ! nil {fmt.Println("net.Interfaces error:", err.Error())return ipStr}for i : 0; i < len(netInterfaces); i {if (netInterfaces[i].Flags & ne…...
缓存降级代码结构设计
缓存降级设计思想 接前文缺陷点 本地探针应该增加计数器,多次异常再设置,避免网络波动造成误判。耦合度过高,远端缓存和本地缓存应该平行关系被设计为上下游关系了。公用的远端缓存的操作方法应该私有化,避免集成方代码误操作&…...

一文深入理解高并发服务器性能优化
我们现在已经搞定了 C10K并发连接问题 ,升级一下,如何支持千万级的并发连接?你可能说,这不可能。你说错了,现在的系统可以支持千万级的并发连接,只不过所使用的那些激进的技术,并不为人所熟悉。…...
pytorch中的归一化函数
在 PyTorch 的 nn 模块中,有一些常见的归一化函数,用于在深度学习模型中进行数据的标准化和归一化。以下是一些常见的归一化函数: nn.BatchNorm1d, nn.BatchNorm2d, nn.BatchNorm3d: 这些函数用于批量归一化 (Batch Normalization…...

【管理运筹学】第 10 章 | 排队论(1,排队论的基本概念)
文章目录 引言一、基本概念1.1 排队过程1.2 排队系统的组成和特征1.3 排队模型的分类1.4 系统指标1.5 系统状态 引言 开一点排队论的内容吧,方便做题。 排队论(Queuing Theory)也称随机服务系统理论,是为解决一系列排队问题&…...

【Express】服务端渲染(模板引擎 EJS)
EJS(Embedded JavaScript)是一款流行的模板引擎,可以用于在Express中创建动态的HTML页面。它允许在HTML模板中嵌入JavaScript代码,并且能够生成基于数据的动态内容。 下面是一个详细的讲解和示例,演示如何在Express中…...

Linux CentOS8安装gitlab_ce步骤
1 下载安装包 wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-15.0.2-ce.0.el8.x86_64.rpm/download.rpm2 安装gitlab yum install policycoreutils-python-utilsrpm -Uvh gitlab-ce-15.0.2-ce.0.el8.x86_64.rpm3 更新配…...

RabbitMq启用TLS
Windows环境 查看配置文件的位置 选择使用的节点 查看当前节点配置文件的配置 配置TLS 将证书放到同配置相同目录中 编辑配置文件添加TLS相关配置 [{ssl, [{versions, [tlsv1.2]}]},{rabbit, [{ssl_listeners, [5671]},{ssl_options, [{cacertfile,"C:/Users/17126…...

CakePHP 3.x/4.x反序列化RCE链
最近网上公开了cakephp一些反序列化链的细节,但是没有公开poc,并且网上关于cakephp的反序列化链比较少,于是自己跟一下 ,构造pop链。 CakePHP简介 CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Contr…...
练习之C++[3]
文章目录 1.模板类2.模板声明3.string类 1.模板类 模板可以具有非类型参数,用于指定大小,可以根据指定的大小创建动态结构所以可用来创建动态增长和减小的数据结构模板运行时不检查数据类型,也不保证类型安全,相当于类型的宏替换…...
[MT8766][Android12] 修改WIFI热点默认名称、密码、IP地址以及默认开启热点
文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MTK8766 版本: Android 12 kernel: msm-4.19 问题描述 最近做了一款没有屏幕显示的智能盒子,要想操控这款设备就只能通过adb投屏,如果默认不允许有线连接,那么要怎么实…...

【嵌入式】堆栈与单片机内存
堆栈 在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据 它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。 其实堆栈就是单片机中的一些存储单元,这些存储单元被指定保存一些特殊信息,比如地址࿰…...

十大排序算法Java实现及时间复杂度
文章目录 十大排序算法选择排序冒泡排序插入排序希尔排序快速排序归并排序堆排序计数排序基数排序桶排序时间复杂度 参考资料 十大排序算法 选择排序 原理 从待排序的数据元素中找出最小或最大的一个元素,存放在序列的起始位置, 然后再从剩余的未排序元…...
[Go]配置国内镜像源
配置 Windows 选一个 go env -w GOPROXYhttps://goproxy.cn,direct go env -w GOPROXYhttps://mirrors.aliyun.com/goproxy,direct查看环境配置 go env...
Java知识点补充
静态方法 vs 实例方法: 静态方法(使用 static 关键字声明):属于类,不依赖于对象实例,可以通过类名直接调用。 实例方法(不使用 static 关键字声明):属于类的实例…...

Webpack和JShaman相比有什么不同?
Webpack和JShaman相比有什么不同? Webpack的功能是打包,可以将多个JS文件打包成一个JS文件。 JShaman专门用于对JS代码混淆加密,目的是让JavaScript代码变的不可读、混淆功能逻辑、加密代码中的隐秘数据或字符,是用于代码保护的…...

WEB应用程序编程接口API
使用Web API Web API是网站的一部分,用于与使用具体URL请求特定信息的程序交互。这种请求称为API调用。请求的数据格式以易于处理的格式(JSON,CSV)返回。 Git和GitHub Git是一个分布式版本控制系统,帮助人们管理为项目所做的工作…...

进阶JAVA篇- BigDecimal 类的常用API(四)
目录 API 1.0 BigDecimal 类说明 1.1 为什么浮点数会计算不精确呢? 1.2 如何创建 BigDecimal 类型的对象 1.2.1具体来介绍三种方式来创建: 1.2.2 结合三种创建方法,一起来分析一下。 1.3 BigDecimal 类中的 valueOf(Strin…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...