- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用P4对数据平面进行编程
作者:尼克·麦克欧文(Nick?McKeown)1,?3 金昶勳(Changhoon?Kim)2,?3 1 斯坦福大学;2 Barefoot?Networks;3 P4.org译者:高荣新(Ron?Kao)
关键词?:P4?语言联盟 可编程数据平面
引言
软件定义网络因其使网络拥有者和运营商能够对网络行为进行编程而取得了巨大的成功。然而,其可编程性目前仅局限于网络控制平面,其转发平面在很大程度上受制于功能固定的包处理硬件。P4语言联盟 (www.P4.org)[1]及其开源活动旨在完全摆脱网络数据平面的束缚,让网络拥有者、工程师、架构师及管理员可以自上而下地定义数据包的完整处理流程。
灵活的网络数据平面将加速网络和计算在不同子领域的创新。事实上,这是计算机历史上几次相同技术变革模式的又一次重现:廉价的可编程器件的出现必然会推动其上层应用的创新和发展,给业界带来新一轮革新。
在网络领域,这个故事才刚刚开始,并在新一代高性能可编程数据包处理芯片的助力下成为可能。在高性能领域,内置协议无关的交换架构PISA芯片能提供每秒Tb[2]级别的数据包处理速度,以及 完全可编程的数据包解析与通用的“匹配 - 动作” 能力。在中低性能领域,服务器级或嵌入式的中央 处理器(CPU)、图形处理器(GPU)、现场可编程门阵列(FPGA)和网络处理器(NPU)早已能够提供每 秒几十到几百Gb速度级别的数据包处理速度以及灵活的处理过程。除了可编程转发芯片,我们还需要“P4”()[1,3] 这样的高级语言,以不受限于具体目标设备(目标无关)的方式控制转发行为。程序员首先用P4定义数据包的处理流程,然后利用编译器在不受限于具体协议(协议无关)的交换机或网卡上 生成具体的配置,从而实现用P4表达的数据包处理逻辑。程序员通过编程,可以将交换机变为一个架顶交换机 (Top-Of-Rack, TOR)、一道防火墙或一个负载平衡器,或者支持新的自动诊断功能和新的拥塞控制算法等。
图1 P4是编程交换机数据平面的语言
图 1 显示了P4(编程交换机数据平面,从而说明数据包如何被处理)与控制平面应用程序(在运行时生成转发表)之间的关系。需要注意的是,通过编译P4程序,不仅可以在可编程的数据包处理硬件上生成具体的配置,还可以生成运行时应用编程接口,来帮助控制和数据平面之间的交互。
本文将从比较抽象的层面介绍P4语言和可编程数据平面技术。如想了解更多技术细节,建议从《P4的语言规范》[4](最初是2014年在 SIGCOMM CCR上发表的P4论文[3])和《开源P4开发工具》[5]入手。
可编程数据平面将达到什么目标?
可编程数据平面将带来广泛而巨大的影响。我们预计几乎所有的网络领域参与者都将从中获益。
可编程数据平面有助于网络系统供应商进行 更快速的迭代开发,迅速推出新的功能,甚至直接通过打补丁修复现有产品中发现的数据平面程序漏洞。数据平面的灵活性使得各个供应商能够在系统功能和性能上差异化,以有别于其他厂商。最根本的是,这些系统供应商可以从软件产业过去几十年已发展成熟的软件编程理论、实践和工具中受益。
可编程数据平面也可以帮助网络拥有者(例如在线服务提供商、运营商和企业)实现最适合其自身需求的具体网络行为。此外,许多大型运营商拥有的大量软件开发人员能够轻松学会对数据平面的网络设备进行编程、测试和调试,将网络变成一个可编程的平台,以一个完全可编程的方式来管理网络。例如,他们可以开发自定义的网络监控、分析和诊断系统,实现前所未有的网络可视化和相关性,从而大幅度降低网络的运营成本。他们还可以协同优化网络以及在网络上运行的应用程序,来保证最佳的用户体验。
对于网络芯片供应商,可编程数据平面使他们能专注于设计并改进那些可重用的数据包处理架构和基本模块,而不是纠缠特定协议里错综复杂的细节和异常行为。而且,一旦证明这些架构和基本模块可行,供应商就可以在多代交换芯片的设计中重复使用它们,不必为客户不断产生的新需求而反复修改。
对于网络和分布式系统的研究人员,可编程的数据平面为他们实现并验证新想法(尤其是那些引入新的数据平面行为的项目)提供了新的契机。因为只有“合适”的硬件才能真正应对实际部署中所有具有挑战性的需求,如高端口速度、全线速发送小数据包、低延迟、高端口数等。
可编程的数据平面技术具有如下优点:
新功能:可以快速和频繁地开发新的网络功能,比如新的自定义功能或标准的数据包头规范和转发行为。
降低复杂性:可以去掉冗余的而只保留网络必需的数据平面功能。例如,大多数大型数据中心网络通常只使用L2&L3转发、ECMP(等价多路径)、LAG(链路聚合)和ACL(访问控制列表)。其他复杂的协议,比如MPLS(多协议标签交换)、QoS(服 务质量)和IP
文档评论(0)