Research in networking cannot be dissociated from experiments, be they performed by simulation, by emulating the network or by mean of experiments in real environments. Such experiments are essential to provide a priori evaluation of a network under design. They help evaluating whether such a network can work, i.e. if it is free of bugs, checking its liveness, its integrity, and also making some evaluations of its performances.
With simulations, all parts of the distributed system (i.e. the interconnected networks and all their components as well as the end hosts) are based on models whose realism can always be discussed. Then, when the Internet is considered, its simulation is not an easy task, especially because of its size (number of users and equipments), its complexity (number of protocols for instance), the behavior of its users, and of course, its fast evolution in terms of technology and usages. Because of all these features, it is easy to understand why it is so difficult to get some realistic simulations of the Internet, or at least of some small parts of it. One of the limits of simulators then comes from their inability to be scalable, in particular because it would require workstations with extremely high computing performances and memory capacities that can very hardly be reached nowadays.
Even if simulation is still being the most used network assessment tool in network research and engineering (in particular because of its low price in terms of equipment and human investment), it is commonly observed that the results are largely inaccurate. The differences between simulations results and the ones got in real environments are generally significant. Thus, experimental platforms in real environments (as Planetlab) are now raising a lot of efforts. In such platform, of course, all components, all operating systems, all protocols, etc. are real. The main problem with such real experiments comes from the lack of control researchers have on the experimental conditions: it is impossible to control the background traffic flowing in the networks which then makes difficult to analyze the results gained. For instance, it is almost impossible in a large experimental network as Planetlab (which is not fully monitored) to analyze the causes of a performance decrease for a given new network protocol under evaluation. It can be due to the protocol, but also a significant event which changed the experimental conditions punctually, but which is not logged. This main lack of the experiments in real environment is related to the non reproducible experimental conditions. Therefore, even if real experiments are a fantastic tool for finalizing the assessment of a network right before its setting-up, researchers needs a more easily configurable tool (and cheaper) for being able to change artificially network experimental conditions.
That is why the solution which seems to be the most suited for performing realistic and exploitable experiments is certainly network emulation. In network emulation, all end host operating systems, end to end protocols and applications are real. But the network, which is the main concerned topic in this community, is simulated. This, in particular, allows researchers to control the experimental conditions from realistic to extreme ones, thus allowing the identification of network limits. Several emulation levels can exist: an emulator can emulate a full network (coarse aggregation level) or simply one router or network device (fine aggregation level). It is then possible to address scalability issues with emulators, as well as mixing fine and coarse emulation: for instance, when assessing the performances of a particular AS, a fine emulation can be used for close ASes, while a coarse emulation can be applied for ASes far from the AS under evaluation.
In this framework, an experimental platform has been designed and installed at LAAS for allowing researchers and engineers to achieve their experiments. The objective of this platform is to be as generic as possible and to be able to take several forms (polymorphism). This platform has then been designed in order to be suited for network emulation, as well as experiments in real environments. Of course, in both cases, the experimental conditions are as reproducible as possible (even in real experiments). One of the requirements for this platform was to be usable simultaneously for several different experiments, be they emulated or real. This platform is called laasnetexp and stands for “LAAS Network Experiments”.
For a detailed presentation of design and working principle for this platform, refer to:
Philippe Owezarski, Pascal Berthou, Yann Labit, David Gauchard, “LaasNetExp: a generic polymorphic platform for network emulation and experiments”, 4th International Conference on Testbeds and Research Infrastructures for the Development of Networks & Communities – TridentCom’2008, Innsbruck, Austria, March 18-20, 2008
For technical details, the wiki site of the platform is available here.
The general schema of the platform is detailed on the following figure:
Network experimental platform at LAAS