首页
学习
活动
专区
工具
TVP
发布

DPDK VPP源码分析

专栏作者
142
文章
123704
阅读量
43
订阅数
基于VPP的第4层高密度可扩展负载均衡器
背景:自2006年起,构建运行于x86核心的软件型第4层负载均衡器(LB)的努力便已展开。此类LB以虚拟机形式部署,也应用于裸金属实现。超大规模云服务提供商(CSP)已在裸金属上开发出成本更低、易于部署和扩展的解决方案。CSP利用这些LB优化内部基础设施,并将其出售给订阅用户用于租赁实例。其中一种解决方案由谷歌开发并开源,名为MAGLEV,是一款云网络LB。MAGLEV是一款针对超大规模部署设计的通用LB,采用独特的加速技术提升性能。雅虎日本基于FD.io VPP开发了一款优化LB,并添加功能以实现LB即服务(LBaaS)的规模扩展。该实现使用4个核心即可达到10 Gbps的线速。现有的开源软件LB对当前用户存在性能与可扩展性限制,通常每个核心仅限约100万个并发连接和约200万包每秒(Mpps)的吞吐量。终端用户已投入大量资源试图克服以下局限,但尚未达到理想性能水平:
dpdk-vpp源码解读
2024-04-22
1240
置顶
腾讯云基于英特尔? DLB 技术实现多核无锁化限速方案
作为全球领先的云服务提供商之一,腾讯云*致力于向全球用户提供性能卓越的企业级网络服务。公有云对于服务质量有着严苛的要求,计算、内存、网络以及存储等各项资源的分配能否满足服务水平协议中所承诺的标准,都将直接影响最终用户的应用体验。对于云服务提供商来说,如何在充分利用以上资源,满足服务水平协议的前提下,尽可能减少额外资源开销,也是降低运营成本的关键因素之一。为在降低成本的同时保证优质的服务质量,腾讯云携手深度合作伙伴英特尔,基于腾讯云应用程序界面 (Application Programming Interfaces, API) TGW 与腾讯专门的硬件工程实验室 星星海实验室的创新软硬件结合方案,发挥 TGW 在网络领域的技 术优势,针对网络资源调度及分配展开性能优化。
dpdk-vpp源码解读
2024-04-22
1180
置顶
网络地址转换 (NAT) 概述 (RFC 3022/2663)
近期,项目开发任务驱使我需要深入了解NAT网关的核心特性。为此,我搜集了一些网络上的NAT技术干货,并计划通过本公众号逐步推送翻译内容。若对此话题抱有浓厚兴趣,欢迎持续关注我们。当然,读者也可以直接拉至文末,点击“阅读原文”。
dpdk-vpp源码解读
2024-05-15
1640
编写高效代码--内存篇
在近期线上故障排查过程中,我发现代码中仍在使用一些libc库函数,诸如malloc()内存分配、memset()内存清零及htonl()、ntohl()高低字节序转换等,这些函数在性能上存在优化空间。鉴于此,本文将借鉴DPDK《高效编码指南》中的相关内容,探讨VPP框架下更为高效的实现策略,以替换上述传统函数,提升系统性能。本节主要介绍在 DPDK&VPP 环境中开发应用程序时的一些关键内存注意事项。
dpdk-vpp源码解读
2024-05-14
1310
ARP终止功能在云环境中应用以提升网络安全性及性能
ARP终止(ARP Termination)功能通常是指在网络设备上配置静态的ARP条目,使得网络设备可以代表网络中的其他设备响应ARP请求。这意味着网络设备可以直接回复ARP请求,而不是让请求广播到整个网络,这有助于减少网络中的ARP流量,并且可以作为一种安全措施,防止ARP欺骗。
dpdk-vpp源码解读
2024-05-14
750
learning vnet:L2 CrossConnect (4)
在文章《learning:l3xc plugins》中,我们介绍了三层交叉连接功能,将三层接口的所有入接口流量交叉连接输出到指定的FIB路径,从而跳过了路由查找的功能,实现高性能转发加速;L2 Cross Connect 是二层交叉连接功能,用于实现第二层(数据链路层,通常指以太网层)的直接连接,允许两个接口之间的二层数据包(如以太网帧)直接转发,绕过第三层(网络层)的处理,类似于传统的以太网交换机中的端口 trunking 或者链路聚合,但其目的是为了在VPP内部或VPP与其他设备间建立一个简单的二层桥接。
dpdk-vpp源码解读
2024-05-14
860
learning vnet:L2 vSwitch shg 水平分割组 (3)
本文讲解在二层桥接域下水平分割组的应用。当接口加入到桥接域中时可以指定shg(水平分割组标识符)。可与任何承载2层数据的接口(例如硬件接口、L2 GRE 隧道等)一起使用,但主要与 VXLAN 接口一起使用。
dpdk-vpp源码解读
2024-05-14
750
learning vnet:L2 vSwitch mac地址老化及mac地址表最大规格(2)
在前面文章《learning vnet:L2 vSwitch》介绍过MAC 学习的过程,本文来学习一下mac地址老化机制及mac地址表学习最大规格。交换机的MAC地址老化机制是为了维护MAC地址表的有效性和防止MAC资源表浪费而设计的。在交换机的正常工作中,会不断监控各个网口传输的数据帧并学习源MAC地址及其对应的网口信息。当交换机在某网口接收到一个数据帧时,会将其源MAC地址添加到MAC地址表中,或者更新已存在的MAC地址条目。
dpdk-vpp源码解读
2024-04-28
950
Learning vppinfra:bitmap结构解析
Bitmap是一种紧凑的数据结构,它使用一组连续的比特位(bits)来表示一组数据元素的状态或存在性。每个比特位对应一个特定的数据元素,值通常为0或1,表示该元素是否满足某种条件(如是否存在、是否已使用等)。由于比特是最小的存储单位,使用bitmap可以大大节省存储空间,特别适合处理大量整数型数据。
dpdk-vpp源码解读
2024-04-28
880
learning vnet:L2 vSwitch
在前面文章《learning:vpp实现dot1q终结功能配置》介绍了L2 vSwitch一些基本概念BD(Bridge Domain)、BDI (Bridge Domain interface)等等概念,本文主要学习二层的转发流程。前面文章中介绍了在腾讯云主机中搭建DPDK&VPP的学习环境,下面就在腾讯云主机搭建L2 vswitch环境。具体配置如下图所示:
dpdk-vpp源码解读
2024-04-28
690
Calico VPP:通过用户空间数据包处理增强高性能 Kubernetes 网络
Calico是一款广受欢迎的开源网络和网络安全解决方案,专为容器、虚拟机以及宿主机之间的网络连接设计,适用于Kubernetes、OpenShift、Docker EE等多种云原生平台。Calico的核心优势在于其基于边界网关协议(BGP)的纯三层网络架构,能够提供精细的网络策略控制、IP地址管理以及高效的网络通信。
dpdk-vpp源码解读
2024-04-22
1730
learning vpp:内存管理和 DPDK API
本译文源自PANTHEON.tech公司技术博客文章《VPP 105: Memory Management & DPDK APIs》,在我们深入运用VPP的过程中,不免对其中涉及的各类技术与库——它们的实践应用、优势特性及对应API——产生诸多疑问。这篇针对性的文章恰好为我们详尽答疑,扫清困惑。很适合入门vpp的同学学习。如需查阅原文,欢迎直接点击文末阅读原文。
dpdk-vpp源码解读
2024-04-15
1750
How to accelerate IPsec elephant flows?
本文内容来源于Software Defined Networking devroom2021年2月7号举办的线上会议介绍vpp在加速ipsec大象流提供的解决方案。
dpdk-vpp源码解读
2024-04-15
1050
learning vpp:解析vlan处理流程(2)
具体在上一章节中《learning vpp:解析创建vlan子接口代码(1)》我们介绍了vpp创建vlan子接口命令行及配置逻辑流程的,接下来,以qinq接口为例,学习三层vlan处理流程。
dpdk-vpp源码解读
2024-04-15
1330
learning vpp:解析创建vlan子接口代码(1)
前面一篇文章《learning:vpp实现dot1q终结功能配置》介绍了vlan dot1q终结子接口功能配置,下面参考vpp官方文档介绍一下创建vlan子接口的命令行。我们都知道vpp默认都是从物理或虚拟主接口收包,那么vpp如何识别vlan报文并将报文转发至vlan子接口上进行业务处理,本文将逐步展开学习。
dpdk-vpp源码解读
2024-04-02
1460
vpp-ikev2 插件支持网卡多队列解决方案
目前vpp的主线版本ikev2插件在网卡配置收包多队列多线程时rss存在问题,当设备位于nat之后,ikev2协商存在2条流udp/500和udp/4500,会被网卡RSS功能分配到不同的work核线程,这样在二阶段因rspi查询在当前work核查询不到而导致协商失败。在vpp我们可以使用命令行 show hardware-interfaces 查询网卡RSS功能使能情况,具体如下:
dpdk-vpp源码解读
2024-03-21
1430
learning:vpp实现dot1q终结功能配置
话接上篇我们基于腾讯云主机搭建了DPDK+VPP的学习平台,接下来学习vlan dot1q终结功能的配置及流程转发流程。下面首先来了解一下BD域的一些概念。
dpdk-vpp源码解读
2024-03-12
1780
腾讯云主机2C2G搭建DPDK+VPP学习平台
随着云计算技术的飞速发展,网络性能优化与高速数据包处理能力的重要性日益凸显。在这个春天,腾讯云新春采购季盛大开启,为广大学习者、开发者和企业提供了一个极具性价比的机会,让您以空前优惠的价格拥有高性能的云服务器,并借此打造专业的VPP+DPDK学习实践平台。
dpdk-vpp源码解读
2024-03-12
1380
提升tap接口转发性能方法
随着2024年的钟声渐渐敲响,世界的每一个角落都沉浸在辞旧迎新的喜悦之中,此刻您是否和我一样还坚守在工作岗位(假装在上班)。今天是我今年最后一个工作日,明天将踏上回家的旅途。祝愿大家归途一切顺利,平安抵达家的港湾。
dpdk-vpp源码解读
2024-02-22
1630
learning:gre tunnel plugins
GRE(Generic Routing Encapsulation,通用路由封装)协议用来对某种协议(如IP、MPLS、以太网)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如IP)中传输。封装前后数据报文的网络层协议可以相同,也可以不同。封装后的数据报文在网络中传输的路径,称为GRE隧道。GRE隧道是一个虚拟的点到点的连接,其两端的设备分别对数据报文进行封装及解封装。
dpdk-vpp源码解读
2024-01-09
1920
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com