Check out the new USENIX Web site.

Home About USENIX Events Membership Publications Students
NSDI '05 Paper    [NSDI '05 Technical Program]

Using Emulation to Understand and Improve
Wireless Networks and Applications

Glenn Judd and Peter Steenkiste1
Carnegie Mellon University
Pittsburgh, PA, USA
glennj@cs.cmu.edu prs@cs.cmu.edu

Abstract

Researchers have long faced a fundamental tension between the experimental realism of wireless testbeds on one hand, and the control and repeatability of simulation on the other hand. To overcome the stark tradeoff of these traditional alternatives, we are developing a wireless emulator that enables both realistic and repeatable experimentation by leveraging physical layer emulation.
We discuss the design and implementation of a prototype wireless emulator, and show how this emulator can be leveraged to provide insight into wireless network and application behavior. Our experience shows that, compared to simulation, our emulator-based approach provides us with a better understanding of real-world wireless network performance, and enables us to quickly deploy our research into an operational wireless network, while still allowing us to enjoy the benefits of a controlled experimental environment.

1  Introduction

As wireless network deployment and use become ubiquitous, it is increasingly important to make efficient use of the finite bandwidth provided. Unfortunately, research aimed at evaluating and improving wireless network protocols and applications is hindered by the inability to perform repeatable and realistic experiments. Experimental techniques that have proven successful for wired networks are inadequate for wireless networks since a wireless physical layer fundamentally affects operation at all layers of the protocol stack in complex ways. Links are no longer constant, reliable, and physically isolated from each other, but are variable, error-prone, and share a single medium with each other and with external uncontrolled sources.
An ideal method of wireless experimentation would possess the following properties: repeatability and experimental control, layer 1-4 realism, the ability to run real applications, configurability, the ability to modify wireless device behavior, automation and remote management, support for a large number of nodes, isolation from production networks, and integration with wired networks and testbeds. We now discuss how alternative methods of experimentation fare with respect to this list of desirable properties.
The most direct method of addressing realism is to conduct experiments using real hardware and software in various real world environments. Unfortunately, this approach faces serious repeatability and control issues since the behavior of the physical layer is tightly coupled to the physical environment and precise conditions under which an experiment is conducted. The mobility of uncontrolled radio sources, physical objects, and people makes these conditions nearly impossible to reproduce. Even repeating the same experiment twice can be a daunting task when anything in the surrounding environment is in motion; remote researchers face an even bleaker situation trying to reproduce an experiment. It is also difficult to avoid affecting colocated production networks. Moreover, configurability and management of even a small number of mobile nodes distributed in three dimensions is cumbersome.
For these reasons, many researchers have understandably embraced simulation. This approach solves the problems of repeatability, configurability, manageability, modifiability, and (potentially) integration with external networks, but faces formidable obstacles in terms of realism. Wireless simulators are confronted with the difficult task of recreating the operation of a system at all layers of the network protocol stack as well as the interaction of the system in the physical environment. To make the problem tractable, simplifications are typically made throughout the implementation of the simulator. Even fundamental functions such as deciding what a received frame looks like [1] diverge greatly from the operation of real hardware. Evaluating real applications running over wireless networks is typically very difficult using a simulator. In addition, while wireless technology is undergoing rapid advances, wireless simulators, in particular open source wireless simulators, have lagged significantly behind these advances as discussed in Section 7.
The aforementioned issues with simulators, and a desire to avoid long simulation times, have caused some researchers to adopt emulation as a means of evaluation. Emulation retains simulation's advantages of repeatability and manageability, while potentially mitigating the issue of realism. Unfortunately, as discussed in Section 7, most emulators have adopted extremely simplified MAC and physical layers. As the operation of these layers is fundamental to the operation of a wireless network, it is unclear that these emulators gain any realism over existing simulators.
We are developing a wireless emulator that enables both realistic and repeatable wireless experimentation by accurately emulating wireless signal propagation in a physical space. Unlike previous approaches, this emulator utilizes a real MAC layer, provides a realistic physical layer, and supports real applications while avoiding adopting an uncontrollable or locale-specific architecture. The key technique we use to accomplish this is digital emulation of signal propagation using an FPGA.
Our emulator's high degree of control and fidelity allow signal propagation to be modeled in several ways: first, widely used statistical models of signal propagation can be used; in addition, traces of observed signal propagation can be "replayed" on our emulator; lastly, manual control of signal propagation can be used to analyze behavior in artificially created situations that would be difficult or impossible to reproduce in an open system. Section 4 will discuss signal modeling in more detail.
This emulator provides an attractive middle ground between pure simulation and wireless testbeds. To a large degree, this emulator should be able to maintain the repeatability, configurability, isolation from production networks, and manageability of simulation while retaining the support for real applications and much of the realism of hardware testbeds. As a result, this emulator should provide a superior platform for wireless experimentation.
This emulator is not, however, a complete replacement for simulation and real world evaluation. Simulation is still useful in cases where a very large-scale experiment is needed or in certain cases where functionality not available in hardware is required (e.g. changing the MAC firmware). Real world evaluation is still useful when radio channel fidelity beyond the capabilities of the emulator is required, or for verifying the operation of the emulator in real-world settings.
In this paper we present the design of a physical-layer wireless emulator. We introduce the architecture of this emulator in Section 2. In Section 3 we discuss an initial proof-of-concept prototype, and our partially complete implementation of a "Version 2" emulator based on this proof-of-concept. Section 4 discusses how our emulator can be used to emulate various signal propagation environments. Using both the prototype and the Version 2 emulator, we present several experiments in Section 5 and a case study in Section 6 that demonstrate the power of our approach. Section 7 discusses related work, and Section 8 concludes our discussion.

Figure 1: Emulator Architecture

2  Emulator Architecture

