Section: New Results
Experimental Environment for future Internet architecture
Participants : Walid Dabbous, Diego Dujovne, Martin Ferrari, Mads Hansen, Mathieu Lacage, Thierry Parmentelat, Alina Quereilhac, Bilel Ben Romdhanne, Thierry Turletti, Shafqat Ur Rehman.
-
Making easier Experimentation
Evaluation of network protocols and architectures are at the core of research and can be performed using simulations, emulations, or experimental platforms. Simulations allow a fast evaluation process, fully controlled scenarios, and reproducibility. However, they lack realism and the accuracy of the models implemented in the simulators is hard to assess. Emulation allows controlled environment and reproducibility, but it also suffers from a lack of realism. Experimentations allow more realistic environment and implementations, but they lack reproducibility and are complex to perform. Wireless experimentations are even more challenging to evaluate due to the high variability of the channel characteristics and its sensitivity to interferences.
Merging traces represents a complex problem especially in wireless experimentations, due to packet redundancy in multiple probes. Merging traces solutions need to be efficient in order to process the large amount of generated traces. These solutions should provide an output data structure that allows easy and fast analysis and must be scalable in order to be used in large and various experimental settings. We have designed an algorithm that performs trace synchronization and merging in a scalable way. The algorithm output is stored in a configured MYSQL database allowing for smart packets trace storage. This solution reduces processing time by 400space by 200% with regard to raw trace files solutions [43] . It has been implemented in an open source software called CrunchXML, available under the GNU General Public License v2 at http://twiki-sop.inria.fr/twiki/bin/view/Projets/Planete/CrunchXML .
-
Enhancing network simulations: the ns-3 simulator
Our main problem with existing simulation tools is the lack of accuracy of the application, network, and MAC/PHY layers which makes comparisons with real-world experimentations very hard, if not impossible. The core of the issue is that none of the existing network simulators allow easy re-use of existing real-world network components such as the TCP/IP stacks of an operating system together with a real-world routing protocol and a full 802.11 MAC layer.
Our involvement in the development of ns-3 focused on 3 major areas last year: the stabilization of its core architecture and facilities for its first stable releases, incremental improvements of our wimax models, and the development of a POSIX implementation to allow us to run unmodified socket-based network applications within the simulator.
After the first stable release of ns-3 in 2008 and the merging of our wifi, and icmp models, we kept working on both general software maintainance activities (code reviews of new models, bug fixing, release management) but also on improvements to our wimax models which we hope to merge in ns-3 in early 2010 (see description hereafter). We also invested considerable efforts in two other projects which we aim to merge in ns-3 over the course of 2010:
-
the development of a new parallel event scheduler for multicore shared-memory architectures to speedup simulations transparently
-
an implementation of the POSIX API within ns-3 to integrate bit-torrent clients and trackers, but also the reference CCN daemon and test applications.
With the recent emergence of broadband wireless networks, simulation support for such networks, and especially IEEE 802.16 WiMAX, is becoming a necessity. We have implemented an IEEE 802.16 WiMAX module for the ns-3 simulator. The aim is to provide a standard-compliant and well-designed implementation of this standard. Our module implements fundamental functions of the convergence sublayer (CS) and the MAC common-part sublayer (CPS), including QoS scheduling services, bandwidth request/grant mechanism, and a simple uplink scheduler. The module provides two different versions of the PHY layer. The first one is a basic PHY implementation which simply forwards bursts received by the MAC layer ignoring any underlying PHY layer details. The second one is a PHY layer based on the WirelessMAN-OFDM specification and was developed by our colleagues at LIP6, France. The MAC module currently lacks a full implementation of the classifier as well as support for fragmentation and defragmentation of PDUs. The simulation module is described in [24] .
-
-
Federating Research Testbeds
In cooperation with Princeton University who run the PlanetLab research platform, we have developped the first prototype of a federation paradigm called RefreshPeer (RP), that provides a fully symetric model, where resources are locally managed and globally visible. This mechanism was designed with operational objectives in mind, as it was a requirement for the OneLab project to operate the new PlanetLab Europe platform, that has been running since June 2007. There are thus some limitations in this first prototype, that are related to policy management and scalability. This federation model basically relies on database caching; essentially the API that each testbed infrastructure (peer) provides has been kept unchanged except for convenience and efficiency, and it was shown to be sufficient to this particular need. This year, the main focus has been on development, testing and experimental deployment of a relatively new network testbed federation mechanism called SFA (Slice based Facility Architecture). This work is being done in collaboration with the Computer Science department of Princeton University. We started by developing SFA on top of the PlanetLab testbed architecture to enable federation among multiple autonomous instance of PlanetLabs. We then enhanced SFA with essential features such as call traceability and logging to track user activities in the context of multiple federated aggregates. We also developed a code base to ensure that SFA is compatible with RefreshPeer (RP), the federation mechanism we have developed before and the only mechanism that was in existence prior to SFA and still actively in use for federation between PlanetLab Europe (PLE) and PlanetLab Central (PLC). The objective is to enable both RP and SFA based federation between PLE and PLC to take advantage of these two mechanism. We then installed SFA on PLE nodes and we made the necessary configuration for federation with PLC Finally we developed an automatic test framework to test SFA as part of the nightly build of Onelab. The SFA software is now packaged and distributed along with Onelab distribution of MyPLC.
-
Adding more heterogeneity to the PlanetLab testbed
As part of the OneLab project, we have created our own 'distribution' of the PlanetLab software, and have used the flexibility in order to add support for more heterogeneous experimental nodes, like wireless (WiFi, UMTS) or multi-homed nodes. Over time, the software development cooperation with Princeton University has moved from an upstream/downstream model to codevelopment. As a result, most of our contribution is expected was integrated in the 4.2 and 4.3 releases of the PlanetLab software.
-
Using Independent Simulators, Emulators, and Testbeds for Easy Experimentation
Evaluating new network protocols, applications, and architectures uses many kinds of experimentation environments: simulators, emulators, testbeds, and sometimes, combinations of these. As the functionality and complexity of these tools increases, mastering and efficiently using each of them is becoming increasingly difficult. We designed the preliminary prototype of the Network Experiment Programming Interface (NEPI) whose goal is to make easier the use of different experimentation environments, and switch among them easily. NEPI intends to make it possible to write a single script to control every aspect of a potentially mixed experiment, including a hierarchical network topology description, application-level setup, deployment, monitoring, trace setup, and trace collection. We showed how a single object model which encompasses every aspect of a typical experimentation workflow can be used to completely describe experiments to be run within very different experimentation environments [44] . The development of NEPI started in early 2009 with the implementation of the core API, an address allocator, a routing table configurator, but also a prototype ns-3 backend driven by a simple graphical user interface based on QT. In 2010, we expect to validate and evolve the core API with the addition of a new backend based on linux network namespace containers and to stabilize the existing ns-3 backend. These first two milestones will be followed by the addition of a planetlab backend and the stabilization of the graphical user interface.
-
Taxonomy of IEEE 802.11 Wireless Parameters and Open Source Measurement Tools
The analysis and evaluation of new wireless network protocols is a long process that requires mathematical analysis, simulations, and increasingly experimentations under real conditions. Measurements are essential to analyze the performance of wireless protocols such as IEEE 802.11 networks in real environments, but experimentations are complex to perform and analyze. Usually, network researchers develop their own tools, sometimes from scratch, to fit the requirements of their experimentations, and these tools are then abandoned when the paper is published. We have done a survey of IEEE 802.11 wireless parameters and open source tools available to collect or estimate these parameters. In this survey, we highlighted the parameters that can be extracted from wireless traffic probes and those that are available through the driver of wireless cards. Then, we introduced and compared open source tools that can be used to make the measurements, with special attention to the flexibility of the tools and their application scope. Finally, we discussed with several case studies the combination of tools that best suit the needs of the wireless experiments and provided a list of common pitfalls to avoid.