Abstract
The fields of networking and telecommunications are presently witnessing the transition of a number of Network Function Virtualization (NFV) principles and techniques from research into practice. This survey attempts to capture the NFV phenomenon in its multi-faceted historical development over the last two decades, by answering the question “What are the main goals of NFV systems?” and by highlighting the advantages and technical limits of NFV in supporting those goals. By focusing on the whys and hows of NFV, we propose a reasoned overview of the most significant design elements of NFV as a complementary synthesis to the analytical taxonomies of papers and standards that are usually found in survey documents.
Similar content being viewed by others
References
Linux New API. http://www.linuxfoundation.org/collaborate/workgroups/networking/napi
Anderson JW, Braud R, Kapoor R, Porter G, Vahdat A (2012) xOMB: extensible open middleboxes with commodity servers
Anwer B, Benson T, Feamster N, Levin D (2015) Programming slick network functions. In: 1st ACM SIGCOMM Symposium on Software Defined Networking Research, p 14
Baentsch M, Baun L, Molter G, Rothkugel S, Sturn P (1997) World wide web caching: the application-level view of the internet. IEEE Commun Mag 35(6):170–178
Ballani H, Costa P, Gkantsidis C, Grosvenor MP, Karagiannis T, Koromilas L, O’Shea G (2015) Enabling end-host network functions. In: ACM SIGCOMM 2015, pp 493–507
Barbette T, Soldani C, Mathy L (2015) Fast userspace packet processing. In: 11th ACM/IEEE ANCS, pp 5–16
Barham P, Dragovic B, Fraser K, Hand S, Harris T, Ho A, Neugebauer R, Pratt I, Warfield A (2003) Xen and the art of virtualization. ACM SIGOPS Oper Syst Rev 37(5):164–177
Belay A, Prekas G, Klimovic A, Grossman S, Kozyrakis C, Bugnion E (2014) IX: a protected dataplane operating system for high throughput and low latency. In: 11th USENIX OSDI, pp 49–65
Bonafiglia R, Cerrato I, Ciaccia F, Nemirovsky M, Risso F (2015) Assessing the performance of virtualization technologies for nfv: a preliminary benchmarking. In: 4th European Workshop on Software Defined Networks, pp 67–72
Bremler-Barr A, Harchol Y, Hay D (2015) Openbox: enabling innovation in middlebox applications. In: Proceedings of the 2015 ACM SIGCOMM Workshop on Hot Topics in Middleboxes and Network Function Virtualization, pp 67–72
Cohen B (2003) Incentives build robustness in bittorrent. In: NetEcon’03 Workshop, p 6
Costa P, Donnelly A, Rowstron A, O’Shea G (2012) Camdoop: exploiting in-network aggregation for big data applications. In: USENIX NSDI, pp 29–42
Dobrescu M, Egi N, Argyraki K, Chun BG, Fall K, Iannaccone G, Knies A, Manesh M, Ratnasamy S (2009) RouteBricks: exploiting parallelism to scale software routers. In: Proceedings of ACM SIGOPS
ETSI: NFV Whitepaper. http://portal.etsi.org/NFV/NFV_White_Paper.pdf
Freedman MJ, Freudenthal E, Mazières D. (2004) Democratizing content publication with Coral. In: USENIX NSDI
Han S, Jang K, Park K, Moon S (2010) Packetshader: a gpu-accelerated software router. SIGCOMM Comput Commun Rev 40(4):195–206
Honda M, Huici F, Raiciu C, Araujo J, Rizzo L (2014) Rekindling network protocol innovation with user-level stacks. SIGCOMM Comput Commun Rev 44(2):52–58
Hwang J, Ramakrishnan K, Wood T (2014) NetVM: high performance and flexible networking using virtualization on commodity platforms. In: USENIX NSDI
Intel: DPDK framework. http://dpdk.org
Jacobson V, Smetters DK, Thornton JD, Plass MF, Briggs NH, Braynard RL (2009) Networking named content. In: Proceedings of ACM CoNEXT
Jain R, Paul S (2013) Network virtualization and software defined networking for cloud computing: a survey. IEEE Commun Mag 51(11):24–31
Jain S et al (2013) B4: experience with a globally-deployed software defined wan. SIGCOMM Comput Commun Rev 43(4):3–14
Jeong E, Wood S, Jamshed M, Jeong H, Ihm S, Han D, Park K (2014) mTCP: a highly scalable user-level tcp stack for multicore systems. In: USENIX NSDI
Kim J, Jang K, Lee K, Ma S, Shim J, Moon S (2015) NBA (Network Balancing Act): a high-performance packet processing framework for heterogeneous processors. In: 10th European Conference on Computer Systems, EuroSys ’15, pp 22:1–22:14
Kohler E, Morris R, Chen B, Jannotti J, Kaashoek MF (2000) The click modular router. ACM Transactions Computer Systems
Laufer R, Gallo M, Perino D, Nandugudi A (2016) CliMB: enabling network function composition with click middleboxes. In: ACM HotMiddlebox’16
Li Y, Chen M (2015) Software-defined network function virtualization: a survey. IEEE Access 3:2542–2553
Mai L et al (2014) NetAgg: using middleboxes for application-specific on-path aggregation in data centres. In: 10th ACM CoNEXT, pp 249–262
Marinos I, Watson RN, Handley M (2015) Network stack specialization for performance. ACM SIGCOMM Comput Commun Rev 44(4):175–186
Martins J, Ahmed M, Raiciu C, Olteanu V, Honda M, Bifulco R, Huici F (2014) ClickOS and the art of network function virtualization. In: USENIX NSDI
Mijumbi R, Serrat J, Gorricho JL, Bouten N, Turck FD, Boutaba R (2016) Network function virtualization: state-of-the-art and research challenges. IEEE Commun Surv Tutorials 18(1): 236–262
Palkar S, Lan C, Han S, Jang K, Panda A, Ratnasamy S, Rizzo L, Shenker S (2015) E2: a framework for nfv applications. In: 25th Symposium on Operating Systems Principles, pp 121–136
Perino D, Gallo M, Laufer R, Ben Houidi Z, Pianese F (2016) A programmable data plane for heterogeneous nfv platform. In: 1st IEEE INFOCOM SWFAN Workshop
Pfaff B, Pettit J, Koponen T, Jackson E, Zhou A, Rajahalme J, Gross J, Wang A, Stringer J, Shelar P et al (2015) The design and implementation of open vswitch. In: USENIX NSDI, pp 117–130
Popuri S (2014) A tour of the Mini-OS kernel. https://www.cs.uic.edu/spopuri/minios.html
Ramasubramanian V, Sirer EG (2004) The design and implementation of a next generation name service for the internet. ACM SIGCOMM Comput Commun Rev 34(4):331–342
Rizzo L (2012) netmap: a novel framework for fast packet I/O. In: Proceedings of USENIX Security
Rizzo L, Lettieri G (2012) Vale, a switched ethernet for virtual machines. In: 8th ACM CoNEXT, pp 61–72
Saltzer JH, Reed DP, Clark DD (1984) End-to-end arguments in system design. ACM Trans Comput Syst 2(4):277–288
Sekar V, Egi N, Ratnasamy S, Reiter MK, Shi G (2012) Design and implementation of a consolidated middlebox architecture. In: USENIX NSDI, pp 323–336
Singh A et al (2015) Jupiter rising: a decade of clos topologies and centralized control in google’s datacenter network. ACM SIGCOMM Comput Commun Rev 45(4):183–197
Smolyar I, Ben-Yehuda M, Tsafrir D (2015) Securing self-virtualizing ethernet devices. In: 24th USENIX Security Symposium (USENIX Security 15), Washington, D.C, pp 335–350
Stoenescu R et al (2015) In-net: in-network processing for the masses. In: 10th European Conference on Computer Systems, EuroSys ’15. ACM, pp 23:1–23:15
Sun W, Ricci R (2013) Fast and flexible: parallel packet processing with gpus and click. In: 9th ACM/IEEE ANCS , pp 25–36
Tennenhouse DL, Smith JM, Sincoskie WD, Wetherall DJ, Minden GJ (1997) A survey of active network research. IEEE Commun Mag 35(1):80–86
Woo S, Jang K, Han D, Park K (2012) Towards an Open Middlebox Platform for Modular Function Composition. In: USENIX NSDI. Poster
Wood T, Ramakrishnan K, Hwang J, Liu G, Zhang W (2015) Toward a software-based network: integrating software defined networking and network function virtualization. IEEE Netw 29(3):36–41
Wu W, Crawford M, Bowden M (2007) The performance analysis of linux networking–packet receiving. Comput Commun 30(5):1044–1057
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Nandugudi, A., Gallo, M., Perino, D. et al. Network function virtualization: through the looking-glass. Ann. Telecommun. 71, 573–581 (2016). https://doi.org/10.1007/s12243-016-0540-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12243-016-0540-9