初学者也能看懂的DPDK解析( 四 )

这个实现 , 也是GLIBC的实现 , 先常量优化、CPU指令优化、最后才用裸代码实现 。毕竟都是顶端程序员 , 对语言、编译器 , 对实现的追求不一样 , 所以造轮子前一定要先了解好轮子 。
google开源的cpu_features可以获取当前CPU支持什么特性 , 从而对特定CPU进行执行优化 。高性能编程永无止境 , 对硬件、内核、编译器、开发语言的理解要深入且与时俱进 。
七、DPDK生态
对我们互联网后台开发来说DPDK框架本身提供的能力还是比较裸的 , 比如要使用DPDK就必须实现ARP、IP层这些基础功能 , 有一定上手难度 。如果要更高层的业务使用 , 还需要用户态的传输协议支持 。不建议直接使用DPDK 。
目前生态完善 , 社区强大(一线大厂支持)的应用层开发项目是FD.io(The Fast Data Project) , 有思科开源支持的VPP , 比较完善的协议支持 , ARP、VLAN、Multipath、IPv4/v6、MPLS等 。用户态传输协议UDP/TCP有TLDK 。从项目定位到社区支持力度算比较靠谱的框架 。
腾讯云开源的F-Stack也值得关注一下 , 开发更简单 , 直接提供了POSIX接口 。
Seastar也很强大和灵活 , 内核态和DPDK都随意切换 , 也有自己的传输协议Seastar Native TCP/IP Stack支持 , 但是目前还未看到有大型项目在使用Seastar , 可能需要填的坑比较多 。
我们GBN Gateway项目需要支持L3/IP层接入做Wan网关 , 单机20GE , 基于DPDK开发 。




推荐阅读