P4简介:数据平面的编程语言
15-05-29 http://p4.org/join-us/
由两位SDN大师----来自普林斯顿的Jennifer Rexford和斯坦福的Nick McKeown----
共同发起的P4联盟正式对外公布全新的项目主页,
详细阐述了P4的目标定位、如何使用P4进行开发、开源事项等相关细节,
并且为P4选取了一个非常可爱的北极熊LOGO。

P4是一门主要用于数据平面的编程语言,
它的名字是根据一篇论文的标题“Programming Protocol-Independent Packet Processors”而来,
意思是“与协议无关的数据包处理编程语言”,
值得一提的是P4的背景,由两位SDN界的大牛发起,
其中来自普林斯顿的Jennifer Rexford目前是ONF的常委,
美女教授跟SDN渊源很深,
她的论文直接启发了openflow的诞生并且曾经尝试设计了SDN编程语言和库(Frenetic和Pyretic);
另外一位斯坦福的Nick McKeown教授更是SDN的缔造者之一,鼎鼎大名的clean slate项目的领军人物。
最重要的是两位教授在P4项目上达成了高度的共识。
P4到底是什么呢?
P4是一种声明式编程语言,
它主要用于编程程序以下达指令给数据转发平面的设备(如交换机、网卡、防火墙、过滤器等)如何处理数据包,
Jennifer Rexford和Nick McKeown认为P4将会改变传统网络设备的设计方式。
为什么我们需要P4?
如今,设计一款高性能的网络设备是相当的痛苦。
首先,你要确定你所需要的设备有哪些特性,然后你要找到一块最符合特性需求的交换机芯片,
接着你要签署一份保密协议获得软件开发工具包(SDK),
最后调用合适的API(应用编程接口)进行编程使芯片满足你的系统需求。
但是由于你系统取决于SDK(软件开发工具包),所以设计是被芯片厂商锁定的。
P4的目标是什么?
P4试图在从根本上改变我们设计网络系统的方式。
首先,你要确定系统的设计要求,
然后写一个P4程序来描述你的系统需要如何处理数据包,最后编译程序通知转发设备该做什么。
从本质上讲,P4无论是在软件设计(编程、调试、代码覆盖、模块检查等)方面,
还是在网络系统的设计上,都给我们带来了很多好处。
P4目前还处于起步阶段,希望借助社区的力量帮忙完善和改进。
目前P4的代码处于开源状态,后续进一步的开发也将对外开放,所有的开源都遵循Apache许可。
同样,P4联盟目前采取的也是免费会员制,用户可以通过P4主页(http://p4.org/)加入。
以上内容转自 SDNLAB,本站原创文章仅代表作者观点,不代表SDNLAB立场。
---------------------------------------------------------------------------------------------
本文链接:http://www.sdnlab.com/11884.html
本文标签:新闻/news
P4简介:数据平面的编程语言的更多相关文章
- 阅读 用P4对数据平面进行编程
引言 关于题目,对数据平面进行编程,在之前读过the road to SDN,软件定义网络的思想在于数控分离,其对网络行为的编程暂时只局限于网络控制平面.其转发平面在很大程度上受制于功能固定的包处理硬 ...
- 用P4对数据平面进行编程
引言 SDN架构强调了对控制平面的可编程,数据平面只负责转发,导致数据平面很大程度上受制于功能固定的包处理硬件. P4语言的特性: 目标无关性:P4语言不受制于具体设备,所有可编程芯片都可以使用P4编 ...
- 实验8:数据平面可编程实践——P4
一.实验目的 掌握V1Model框架下P4_16的程序结构和基本语法 能够运用 P4 进行简单数据平面编程 二.实验报告 在修改basic_tunnel.p4的内容之后输入make run 验证创建结 ...
- 解析与动作联动得SDN数据平面
一种解析与执行联动的SDN可编程数据平面 现有问题和目标 在传统协议处理方式中,各层的协议类型和组合方式固定,使得添加或修改协议很困难(因为需要修改网络设备的解析模式) 基于解析和执行联动结构的可编程 ...
- Service Mesh 数据平面 SOFAMosn
https://mp.weixin.qq.com/s/DJ_IeDswGGFQiWqJ75pmig 开源 | Service Mesh 数据平面 SOFAMosn 深层揭秘 朵晓东 蚂蚁金服科技 20 ...
- 数据平面可编程与SDN关系理解,以及数据平面可编程的理解
数据平面可编程与SDN关系 狭义 广义 数据平面可编程的理解 狭义 广义
- 可编程数据平面将OpenFlow扩展至电信级应用(一)
可编程数据平面将OpenFlow扩展至电信级应用(一) 案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)client实现 作者:Liviu Pinchas, Tao Lang ...
- 可编程数据平面将OpenFlow扩展至电信级应用(二)
可编程数据平面将OpenFlow扩展至电信级应用(二) 案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)client实现 作者:Liviu Pinchas, Tao Lang ...
- 软件定义网络基础---SDN数据平面
主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数 ...
随机推荐
- 腾讯天猫经常出现这些低级的bug!
对于程序员来说,bug很讨厌.每天重复着写代码.找bug.修改bug的动作.按理说互联网巨头的产品,bug应该比较少.但是实际上,无论是用百度.天猫.谷歌等产品,经常都会出现这些低级的bug,让人很火 ...
- [笔记]Go语言实现同一结构体适配多种消息源
问题: 提供天气信息的网站有很多,每家的数据及格式都不同,为了适配各种不同的天气接口,写了如下程序. 代码如下: package main import ( "encoding/json&q ...
- BZOJ 5312: 冒险
首先我们考虑,对于And 和 Or 操作,对于操作位上只有And 0 和 Or 1 是有效果的. 我们注意到如果区间内需要改动的操作位上的数字都相同,那么是可以区间取与以及区间取或的. 那其实可以维护 ...
- CSV文件导入导出MySQL
使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...
- 洛谷P3393逃离僵尸岛 最短路
貌似一直不写题解不太好QAQ 但是找不到题啊... 随便写点水题来补博客吧 题目不pa了,点链接吧... 点我看题 很明显这是道sb题... 思路: 对于每一个僵尸城市预处理其 s 距离内的城市,然 ...
- Java基础(1)--JDK,变量
Scanner的next()方法和nextLine()方法 1.next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动 ...
- Floyd算法 - 最短路径
2017-07-27 22:21:04 writer:pprp 该算法的本质是动态规划,形式简单,复杂度高为O(n^3): d[i][j] = max(d[i][k]+d[k][j],d[i][j]) ...
- js实现继承的方式
[原文] 前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一.那么如何在JS中实现继承呢?让我们拭目以待. JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: // ...
- C++ 进阶学习 ——模板
模板和重载类似,比重载更省事 通常有两种形式:函数模板和类模板: 函数模板针对仅参数类型不同的函数: 类模板针对仅数据成员和成员函数类型不同的类. 一个简单的函数模板 template <cla ...
- 学习mybatis时出现了java.io.IOException: Could not find resource EmployeeMapper.xml
使用mybatis时出现了Could not find resource EmployeeMapper.xml和Could not find resource mybatis-config.xml两种 ...