An Exhaustive Survey on P4 Programmable Data Plane Switches: Taxonomy, Applications, Challenges, and Future Trends
arXiv:2102.00643 · doi:10.1109/ACCESS.2021.3086704
Abstract
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.
References in corpus (26)
- Knowledge-Defined Networking
- PCC: Re-architecting Congestion Control for Consistent High Performance
- Distributed Deep Learning Using Synchronous Stochastic Gradient Descent
- Scaling Distributed Machine Learning with In-Network Aggregation
- A Survey on Data Plane Flexibility and Programmability in Software-Defined Networking
- Efficient Measurement on Programmable Switches Using Probabilistic Recirculation
- P4-IPsec: Site-to-Site and Host-to-Site VPN with IPsec in P4-Based SDN
- P4-MACsec: Dynamic Topology Monitoring and Data Layer Protection with MACsec in P4-SDN
- In-Network Volumetric DDoS Victim Identification Using Programmable Commodity Switches
- P4CEP: Towards In-Network Complex Event Processing
- Delta-net: Real-time Network Verification Using Atoms
- In-network Neural Networks
- Contra: A Programmable System for Performance-aware Routing
- HORNET: High-speed Onion Routing at the Network Layer
- ZipLine: In-Network Compression at Line Speed
- SNAP: Stateful Network-Wide Abstractions for Packet Processing
- Dapper: Data Plane Performance Diagnosis of TCP
- Programmable In-Network Security for Context-aware BYOD Policies
- Me Love (SYN-)Cookies: SYN Flood Mitigation in Programmable Data Planes
- Programmable Switch as a Parallel Computing Device
- GP4P4: Enabling Self-Programming Networks
- Anonymizing Masses: Practical Light-weight Anonymity at the Network Level
- LOcAl DEcisions on Replicated States (LOADER) in programmable data planes: programming abstraction and experimental evaluation
- A Case for Data Centre Traffic Management on Software Programmable Ethernet Switches
- Seek and Push: Detecting Large Traffic Aggregates in the Dataplane
- SwitchAgg:A Further Step Towards In-Network Computation
Cited by in corpus (5)
- A Survey on Data Plane Programming with P4: Fundamentals, Advances, and Applied Research
- A Comprehensive Survey on SmartNICs: Architectures, Development Models, Applications, and Research Directions
- Flare: Flexible In-Network Allreduce
- An Architecture for Provisioning In-Network Computing-Enabled Slices for Holographic Applications in Next-Generation Networks
- Tracking the QUIC Spin Bit on Tofino