Collision Detection and Recovery



Research Publications Misc
Overview Besides complex techniques like CDMA, most wireless MAC protocols today lose packets during collisions and cannot differentiate between packet collisions and channel noise. Therefore, they unnecessarily avoid simultaneous transmission even though many radios exhibit the Capture Effect, which is the ability to correctly receive a strong signal from one transmitter despite significant interference from other transmitters. We developed a technique to exploit this effect to cheaply detect and recover from packet collisions using only simple, low-power radios that are commonly used in sensor networks. This technique differentiates between collisions and channel noise, recovers one of the packets entirely, and can often identify both transmitters that were involved in the collision. This allows MAC protocols to be more aggressive by transmitting while neighbors are also transmitting; if a collision occurs, one of the packets will actually get through and feedback can be used to request the lost packets and/or to prevent such collisions in the future. We demonstrated the collision detection and recovery technique on a 28 node testbed and current experiments with new MAC protocols are showing up to 30% gains in bandwidth and latency.
Publications

Kamin Whitehouse, Alec Woo, Fred Jiang, Joseph Polastre, David Culler.  "Exploiting the Capture Effect for Collision Detection and Recovery."  The Second IEEE Workshop on Embedded Networked Sensors (EmNetS-II).  Sydney, Australia. May 30-31, 2005. (ppt)

Data The data for this project contains two parts. First, the data from the three-node experiment described in the paper. Second, the data from the broadcast storm experiment described in the paper.
Software The code for this project contains two parts. First, there is a modification to the old tinyos-1.x radio stack to resynchronize to a packet during a collision, and to store information about the colliding packets. This modification is to a very old radio stack, and is here only as a reference implementation. Second, there is simple code that allows a single GenericBase to coordinate the transmissions of two other nodes using input/output pins. This code was used for the three-node experiment described in our paper.


Kamin Whitehouse
Computer Science Department
The University of Virginia
217 Olsson Hall
Charlottesville, Virginia 94720