Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Mechanisms for Precise Virtual Time Advancement in Network Emulation

Published: 04 March 2022 Publication History

Abstract

Network emulators enable rapid prototyping and testing of applications. In a typical emulation, the execution order and process execution burst lengths are managed by the host platform’s operating system, largely independent of the emulator. Timerbased mechanisms are typically used, but the imprecision of timer firings introduces imprecision in the advancement of time. This leads to statistical variation in behavior that is not due to the model.
This article describes an open-source tool called Kronos, which provides a set of mechanisms for precise instruction-level tracking of process execution and control over execution order of containers, thus improving the mapping of executed behavior to advancement in time. This, and control of execution and placement of emulated processes in virtual time make the behavior of the emulation independent of the CPU resources of the platform that hosts the emulation. Under Kronos each process has its own virtual clock that is advanced based on a count of the number of \(\times\) 86 assembly instructions executed by its children. Two types of instruction counting techniques are discussed: (1) hardware-assisted mechanisms that are transparent to the executing application and (2) binary instrumentation-assisted mechanisms that modify the executing binary. We analyze the overheads associated with each approach and experimentally demonstrate the impact of Kronos’ time advancement precision by comparing it against emulations that, like Kronos, are embedded in virtual time, but unlike Kronos rely on Linux timers to control virtual machines and measure their progress in virtual time. We present two useful applications where Kronos aids in generating high-fidelity emulation results at low hardware costs: (1) analyzing protocol performance and (2) enabling analysis of cyber physical control systems. We also discuss limitations associated with simple linear conversions between instruction counts and ascribed virtual time and develop and evaluate more accurate virtual time conversion models.

References