The architecture of our emulator is shown in Figure 1. A number of "RF nodes" (e.g. laptops, access points, cordless phones, or any wireless device in the supported frequency range) are connected to the emulator through a cable attached to the antenna port of their wireless line cards (each RF node corresponds to a single antenna, so a single device can be represented by multiple RF nodes). For each RF node, the RF signal transmitted by its line card is "mixed" with the local oscillator (LO) signal. This shifts the signal down to a lower frequency where it is then digitized, and fed into a DSP Engine that is built around one or more FPGAs. The DSP Engine models the effects of signal propagation (e.g. large-scale attenuation and small-scale fading) on each signal path between each RF node. Finally, for each RF node, the DSP combines the appropriately processed input signals from all the other RF nodes. This signal is then sent out to the wireless line card through the antenna port. Given the current state of technology, a DSP Engine based on a single FPGA might support over 20 wideband RF nodes. Using multiple FPGAs or lower bandwidth RF nodes, even larger systems can be built.
The operation of the emulator is managed by the Emulation Controller, which coordinates the movement of RF nodes (and possibly physical objects) in the emulated physical space. The Emulation Controller uses location information (and other factors as dictated by the signal propagation model in use) to control the emulation of signal propagation within this emulated environment. In addition, the Emulation Controller coordinates node (and object) movement in physical space with the operation of RF node applications and sending of data. Each RF node runs a small daemon that allows the Emulation Controller to control its operation via a wired network. RF nodes that are not capable of running code may require a proxy to run the daemon on their behalf.
Connecting the Emulation Controller to an external network allows remote management of the emulator. In addition, individual nodes in the emulator may be connected to external networks in order to allow emulator nodes access to the Internet at large or to allow the emulator to be used in conjunction with testbeds such as PlanetLab [2] or Emulab [3].
Figure 2: Prototype Hardware Architecture
Figure 3: Prototype DSP Engine Operation

3  Implementation

To demonstrate the feasibility of the wireless emulator, we constructed a small prototype designed to validate the emulator's primary functionality by emulating signal propagation between three laptops on a single 802.11b "non-overlapping channel". The results obtained with our prototype [4], in conjunction with MIT's Roofnet project [5], and experiments discussed in Sections 5 and 6 show that the approach we advocate is capable of providing powerful wireless emulation capabilities.
We first discuss our prototype's hardware and software implementation, and then discuss how Version 2 improves on the capabilities demonstrated by the prototype.

3.1  Proof-of-Concept Prototype

Hardware. Figure 2 shows the hardware architecture of the prototype. Each laptop operates on a single 802.11b channel centered at frequency F which contains its main spectral elements from F - 11 MHz to F + 11 MHz. The outgoing signal from each laptop is first attenuated and then converted to a low frequency by "mixing" each signal with an "LO" signal centered at F - 13 MHz. The resulting output from the mixers (ignoring the signal image) is a signal ranging from 2 to 24 MHz. This signal is then fed into an A/D board for sampling. Each A/D board generates 12-bit digital samples of the incoming signal at 52 Msps, and sends them to the FPGA for processing. The output signals from the FPGA are converted to analog by the D/A and then "mixed up" and attenuated before arriving at the destination wireless card's antenna port. We used two types of wireless NICs in our prototype: antenna-less Orinoco Gold cards, and Engenius NL-2511CD Plus Ext2 Prism 2.5 based cards which both allow the connection of an external antenna or coaxial cable.
 
DSP Engine. As shown in Figure 3, inside the FPGA, the signals are first sent into a delay pipe where one or more copies ("taps") of the signal are pulled off after going through a programmable amount of delay. Each of these signals is then scaled by a programmable factor. Each outgoing signal, from the FPGA to an RF node, is then computed by summing the scaled signals from the other RF nodes. These outgoing signals are then sent to the D/A board for reconstruction.
The programmable nature of this circuit allows us to trade off resources such as the precise depth of the delay pipes and number of signal copies supported. Thus, we can customize the operation of the FPGA to the particular test being run.
For each signal path inside of the FPGA, the Emulation Controller discussed below is capable of dynamically adjusting both the attenuation and delay from the source to the destination by dynamically setting the scaling factors and delay mentioned previously at a rate of approximately 1,000 scale factors or 2,000 delay settings per second. Hence, for each signal path, the emulator can recreate effects such as "large-scale path loss" (a fixed attenuation that does not change unless RF node movement is emulated) and "fading" (rapid variation in signal strength that can occur even if the device antennas are motionless).
As the DSP Engine is implemented in an FPGA, the operation described above, and used in the experiments presented in this paper, may be changed as needed for particular signal propagation models. For instance, fading could be computed on the FPGA to allow for emulation of even faster fading.
Emulation Controller. The Emulation Controller controls and coordinates the operation of the DSP unit and the RF nodes, and runs in one of two modes: script or manual control.
Figure 4: Emulation Controller
In script mode, the Emulation Controller is driven by scripts that specify each node's movement, communication, and application behavior. As the RF nodes move about in the emulated physical space, the Emulation Controller continuously computes attenuation of each signal path and the scaling factors required to emulate this attenuation (our prototype currently uses a simple large-scale path loss model based on measurements in our local environment). After computation, these scaling factors are sent to the DSP Engine. Emulation Controller scripts can also generate network traffic between any pair of nodes, and synchronize this traffic with node movement and application behavior.
The Emulation Controller also generates a visual display of node location in the emulated physical environment as shown in Figure 4.
In interactive mode, the GUI shown in Figure 4 may be used to move nodes in the emulated physical environment. As shown in the "Node View" and "Channel View" windows of Figure 4, interactive mode also allows manual control of both received signal strength and delay for each channel.
The experiments we discuss in later sections make use of both the scripted and the manual control modes of the Emulation Controller.

3.2  Version 2

Our prototype emulator confirmed the power of our approach [4], and proved itself to be an extremely useful tool in its own right. Nevertheless, the scale, fidelity, and bandwidth of our prototype were limited by the fact that we used an inexpensive off-the-shelf evaluation board for the DSP Engine. The dynamic range of our emulator was limited by the prototype Signal Conversion Module's use of simple connectorized components. "Version 2" of our emulator addresses these key limitations of the prototype. We now describe this implementation; Section 3.3 then presents the results of experiments that show the fidelity of Version 2.
Figure 5: Production Emulator Implementation
Our Version 2 DSP Engine is currently under development. It will have the same fundamental architecture as the prototype DSP Engine, but it will greatly improve on the prototype by using a much larger FPGA on a custom board with high-speed connectors to the Signal Conversion Modules. It will be able to support 15 RF nodes and 100 MHz of bandwidth versus 3 nodes and 25 MHz for the prototype, and will also allow for much finer grained control of signal fading.
The Version 2 Signal Conversion Module is complete and functional. A fully assembled Signal Conversion Module is shown in Figure 5. The RF Front End board on this module replaces the connectorized components used in the prototype, and increases the dynamic range of Version 2 to 60 dB versus 40 dB for the prototype. (Version 2 achieves 50 dB isolation from the strongest spurious signal caused during emulation). The A/D and D/A boards used in this module are capable of running at 210 Msps which is over 3 times that of the prototype. This allows us to capture around 100 MHz of bandwidth directly, and is sufficient to capture all North American 802.11b/g channels or a portion of 802.11a.
Unlike the prototype, the Version 2 Signal Conversion Module utilizes a "Digital Signal Conversion" (DSC) board. The inclusion of this board arose from the need to convert high-speed digital signals from the different signaling requirements used by the A/D, D/A, and the DSP Engine. For flexibility, this board was implemented using a modest FPGA, which allows each DSC to assist the DSP Engine in certain cases.

