赞
踩
随着物联网设备、数据流量、新协议以及私有云和公共云的巨大增长,网络世界的创新速度也在不断加快。网络的未来已经超越了SDN的数据和控制平面分离,而是在ASIC中深入编写转发逻辑。技术现在正从传统的固定架构转向灵活的可编程交换机。新的可编程ASIC支持自定义协议,以及当前和未来的协议。
要充分利用这种灵活性,需要使用新的、更高级别的、特定于域的语言来简化转发平面的编写。每个ASIC制造商都必须提供自己的定制语言,这更多地取决于硬件架构。将转发平面逻辑从一个网络ASIC制造商移植到另一个制造商需要付出很多努力。这就产生了对独立于底层硬件和协议的标准语言的需求。
这就是P4(独立于编程协议的数据包处理器)的用武之地。P4是一种开源的、特定于域的编程语言,专为编程可重构网络而设计。 P4语言是公开的,由p4.org联盟开发,该联盟包括网络、云系统和学术机构领域的各种公司。最初,P4针对的是网络交换机的数据平面编程。现在,它的范围已扩展到包括硬件或软件、网络接口卡和其他数据包处理系统在内的可编程网络元素。
P4编译器:P4如何独立于目标
从过去几年来看,很明显,在任何网络设备中由数据平面处理的数据包大致可以分为三个基本阶段。 1)Parser block:负责分组识别和提取,2)Control block:负责匹配+动作,3)DeParser:负责形成所需的出口包。
网络芯片正在以这种方式构建,并且与协议无关。 P4是可以为任何目标设备编译的语言,用于指定如何在数据平面中处理数据包。 P4编译器的体系结构有助于通过分离语言和目标模型使其独立于目标。每个芯片供应商都可以实现自己的编译器后端以映射到他们的硬件架构。 P4的体系架构(见图)还允许芯片公司定义自己的模型,然后编写P4后端来支持相同的内容,从而有助于隔离硬件细节。
每个芯片制造商只需要一个与其硬件兼容的P4编译器工具链,用户就可以独立于厂商的依赖性编写自己的P4程序,并在不影响速度的情况下编译和运行。用户只需关注实际的数据包处理逻辑,而无需担心底层硬件。编译器将为您的硬件生成runtime代码。下图显示了P4为数据平面编程提供的核心组件。
P4如何有益?
P4带来了许多好处,包括:
● 所有可编程网络设备的开源语言。易于移植。但是,实现这些好处也面临着一些挑战。需要记住的一点是,定制专有语言可以更好地控制可编程网络硬件。 P416是P4语言的2016版本,它确实支持外部方法以满足此类自定义硬件的特定要求,但会削弱P4的易于移植性。
此外,Hash、ECMP、多播、广播、镜像、排队、调度和校验等功能非常依赖于硬件。很难用Generic P4解决所有目标并获得对硬件的完全访问权限。
P4中控制平面和数据平面之间的通信方式有限。因此,不支持生成新数据包。
也就是说,P4开辟了许多机会并改变了网络芯片的设计方式。 P4架构提供了一个设计完全可编程芯片的样本模型和思路。未来所有传统交换机将很快转换为可编程交换机,具有完全软件定义的数据和控制平面。
原文发布时间为:2018-09-17
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。