作为近年来运用越来越广泛,被互联网企业越来越认可的技术,网络虚拟化技术:dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/0vS/TRex/dpvs技术等该如何学习呢?
这里就把 相关技术点进行整理总结,看完以后,不会让你失望的。
DPDK 网络
DPDK 基础知识
- 多队列网卡,vmxnet/e1000
- igb_ uio与vfio模块
- kni模块
- hugepage的理解
- 零拷贝
- dpdk与netmap区别
- dpdk的工作环境
网络协议栈
- dpdk-arp
- netsh静态arp表设置
- dpdk-icmp
- dpd-udp
- udp协议格式分析
- udp协议sendto,recvfrom实 现
- dpdk-ip
- dpdk-cp
- tcp协议栈bind, listen,accept实 现
- tcp协议栈recv,send, c lose的实现
- tcp三次握手实现
- tcp四次挥手实现
- tcp acknum 与seqnum的确认机制实现
- tcp的并发连接设计
- epoll并发的实现
- tcp协议栈与epoll之间的回调实现
dpdk组件项目
- dpdk-acl
- dpdk-kni
- /dev/kni的原理分析
- kni_ dev的流程
- kni的tx缓冲区,rx缓冲区
- kni的用户空间与内核空间映射
- mbuf如何转化为kerne|的sk_buff
- dpdk-timer
- bpftrace的使用
- dpdk-bpf源码流程
dpdk经典项目
- dpdk-dns
- dpdk- -gateway
- dpdk-ddos熵计算源码
- ddos-attach检测精确度调试
- ddos attach测试 工具hping3
- 布谷鸟hash原理与使用
存储
高效磁盘io读写spdk ( C )
- 存储框架spdk,为技术栈打开一扇存储的大门
- spdk运行环境与vhost
- NVMe与PCI的关系
- 手把手实现spdk_ server
- nvme与pcie以及手写nvme读写操作
- bdev与blob之间的关系
- 实现blob异步读写
- blobstore的读写操作实现与rpc的关系
- fio性能测试性能对比libaio,io_ ur ing, 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_ b lob的open, read, wr ite, c lose
- 测试用例与调试入口函数
spdk kv 存储的实现
- KV存储拆解Set, Get, Mod, Del
- app/. a库/. so库对于kv存储的选择
- bdev与bl ob对于kv存储的选择
- kv service启动 blob资源操作
- kv service关闭blob资 源回收
- kv service接口
- set, get, mod ify, 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_ ba lance plugin
- flowtable plugin
- vpp源码
- 多网卡数据接收与转发
- 解决plugin编译加载
- vpp启动load so的流程
- vpp的结构体vlib_ main
- vpp的结构体vnet_ main
- vector的操作实现
- vpp vcl库与LD_ _PRELOAD
- vcl原理讲解
- vcl tcpserver实 现原理
- vcl tcpcl ient实现原理
- vcl与iperf3的客户端与服务器
- vcl与ng inx的wrk性能测试
- vcl与haproxy的性能测试
- vpp 1801版本与vpp 2206版本之间的差异
- vpp httpserver 的实现源码
- vpp plugin quic源码分析
- vpp plugin hs_ app的源码实现分析
- vpp plugin rdma的实现分析
- vpp plugin loadba lance实现分析
- 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-vsct |的网桥,网口操作
- qemu-system-x86_ 64构建多子网
- ovs与qemu数据流分发
- ovs搭建docker跨主机通信
- ovsdb-server与ovsdb协议
- json-rpc 为控制面提供开发
- ovs-tcpdump/ ovs- |3p ing
- 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 vc |的perf3接口hook
- perf3测网络带宽
- tcp吞吐量测试
- udp丢包与延迟测试
- json测试结 果输出
TRex
- TRex的运行原理
- TRex与dpdk
- 构建TRex测试系统
- t-rex-64-debug-gdb调试
- bg-sim-64模拟单元测试
- YAML文件编写
- 流编排与自动化框架
- 报文变量设置
dpdk-pktgen
- pktgen命令讲解
- default. cfg配置文件分析
- 120M bits/s的转发速率
fio
- ioeng ine的实现
- ioengine_ ops的 分析
- iodepth的分析
- spdk_ nvme的fio分析
- spdk_ bdev的fio分 析
- spdk_ b lob的ioeng ine实现
- psync, io_ uring, libaio性 能对比
性能测试
性能指标
- 吞吐量bps
- 拆链/建链pps
- 并发
- 最大时延
- 最小时延
- 平均时延
- 负载
- 包速fps
- 丢包率
测试方法
- 测试用例
- vpp sandbox
- perf3灌包
- rfc2544
相关学习资料、视频教程
获取地址
https://docs.qq.com/doc/DR0FDUVBPSlB6alhW?&u=07f47441d55c49a5bfcd7137907e5276 学习地址 https://ke.qq.com/course/5066203?flowToken=1043068
适宜工程师人群
1.工作中技术没有挑战,工作中接触不到新技术的在职工程师 2.从事嵌入式开发,对网络存储底层感兴趣在职工程师 3. 自己研究学习速度较慢,不能系统构建知识体系的开发人员 4.从事网络存储安全的工程师,想深入了解底层技术原理
参数
- 32个项目案例
- 2w+行的手写代码
- 4个dpdk的技术方向安全,网络,存储,云原生
- 100+小时的录播时长
目标岗位
- 高级网络开发工程师
- DPDK开发工程师
- 云产品研发工程师
- 云基础开发工程师
- 高性能优化工程师
- SDN开发工程师
- NFV开发工程师
|