3.3  Validation

Experiments demonstrating the performance of our prototype were presented in [4]. We now present experiments validating the fidelity and isolation of Version 2 which show significant improvement over the prototype's performance.
As the DSP Engine operates entirely on digital signals, the fidelity of the emulator is determined by the Signal Conversion Module. Hence, we may measure the fidelity of our production emulator solely by measuring the fidelity of the Signal Conversion Module. We employed this approach by using two Signal Conversion Modules to emulate two RF signal paths. The FPGAs on the DSC boards implement the signal attenuation required for these tests. These tests used Engenius NL-2511CD Plus Ext2 wireless cards.
Fidelity. A signal's physical layer fidelity is measured by comparing it with an ideal signal; the signal is measured by periodically sampling the signal and plotting the results on a polar graph as shown in Figure 6. This is known as the signal's "constellation". (In the figure, each constellation contains four clusters of points.) We can then visually compare the measured constellation against an ideal constellation.
We can quantify the difference between a measured signal and an ideal signal by measuring "error vector magnitude" (EVM). EVM is the relative difference between ideal signal constellation points and observed constellation points. EVM measures the average magnitude of the error vector (a vector from the ideal constellation point to the observed point) as a percentage of the ideal signal vector's magnitude.
Figure 6 compares the modulation fidelity of a signal generated by a digital signal generator (a) with that of the same signal passed through our production emulator (b) and (c). Comparing (a) with (b) we see that when the emulator is digitizing in narrowband mode (a single 802.11b channel) the constallation loses some crispness, but is still excellent; EVM increases slightly. (c) shows that when digitizing a wideband signal (802.11b channels 1-11) the signal degrades slightly more, but is still quite good. The EVM measurement in this case should not be regarded as saying that there is no signal degradation in wideband mode, but merely shows that the degradation is within the margin of measurement error.
Our earlier prototype work [4] demonstrated that our emulator does not distort on-card measurements such as received signal strength (RSSI). This previous work also showed that the prototype link delivery performance was close to that of a coaxial-based comparison, and that signal modeling was repeatable across experiments. We omit similar tests from this work in the interest of space.
Figure 7 demonstrates that our prototype's physical and link layer fidelity translates into transport level fidelity by comparing the TCP throughput for two laptops connected via coaxial cable and discrete attenuators versus two laptops connected via our production emulator. Each data point is an average of 20 trials measuring one-way TCP throughput for approximately 5 seconds. Confidence intervals are omitted since they are tight, and the SNR measurement error is dominant (about 1 dB). The results match quite closely and are within the measurement error of the experiment.
Figure 6: Physical Layer Fidelity
Figure 7: Transport Layer Fidelity
Isolation. An important benefit of our prototype is the ability to conduct experiments in isolation from external sources of interference. To measure this, we used a high power source (20 dBm) external to our emulator with a strong omnidirectional antenna (5.5 dBi) to send traffic at 1Mbps. We then moved this traffic source around our immediate environment to see when our emulator could not sense any of this traffic. Our results showed that our emulator was isolated against this strong source when it was at least 10 meters away. The current limitation on this isolation is the need to sacrifice perfect shielding in order to allow the RF nodes to be cooled. Additional work should cut the interfering range down to a few meters even for strong transmitters.
Building a large setup requires that we place RF nodes in close proximity to each other. To allow for this while maintaining internal isolation, each emulator node is mounted inside of a shielded rack-mount chassis. By altering the external isolation test to measure internal isolation, we verified that nodes attached to the emulator are effectively isolated against undesired transmission to each other despite their close proximity (8.75 inches).
We next discuss how our emulator's ability to faithfully control the wireless signal is used to model signal propagation. We will then discuss several experiments that demonstrate the range of experiments enabled by our emulator.

4  Signal Propagation Modeling

With our ability to completely control wireless signal propagation comes the challenge of modeling or recreating propagation in an appropriate manner for a given experiment. Our goal in this work is not to develop and justify new physical models of signal propagation, but to discuss how current and future models as well as signal propagation trace playback can be used in our emulator.
Fortunately, unlike wireless simulators, we are freed from the task of emulating radio behavior in conjunction with signal propagation modeling: we simply pick a suitable signal propagation model, compute each receiver's received signal, and let the radio decide what happens. We do not need to make any assumptions regarding any radio issues such as "sensing range"or "interfering range".
We now discuss several different methods of modeling wireless signal propagation in our emulator. We begin with signal propagation models that require no site specific information, and then discuss models that use increasing amounts of site specific information. Some of these techniques are completely operational in our emulator (large-scale path loss, signal capture and replay), some are partially operational (small-scale fading), while others require some external tools before they can be used in our emulator (ray-tracing, channel sounding).

4.1  Large-scale Path Loss

The signal propagation model most commonly used by simulators is a large-scale path loss model. Specifically, the received signal strength at each receiver (RSS) is computed as RSS = Pt + Gt - PL + Gr. Where Pt and Gt are the transmit power and antenna gain at the transmitter, PL is the path loss, and Gr is the antenna gain at the receiver. Large-scale path loss models simply compute PL as a function of distance between the transmitter and the receiver.
The Emulation Controller implements large-scale path loss by simply calculating the loss between nodes whenever the distance between them changes. These loss values are then sent into the emulator where they are used to control the attenuation of the signal path between two nodes.

4.2  Small-scale Fading

While large-scale fading models can accurately capture the average path loss between two points, on a short time scale the path loss between these points may vary substantially. To support this behavior, we are currently adding the ability in our emulator to emulate this small-scale fading.
We are leveraging the technique presented in [6] to incorporate the Ricean and Raleigh statistical models of small-scale fading in our emulator. In our implementation, the fading parameters are computed offline, and are then loaded into our emulator's FPGA before emulation begins. At run time, these parameters are added to the large-scale path loss which causes short term variation with the desired statistical properties. Independent use of fading parameters should allow independent, on-line modification of small-scale fading for each RF node.

