Fundamentals, Service and Architecture of Programming Protocol-Independent Packet Processors (P4) for Networking : A Literature Survey

Main Article Content

Malldi Saesar Ariffudin
Leanna Vidya Yovita
Tody Ariefianto Wibowo

Abstract

The rapid development of network technology requires a system to be able to adapt to these developments. Technologies such as 5G, Internet of Things, Cloud Computing and even other network architectures will take time to configure because each provider produces varied and fixed interfaces that are difficult to modify. Software Defined Network (SDN), which has the concept of separating the control plane and data plane and a programmable control plane, is able to provide flexibility. However, OpenFlow, which is the communication protocol in SDN, becomes more complex and takes time to implement new protocols. To overcome this, Programming Protocol-independent Packet Processors (P4) can be a solution. P4 is a programming language that can manage how packets are processed in the data plane and can also describe packet headers as needed. This paper discusses the basics of P4, services that can run on P4, and its implementation in SDN/IP networks and new network architectures namely Named Data Networking (NDN) such as Load Balancing, Caching, Security, Congestion Control, and In-Band Network Telemetry (INT), Forwarding and Routing. In addition, we also discuss research opportunities in P4 as a reference and guide for future research.

Article Details

Section
Telecommunication

References

Afanasyev, A., Burke, J., Refaei, T., Wang, L., Zhang, B., & Zhang, L. (2018). A Brief Introduction to Named Data Networking. MILCOM 2018 - 2018 IEEE Military Communications Conference (MILCOM), 1–6. https://doi.org/10.1109/MILCOM.2018.8599682

Barbette, T., Wu, E., Kostic, D., Maguire, G. Q., Papadimitratos, P., & Chiesa, M. (2022). Cheetah: A High-Speed Programmable Load-Balancer Framework with Guaranteed Per-Connection-Consistency. IEEE/ACM Transactions on Networking, 30(1), 354–367. https://doi.org/10.1109/TNET.2021.3113370

Ben Basat, R., Ramanathan, S., Li, Y., Antichi, G., Yu, M., & Mitzenmacher, M. (2020). PINT: Probabilistic In-band Network Telemetry. Proceedings of the Annual Conference of the ACM Special Interest Group on Data Communication on the Applications, Technologies, Architectures, and Protocols for Computer Communication, 662–680. https://doi.org/10.1145/3387514.3405894

Bosshart, P., Daly, D., Gibb, G., Izzard, M., Mckeown, N., Rexford, J., Schlesinger, C., Talayco, D., Vahdat, A., Varghese, G., & Walker, D. (2014). P4: Programming Protocol-Independent Packet Processors. ACM SIGCOMM Computer Communication Review, 44(3), 87–95.

Budiu, M., Research, V., & Dodd, C. (2017). The P4 16 Programming Language. ACM SIGOPS Operating Systems Review, 51(1), 5–14.

De Sensi, D., Costa Molero, E., Di Girolamo, S., Vanbever, L., & Hoefler, T. (2024). Canary: Congestion-aware in-network allreduce using dynamic trees. Future Gener. Comput. Syst., 152(C), 70–82. https://doi.org/10.1016/j.future.2023.10.010

Dimolianis, M., Pavlidis, A., & Maglaris, V. (2020). A Multi-Feature DDoS Detection Schema on P4 Network Hardware. 2020 23rd Conference on Innovation in Clouds, Internet and Networks and Workshops (ICIN), 1–6. https://doi.org/10.1109/ICIN48450.2020.9059327

Friedman, R., Goaz, O., & Hovav, D. (2023). PKache: A Generic Framework for Data Plane Caching. Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing, 1268–1276. https://doi.org/10.1145/3555776.3590826

Garzón, C., Ríos-Guiral, S., Leal, E., Gutiérrez, S. A., & Botero, J. F. (2024). P4 Cybersecurity Solutions: Taxonomy and Open Challenges. IEEE Access, 12, 6376–6399. https://doi.org/10.1109/ACCESS.2023.3347332