[1]
Free Software Foundation. 2014. OpenVZ: A container-based virtualization for Linux. Retrieved from http://openvz.org/.
[2]
Open Network Foundation. 2015. mininet: An instant virtual network on your laptop. Retrieved from http://mininet.org/.
[3]
Free Software Foundation. 2018. GDB: The GNU Project Debugger. Retrieved from https://www.gnu.org/software/gdb/.
[4]
R. D. Zimmerman and C. E. Murillo-Sanchez. 2020. MATPOWER (Version 7.1) [Software]. Available: https://matpower.org.
[5]
Free Software Foundation. 2018. Perf: The Linux performance counter subsystem. Retrieved from https://perf.wiki.kernel.org/index.php.
[6]
Free Software Foundation. 2018. Ptrace: The Linux process tracing subsystem. Retrieved from https://linux.die.net/man/2/ptrace/.
[7]
The Boost organization. 2019. Boost C++ libraries. Retrieved from www.boost.org.
[8]
DeNA Co., Ltd. 2019. H2o: The optimized HTTP/2 web server. Retrieved from https://h2o.examp1e.net/.
[9]
Web Technology Surveys. 2019. HTTP2 usage statistics. Retrieved from https://w3techs.com/technologies/details/ce-http2/all/all.
[10]
The Kluwer international series in engineering and computer science. Power electronics and power systems. Kluwer Academic Publishers. 1989. New England IEEE 39-Bus System. Retrieved from https://electricgrids.engr.tamu.edu/electric-grid-test-cases/new-england-ieee-39-bus-system/.
[11]
Tatsuhiro Tsujikawa. 2019. Nghttp2 HTTP/2 C++ library. Retrieved from https://nghttp2.org/.
[12]
Vignesh Babu. 2019. OpenSCADA: An IEC 61131-3 compatible PLC emulator. Retrieved from https://openscada.readthedocs.io/en/latest/index.html.
[13]
NIST. 2019. PTP: Precision Time Protocol. Retrieved from https://en.wikipedia.org/wiki/Precision_Time_Protocol.
[14]
Gentoo Foundation. 2019. Sysbench—CPU benchmarking tool for Linux. Retrieved from https://wiki.gentoo.org/wiki/Sysbench.
[15]
Agner Fog. 2020. Agner’s blog: Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD, and VIA CPUs. Retrieved from https://www.agner.org/optimize/.
[16]
Free Software Foundation. 2020. DynamoRIO. Retrieved from https://dynamorio.org/.
[17]
Standard Performance Evaluation Corporation. 2020. Spec CPU 2006 Benchmarks. Retrieved from https://www.spec.org/cpu2006/.
[18]
Jeff Ahrenholz, Claudiu Danilov, Thomas R. Henderson, and Jae H. Kim. 2008. CORE: A real-time network emulator. In Military Communications Conference. IEEE, 1–7.
[19]
Vignesh Babu and David Nicol. 2020. Precise virtual time advancement for network emulation. In ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. 175–186.
[20]
P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt, and A. Warfield. 2003. Xen and the art of virtualization. In 19th ACM Symposium on Operating System Principles.
[21]
Pat Bosshart, Dan Daly, Glen Gibb, Martin Izzard, Nick McKeown, Jennifer Rexford, Cole Schlesinger, Dan Talayco, Amin Vahdat, George Varghese, et al. 2014. P4: Programming protocol-independent packet processors. ACM SIGCOMM Comput. Commun. Rev. 44, 3 (2014), 87–95.
[22]
Jin Chen, Jiang Liu, Tao Huang, and Jason Liu. 2019. Virtual time machine for reproducible network emulation. In ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. ACM, 61–70.
[23]
Miguel A. Erazo, Yue Li, and Jason Liu. 2009. SVEET! A scalable virtualized evaluation environment for TCP. In 5th International Conference on Testbeds and Research Infrastructures for the Development of Networks & Communities and Workshops. IEEE, 1–10.
[24]
Stijn Eyerman, Lieven Eeckhout, Tejas Karkhanis, and James E. Smith. 2009. A mechanistic performance model for superscalar out-of-order processors. ACM Trans. Comput. Syst. 27, 2 (2009), 1–37.
[25]
Thomas Gleixner and Douglas Niehaus. 2006. Hrtimers and beyond: Transforming the Linux time subsystems. In Linux Symposium, Vol. 1. Citeseer, 333–346.
[26]
Colleen Glenn, Dane Sterbentz, and Aaron Wright. 2016. Cyber Threat and Vulnerability Analysis of the US Electric Sector. Technical Report. Idaho National Lab.(INL), Idaho Falls, ID.
[27]
Andreas Grau, Steffen Maier, Klaus Herrmann, and Kurt Rothermel. 2008. Time jails: A hybrid approach to scalable network emulation. In 22nd Workshop on Principles of Advanced and Distributed Simulation. IEEE, 7–14.
[28]
Diwaker Gupta, Kashi Venkatesh Vishwanath, Marvin McNett, Amin Vahdat, Ken Yocum, Alex Snoeren, and Geoffrey M. Voelker. 2011. DieCast: Testing distributed systems with an accurate scale model. ACM Trans. Comput. Syst. 29, 2 (2011), 4.
[29]
Diwaker Gupta, Kenneth Yocum, Marvin McNett, Alex C. Snoeren, Amin Vahdat, and Geoffrey M. Voelker. 2005. To infinity and beyond: Time warped network emulation. In 20th ACM Symposium on Operating Systems Principles. ACM, 1–2.
[30]
Christopher Hannon, Jiaqi Yan, and Dong Jin. 2016. DSSnet: A smart grid modeling platform combining electrical power distribution system simulation and software defined networking emulation. In ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. ACM, 131–142.
[31]
Canonical Ltd. 2020. LXC: Linux containers. Retrieved from https://linuxcontainers.org/.
[32]
Thomas R. Henderson, Sumit Roy, Sally Floyd, and George F. Riley. 2006. ns-3 project goals. In Workshop on ns-2: the IP Network Simulator. ACM, 13.
[33]
Dong Jin and David M. Nicol. 2015. Parallel simulation and virtual-machine-based emulation of software-defined networks. ACM Trans. Model. Comput. Simul. 26, 1 (Dec. 2015). DOI:
[34]
Tejas S. Karkhanis and James E. Smith. 2004. A first-order superscalar processor model. In 31st Annual International Symposium on Computer Architecture. IEEE, 338–349.
[35]
Jereme Lamps, Vignesh Babu, David M. Nicol, Vladimir Adam, and Rakesh Kumar. 2018. Temporal integration of emulation and network simulators on Linux multiprocessors. ACM Trans. Model. Comput. Simul. 28, 1 (2018), 1.
[36]
Jereme Lamps, David M. Nicol, and Matthew Caesar. 2014. TimeKeeper: A lightweight virtual time system for Linux. In 2nd ACM SIGSIM/PADS Conference on Principles of Advanced Discrete Simulation. ACM, 179–186.
[37]
Chris Lattner and Vikram Adve. 2004. LLVM: A compilation framework for lifelong program analysis & transformation. In International Symposium on Code Generation and Optimization. IEEE, 75–86.
[38]
Hongqiang Harry Liu, Yibo Zhu, Jitu Padhye, Jiaxin Cao, Sri Tallapragada, Nuno P. Lopes, Andrey Rybalchenko, Guohan Lu, and Lihua Yuan. 2017. CrystalNet: Faithfully emulating large production networks. In 26th Symposium on Operating Systems Principles. ACM, 599–613.
[39]
Jason Liu, S. Mann, Nathanael Van Vorst, and Keith Hellman. 2007. An open and scalable emulation infrastructure for large-scale real-time network simulations. In IEEE INFOCOM. 2476–2480. DOI:
[40]
Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood. 2005. PIN: Building customized program analysis tools with dynamic instrumentation. ACM SIGPLAN Not. 40, 6 (2005), 190–200.
[41]
Nick McKeown. 2009. Software-defined networking. INFOCOM Keynote Talk 17, 2 (2009), 30–32.
[42]
Mendel Rosenblum. 1999. VMware’s virtual platform™. In Hot Chips, Vol. 1999. 185–196.
[43]
J. L. Sancha, J. L. Fernandez, A. Cortes, and J. T. Abarca. 1996. Secondary voltage control: Analysis, solutions and simulation results for the Spanish transmission system. IEEE Trans. Power Syst. 11, 2 (1996), 630–638.
[44]
Amin Vahdat, Ken Yocum, Kevin Walsh, Priya Mahadevan, Dejan Kostić, Jeff Chase, and David Becker. 2002. Scalability and accuracy in a large-scale network emulator. ACM SIGOPS Operat. Syst. Rev. 36, SI (2002), 271–284.
[45]
S. Wei, C. Ko, J. Mirkovic, and A. Hussain. 2009. Tools for worm experimentation on the DETER testbed. In 5th International Conference on Testbeds and Research Infrastructures for the Development of Networks Communities and Workshops. 1–10. DOI:
[46]
Elias Weingärtner, Florian Schmidt, Hendrik Vom Lehn, Tobias Heer, and Klaus Wehrle. 2011. SliceTime: A platform for scalable and accurate network emulation. In USENIX Symposium on Networked Systems Design and Implementation.
[47]
Brian White, Jay Lepreau, Leigh Stoller, Robert Ricci, Shashi Guruprasad, Mac Newbold, Mike Hibler, Chad Barb, and Abhijeet Joglekar. 2002. An integrated experimental environment for distributed systems and networks. ACM SIGOPS Operat. Syst. Rev. 36, SI (2002), 255–270.
[48]
Jiaqi Yan and Dong Jin. 2015. Vt-Mininet: Virtual-time-enabled Mininet for scalable and accurate software-define network emulation. In Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research. ACM, 27.
[49]
Jiaqi Yan and Dong Jin. 2017. A lightweight container-based virtual time system for software-defined network emulation. J. Simul. 11, 3 (2017), 253–266.
[50]
Yuhao Zheng, David M. Nicol, Dong Jin, and Naoki Tanaka. 2012. A virtual time system for virtualization-based network emulations and simulations. J. Simul. 6, 3 (2012), 205–213.