4.3  Ray Tracing

The previous two methods required no site specific information other than picking the correct path loss models and model parameters. By incorporating site-specific information, it is possible to generate more accurate signal propagation models.
One technique that can be implemented in the emulator is to leverage ray tracing techniques. If the motion of nodes can be pre-computed off-line, ray-tracing techniques can be used to precisely compute all rays incident on each receiver at a given point in time. If motion cannot be pre-computed, then approximations can be made.
At runtime, the pre-computed series of attenuation over time values for each signal path would then be used to set path attenuation inside the DSP Engine.

4.4  Capturing and Replaying Signal Behavior

One simple method of accurately modeling signal propagation is to measure the signal propagation in a given environment and then to replay it. We have implemented a signal capture system using standard wireless NICs that measures path loss in a physical environment. This system works by constantly sending small packets from each transmitter to be emulated and receiving these packets on each receiver being emulated.
Our emulator then simply replays the observed traces of signal strength. To demonstrate this capability, we captured path loss from a car driving along a freeway at 60 MPH to a base station located at a fixed point near the freeway.
Figure 8: Freeway Driveby Measured RSS
The traffic source was a 23 dBm 802.11b source attached to a 5 dBi isotropic antenna placed on the roof of the passing car. The receiver used the same hardware as the sender, but with the antenna placed on the roof of a stationary car at the side of the freeway. As the sender passed, it continuously broadcast small 1 Mbps broadcast packets which were recorded by the receiver. The result of this test was signal strength measurements with 1 ms granularity. We then post-processed this trace to extract the timestamped signal and noise measurements.
Figure 8 shows the trace extracted using this method. Our emulator then simply reads, and recreates the observed path loss at the given time. Our current trace replaying software is limited to 2.5 ms granularity.

4.5  Channel Sounding

A more sophisticated method of measuring signal propagation in a physical environment is to use specialized hardware to precisely measure the "impulse response" of the channel. Such measurements can be difficult to obtain since they require specialized hardware. Once obtained, however, our emulator is capable of replaying these measurements by setting the attenuation and delay of each signal path in the DSP Engine according to the values extracted from the channel sounding.

4.6  Discussion

Before presenting experimental results, we briefly discuss the capabilities and limitations of signal propagation modeling using our approach.
Simulation. Many of the signal propagation models that we utilize can be also be used in simulation. This superficial similarity, however, belies a massive difference in how these models are used. Computational constraints placed on a simulator, force the simulator to work at a very coarse timescale. Our emulator, on the other hand, uses a statistical propagation model to manipulate a real modulated signal on the timescale of 5 ns. This is then sent to a real receiver to determine the reception behavior. Accurate receiver behavior in a simulator would require transistor level simulation which is completely infeasible for the number of nodes that we are looking at. Realtime simulation of such behavior is out of the question.
Similarly, while a simulator can replay a captured channel trace, it can only do so at a very coarse timescale and with far less fidelity than a physical layer emulator.
Real-world experimentation. The ability to precisely recreate a signal propagation environment is a huge advantage compared to real-world experimentation. This power, however, comes with a price of reduced realism and scale in signal propagation.
Our approach necessarily models a wireless channel using discrete elements (e.g. one line-of-sight ray and two reflections) whereas a true wireless channel is a continuous phenomenon. Also, as the number of RF nodes attached to our DSP Engine increases, the number and length of delayed signal paths that we can implement drops. Hence our approach is a compromise between the fidelity of the real-world and the control of simulation.
Noise. The term noise is frequently used to refer to both true noise (e.g. receiver noise) and interference from other wireless devices. Receiver noise is naturally present in our system since we use real receivers. Interference from other wireless devices can be supported in several ways. First, if RF Node ports are free and the devices are available, these devices can simply be attached to our emulator. Secondly, it is possible to record noise resulting from interference and to replay this in the emulator. Third, a white noise generator can be implemented in either the DSP Engine or the DSC card to generate noise.
Note that our effective receiver noise floor will be slightly higher than a coaxial based system since we use additional amplifiers etc. that introduce noise. This level will still be much lower than the noise floor of a true free-space wireless system.
Scale. As hardware is finite, the richness of channel modeling possible using hardware-based emulation drops as the scale of the network being emulated increases. The limiting factor is typically the number of multipliers in the DSP Engine's FPGA.
For much of our discussion, we have assumed the desire to support the independent pairwise emulation of all pairs of RF Nodes attached to an emulator. Clearly this approach becomes infeasible at a certain point as the complexity of pairwise interaction is order n2.
It is important to observe, however that emulating complete interaction is not always necessary. Clearly, if nodes are out of range with respect to each other, then no emulation between them is necessary. In addition, complexity may be reduced by simplifying and aggregating the emulation of channels for distant nodes.
Multi-element Air Interface Support. Current wireless networks are pushing the limits of the throughput that are possible with a single element antenna. Future networks will increase throughput by using multiple elements to support techniques such as steerable antennas, MIMO, and "time reversal".
Our emulator can support such emerging technologies in two ways. First, where hardware exists, our emulator can support these multi-element experiments by simply treating each element as an independent RF node. The control software then simply controls these RF nodes in a coordinated fashion which also opens up some room for reducing FPGA resources consumed. Second, in certain circumstances, it may be possible for the emulator to emulate the effect of a given technology. For instance, a steerable antenna can be completely emulated without necessarily using a true steerable NIC.

5  Experiments

Our emulator enables a broad set of experiments to be conducted in a controlled and automated environment. To give a feel for the power of our emulator as a research tool, we now present several experiments that illustrate various types experimentation that our emulator enables.
We first discuss how our emulator can improve understanding of the impact of the physical layer on higher layers. We then discuss our emulator's support for emerging antenna and air interface technologies. Finally, we discuss how our emulator can be used to conduct micro and system level benchmarks of wireless performance. Section 6 will then present a case study showing how our emulator can be used to analyze a wireless protocol improvement.
These experiments were all conducted using one or more of three RF Nodes connected to our prototype: "Orchid", "Hermes", and an interferer ("Nice" or a Bluetooth source). For experiments conducted in an emulated physical environment (i.e. where manual control of channel parameters is not required), we use a log-based path loss model derived from our local environment. For each of the experiments discussed, obtaining realistic results using traditional methods would be difficult or inaccurate.

