Skip to main content
Log in

A lightweight container-based virtual time system for software-defined network emulation

  • Published:
Journal of Simulation

Abstract

Container-based network emulation offers high fidelity and a scalable testing environment to bridge the gap between research ideas and real-world network applications. However, containers take their notions of time from the physical system clock, and thus the time-stamped events from different containers are multiplexed to reflect the scheduling serialization by the Linux operating system. Conjoining the emulator and other simulators is also challenging due to the difficulties of synchronizing the virtual simulation clock with the physical system clock. Virtual time systems for network emulation shed light on both issues. In this paper, we develop a lightweight container-based virtual time system in Linux Kernel. We use time dilation to trade time with system resources by precisely scaling the time of interactions between containers and physical devices. We develop a time freezer to enable the precise pause and resume of an emulation experiment, which offers the virtual time support to interface with simulators for close synchronization. We integrate the virtual time system into a software-defined networking emulator, Mininet, and evaluate the system accuracy, scalability, and overhead. Finally, we use the virtual-time-enabled emulation testbed to conduct a case study of equal-cost multi-path routing protocol analysis in a data center network.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16

Similar content being viewed by others

References

  • Al-Fares M, Radhakrishnan S, Raghavan B, Huang N and Vahdat A (2010). Hedera: Dynamic flow scheduling for data center networks. In: Proceedings of the 7th USENIX Conference on Networked Systems Design and Implementation, USENIX Association, San Jose, California, pp 19–33.

  • Almesberger W (1999). Linux traffic control: implementation overview. In: Proceedings of 5th Annual Linux Expo, pp 153–164.

  • Chan M, Chen C, Huang J, Kuo T, Yen L and Tseng C (2014). Opennet: A simulator for software-defined wireless local area network. In: Wireless Communications and Networking Conference, IEEE Computer Society, pp 3332–3336.

  • Common Open Research Emulator (CORE). (2016). Retrieved from http://www.nrl.navy.mil/itd/ncs/products/core.

  • Corbet J (2014). Retrieved from on vsyscalls and the vDSO: http://lwn.net/Articles/446528.

  • Erazo M, Li Y and Liu J (2009). SVEET! a scalable virtualized evaluation environment for TCP. In: Proceedings of the 2009 Testbeds and Research Infrastructures for the Development of Networks Communities and Workshops. IEEE Computer Society, pp 1–10.

  • FS: A Network Flow Record Generator (2013). Retrieved from https://github.com/jsommers/fs.

  • Grau A, Herrmann K and Rothermel K (2011). NETbalance: Reducing the runtime of network emulation using live migration. In: Proceedings of the 20th International Conference on Computer Communications and Networks. IEEE Computer Society, Maui, HI, pp 1–6.

  • Grau A, Maier S, Herrmann K and Rothermel K (2008). Time jails: A hybrid approach to scalable network emulation. In: Proceedings of the 22nd Workshop on Principles of Advanced and Distributed Simulation. IEEE Computer Society, pp 7–14.

  • Gupta D, Vishwanath KV, McNett M, Vahdat A, Yocum K, Snoeren A and Voelker G (2011). DieCast: Testing distributed systems with an accurate scale model. ACM Transactions on Computer Systems 29(2): 1–48.

    Article  Google Scholar 

  • Gupta D, Yocum K, McNett M, Snoeren A, Vahdat A and Voelker G (2005). To infinity and beyond: Time warped network emulation. In: Proceedings of the 20th ACM Symposium on Operating Systems Principles. ACM, Brighton, United Kingdom, pp 1–12.

  • Handigol N, Heller B, Jeyakumar V, Lantz B and McKeown N (2012). Reproducible network experiments using container-based emulation. In: Proceedings of the 8th International Conference on Emerging Networking Experiments and Technologies. ACM, Nice, France, pp 253–264.

  • Hannon C, Yan J and Jin D (2016). DSSnet: A smart grid modeling platform combining electrical power distribution system simulation and software defined networking emulation. Submitted to the 4th ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. ACM Alberta.

  • Heller B (2014). RipL-POX (Ripcord-Lite for POX): a simple network controller for OpenFlow-based data centers. Retrieved from https://github.com/brandonheller/riplpox.

  • Henderson TR, Lacage M, Riley GF, Dowell C and Kopena J (2008). Network simulations with the ns-3 simulator. SIGCOMM Demonstration 15: 17.

    Google Scholar 

  • Hibler M, Ricci R, Stoller L, Duerig J, Guruprasad S, Stack T, Lepreau J (2008). Large-scale virtualization in the emulab network testbed. In: Proceedings of the USENIX 2008 Annual Technical Conference, USENIX Association, Boston, Massachusetts, pp 113–128.

  • iperf3 (2014). Retrieved 2014, from http://software.es.net/iperf.

  • Jails under FreeBSD 6 (2014). Retrieved from http://www.freebsddiary.org/jail-6.php.

  • Jin D and Nicol D (2013). Parallel simulation of software defined networks. In: Proceedings of the 2013 ACM SIGSIM Conference on Principles of Advanced Discrete Simulation, ACM, Montreal, Quebec, Canada, pp 91–102.

  • Jin D, Zheng Y, Zhu H, Nicol DM and Winterrowd L (2012). Virtual time integration of emulation and parallel simulation. In: Proceedings of the 2012 ACM/IEEE/SCS 26th Workshop on Principles of Advanced and Distributed Simulation, IEEE Computer Society, Zhangjiajie, pp 201–210.

  • Jurkiewicz P (2013). Link modeling using ns-3. Retrieved from https://github.com/mininet/mininet/wiki/Link-modeling-using-ns-3.

  • Lamps J, Adam V, Nicol DM and Caesar M (2015). Conjoining emulation and network simulators on linux multiprocessors. In: Proceedings of the 3rd ACM SIGSIM Conference on Principles of Advanced Discrete Simulation, ACM, London, pp 113–124.

  • Lamps J, Nicol D and Caesar M (2014). TimeKeeper: A lightweight virtual time system for linux. In: Proceedings of the 2nd ACM SIGSIM/PADS Conference on Principles of Advanced Discrete Simulation, ACM, Denver, Colorado, USA, pp 179–186.

  • Lantz B, Heller B and McKeown N (2010). A network in a laptop: Rapid prototyping for software-defined networks. In: Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks, ACM, Monterey, California, pp 1–6.

  • Linux Containers (2014). Retrieved from https://linuxcontainers.org.

  • Liu J, Rangaswami R and Zhao M (2010). Model-driven network emulation with virtual time machine. In: Proceedings of the Winter Simulation Conference, IEEE Computer Society, Baltimore, Maryland, pp 688–696.

  • McKeown N, Anderson T, Balakrishnan H, Parulkar G, Peterson L, Rexford J and Turner J (2008). OpenFlow: Enabling innovation in campus networks. ACM SIGCOMM Computer Communication Review 38(2): 69–74.

    Article  Google Scholar 

  • Molnar I (2006). GTOD: Mark TSC Unusable for Highres Timers. Retrieved 2016, from https://lwn.net/Articles/209101.

  • Open vSwitch (2014). Retrieved from http://openvswitch.org.

  • OpenVZ Linux Container (2014). Retrieved from http://openvz.org/Main_Page.

  • Project Floodlight (2016). Retrieved 2016, from http://www.projectfloodlight.org/floodlight/.

  • Reproducing Network Research (2014). Retrieved from https://reproducingnetworkresearch.wordpress.com.

  • Ryu SDN Framework (2014). Retrieved from https://osrg.github.io/ryu.

  • S3F/S3FNet (2015). Retrieved from S3F/S3FNet: Simpler Scalable Simulation Framework: https://s3f.iti.illinois.edu.

  • Sommers J, Bowden R, Eriksson B, Barford P, Roughan M and Duffield N (2011). Efficient network-wide flow record generation. In: Proceedings IEEE INFOCOM 2011, IEEE, Shanghai, pp 2363–2371.

  • Thaler D and Hopps C (2000). Multipath Issues in Unicast and Multicast Next-Hop Selection. Retrieved 2014, from https://tools.ietf.org/html/rfc2991.

  • The OpenDaylight Platform (2013). Retrieved from https://www.opendaylight.org/.

  • The POX Controller (2013). Retrieved 2014, from https://github.com/noxrepo/pox.

  • The Xen Project (2014). Retrieved from http://www.xenproject.org.

  • Vahdat A (2009). Scale and Efficiency in Data Center Networks. UC San Diego.

  • Wang S-Y, Chou C-L and Chun-Ming Y (2013). EstiNet openflow network simulator and emulator. IEEE Communications Magazine 51(9): 110–117.

  • Weingartner E, Schmidt F, Lehn HV, Heer T and Wehrle K (2011). SliceTime: A platform for scalable and accurate network emulation. In: Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation. USENIX Association, Boston, MA, pp 253–266.

  • Yan J (2016). Virtual Time System for Linux Kernel. Retrieved 2016, from https://github.com/littlepretty/VirtualTimeKernel.

Download references

Acknowledgements

This paper is partly sponsored by the Maryland Procurement Office under Contract No. H98230-14-C-0141, and the Air Force Office of Scientific Research (AFOSR) under grant FA9550-15-1-0190. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the Maryland Procurement Office and AFOSR.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dong Jin.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Yan, J., Jin, D. A lightweight container-based virtual time system for software-defined network emulation. J Simulation 11, 253–266 (2017). https://doi.org/10.1057/s41273-016-0043-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1057/s41273-016-0043-8

Keywords

Navigation