Project Description

Introduction

Network emulation, in which real systems interact with a network simulation, is a common evaluation method in computer networking research. Until now, the simulation in charge of representing the network has been required to be real-time capable, as otherwise a time drift between the simulation and the real network devices may occur and corrupt the result.

Synchronized Network Emulation: The Concept behind SliceTime

The main goal of SliceTime is to enable investigations of arbitary communication software in a fully simulated network. This enables the communication software to be analyzed in a fully isolated environment and a very high degree of controllability.

For this purpose we have developed the concept of Synchronized Network Emulation, which comprises three types of components:

  1. One or more network simulations model an arbitrary computer network, for instance a WAN scenario or a mobile network which also may involve node mobility. We do not put any restrictions on the network simulation and its run-time performance; it hence enables non-realtime network simulations.
  2. Virtual Machines host a legacy operating system and the communication software to be investigated in the simulated network
  3. The central synchronization component aligns the execution of all VMs and the network simulation. The synchronization is based on the provision of logical discrete time slices to all synchronized VMs and simulations. After one time slice, typically in the magnitude of a couple hundreds of microseconds, the components block their execution. The overall execution resumes when all clients have finished the time slice and after a new time slice has been assigned

Our paper SliceTime: A platform for scalable and accurate network emulation (NSDI 2011) provides an elaborate discussion of the used synchronization algorithm.

      Implementation

      Corresponding to the concept of Synchronized Network Emulation, the implementation of SliceTime consists of three main components.

      1. A ns-3 network simulation with SliceTime-specific extensions
      2. A modified Xen hypervisor and a set of Xen VMs (also called domains)
      3. The synchonization component. It is a C++ server application that provides the time slices to the network simulation and the Xen VMs

      The overall architecture of SliceTime is depicted above. An in-depth discussion of all component implementations and their interplay can be found in our 2011 NSDI paper.

      Publications

      References
      5.
      Proceedings of the 8th USENIX Symposium on Networked Systems Design and Implementation (NSDI '11), Boston, MA, USA
      Publisher: USENIX, Berkeley, CA, USA
      March 2011
      4.
      Proceedings of the 4th International ICST Conference on Simulation Tools and Techniques (SIMUTools 2011), Barcelona, Spain
      Publisher: ICST, Brussels, Belgium
      March 2011
      ISBN: 978-1-936968-00-8
      accepted
      3. Proceedings of the 11th Joint International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS/Performance 2009), 37(2):49-50
      2009
      ISSN: 0163-5999
      2.
      Proceedings of the ACM SIGMETRICS 2008 Student Thesis Panel, Annapolis, MD Volume 1, page 1-2.
      ACM
      Annapolis, MD
      June 2008
      1.
      Synchronized network emulation: matching prototypes with complex simulations
      SIGMETRICS Performance Evaluation Review, 36(2):58-63
      2008
      ISSN: 0163-5999
      Export as:
      BibTeX, XML

      Downloads

      Source Code

      Current release (v0.4 / July 22nd 2011):

      Quick Set-up guide

      Changelog

      synchronizer.tgzSynchronizer for Slicetime

      kernelsync.tgzthe kernel synchronization module

      linux-2.6.18.-xen-slicetime.tgzLinux kernel for Dom0

      xen3.2-slicetime.tgzModified Xen Hypervisor

      tap-tunnel.tgzudp-based tunnel to interconnect ns-3 with Xen domains

      ns-3.7-slicetime.tgzns-3.7 with support for synchronization and WiFi emulation

      wifi-emu-kern.tgz Linux WiFi driver for emulation

      - Impressum -