5.1  Physical Layer Impact on Higher Layer Performance

5.1.1  Hidden Terminal

Figure 9: Hidden Terminal Topology
Figure 10: Hidden Terminal Results
A well known example of a low layer issue that has potentially serious ramifications for application performance in wireless networks is the "hidden terminal" problem. Evaluating the hidden terminal problem in a real world environment is troublesome since it is difficult to determine if nodes are in carrier sensing range of each other. Moreover, carrier sensing range constantly fluctuates in the real world. This experiment highlights our prototype's ability to overcome these difficulties by providing precise, independent control over the signal paths between all nodes. This allows us to evaluate the hidden terminal problem by simply commanding the emulator to "disconnect" the desired nodes while leaving the communication between other nodes unaffected.
As illustrated in Figure 9 we arranged our three nodes in a line with all nodes in range of each other. (For simplicity we will speak of spatial relationships in our virtual physical environment as if they were based in a real physical environment). We then measured TCP throughput from Hermes to Orchid while Nice was used to generate interfering traffic using a unicast ping flood directed at Orchid. Orinoco cards were used for these tests.
As shown in the Figure 10 "No RTS, No Interference" test, throughput between Orchid and Hermes is excellent when there is no interference (each value is an average of 25 trials with 95% confidence intervals shown). In the "No RTS, Interference, Not Hidden" test, we see that when Nice begins interfering, throughput is still quite good (ping packets are much smaller than the TCP packets).
We then created a hidden terminal situation by artificially "severing" the link between Hermes and Nice while leaving the other communication paths unaffected. (The ability to create a hidden terminal situation without "moving" the nodes allows us to directly compare results between the hidden and non-hidden tests.) The "No RTS, Interference, Hidden" test shows that throughput between Orchid and Hermes drops dramatically in this case.
We next analyzed the efficacy of 802.11's RTS/CTS mechanism at overcoming the hidden terminal problem by repeating the previous tests with Hermes set to always use RTS/CTS for frames over 200 bytes. The "RTS, Interference, Hidden" test shows that RTS/CTS is able to double throughput; nevertheless throughput is still much lower than when the interferer was not hidden. Comparing the final "RTS, No Interference" test with the "No RTS, No Interference" case shows that the overhead of RTS/CTS alone is roughly 1 Mbps. Further investigation (and coaxial-based verification) revealed that the cause of this underwhelming improvement was the failure of RTS/CTS to prevent rate fallback. The ability to analyze this type of subtle behavior in a controlled environment is a key advantage of our emulator.

5.1.2  External Interference

Another well known problem that can afflict wireless networks in a license free band is interference from external sources. To illustrate our ability to investigate interference from arbitrary sources we conducted a simple experiment involving two 802.11b nodes communicating in the face of interference from a Bluetooth source. As shown in Figure 11, each node was positioned 50 meters from the other two nodes.
Figure 12 shows the results of communication between Hermes and Orchid for four scenarios (each value is an average of 25 trials with 95% confidence intervals shown), two of which - the "Yagi" cases - will be discussed in the next section.
In the "Isotropic, No Interference" test, Hermes and Orchid communicate with omnidirectional antennas with no interference (using a TCP benchmark with traffic from Orchid to Hermes). Communication is only around 1.25 Mbps due to the distance between the nodes.
In the "Isotropic, Interference" test, Hermes and Orchid communicate as before, but the Bluetooth source is configured to broadcast a constant 15 dBm signal with Bluetooth modulation. TCP communication between Orchid and Hermes is not possible in this case.
Figure 11: Directional Antenna Topology
Figure 12: Directional Antenna Results

5.2  Flexible Antenna and Multi-element Air Interface Support

Complete control over signal propagation also allows our prototype to emulate arbitrary types of antennas. To illustrate this, we analyzed the ability of directional antennas to improve range and spatial reuse by minimizing the effects of interfering Bluetooth traffic (discussed in 5.1.2). Orinoco cards were used for these tests.
The "Yagi" tests repeat the "Isotropic" tests discussed previously, but with 18 dBi Yagi antennas [7] attached to Orchid and Hermes. These antennas are aimed directly at each other. Figure 11 shows the radiation pattern for these antennas. Note that for Orchid and Hermes, the Bluetooth source lies along a side lobe with approximately 22 dB and 18 dB respectively less gain than the primary lobe. As shown in Figure 12 these directional antennas successfully increase the communication rate and also mitigate the effects of external interference.

5.3  Benchmark Experiments

We now consider "benchmark" experiments that are designed to measure particular aspects of wireless NIC or link behavior. In additon to providing the control necessary for these tests, the emulator allows these tests to be automated which greatly reduces execution time while eliminating the error associated with manually conducting similar experiments.
These capabilities also enabled us to compare wireless link behavior observed in Roofnet [5] against link behavior in a controlled emulated environment.2

5.3.1  NIC Signal Measurement Characterization

Many researchers have proposed techniques that rely on signal strength and/or noise floor measurements provided by the card. Two common examples are signal strength based device location [8] and SNR based rate selection [9]. The success of these proposed techniques hinges on the accuracy of NIC signal measurement; very little information, however, has been published regarding the accuracy of these measurements in actual hardware.
To investigate the accuracy of signal measurements made by current 802.11b cards, we tested the measurement behavior of five wireless cards. Each card was the exact same model: an Engenius NL-2511CD Plus Ext2 card. Using our emulator to connect a single transmitter-receiver pair we were able to precisely control the received signal strength (RSS) at each card (we held the transmitter constant while alternately measuring each receiver). For each signal strength between -70 dBm and -100 dBm at 2 dB intervals we sent 500 packets of 1500 bytes each at 1 Mbps. We then computed the average signal strength (RSSI) and noise measured by each card (along with 95 % confidance intervals).
Figure 13: Per-card RSSI Variation
Figure 14: Per-card Noise Variation
Figure 15: Per-card RSS Variation after Correction
As shown in Figure 13 there is approximately 10 dB of variation in the measurements even for the exact same model of card. This is clearly inadequate for many purposes. For most cards, however, this variation seems to be caused by a constant bias. This implies that each card's measurement behavior, RSSI, for a given RSS can be defined as: RSSI(RSS) = RSS + Ec + E(RSS). Where RSSI is the measured signal strength, RSS is the actual signal strength, Ec is a constant (per-card) error term, and E(RSS) is each card's variation of from the base Ec for a particular RSS. Ideally, each card would have a lookup table that would give the Ec as well as E(RSS) for each RSS. Lacking such a table, however, we can leverage the fact that most of the error is contained in Ec to correct RSSI.
One very simple method of obtaining a good estimate of Ec is to min-filter the noise measurements (the filtering eliminates spurious noise measurements). As shown, in Figure 14, the noise measurements over the same set of tests shows very similar variation. That is, each card's variation in RSSI closely matches it's variation in measured noise. Figure 15 shows the variation in RSS when using this technique. With the exception of one card, this lowers the variation to approximately 4 dB. This is a greatly reduced variation, but may not be low enough for some purposes (e.g. signal strength based location). Complete card characterization of the relationship between RSSI and RSS is possible, but may not be worth the per-card testing required.
Figure 16: Per-card Delivery Rate Variation

