Traditionally, the data plane has been designed with fixed functions to forward packets using a small set of protocols. This closed-design paradigm has limited the capability of the switches to proprietary implementations which are hardcoded by vendors, inducing a lengthy, costly, and inflexible process. Recently, data plane programmability has attracted significant attention from both the research community and the industry, permitting operators and programmers in general to run customized packet processing function. This open-design paradigm is paving the way for an unprecedented wave of innovation and experimentation by reducing the time of designing, testing, and adopting new protocols; enabling a customized, top-down approach to develop network applications; providing granular visibility of packet events defined by the programmer; reducing complexity and enhancing resource utilization of the programmable switches; and drastically improving the performance of applications that are offloaded to the data plane. Despite the impressive advantages of programmable data plane switches and their importance in modern networks, the literature has been missing a comprehensive survey. To this end, this paper provides a background encompassing an overview of the evolution of networks from legacy to programmable, describing the essentials of programmable switches, and summarizing their advantages over Software-defined Networking (SDN) and legacy devices. The paper then presents a unique, comprehensive taxonomy of applications developed with P4 language; surveying, classifying, and analyzing more than 150 articles; discussing challenges and considerations; and presenting future perspectives and open research issues.
翻译:传统上,数据平面的设计具有固定功能,利用一套小的规程转发包件。这种封闭式设计模式限制了向销售商硬编码的专有性实施开关的能力,导致一个漫长、昂贵和不灵活的过程。最近,数据平面的编程性吸引了研究界和业界的极大关注,允许操作者和一般程序员运行定制的包处理功能。这种开放式设计模式为前所未有的创新和实验浪潮铺平了道路,减少了设计、测试和采用新规程的时间;为开发网络应用程序提供了定制、自上而下的方法;为程序员定义的包件事件提供了粒子可见度;减少了可编程开关的复杂程度并增加了对可编程开关的资源利用;极大地改进了与数据平面无关的应用的性;尽管可编程数据平面开关及其在现代网络中的重要性具有令人印象深刻的优势,但文献却遗漏了全面的调查。为此,本文件提供了背景,概述了从遗留到可编程的网络的演变过程到可编程的、描述基本观点的网络和对可编程设备的展望;展示了其优势,并概括了对当时的版本进行了分析。