SDN可以划分为三层,中间是控制器,用于接收控制指令来操作下面设备的程序,上层是应用App,负责调用控制器提供的接口和数据来实现各种功能,间接方式来控制网络,底层是数据交换层。借助SDN,我们就可以直接在控制层面操作网络设备,设计随便任何各种转发和路由的规则,设计新的网络协议,提供各种各样的服务,实现很多的安全方案等等。
P4(Programming Protocol-Independent Packet Processors),意思是“与协议无关的数据包处理编程语言”,主要用在SDN网络的数据层开发,采用声明式的编程方式来下达指令给数据转发平面的设备(如交换机、网卡、防火墙、过滤器等)如何进行数据包的处理。P4的诞生无论是在软件设计(编程、调试、代码覆盖、模块检查等)方面,还是在网络系统的设计上都变得更加清晰和简化。
近日Xilinx在斯坦福大学举办的“P4语言开发日”活动上发布了最新版本的SDNet 2017.1开发工具,兼容最新的P4开发语言规范,即通过编译操作SDNet可以将前端的P4声明式程序转换为数据层的算法IP核,能够在FPGA器件中运行,主要用于高速(1Gbps~100Gbps)数据包的处理操作。