5.3.2  NIC Delivery Rate Variation

We next measured the 1 Mbps packet delivery rates for the same five cards discussed previously. We report delivery rate as the fraction of transmitted packets that were received error free. We used the same experimental setup described in 5.3.1 with the exception that we varied RSS between -70 dBm and -102 dBm (we omit tests above -88 dBm as there was no loss).
As shown in Figure 16, there seems to be less variation in delivery rates than in RSSI. Significantly, the delivery rate performance measured roughly follows the noise measurements in Figure 14: cards reporting lower noise levels tend to have a higher delivery rate. Hence, some of the noise floor measurement variation appears to be due to real variation in the noise floors of the NICs. This is probably due to variation in the amount of noise generated by each NIC's low noise amplifier.
Figure 17: Two-ray Test Topology

5.3.3  Multipath Performance

We now examine card performance in the presence multipath. To do this we configured our emulator to emulate the signal propagation environment shown Figure 17 using three different primary ray strengths (-70 dBm, -90 dBm, and -95 dBm). For each primary ray strength, we caused a delayed ray to be emulated at all 2 dB increments of attenuation between the primary ray strength and -100 dBm. For each primary ray, secondary ray signal strength combination, we varied the secondary ray's delay between 0 and 2.22 us in 0.0185 us increments. For each of these combinations, we conducted a test by transmitting for 500 packets, of 1500-bytes each, from the sender. The receiver then measured the packet delivery rate and other on-card statistics such as signal and noise measurements (for successfully received frames).
Figure 18: Two-ray Delivery Rate vs. SNR
RSSI measurements from this test (omitted in the interest of space) showed that RSSI measured the sum of all signals incident to the receiver, and was fairly insensitive to the delay between the signals. The only significant exceptions being when the delayed ray completely cancelled out the primary ray.
As seen in Figure 18, the delivery rate exhibited large variation for different delay spread, delayed signal strength combinations (each point represents a the delivery rate for one primary ray strength, delayed ray strength, delay spread combination). Hence, SNR may be a very poor indicator of packet delivery rate when significant multipath is present.
We next analyzed the potential of applications to estimate the amount of multipath present using information obtained from the NIC's equalizer. On the Engenius NL-2511CD Plus Ext2 cards (and all other cards based on the same chipset), a register - "MPMetric" - is available to estimate the amount of multipath interference present during reception.
Figure 19: Two-ray MP Metric vs. Delay
Figure 20: One-ray MP Metric vs. RSS
As the documentation on the Prism 2.5 MPMetric register is scant, our emulator's ability to measure the behavior of this register is critical in understanding its performance. Figure 19 shows MPMetric as a function of delay spread for two equal-strength rays. These measurements were obtained from the two-ray test described earlier, and use the five Engenius cards used previously. From this test, we infer that if significant multipath reception is present, MPMetric is likely to be high. We then measured MPMetric in the presence of no multipath as shown in Figure 20. From this test we see that the MPMetric register may also go high whenever the signal conditions are marginal irrespective of multipath. This suggests that a high MPMetric reading is a likely indicator of multipath when the received signal strength is high, but it is not a useful indicator of multipath when the received signal strength is weak.

6  Case Study: 802.11b Rate Selection

