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.tgz Synchronizer for Slicetime

kernelsync.tgz the kernel synchronization module

linux-2.6.18.-xen-slicetime.tgz Linux kernel for Dom0

xen3.2-slicetime.tgz Modified Xen Hypervisor

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

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

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

- Impressum -