https://www.dpdk.org/creating-dperf-and-joining-the-dpdk-community/
>> 前言
开发者如何从对编程的热爱转变为创建一个能够重塑网络性能测试的领先开源项目?彭建章博士的故事始于他在从事L4负载均衡器开发工作时,利用DPDK应对现代网络的复杂挑战。他开发了DPERF——一款高性能负载测试工具,旨在填补现有解决方案的空白,并将其分享给开源社区。他进入开源领域和DPDK生态系统的旅程,充满了热情、坚持和创新。
当被问及编程生涯的起点时,彭建章博士回忆道:“我在大学时期开始接触编程,距今已有20年。最初,这是一项通过学术研究逐渐掌握的技能,但它很快成为了一份能够解决现实世界问题的职业。”
他的职业生涯始于一家初创公司,专注于L4和L7负载均衡器的开发。随后,他加入百度云,成为一名专注于L4负载均衡的开发者。正是在百度云工作期间,他遇到了商业测试工具的局限性。“我们当时使用的商业测试工具性能实在不够理想,”他回忆道,“于是,我决定自己开发一款测试工具,最初仅用于个人需求。但随着时间推移,我意识到它也能为他人带来帮助,于是决定将其开源。”
>> 从商业工具到开源的转变
在百度云,彭建章博士的主要工作是开发L4负载均衡器。这些系统通过将海量客户端请求分配到数千台后端服务器上,管理着巨大的流量。“许多客户端将请求发送到L4负载均衡器,”他解释道,“它持有公网IP地址,处理传入连接,并将其调度到后端服务器。这种工作负载极为庞大,需要高度优化的解决方案。”
在开发这些负载均衡器的过程中,他的团队依赖商业测试工具来评估性能。然而,这些工具不仅缺乏可移植性,还难以满足L4负载均衡器的高性能需求。这些局限性让彭建章博士感到沮丧,他决定开发一款符合自身需求的解决方案。于是,DPERF应运而生——这是一款专为L4负载均衡器设计的高性能、可移植且高效的测试工具。
>> 融入DPDK社区
彭建章博士接触DPDK是在他为百度云开发负载均衡器期间,其中许多负载均衡器都由DPDK驱动。这个开源框架使开发者能够构建快速高效的包处理应用程序。彭建章博士认识到DPDK与他的项目之间的协同效应,于是利用其能力来提升DPERF的性能。“我们使用DPDK进行L4负载均衡,”他指出,“其性能是我们系统成功的关键因素。”
>> DPERF的诞生
在百度工作期间,彭建章博士遇到了当时可用的商业测试工具的重大挑战。“这些工具的性能不够好,”他回忆道,“它们被设计为需要安装在数据中心的物理设备,这使得它们难以在分布式或远程环境中使用。”这一局限性促使他开发出一种新的解决方案。
“我发现在大多数开源测试工具中,都专注于L7测试,但其性能对于L4负载均衡器来说是不够的,”他解释道。“L4负载均衡器以极快的速度处理数据包,我想要开发一款专门针对此目的进行优化的工具。它必须简单、高效并且高性能。”
转折点出现在2021年,彭建章博士参加百度举办的一次黑客马拉松。“黑客马拉松为我提供了开发DPERF第一个版本的绝佳机会,”他分享道。“尽管我没有获胜,但这段经历让我对继续完善这个工具充满热情和动力。”尽管最初没有得到认可,但他的同事和队友们却深知他的工作的重要性。“他们知道这是一个很棒的项目,即使当时其他人没有意识到这一点,”彭建章博士回忆道。
>> 从概念到第一个版本
DPERF的第一个版本仅用了两周时间就完成了。彭建章博士将这段时间描述为“疯狂”,他每天从清晨一直工作到午夜。“最初的代码库还不到5000行,”他回忆道,“我独自编写了所有代码,专注于简洁性和性能。”
最初,他设想从FreeBSD导入TCP堆栈,但他很快意识到这项任务太大,无法在黑客马拉松的时间内完成。“然后,我突然想到一个主意——简化TCP堆栈,”他回忆道。“我专注于识别哪些部分可以简化,同时仍然保持必要的功能。”
彭建章博士将这一突破归功于灵感以及他在L4负载均衡方面的深厚经验。“我在几分钟内就设计出了架构中最重要的组件,”他说。“从那里开始,我进一步简化了TCP堆栈的每个部分,以满足性能目标。”
这段高强度的时期对他的身体造成了影响,他回忆起因连续编程而遭受的重复性劳损。尽管如此,他将这个过程描述为令人兴奋的。“我对这个项目充满热情,享受着每一个时刻,”他说。“看到这个工具如此迅速地成型,这是令人难以置信的。”
彭建章博士的方法独特之处在于他没有遵循传统的开发流程。他没有通过结构化的“设计-测试-优化”流程进行迭代,而是直接一口气编写了整个工具。“我直接开始,一直做到最后,”他解释道。“这全是为了保持专注和动力。”
>> 优化和完善DPERF
在最初发布之后,彭建章博士继续对DPERF进行优化。凭借超过十年的用户空间TCP堆栈工作经验,他将自己的深厚知识应用于L4和L7负载均衡器,以进一步提升性能。“我知道如何将L2、L3、L4和L7整合到一个简化的堆栈中,”他解释道。“这使我能够创建一个高效且可扩展的解决方案。”
DPERF的架构采用客户端-服务器模型,每个CPU独立处理数据包的发送和接收。这种设计确保了CPU之间不需要共享状态,从而显著提高了性能。“每个CPU发送和接收自己的数据包,”彭建章博士详细说明道。“这样,我们消除了不必要的CPU间通信,最大化了效率。”
DPERF的一个关键创新是数据包头部的缓存机制。“我们没有在每次测试中重新生成整个数据包,而是缓存了负载,只修改必要的头部字段,”他解释道。“这大大减少了处理开销,提升了性能。”
另一个关键优化是使用预先分配的套接字表。“所有套接字在开始时就创建好了,”他说。“这使我们能够根据IP地址和端口即时定位套接字,确保快速的数据包处理。”
通过不断的完善和用户的反馈,DPERF逐渐发展成为一个高度可靠、高性能的工具,被广泛应用于生产环境中。
>> 对DPDK社区和开源的思考
尽管彭建章博士深度参与了DPERF的开发,但由于他目前在一家加密交易公司工作,他对更广泛的DPDK项目的贡献有限。“如果我在一家专注于网络的公司工作,我可能会更直接地参与DPDK社区,”他反思道。“但我仍然感谢公司的支持,它让我能够继续将DPERF作为开源项目维护下去。”
当被问及DPDK在亚洲的采用增长时,彭建章博士承认其使用正在增加,特别是在网络设备制造商和云服务提供商中。“许多公司正在使用DPDK用于防火墙、安全应用和云网络,”他说。
他还指出,一些大型科技公司——包括字节跳动、百度云和阿里云——内部使用DPERF,尽管这些细节并未公开分享。“许多公司依赖开源软件,但并未公开承认,”他说。“但知道DPERF正在帮助现实世界的部署,这对我来说才是最重要的。”
>> 对有抱负的开源开发者的建议
作为DPDK生态系统中受人尊敬的开发者,彭建章博士为那些希望追随他脚步的人提供了建议。“开发一些真正有用的东西,”他说。“如果它能帮助你和他人解决现实世界的问题,那么它就有价值。”
他还强调了坚持和热情的重要性。“开发一个开源项目并不容易,”他说。“但如果你相信你正在创造的东西,不断改进它,倾听反馈,不断向前推进。”
彭建章博士从解决个人技术挑战到开发一个被广泛使用的开源工具的旅程,突显了个人贡献在DPDK社区中的影响。他对DPERF的工作不仅提升了网络性能测试,还展示了创新和协作的力量。
「404星链计划」是知道创宇404实验室于2020年8月提出的开源项目收集计划,这个计划的初衷是将404实验室内部一些工具通过开源的方式发挥其更大的价值,也就是“404星链计划1.0”,这里面有为大家熟知的Pocsuite3、ksubdomain等等,很快我们就收到了许多不错的反馈。2020年11月,我们将目光投向了整个安全圈,以星链计划成员为核心,筛选优质、有意义、有趣、坚持维护的开源安全项目,为立足于不同安全领域的安全研究人员指明方向,也就是“404星链计划2.0”。为了更清晰地展示和管理星链计划的开源项目,2021年11月22日我们将1.0和2.0整合,推出改版后的「404星链计划」。
目前,「404星链计划」已收录了包括甲方工具、信息收集、漏洞探测、攻击与利用、信息分析、内网工具等多种类共超过60个优质开源安全工具,备受安全行业瞩目与欢迎,成为热门的工具使用与交流阵地。
「404星链计划」Github:
https://github.com/knownsec/404StarLink
想要学习和交流开源安全工具的朋友可以加入404星链计划社群,请扫码识别运营菜菜子微信二维码,添加时备注“星链计划”。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...