DPDK 学习 网络协议栈-vpp-OvS-DDos-虚拟化专家之路
Posted 勿忘初心呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DPDK 学习 网络协议栈-vpp-OvS-DDos-虚拟化专家之路相关的知识,希望对你有一定的参考价值。
一、什么是DPDK
对于用户来说,它可能是一个性能出色的包数据处 理加速软件库;对于开发者来说,它可能是一个实践包处理新想法的创 新工场;对于性能调优者来说,它可能又是一个绝佳的成果分享平台。
DPDK 用软件的方式在通用多核处理器上演绎着数据包处理的新篇 章,而对于数据包处理,多核处理器显然不是唯一的平台。支撑包处理 的主流硬件平台大致可分为三个方向。
- 硬件加速器
- 网络处理器
- 多核处理器
在类似 IA(Intel Architecture)多核处理器为目标的平台上,网络数据包处理远早于 DPDK 而存在。从商业版的 Windows 到开源的 Linux操作系统,所有跨主机通信几乎都会涉及网络 协议栈以及底层网卡驱动对于数据包的处理。然而,低速网络与高速网 络处理对系统的要求完全不一样。
二、DPDK源码目录结构
lib/ : DPDK的库源代码
drivers/ : DPDK轮询模式驱动程序源代码
app/ : DPDK应用程序源代码
examples/ : DPDK的一些应用程序例子源代码
config/ : DPDK关于arm和x86平台的一些编译配置
buildtools/ : DPDK一些编译配置的脚本
mk/ : DPDK的Makefile
usertools/ : DPDK提供给用户的一些实用工具
三、常用术语及缩写
ACL:Access Control List,访问控制列表,是路由器和交换机接口的指令列表,用来控制端口进出的数据包;简而言之就是用来控制数据流。
SSL:Secure Sockets Layer,安全套接层,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密。
RSS:Receive Side Scaling,是一种能够在多处理器系统下使接收报文在多个CPU之间高效分发的网卡驱动技术。
NUMA:Non Uniform Memory Access Architecture,非统一内存访问架构;
QOS:Quality of Service,服务质量,指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。
NIC:Network Interface Card,网卡,网卡是局域网中最基本的部件之一,它是连接计算机与网络的硬件设备。
PCI:Peripheral Component Interconnect,计算机一种标准总线,NIC就是使用的这种总线方式。
PMD:Poll Mode Drive,轮询模式驱动,DPDK就是采用的这种模式。
RTE:Run Time Environment,通过PMD实现快速分组处理数据的一个框架。
MPLS:Multi-Protocol Label Switching,多协议标签交换,是一种用于快速数据包交换和路由的体系,它为网络数据流量提供了目标、路由地址、转发和交换等能力。更特殊的是,它具有管理各种不同形式通信流的机制。
四、 DPDK 学习虚拟化专家之路
DPDK/网络协议栈/vpp/OvS/DDos/SDN/NFV/虚拟化/高性能专家之路 系统性学习
DPDK 如何支持千万级别并发,c10m的极限瓶颈在哪里?
DPDK 知识点学习大纲
DPDK 网络
网络协议栈项目
- dpdk-arp
- dpdk-icmp
- dpdk-udp
- dpdk-ip
- dpdk-tcp
dpdk组件项目
- dpdk-mp
- dpdk-acl
- dpdk-kni
- dpdk-timer
- dpdk-bpf
- dpdk-mbuf
dpdk经典项目
- dpdk-dns
- dpdk-gateway
- dpdk-nat
- dpdk-ddos
- dpdk-firewall
- dpdk-switch
- dpdk-pktgen
DPDK 框架
可扩展的矢量数据包处理框架vpp( c/c++)
- vpp 命令详解
- mac/ ip 转发 plugin
- ddos node
- load_balance plugin
- NAT plugin
- flowtable plugin
- vpp源码
DPDK的虚拟交换机框架OvS
- OvS三大组件ovs-vswitchd,ovsdb-server,openvswitch.ko
- OvS报文处理机制
- OvS4种数据路径
- VXLAN数据协议
golang的网络开发框架nff-go(golang)
- antiddos
- firewall
- ipsec
- netcap
轻量级的switch框架snabb( lua)
- 12vpn
- snabbnfv
- ipfix
- lwaftr
高效磁盘io读写spdk ( C )
- NVMe,1/OAT,IDXD,Virtio,VMD
- 后端块设备 NVMe/RBD/AIO
- 存储服务 bdev与Blobstore
- 存储协议 iSCSI,NVMe , vhost-scsi
DPDK 源码
内核驱动
- igb_uio
- vfio
- kni
内存
- mbuf
- mempool
协议
- ipsec
- bpf
- pci
- Flow_classify
虚拟化
- vhost
- virtio
cpu
- rcu
- ring
- sched
安全
- security
- cryptodev
- compressdev
性能测试
性能指标
- 吞吐量bps
- 拆链/建链pps
- 并发
- 最大时延
- 最小时延
- 平均时延
- 负载
- 包速fps
- 丢包率
测试方法
- 测试用例
- vpp sandbox
- perf3灌包
- rfc2544
测试工具
- perf3
- trex
- testpmd
- pktgen-dpdk
工作岗位
- 高级网络开发工程师
- DPDK开发工程师
- 云产品研发工程师
- 云基础开发工程师
- 高性能优化工程师
- SDN开发工程师
- NFV开发工程师
以上是关于DPDK 学习 网络协议栈-vpp-OvS-DDos-虚拟化专家之路的主要内容,如果未能解决你的问题,请参考以下文章
突破Linux内核网络协议栈瓶颈的技术方案-dpdk+vpp