由两位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是一种声明式编程语言,它主要用于编程程序以下达指令给数据转发平面的设备(如交换机、网卡、防火墙、过滤器等)如何处理数据包,Jennifer Rexford和Nick McKeown认为P4将会改变传统网络设备的设计方式。
如今,设计一款高性能的网络设备是相当的痛苦。首先,你要确定你所需要的设备有哪些特性,然后你要找到一块最符合特性需求的交换机芯片,接着你要签署一份保密协议获得软件开发工具包(SDK),最后调用合适的API进行编程使芯片满足你的系统需求。但是由于你系统取决于SDK,所以设计是被芯片厂商锁定的。
P4试图在从根本上改变我们设计网络系统的方式。首先,你要确定系统的设计要求,然后写一个P4程序来描述你的系统需要如何处理数据包,最后编译程序通知转发设备该做什么。从本质上讲,P4无论是在软件设计(编程、调试、代码覆盖、模块检查等)方面,还是在网络系统的设计上,都给我们带来了很多好处。P4目前还处于起步阶段,希望借助社区的力量帮忙完善和改进。目前P4的代码处于开源状态,后续进一步的开发也将对外开放,所有的开源都遵循Apache许可。同样,P4联盟目前采取的也是免费会员制,用户可以通过P4主页加入。