• 有没有开源的虚拟路由器?有,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

    功能丰富

  • 相关阅读:
    Java集合框架(四)-HashMap
    AgileBoot - 基于SpringBoot + Vue3的前后端快速开发脚手架
    【日常训练】871. 最低加油次数
    linux—常用gdb调试命令汇总
    全局vue2下安装vue3遇到的问题
    Spring Boot 如何进行多环境配置
    【C语言】——内存函数的使用及模拟实现
    C语言之vs调试实用技巧
    如何做好项目管理?年薪百万项目大佬一直在用这11张图
    (入门自用)--C++--抽象类--多态原理--虚表--1020
  • 原文地址:https://blog.csdn.net/lingshengxiyou/article/details/127805593