Geng, J., Yan, J., Ren, Y., & Zhang, Y. (2018). Design and Implementation of Network Monitoring and Scheduling Architecture Based on P4. Proceedings of the 2nd International Conference on Computer Science and Application Engineering. https://doi.org/10.1145/3207677.3278059

Goswami, B., Kulkarni, M., & Paulose, J. (2023). A Survey on P4 Challenges in Software Defined Networks: P4 Programming. In IEEE Access (Vol. 11, pp. 54373–54387). Institute of Electrical and Electronics Engineers Inc. https://doi.org/10.1109/ACCESS.2023.3275756

Grewal, K., D’Antoni, L., & Hsu, J. (2022). P4BID: information flow control in p4. Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, 46–60. https://doi.org/10.1145/3519939.3523717

Guan, B., & Shen, S.-H. (2019). FlowSpy: An Efficient Network Monitoring Framework Using P4 in Software-Defined Networks. 2019 IEEE 90th Vehicular Technology Conference (VTC2019-Fall), 1–5. https://doi.org/10.1109/VTCFall.2019.8891487

Guo, X., Liu, N., Hou, X., Gao, S., & Zhou, H. (2021). An Efficient NDN Routing Mechanism Design in P4 Environment. 2021 2nd Information Communication Technologies Conference (ICTC), 28–33. https://doi.org/10.1109/ICTC51749.2021.9441639

HOU, S., HU, Y., TIAN, L., & DANG, Z. (2022). NFD.P4: NDN In-Networking Cache Implementation Scheme with P4. IEICE Transactions on Information and Systems, 105(4), 820–823. https://doi.org/10.1587/transinf.2021EDL8100

Ibanez, S., Brebner, G., McKeown, N., & Zilberman, N. (2019). The P4→NetFPGA workflow for line-rate packet processing. FPGA 2019 - Proceedings of the 2019 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 1–9. https://doi.org/10.1145/3289602.3293924

Karrakchou, O., Samaan, N., & Karmouch, A. (2020). ENDN: An Enhanced NDN Architecture with a P4-programmabIe Data Plane. Proceedings of the 7th ACM Conference on Information-Centric Networking, 1–11. https://doi.org/10.1145/3405656.3418720

Kaur, S., Kumar, K., & Aggarwal, N. (2021). A review on P4-Programmable data planes: Architecture, research efforts, and future directions. Computer Communications, 170, 109–129. https://doi.org/10.1016/j.comcom.2021.01.027

Kecskeméti, K., Györgyi, C., Vörös, P., & Laki, S. (2023). In-Network Security Applications with P4RROT. Proceedings of the Twenty-Fourth International Symposium on Theory, Algorithmic Foundations, and Protocol Design for Mobile Networks and Mobile Computing, 346–351. https://doi.org/10.1145/3565287.3617612

Kim, H., & Feamster, N. (2013). Improving network management with software defined networking. IEEE Communications Magazine, 51(2), 114–119. https://doi.org/10.1109/MCOM.2013.6461195

Kulkarni, M., Goswami, B., & Paulose, J. (2022). P4 based Load Balancing Strategies for Large Scale Software-Defined Networks. 2022 Second International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT), 1–7. https://doi.org/10.1109/ICAECT54875.2022.9807999

Lapolli, Â. C., Adilson Marques, J., & Gaspary, L. P. (2019). Offloading Real-time DDoS Attack Detection to Programmable Data Planes. 2019 IFIP/IEEE Symposium on Integrated Network and Service Management (IM), 19–27.

Liu, N., Gao, S., Yu, L., & He, G. (2022). A Secure and Cached-Enabled NDN Forwarding Plane Based on Programmable Switches. Wireless Communications and Mobile Computing, 2022(1), 4466942. https://doi.org/https://doi.org/10.1155/2022/4466942

Lü, H. R., Li, Q., Shen, G. B., Zhou, J. E., Jiang, Y., Li, W. C., Liu, K., & Qi, Z. Y. (2023). Survey on In-band Network Telemetry. Ruan Jian Xue Bao/Journal of Software, 34(8), 3870–3890. https://doi.org/10.13328/j.cnki.jos.006635

