作为数据中心的交通枢纽,网络连接着所有运行应用业务的设备,发挥着至关重要的作用,网络设备和网络技术也在不断发展进化,其中包括可编程技术。可编程技术可由用户通过计算机指令,选择不同的通道和不同的电路功能,称为编程控制,这给使用者提供了极大的灵活性。
网络设备的硬件内部一般由CPU、内存、Flash、转发芯片、FPGA、EEPROM等芯片组成,这些大部分都是可编程芯片,网络设备通过这些可编程芯片,实现了很多特殊网络流量的转发。但转发芯片绝大部分都不是可编程芯片,转发芯片的硬件转发逻辑早已设计好,无法通过调整软件参数去更改。软件设置只是让这些功能模块可以运转起来,但绝不可以调整它们的处理顺序,而且软件设置的范围都是提前预定好的。
云计算、大数据和虚拟化技术的出现给网络带来了巨大的冲击和挑战,网络固定的转发模式无法适应新技术的应用。P4可编程语言和英特尔Tofino芯片出现,用户或网络供应商可以利用P4编程语言来定制白盒解决方案或固定配置产品,用户可以在数周内部署新协议,而不需要新版本的芯片来支持。Tofino芯片的可编程能力极大地扩展了网络处理的灵活性,可适应各种复杂网络场景的应用。
由英特尔、ONF社区倡议发起的“英特尔2022 P4中国黑客松”大赛正在进行中,借此机会,我们采访了英特尔数据中心集团交换网络事业部中国区总经理周刚,探讨了可编程网络的发展趋势,P4网络编程语言的应用现状及英特尔Tofino交换芯片的发展等话题。
可编程网络是一个必然发展的趋势
过去10多年来,网络发生了翻天覆地的变化,随着5G、AR/VR的不断发展,数据流量迅猛增长,IDC预计2025年将增加至175ZB,网络面临着越来越大的挑战。周刚指出,公有云以及电信网络提供商都在转向基于容器的处理、微服务编排和自动化的云本地架构,AI和日新月异的工作负载催生了不断增长的网络优化需求。未来网络必须要具备三大能力:一是超低时延、超高带宽、超大规模的联结能力;二是确定性服务和差异化服务的能力;三是计算、存储等多维资源的统一调度的能力。
同时,网络设备以及相关解决方案则需要具备以下能力:首先,要简化硬件设备,同时保证其处理性能,并通过软件定义的方式增强网络弹性。其次,要具备智慧大脑,实现网络运维的智能化。第三,要实现内生安全、主动安全,进而实现更安全的网络。
基于这些趋势以及对网络设备的要求,周刚指出,可编程网络是一个必然发展的趋势,而英特尔从2017年开始就在中国引入了P4的概念。
P4 ——可编程语言的开拓者
P4(Programming Protocol-Independent Packet Processors)是一种开源的数据平面高级编程语言,专为编程可重构网络设计,用来指定数据平面设备(交换机、DPU/IPU、路由器、 OVS等)如何处理数据包。P4是对协议无关的包处理器进行编程的语言,所谓的协议无关是指用户可以基于P4代码实现现有的网络协议,或者说对现有的网络协议做一些增强扩展,甚至是基于用户自己的需求实现一个全新的网络协议。
Nick McKeown教授于2013年提出了P4,2017年英特尔将P4带入中国市场,经过五年发展,P4作为关键的可编程网络语言,已经成为网络行业的标准语言,也是行业巨头竞争的焦点之一。
P4是一个真正开放开源的生态,用户可以基于自己的业务诉求,用P4去实现所需要的数据面的转发行为。通过使用P4进行快速简洁的迭代开发,来实现自己的业务逻辑,同时又能保留自己业务逻辑相关的一些差异化。目前全球已经有谷歌、AT&T、阿里巴巴、腾讯在内的超过100家世界知名大型公司加入P4社区,中国也有越来越多的P4玩家参与进来。
P4——Tofino、IPU、IPDK……
在P4中国的生态化发展方面,英特尔一直是一个重要的推手。Tofino交换芯片是英特尔推出的全球第一款真正面向用户的全面可编程网络芯片。周刚介绍,Tofino交换芯片系列一直在不断更新,Tofino 1的处理能力从1.8T到6.4T,Tofino 2处理能力有12.8T,Tofino 3处理能力最大可达25.6T。和现有传统的交换芯片相比,Tofino交换芯片在不损失功耗性能以及成本的基础上,额外的引入了P4,可以给最终用户带来可编程性。芯片里面没有任何固化的设计,所有的功能都是通过软件来实现的。
P4网络芯片主要面向的是芯片使用者,强调的是可编程的概念,而不是芯片开发者,这和传统的芯片设计有着本质的区别。相较于传统的网络芯片,基于P4的网络芯片,可以更轻松的实现网络交换、路由,用户可以更灵活的自定义功能。它的最大特点便是简单、高效、易上手,需要更新的功能,仅需一周甚至3天就可以在芯片内实现,并可直接交付用户使用。
目前英特尔也发布了自己的IPU产品,包括基于ASIC的 IPU和基于FPGA的IPU,这两类IPU都支持P4。
周刚表示,英特尔把P4生态扩展到了整个链路上的解决方案。除了提供支持P4的硬件设备外,英特尔还提供IPDK的开源软件,用户或者工程师可以非常方便开发基于P4的可编程网络平台。
据了解,IPDK是一个开源的、与厂商无关的驱动程序和API框架,可管理由CPU、IPU、DPU或交换机构建的基础设施。IPDK能够利用现有的一些工具以及平台,包括DPDK、SPDK、P4以及SONiC和PINS来满足不同基础设施应用的需求。这些基础设施应用包括网络虚拟化、存储虚拟化,以及容器网络所对应的K8S。
IPDK还可以支撑各种各样的工作负载的卸载以及加速,包括防火墙、入侵检测系统、5G、边缘计算、网络可视化层面的加速。基于IPDK框架,基础设施应用程序的用户可以根据对功能和性能的不同要求,把自己的应用在各种具有不同能力的平台之间做一个无缝的切换。
目前英特尔已经把IPDK作为OPI开放可编程技术项目一部分贡献给了Linux基金会,同时也在跟国内重量级的终端用户、最领先公有云厂商共同开发IPDK社区。
随着“新基建”、“东数西算”等战略走向纵深,未来需要构建面向低时延的确定性网络,通过IPV6、SRv6方面的创新,引入应用感知技术,实现差异化的服务体验。周刚表示,东数西算战略与可编程以及英特尔所倡导的技术理念是完全吻合的,所有的这些网络要求的前提就是要实现网络可编程,并且可编程的能力要简单易用,P4可编程能够进一步助力算网一体发展。可以说,未来算力网络的底座和基石就是P4可编程。