Cited By

View all
  • (2023)Fine-Grained Online Energy Management of Edge Data Centers Using Per-Core Power Gating and Dynamic Voltage and Frequency ScalingIEEE Transactions on Sustainable Computing10.1109/TSUSC.2023.32504878:3(522-536)Online publication date: 1-Jul-2023

Index Terms

  1. Mechanisms for Precise Virtual Time Advancement in Network Emulation

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Modeling and Computer Simulation
    ACM Transactions on Modeling and Computer Simulation  Volume 32, Issue 2
    April 2022
    178 pages
    ISSN:1049-3301
    EISSN:1558-1195
    DOI:10.1145/3505198
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 04 March 2022
    Accepted: 01 July 2021
    Revised: 01 May 2021
    Received: 01 December 2020
    Published in TOMACS Volume 32, Issue 2

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Kronos
    2. INS-SCHED
    3. virtualization
    4. network emulation
    5. instruction counting
    6. virtual time

    Qualifiers

    • Research-article
    • Refereed

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)87
    • Downloads (Last 6 weeks)6
    Reflects downloads up to 01 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Fine-Grained Online Energy Management of Edge Data Centers Using Per-Core Power Gating and Dynamic Voltage and Frequency ScalingIEEE Transactions on Sustainable Computing10.1109/TSUSC.2023.32504878:3(522-536)Online publication date: 1-Jul-2023

    View Options

    Get Access

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Full Text

    View this article in Full Text.

    Full Text

    HTML Format

    View this article in HTML Format.

    HTML Format

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media