Madureira, A. L. R., Araújo, F. R. C., Araújo, G. B., & Sampaio, L. N. (2021). NDN Fabric: Where the Software-Defined Networking Meets the Content-Centric Model. IEEE Transactions on Network and Service Management, 18(1), 374–387. https://doi.org/10.1109/TNSM.2020.3044038

McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford, J., Shenker, S., & Turner, J. (2008). OpenFlow: enabling innovation in campus networks. SIGCOMM Comput. Commun. Rev., 38(2), 69–74. https://doi.org/10.1145/1355734.1355746

Miguel, R., Signorello, S., & Ramos, F. M. V. (2018). Named Data Networking with Programmable Switches. 2018 IEEE 26th International Conference on Network Protocols (ICNP), 400–405. https://doi.org/10.1109/ICNP.2018.00055

Mostafaei, H., & Afridi, S. (2021). P4Flow: Monitoring Traffic Flows With Programmable Networks. IEEE Communications Letters, 25(11), 3546–3550. https://doi.org/10.1109/LCOMM.2021.3109793

Osiński, T., & Cascone, C. (2022). Achieving End-to-End Network Visibility with Host-INT. Proceedings of the Symposium on Architectures for Networking and Communications Systems, 140–143. https://doi.org/10.1145/3493425.3502764

P4 16 Language Specification version 1.2.2. (2021). http://p4.org

Reddy, S. S., Nishoak, K., Shreya, J. L., Reddy, Y. V., & Venkanna, U. (2023). A P4-Based Adversarial Attack Mitigation on Machine Learning Models in Data Plane Devices. Journal of Network and Systems Management, 32(1), 5. https://doi.org/10.1007/s10922-023-09777-6

Refaei, T., Ha, S., Starr, R., & Steele, M. (2021). Using NDN and P4 for Effective Traffic Management in Tactical Networks. Proceedings - IEEE Military Communications Conference MILCOM, 2021-November, 577–582. https://doi.org/10.1109/MILCOM52596.2021.9653078

Rosa, E. C., & Silva, F. de O. (2022). A Hash-Free method for FIB and LNPM in ICN programmable data planes. 2022 International Conference on Information Networking (ICOIN), 186–191. https://doi.org/10.1109/ICOIN53446.2022.9687201

Sagkriotis, S., & Pezaros, D. (2022). Accelerating kubernetes with in-network caching. SIGCOMM 2022 Demos and Posters - Proceedings of the 2022 SIGCOMM 2022 Poster and Demo Sessions, Part of SIGCOMM 2022, 40–42. https://doi.org/10.1145/3546037.3546058

Sapio, A., Canini, M., Ho, C.-Y., Nelson, J., Kalnis, P., Kim, C., Krishnamurthy, A., Moshref, M., Ports, D., & Richtarik, P. (2021). Scaling Distributed Machine Learning with In-Network Aggregation. 18th USENIX Symposium on Networked Systems Design and Implementation (NSDI 21), 785–808. https://www.usenix.org/conference/nsdi21/presentation/sapio

Shahzad, S., Jung, E. S., Chung, J., & Kettimuthu, R. (2020). Enhanced explicit congestion notification (EECN) in TCP with P4 programming. Proceedings - 2020 International Conference on Green and Human Information Technology, ICGHIT 2020, 35–40. https://doi.org/10.1109/ICGHIT49656.2020.00015

Signorello, S., State, R., François, J., & Festor, O. (2016). NDN.p4: Programming information-centric data-planes. 2016 IEEE NetSoft Conference and Workshops (NetSoft), 384–389. https://doi.org/10.1109/NETSOFT.2016.7502472

Suh, D., Jang, S., Han, S., Pack, S., & Wang, X. (2020). Flexible sampling-based in-band network telemetry in programmable data plane. ICT Express, 6(1), 62–65. https://doi.org/https://doi.org/10.1016/j.icte.2019.08.005

Takemasa, J., Koizumi, Y., & Hasegawa, T. (2021). Vision: toward 10 Tbps NDN forwarding with billion prefixes by programmable switches. Proceedings of the 8th ACM Conference on Information-Centric Networking, 13–19. https://doi.org/10.1145/3460417.3482973

