Integrating realistic behavior of end systems into simulations is challenging since the mechanisms used in protocols and applications such as Transmission Control Protocol (TCP) are complex and continuously evolving. In this paper, we present VMSimInt, a new approach which allows the INTegration of arbitrary Operating Systems (OSs) and application code into an event-driven network SIMulator by using Virtual Machines (VMs). In contrast to existing approaches which integrate parts of OS kernels, our approach uses unmodified OS kernels, which eases maintenance and provides additional flexibility. By controlling the time and all I/O of the VMs, our approach guarantees that external factors such as the performance of the host do not influence the simulation outcome, so that simulations are exactly reproducible. We validated our system against the Network Simulation Cradle (NSC) by simulating the same models and comparing the system behavior. In addition, we show that our approach provides sufficient performance for usage in day-to-day research.  Categories and Subject Descriptors Network research strongly relies on tests, emulations, or simulations in a controlled environment to perform studies on new protocols, network or application mechanisms. In Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SimuTools '14 Lisbon, Portugal Copyright 2014 ACM X-XXXXX-XX-X/XX/XX ...$15.00. contrast to emulation, simulation has the advantage that it avoids any external influence. Due to the complexity and rapid development of protocol and application behavior, abstract models often do not reflect the characteristics of real systems well enough. The Transmission Control Protocol (TCP) dominates the traffic behavior in today's Internet and thus is an important factor in the investigation of new proposals. Therefore providing realistic Operating System (OS) behavior such as TCP in packet-level simulations is one of the key challenges for network simulation. In addition, when evaluating TCP mechanisms like congestion control, it is important to use recent TCP implementations, because, for example, using an initial TCP congestion window of 10 and Proportional Rate Reduction (PRR) strongly influences congestion control behavior. Most simulation environments either re-implement protocol standards or re-use code fragments from OS kernels. However, the networking code of modern OSs evolves fast. Thus these approaches demand high maintenance effort to keep the implementation up-to-date. Furthermore, validation of derived models is difficult and often omitted. Additionally, Internet traffic is strongly influenced by application behavior which evolves even faster. Instead of modeling applications it is often desired to use real application code in a simulation environment (potentially on top of realistic TCP behavior). For example, the loading time of a web page strongly depends on the number of parallel TCP connections and their interaction in the network. In this paper, we present VMSimInt, a new approach for packet-level simulations which is based on the integration of Virtual Machines (VMs) into the simulation environment. Thus it allows using unmodified kernel code, OS mechanisms or existing applications within the simulation. The main advantage regarding simulation of transport protocol behavior is that our simulation approach can use any OS without any patching, given that it can be run on the virtualized hardware platform. Compared to emulation-based approaches which connect real computer systems or several VMs on one computer to a simulated network, VMSimInt provides full isolation from the host system. The time perceived by a kernel running in a VM is controlled by the simulation framework and completely independent of the host time. This simulated time does not proceed while the VM's processor is operating, so the performance of the host computer or the virtualization tool does not influence the simulation results. This allows us to reproduce exactly the same behavior with multiple simulation runs without any influence, e. g., of other processes running on the host system.
Werthmann et al. REF propose VMSimInt, utilizing virtual machines (VMs) integrated into a simulation framework.
VMSimInt: a network simulation tool supporting integration of arbitrary kernels and applications
SimuTools
Computer Science