We now present a small case study that demonstrates how our emulator can be used to analyze and improve wireless protocol performance.
When selecting a transmit rate, a fundamental tradeoff that wireless protocols must make is throughput vs. range: higher transmit rates increase throughput but at the cost of range and robustness to interference. Rather than selecting a fixed point in this tradeoff, wireless protocols such as 802.11b support multiple transmit rates. This allows wireless NICs to potentially select the best transmit rate in a given environment and at a given moment.
Selecting the best rate, however, is a difficult problem and several schemes have been proposed. Our emulator allows a controlled comparison of the performance of these schemes on real hardware. For illustrative purposes we examine three schemes: ARF - auto rate fallback, SNR signal-to-noise ratio based scheme, and ERF - Estimated Rate Fallback. We describe each of these approaches below.
We based our transmission rate selection implementations on the HostAP mode Prism driver for Linux. We made extensive alterations in order to take fine-grained control of rate selection out of the firmware, and put it into the driver. These alterations give us per-packet control over transmit rate, and effectively disable firmware rate control.
ARF Implementation. Auto rate fallback attempts to select the best transmit rate via in-band probing using 802.11's ACK mechanism. ARF assumes that a failed transmission indicates a transmit rate that is too high. A successful transmission is assumed to indicate the current transmit rate is good, and that a higher rate might possibly be useful.
Our ARF implementation works as follows. If a given number of consecutive packets are sent, then increment to the next highest transmission rate. If a given consecutive number of packets are dropped then decrement the rate. If no traffic has been sent for a given amount of time, then use the highest possible transmission rate for the next transmission. In our implementation, the increment threshold is set at 6, the decrement threshold at 3, and the timeout value at 10 seconds. (The Prism 2.5 firmware based ARF algorithm uses a decrement threshold of 3 and a timeout of 10 seconds, but is somewhat different than our algorithm since retries are implemented entirely in firmware.)
SNR Implementation. SNR based approaches attempt to eliminate the overhead of probing for the correct transmission rate by selecting the optimal transmission rate for a given SNR. These schemes typically ignore multipath interference, and assume that card RSSI/noise floor measurements are completely characterized on a per-card basis.
SNR based rate selection algorithms are faced with the fundamental problem that the information they need to make the rate selection decision is measured at the receiver. Our SNR based implementation leverages receiver based reception information, like RBAR [9], but eliminates the per-packet overhead and works with standard 802.11. The key insight that our SNR based algorithm leverages is the fact that instantaneous path loss between two given points is symmetric in both the sending and receiving directions 3. Hence, it's possible to estimate SNR at the receiver by observing traffic in the reverse direction. We omit further details of this scheme as they are beyond the scope of this paper.
Estimated Rate Fallback. While signal based transmission rate selection has the benefit of quickly setting the transmission rate, this technique may be inadequate in some situations. Auto rate fallback, on the other hand, has the advantage of implicitly taking all relevant channel factors into consideration, but may probe more than necessary. We developed a simple hybrid algorithm that uses both SNR and ARF in conjunction the on-card measurements of multipath. We call our scheme Estimated Rate Fallback (ERF).
The basic idea of ERF is to run the ARF and SNR based schemes in parallel, and then to select the appropriate estimate. We do this by using the SNR based estimate unless one of the following is true: multipath is detected, or the SNR estimate is near a decision threshold (2 dB in our implementation). This allows ERF avoid the multipath weakness of the SNR based approach while reducing the need for card characterization.
Rate Selection Algorithm Comparison We now evaluate the performance of the previously discussed transmission rate selection algorithms using three emulated signal propagation environments. In all cases, we use the same test to measure performance.
Under lightly loaded traffic conditions, optimal rate selection is not strictly necessary since a lower transmission rate can simply be used. Rate selection becomes critically important, however, when the wireless network is running at capacity. For two of our tests, we examine this fully loaded condition for a single transmit-receive pair. For the third test, we examine a lightly loaded situation.
To measure performance of a single transmitter under full load, we transmitted as many unicast UDP 1400-byte packets as possible from the transmitting node to the receiving node under the given signal environment. For the lightly loaded scenario, we sent 100 packets over 10 seconds and measured the number successfully received.
These tests highlight the emulator's ability to enable controlled comparison of rate selection mechanisms with a high degree of repeatability. For each experiment we briefly discuss how the experiment would have fared using an alternate approach.
Figure 21: Rate Selection for Fixed RSS
Fixed RSS. The first test that we conducted to evaluate our rate selection mechanisms was to measure performance when the received strength was constant and the source sent as much traffic as possible as described above. Figure 21 shows our results. As expected, SNR performs well. ARF, on the other hand, performs poorly at intermediate signal levels where it is periodically probing for a higher bandwidth that will never be useful. ERF, is able to match SNR performance quite closely.
Obtaining this result using real-world experimentation would be possible, but tedious since positioning nodes to obtain a particular fixed RSS is difficult. Simulation might be used, but would only yield useful results if the hardware were modeled accurately.
Figure 22: Rate Selection for Under Multipath
Multipath. Next, we measured rate selection performance under in a multipath environment by commanding the emulator to introduce a delayed copy of the primary signal from the sender to the receiver (ideally this would be both directions) with a fixed delay of 1 symbol period. With the RSS of the primary ray set to -77 dBm, we set the delayed ray strength to -84 dBm. As shown in Figure 22, ERF and ARF perform much better than SNR since SNR sends at 11 Mbps. This also masks the fact that SNR uses multiple retries to even attain this throughput. This test demonstrates that multipath can cause the SNR based scheme to fail, although it is unclear whether this situation is common enough to worry about in many environments. Nevertheless, ERF is able to use hardware information to eliminate even this situation.
Eliciting this result using real-world experimentation would essentially require a highly controlled large-scale RF test range. Using simulation would simply not be feasible.
Figure 23: Rate Selection for Driveby Emulation
Fast Fading. We next tested performance in a fast fading environment, by measuring throughput during a replay of a "drive by" scenario similar to that shown in Figure 8. (In this experiment, we are simply emulating the fast fading caused by multipath, and are not actually emulating multiple signal copies. Hence, the multipath differences in the various algorithms are not demonstrated by this experiment.) Figure 23 shows that in this scenario, all algorithms perform similarly though ARF and ERF generally outperform SNR when the signal is marginal, while SNR and ERF generally outperform ARF when the signal is strong.
This experiment demonstrates the benefits of being able to replay the exact same signal trace. Comparing these rate selection algorithms in a real drive-by experiment would be difficult since even slight variations in mobility would cause channel inconsistency across experiments. Hence, it would be difficult to separate the effects on performance due to the different algorithms from the effects due to RF channel variation.
In practice, experiments that include mobility are also very cumbersome to execute in the real-world especially as the number of mobile nodes increases.
A simulated test would result in a much coarser grained use of the signal fading trace and fail to simulate the effects of rapid fading due to vehicle mobility. Hence, confidence in the accuracy of such a simulated test would be greatly reduced.

7  Related Work

7.1  Wireless Simulators

For several years now, ns-2 [10] has been the de facto standard means of experimental evaluation for the wireless networking community. Yet ns-2's wireless support has not kept pace with current technology, and is targeted towards the original 802.11 standard developed in 1997. Even this support, however, is inexact as ns-2 does not support automatic rate selection, uses a non-standard preamble, and a non-standard 802.11 ACK timeout value. In addition, ns-2's physical layer is particularly simple [1]. As a result, some researchers are opting to use commercial simulators such as QualNet [11] and OpNet [12] since they claim better support for current standards. Despite these claims, however, it is unclear how well these simulators reflect actual hardware.

7.2  Wireless Emulators

Emulation has proven to be a useful technique in wired networking research [3,13,14], and it has an even larger potential in the wireless domain.
A common approach that has been taken for wireless emulation [15,16,17] is to capture the behavior of a wireless network in terms of parameters such as capacity and error rates and then use a wired network to emulate this behavior. This has the advantage of allowing the use of real endpoints running real applications in real time. The wireless MAC and physical layers, however, are only very crudely simulated. For this reason, it is unclear whether or not this approach can obtain more realistic results than pure simulation.
RAMON [18] uses three programmable attenuators to allow emulation of the signals between a single mobile node and two base stations. While useful for the intended application of mobile IP roaming investigation, the inability to independently control all signal paths severely limits this approach.

7.3  Wireless Testbeds

More recently, several efforts such as Emulab [19], WHYNET [20], Orbit [21], and MiNT [22] have begun using controlled wireless testbeds. Though they mitigate some of the issues with respect to control and isolation, these approaches still inherit the benefits and shortcomings of testbeds discussed in Section 1. In contrast, our approach allows for much finer grained and repeatable control of the physical layer.

7.4  Channel Emulators / Fading Simulators