Tan, L., Su, W., Zhang, W., Lv, J., Zhang, Z., Miao, J., Liu, X., & Li, N. (2021). In-band Network Telemetry: A Survey. Computer Networks, 186, 107763. https://doi.org/https://doi.org/10.1016/j.comnet.2020.107763

Turkovic, B., & Kuipers, F. (2020). P4air: Increasing Fairness among Competing Congestion Control Algorithms. 2020 IEEE 28th International Conference on Network Protocols (ICNP), 1–12. https://doi.org/10.1109/ICNP49622.2020.9259405

Vörös, P., Horpácsi, D., Kitlei, R., Leskó, D., Tejfel, M., & Laki, S. (2018). T4P4S: A Target-independent Compiler for Protocol-independent Packet Processors. 2018 IEEE 19th International Conference on High Performance Switching and Routing (HPSR), 1–8. https://doi.org/10.1109/HPSR.2018.8850752

Wang, T., Yang, X., Antichi, G., Sivaraman, A., & Panda, A. (2022). Isolation Mechanisms for High-Speed Packet-Processing Pipelines. 19th USENIX Symposium on Networked Systems Design and Implementation (NSDI 22), 1289–1305. https://www.usenix.org/conference/nsdi22/presentation/wang-tao

Wu, Q., Liu, Q., Jia, Z., Xin, N., & Chen, T. (2023). P4SQA: A P4 Switch-Based QoS Assurance Mechanism for SDN. IEEE Transactions on Network and Service Management, 20(4), 4875–4886. https://doi.org/10.1109/TNSM.2023.3280913

Xie, S., Hu, G., Xing, C., & Liu, Y. (2023). Online Elephant Flow Prediction for Load Balancing in Programmable Switch-Based DCN. IEEE Trans. on Netw. and Serv. Manag., 21(1), 745–758. https://doi.org/10.1109/TNSM.2023.3318752

Yu, L., Gao, S., Liu, N., Wang, H., & Su, W. (2022). A Cache-enabled NDN Forwarding Plane based on Programmable Switches. 2022 International Conference on Networking and Network Applications (NaNA), 152–156. https://doi.org/10.1109/NaNA56854.2022.00033

Zha, Y., Cui, P., Hu, Y., Lan, J., & Wang, Y. (2022). A Scalable Bitwise Multicast Technology in Named Data Networking. IEICE Transactions on Information and Systems, E105D(12), 2104–2111. https://doi.org/10.1587/transinf.2022EDP7057

Zhang, J., Wen, S., Zhang, J., Chai, H., Pan, T., Huang, T., Zhang, L., Liu, Y., & Yu, F. R. (2020). Fast Switch-Based Load Balancer Considering Application Server States. IEEE/ACM Transactions on Networking, 28(3), 1391–1404. https://doi.org/10.1109/TNET.2020.2981977

Zhang, L., Afanasyev, A., Burke, J., Jacobson, V., claffy, kc, Crowley, P., Papadopoulos, C., Wang, L., & Zhang, B. (2014). Named data networking. SIGCOMM Comput. Commun. Rev., 44(3), 66–73. https://doi.org/10.1145/2656877.2656887

Zhao, Y., Liu, W., Dong, F., Yang, T., Li, Y., Yang, K., Liu, Z., Jia, Z., & Yang, Y. (2023). P4LRU: Towards An LRU Cache Entirely in Programmable Data Plane. Proceedings of the ACM SIGCOMM 2023 Conference, 967–980. https://doi.org/10.1145/3603269.3604813

Zheng, C., Rienecker, B., & Zilberman, N. (2023). QCMP: Load Balancing via In-Network Reinforcement Learning. Proceedings of the 2nd ACM SIGCOMM Workshop on Future of Internet Routing & Addressing, 35–40. https://doi.org/10.1145/3607504.3609291

Zhu, H., Wang, T., Hong, Y., Ports, D. R. K., Sivaraman, A., & Jin, X. (2022). NetVRM: Virtual Register Memory for Programmable Networks. 19th USENIX Symposium on Networked Systems Design and Implementation (NSDI 22), 155–170. https://www.usenix.org/conference/nsdi22/presentation/zhu