Cisco VPP(1) 简单介绍
一、简单介绍
VPP全称Vector Packet Processing。是Cisco2002年开发的商用代码。
2016年2月11号,Linux基金会创建FD.io项目。Cisco将VPP代码的开源版本号加入该项目。眼下已成为该项目的核心。
VPP执行于用户空间,支持多种收包方式,经常使用的是DPDK。
VPP主要有两个主要功能:框架可扩展;成熟的交换/路由功能。
二、扩展性
1、结点操作
VPP平台是通过graphnode串联起来处理数据包。相似于freebsd的netgraph。
通过插件的形式引入新的graph node或者又一次排列数据包的gpragh node。将插件加入到插件文件夹中,执行程序的时候就会自己主动载入插件。
另外插件也能够依据硬件情况通过某个node直接连接硬件进行加速。
VPP平台能够用于构建不论什么类型的数据包处理应用。比方负载均衡、防火墙、IDS、主机栈。也能够是一个组合,比方给负载均衡加入一个vSwitch。
通过创建插件。能够随意扩展例如以下功能:
• 自己定义新的图结点
• 又一次排列图结点
• 加入底层API
加入插件例如以下图所看到的:
2、可编程能力
VPP还提供了基于共享内存或者消息队列的高性能内部API。眼下VPP平台支持C和JAVAclient进行内部API绑定。
例如以下图所以,我们完毕一个外部应用对VPP进行操作:
以上的编程能力是针对内部API的调用,另外还能够支持远程可编程能力。
远程可编程能力能够通过Data Plane Management Agent来实现。
通过外部API与Data Plane Management Agent进行通信。
Data Plane Management Agent通过内部API与VPP应用(引擎)进行通信。
这是一个很灵活的方法,不论什么人能够加入,可是须要外部API和Data Plane Management Agent匹配。以实现特定需求的VPP应用。
下图展示Agent对接VPP和外部程序:
案例Honeycomb Agent:
HoneycombAgent通过netconf和restconf公布了yang模型的VPP功能。 像OpenDaylight 这样支持netconf/yang的控制器能够挂载Honeycomb 管理代理来工作。而OpenDaylight支持OpenStack Neutron。所以例如以下图所看到的OpenStack Neutron能够集成到vpp来:
三、网络功能
1、网络特性
VPP拥有的网络特性例如以下:
• 高速查找路由表、CAM表
• 随意n元组分类
• 商用级别的交换/路由功能
VPP能提供的全部功能例如以下:
2、网络性能
多核基准性能样例 (UCS-C240 M3, 3.5gHz,全部内存通道转发ipv4):
• 1 core: 9 MPPS in+out
• 2 cores: 13.4 MPPS in+out
• 4 cores: 20.0 MPPS in+out
以下几个图展示的是和OVS+DPDK的性能对照:
下图是在Haswell x86 架构的E5-2698v3 2x16C 2.3GHz上測试,图中显示了12口10GE,16核。ipv4转发:
资料来源于:https://fd.io/
欢迎加入VPP讨论群:417538415
Cisco VPP(1) 简单介绍的更多相关文章
- VPN理论简单介绍(转载)
标签:VPN理论简单介绍 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lvnian.blog.51cto.com/715528 ...
- windows集群简单介绍
windows集群简单介绍仔细看过以前网友发表的一些文章,总觉得对windows集群没有详细介绍,我也是借花献佛,引用了一些技术性文档.目前应用最为广泛的集群计算技术可以分为三大类:高可用性集群技术. ...
- Frame Relay - 简单介绍及基本配置
Frame Relay如今越来越不流行了,只是在过去的设计中被广泛应用. 所以工作上还是能常常见到的, 这篇博文从二层简单总结下FR的一些概念 在介绍Frame Relay之前,先了解下广播介质和非广 ...
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- angular1.x的简单介绍(二)
首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
随机推荐
- opencv总结
2018-02-2623:59:02 唉,这软件我很烦躁,今天又搞了好几遍,出错提示的时候总是出问题! 而且,无论什么错误,都是提示一堆乱码! 定义ROI区域有两种方法,第一种是使用cv:Rect.顾 ...
- 常用Linux命令(长期更新)
有些命令如果不常用,老是记不住,每每用到总还要去查,特此将一些命令记录在此: (0)按指定时间删除文件 find target_dir -type f -mtime +3 -exec rm {} \; ...
- HDU_3172_带权并查集
Virtual Friends Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- Java基础(四)--接口和抽象类
接口和抽象类能够体现OOP的抽象,而接口和抽象类也是日常开发中经常用到的 抽象方法: 抽象方法就是被abstract修饰的方法,只有声明,没有实现,也就是没有方法体 public abstract v ...
- php总结回顾
做人不能一直埋着头往前跑,还要偶尔停下来看下来时的路.所以今天就来回顾下之前的吧 下面依次介绍 [一]TP加载流程 ①应用入口文件index.php→②tp公共入口文件ThinkPHP.php→③核心 ...
- 17Aspectij
17Aspectij-2018/07/31 1.Aspectj基于xml 前置通知 method : 通知,及方法名 pointcut :切入点表达式,此表达式只能当前通知使用. pointcut-r ...
- UVA - 1620 Lazy Susan(逆序数)
题目: 把1~n(n≤500)放到一个圆盘里,每个数恰好出现一次.每次可以选4个连续的数字翻转顺序.问能不能变成1.2.3....n的顺序. 思路: 这样的题的规律真的是一点都不好推,看了网上的博客知 ...
- trie字典树模板浅析
什么是trie? 百度百科 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的 ...
- ubuntu中mysql忘记密码如何修改
1.在终端进入安装目录下:cd /etc/mysql 2.sudo cat debian.cnf 输入密码 3用如下图用户和密码登录 4.进入mysql use mysql 5.使用describe ...
- python3虚拟环境应用
python3自带虚拟环境venv,大致操作只有三步 1. 创建虚拟环境 python3 -m venv venv(名称随意) 2. 激活虚拟环境 source venv/bin/activate 3 ...