有没有开源的虚拟路由器?有,VPP了解一下

VPP(Vector Packet Processing,矢量包处理)平台是一个可扩展的开源框架,提供开箱即用的网络交换机或路由器的功能。VPP技术基于Cisco产品的成熟技术,是思科矢量包处理 (VPP) 技术的开源版本:一种可以在商用CPU上运行的高性能包处理堆栈。

传统的标量处理方法是对单个数据包的处理,存在高延迟的问题。为了推动网络的可扩展性,VPP读取网络I/O层中最大的可用数据包扇区。VPP不是在具有多个节点的整个图中单独处理每个数据包,而是选择整个数据包矢量并将它们推送到一个图节点,然后再移动到下一个节点。由于先前从第一个矢量数据包中学习到指令,指令缓存然后适应该过程,使得剩余数据包的处理速度更快。这样一来,VPP可以一次处理多个数据包,有降低延迟的特性。这种VPP处理的好处是高性能、技术成熟、模块化、灵活性以及功能集丰富。

VPP是由Linux基金会支持的开源框架,是快速数据项目(http://FD.io)的一部分。VPP 的许多底层功能使用数据平面开发套件设备驱动程序和库,此功能被分离到VPP的可选插件中。它是一种模块化设计,该框架允许任何人“插入”新的图形节点,而无需更改核心/内核代码。

模块化、灵活且可扩展

VPP 平台建立在“数据包处理图”之上。这种模块化方法意味着任何人都可以“插入”新的图形节点。这使得可扩展性变得相当简单,这意味着可以为特定目的定制插件。

该插件如何发挥作用?

在运行时,VPP 平台从RX环中抓取所有可用的数据包,形成一个数据包矢量。数据包处理图逐个节点(包括插件)应用于整个数据包矢量。图节点小且模块化。图节点是松散耦合的。这使得引入新的图节点变得容易。它还使得重新连接现有图形节点变得相对容易。

插件可以引入新的图节点或重新排列数据包处理图,还可以独立于VPP源代码树构建插件。这意味着可以将其视为独立组件,可以通过将插件添加到插件目录来安装插件。

VPP平台可用于构建任何类型的数据包处理应用程序,可以用作负载均衡器、防火墙、IDS 或主机堆栈的基础,还可以创建应用程序的组合。例如,您可以向 vSwitch 添加负载均衡。

引擎在纯用户空间中运行。这意味着插件不需要更改核心代码。可以扩展数据包处理引擎的功能,而无需更改在内核级别运行的代码。通过创建插件,任何人都可以通过以下方式扩展功能:

  • 新的自定义图形节点

  • 图节点的重新排列

  • 新的低级 API

功能丰富

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值