The most functionally similar approach to the wireless emulator that we are developing is provided by commercial channel emulators [23,24]. The goal of these emulators, however, is quite different. Rather than supporting emulation of all channels in a wireless network, commercial channel emulators are designed to support very fine-grained emulation of the wireless channel between either a pair of devices or between a small number of base stations and a small number of mobile devices (with the total of both typically being less than 8). In addition, these emulators lack direct support for half-duplex nodes and require external components to support half-duplex nodes. As a result, while these emulators are very useful for equipment vendors evaluating a new device, the limited scale, lack of support for complete interaction between all nodes, and high cost make commercial channel emulators an unattractive option.

8  Conclusion

Understanding and improving wireless network and application performance is increasingly important. Unfortunately, repeatable experimentation with real wireless nodes running real applictions operating in a physical environment is not feasible. For this reason, most wireless research has relied on evaluation via simulation. Wireless simulators do not, however, completely duplicate real hardware in an operational environment, and the correctness of wireless simulation is difficult to validate.
We have addressed these obstacles by developing a physically accurate wireless emulator that supports real applications running on real wireless devices. We have shown that this approach allows us to achieve fine grained control over RF propagation. We have demonstrated that this enables the analysis of higher layer performance in real networks and facilitates the development and evaluation of enhanced wireless protocols.

References

[1]
M. Takai and J. Martin. Effects of Wireless Physical Layer Modeling in Mobile Ad Hoc Networks. Proc. of MobiHOC 2001. Long Beach, CA, October 2001.
[2]
L. Peterson, T. Anderson, D. Culler, and T. Roscoe. A blueprint for introducing disruptive technology into the internet. Proc. of HotNets-I, October 2002.
[3]
B. White, J. Lepreau, L. Stoller, R. Ricci, S. Guruprasad, M. Newbold, M. Hibler, C. Barb, and A. Joglekar. An integrated experimental environment for distributed systems and networks. Proc. of OSDI 2002, December 2002.
[4]
G. Judd and P. Steenkiste. Repeatable and Realistic Wireless Experimentation through Physical Emulation. Proc. of HotNets-II. Cambridge, MA, November 2003.
[5]
D. Aguayo, J. Bicket, S. Biswas, G. Judd, and R. Morris. Link-level Measurements from an 802.11b Mesh Network. Proc. of SIGCOMM 2004. Portland, OR, August 2004.
[6]
R. Punnoose, P. Nikitin, J. Broch, and D. Stancil. "optimizing wireless network protocols using real-time predictive propagation modeling". Proc. of the Radio and Wireless Conference (RAWCON) 1999, August 1999.
[7]
SmartAnt Telecomm Ltd. Yagi antennas, https://www.smartant.com/Products/ISM/2.4G/FYW24-01518BFL.pdf.
[8]
P. Bahl, V. N. Padmanabhan, and A. Balachandran. A software system for locating mobile users: Design, evaluation, and lessons. Tech. Rep. MSR-TR-2000-12, Microsoft Corporation, February 2000.
[9]
G. Holland, N. Vaidya, and P. Bahl. A Rate-Adaptive MAC Protocol for Multi-hop Wireless Networks. Proceedings of MobiCom2001. Rome, Italy, September 2001.
[10]
S. McCanne and S. Floyd. UCB/LBNL/VINT Network Simulator - ns (version 2), April 1999, https://www.isi.edu/nsnam/ns/.
[11]
Scalable Network Tech. Qualnet, https://www.scalable-networks.com/.
[12]
OPNET Tech. Opnet, https://www.opnet.com.
[13]
K. Fall. Network emulation in the vint/ns simulator. Proc. of The Fourth IEEE Symposium on Computers and Communications, July 1999.
[14]
A. Vahdat, K. Yocum, K. Walsh, P. Mahadevan, D. Kostic, J. Chase, and D. Becker. "scalability and accuracy in a large-scale network emulator". Proc. of OSDI 2002, Dec. 2002.
[15]
B. Noble, M. Satyanarayanan, G. Nguyen, and R. Katz. Trace-based mobile network emulation. Proc. of SIGCOMM 1997, September 1997.
[16]
P. Mahadevan, K. Yocum, and A. Vahdat. Emulating large-scale wireless networks using modelnet. Poster and Abstract Mobicom 2002, September 2002.
[17]
T. Lin, S. Midkiff, and J. Park. A dynamic topology switch for the emulation of wireless mobile ad hoc networks. Proc. of the 27th Annual IEEE Conference on Local Computer Networks (LCN'02), November 2002.
[18]
E. Hernandez and S. Helal. "ramon: Rapid mobility network emulator". Proc. of the 27th IEEE Conference on Local Computer Networks (LCN'02), November 2002.
[19]
B. White, J. Lepreau, and S. Guruprasad. Lowering the barrier to wireless and mobile experimentation. Proc. of HotNets-I, October 2002.
[20]
WHYNET. Whynet, https://chenyen.cs.ucla.edu/projects/whynet/.
[21]
D. Raychaudhuri, I. Seskar, M. Ott, S. Ganu, K. Ramachandran, H. Kremo, R. Siracusa, H. Liu, and M. Singh. Overview of the ORBIT Radio Grid Testbed for Evaluation of Next-Generation Wireless Network Protocols. Proc. of WCNC 2005. New Orleans, LA, March 2005.
[22]
S. S. P. De, A. Raniwala and T. Chiueh. MiNT: A Miniatuirized Network Testbed for Mobile Wireless Research. Proc. of Infocom 2005. Miami, FL, March 2005.
[23]
PROPSim. Propsim c8 wideband multichannel simulator, https://www.propsim.net/.
[24]
Spirent Communications. Tas4500 flex5 rf channel emulator, https://www.spirent-communications.com/.

Footnotes:

1This research was funded in part by the NSF under award numbers CCR-0205266 and CNS-0434824. Additional support was also provided by Intel. Glenn Judd is supported by an Intel Fellowship.
2This was done in conjunction with the Roofnet project
3We assume a single receive and transmit antenna. Our approach can be modified to support the general case.


File translated from TEX by TTH, version 3.67.
On 29 Mar 2005, 10:16.

This paper was originally published in the Proceedings of the 2nd Symposium on Networked Systems Design and Implementation,
May 2–4, 2005, Boston, MA, USA

Last changed: 2 May 2005 aw
NSDI '05 Technical Program
NSDI '05 Home
USENIX home