ClickOS and the Art of Network Function Virtualization

Joao Martins, Mohamed Ahmed, Costin Raiciu, Vladimir Olteanu, Michio Honda, Roberto Bifulco, Felipe Huici

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Over the years middleboxes have become a fundamental part of today’s networks. Despite their usefulness, they come with a number of problems, many of which arise from the fact that they are hardware-based: they are costly, difficult to manage, and their functionality is hard or impossible to change, to name a few.

To address these issues, there is a recent trend towards network function virtualization (NFV), in essence proposing to turn these middleboxes into software-based, virtualized entities. Towards this goal we introduce ClickOS, a high-performance, virtualized software middlebox platform. ClickOS virtual machines are small (5MB), boot quickly (about 30 milliseconds), add little delay (45 microseconds) and over one hundred of them can be concurrently run while saturating a 10Gb pipe on a commodity server. We further implement a wide range of middleboxes including a firewall, a carrier-grade NAT and a load balancer and show that ClickOS can handle packets in the millions per second.
Original languageEnglish
Title of host publicationProceedings of the 11th USENIX Conference on Networked Systems Design and Implementation
Place of PublicationUSA
PublisherUSENIX Association
Pages459–473
Number of pages15
ISBN (Print)9781931971096
Publication statusPublished - 2 Apr 2014
Event11th USENIX Symposium on Networked Systems Design and Implementation - Seattle, United States
Duration: 2 Apr 20144 Apr 2014
https://www.usenix.org/conference/nsdi14

Symposium

Symposium11th USENIX Symposium on Networked Systems Design and Implementation
Abbreviated titleNSDI '14
CountryUnited States
CitySeattle
Period2/04/144/04/14
Internet address

Fingerprint

Dive into the research topics of 'ClickOS and the Art of Network Function Virtualization'. Together they form a unique fingerprint.

Cite this