DPDK 学习 网络协议栈-vpp-OvS-DDos-虚拟化专家之路

识字粗堪供赋役,不须辛苦慕公卿。这篇文章主要讲述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就是使用的这种总线方式。
【DPDK 学习 网络协议栈-vpp-OvS-DDos-虚拟化专家之路】PMD:Poll Mode Drive,轮询模式驱动,DPDK就是采用的这种模式。
RTE:Run Time Environment,通过PMD实现快速分组处理数据的一个框架。
MPLS:Multi-Protocol Label Switching,多协议标签交换,是一种用于快速数据包交换和路由的体系,它为网络数据流量提供了目标、路由地址、转发和交换等能力。更特殊的是,它具有管理各种不同形式通信流的机制。
四、 DPDK 学习虚拟化专家之路??DPDK/网络协议栈/vpp/OvS/DDos/SDN/NFV/虚拟化/高性能专家之路 系统性学习??
??DPDK/网络协议栈 入门讲解篇??
??手把手带你用 DPDK 实现 tcp 网络传输??
??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开发工程师



    推荐阅读