Our goal is to enable the development and evaluation of protocols and applications on large scale mobile networks yet retaining hardware and software realism.
In MoViT nodes are virtualized and the network characteristics are carefully modeled in realtime. Each virtual appliance runs actual applications on a real operating system and network stack. MoViT replicates all the necessary modeling details (mobility, network parameters, urban constraints, etc.) in order to provide a realistic yet fully controllable playground on which to develop and evaluate applications for the mobile environment. MoViT captures the system constraints of an actual deployment without the hardware costs, the uncertainties, and time associated with repeated actual experiments. Protocols and applications developed using MoViT can be seamlessly ported to real devices. MoViT is scalable and, according to the number of virtualized nodes, it can be run on a small server farm or on a large server cloud.

MoViT is a distributed system that runs on several physical machines called hosts. Every host has two physical network interfaces connected to two separated networks: the experimental network and the control network. The experimental network is the one that emulates the behavior of a mobile network. Each host runs a set of virtual machines which represent network nodes. Each of these virtual machines is mapped onto one of the nodes participating in the virtualized network. MoViT reproduces the connectivity of the emulated network in the experimental network by filtering the packet flows between virtual machine pairs. If the virtualized network is mobile, its connectivity will change consistently over time and therefore the corresponding connectivity among virtual machines onto the experimental network. To follow these dynamic changes, information regarding the connectivity of the emulated network needs to be distributed to all hosts. The control network facilitates this purpose and, in addition, allows unrestricted access to the virtual machines. Thus, MoViT provides a fully controllable set of virtual nodes whose connectivity is evolving over time according to the connectivity of an emulated network. The timely distribution of connectivity data is managed by the experiment controller through the control network. The experiment controller is a collection of centralized and distributed software components that in addition to distributing connectivity data also manages the execution of experiments.
The experiment controller manages all functionalities necessary for the execution of an experiment. These functionalities include the instantiation of virtual machines, the initialization of experimental applications, the distribution of mobility data and the collection of experimental results.
The experiment controller is in charge of generating the mobility data, contextualizing it to the environment where the experiment is run and redistributing it among the hosts. In particular, it will produce subsequent snapshots of mobility taken at periodic intervals. Mobility is either simulated or reproduced from a pre-recorded trace, not contextualized to a specific period of time. Given the distributed nature of MoViT, sufficient time between the generation of a mobility snapshot and its actual emulation on the experimental network must be allowed for the data to be transferred to all participating hosts. Thus, each mobility snapshot is assigned an application time (in the future) in which the network connectivity corresponding to the mobility snapshot will be emulated on the experimental network. For example, let us assume that the mobility consists of snapshots of mobility taken at each second. The first snapshot will be assigned an application time that corresponds to the time at which the experiment will start; all following snapshots will be assigned increasing application times one second apart. As previously discussed, each MoViT virtual machine is a node in the emulated network. The experiment controller keeps track of the correspondence between the IDs of emulated nodes and the IDs of the virtual machines, ensuring consistency throughout the experiments.
To perform these tasks we chose to use the well known Orbit Control and Management Framework (OMF), as it has already been proven stable and very versatile.
Mobility is the main contributor of the network topology changes in vehicular networks. Mobility determines the topology characteristics and most of the topology dynamics that are peculiar of vehicular networks. MoViT offers the possibility to reproduce mobility starting from recorded vehicular traces, or to simulate it in real time from predefined end to end requirements using the Simulation of Urban MObility simulator (SUMO). SUMO allows the simulation of thousands of vehicles in real time. In addition, SUMO allows the dynamic control of the simulation through the Traffic Control Interface (TraCI). TraCI provides control of simulated vehicles as the simulation is being performed. This detailed control enables the evaluation of a multitude of applications related to vehicular safety or Intelligent Transportation Systems (ITS) such as alert distribution or closed-loop traffic optimization.
On each host runs a set of Virtual Machines (VMs) that represent network nodes. The VMs could be run using any virtual- ization technique, in our implementation we use the Kernel-based Virtual Machine (KVM) for Linux solution.
This figure presents the architecture of each host software configuration. The internal network configuration between Hosts and VMs is the one from OMF. On each host the Connectivity Manager shapes the connectivity among VMs. The shaping of connectivity is performed by a specific component called Network Shaper that filters packets between VMs applying drop rates and delays according to the connectivity rules generated by the Channel Module. The channel module generates connectivity rules based on the mobility data generated by the experiment controller.
The connectivity manager is in charge of shaping the network connectivity among the VMs. This reshaping is possible through the filtering of packet flows between all source and destination pairs. This filtering is made possible by applying artificial drop rates and additional delays (i.e. connectivity rules) on a per packet basis. The drop rate and delay need to be dynamically modified according to the network topology that needs to be reproduced. To allow the emulation of several channel models, we decided to split the connectivity manager into two separate components: a channel module and a network shaper. The channel module is in charge of producing the connectivity rules related to the mobility and the Network Shaper handles the reshaping of the network through the filtering of packet flows.
In order to shape the network connectivity among the virtual machines, connectivity rules need to be present on each host participating in the experiment. The connectivity rules consist of drop rates and additional delays to be applied to packet flows between each source and destination pair. The drop rate and delay experienced on a wireless link between two nodes depend on the path loss, the number of nodes contending for the channel and on interference. External interference cannot be directly computed and needs to be approximated through the use of statistical models. Conversely, path loss, co-channel interference and channel contention can be directly inferred from the mobility of nodes with regards to the environment they are moving in.
MoViT decentralizes the computation of the connectivity rules by running an instance of the channel module onto each host. To achieve this decentralization, the mobility data needs to be distributed to all hosts. The optimal solution for the distribution of data to multiple hosts would be a multicast tree. However, network layer multicast is not supported on all network technologies. Therefore, we decided to implement an application layer multicast tree among the channel modules running on the hosts. The mobility data generated by the experiment controller is transferred only to the first level of the tree. At each level of the tree all channel modules will forward the data to the underlying level, until all channel modules are reached.
To the best of our knowledge there is no existing tool that implements all the features needed to efficiently reproduce the connectivity of a dynamically changing network topology. Hence, we need a new tool able to enforce per packet and dynamic filtering of packet flows at the data-link layer and that can perform the change of large amounts of connectivity rules efficiently. We chose to replicate the structure of the well known NETwork Emulation tool for linux, netem. We implemented a kernel module that can be associated to a Queueing Discipline (QDisc). QDiscs allow the module to enforce filtering policies inside the kernel, between device drivers and the network stack.
This figure presents the architecture of the proposed filtering solution which we will refer to as the Network Shaper. The kernel module is associated with a user-space application, called Rule Switcher, used to retrieve the connectivity rules from the channel module.