One media access and forwarding protocol tested with RoofNet was ExOR. ExOR simulates some advantages of multicasted data networks by using conventional 802.11 digital radios operated in broadcast modes.
The source radio uses routing data to establish a list of radios that could help reach the destination radio. The list is ordered so that radios closer to the destination are nearer to the head of the list. The destination is at the head of the list. The list is compactly stored in each packet.
Each packet also includes a list that shows the progress of each packet through the list of radios. This list has one entry per packet. Each entry is the number of radio that is closest to the destination and has retransmitted that packet. The source initially sets this list all to the source radio's number.
Then, the source broadcasts a batch of packets. Radios not on a packet's list discard the packet.
Radios on the list save the packet. They update their list of radios transmitting each packet. But they wait a calibrated time before they retransmit any packet. The time is less if they are closer to the destination. The time is a probabilistic estimate of the time to retransmit the packets that will be retransmitted by radios closer to the destination.
If a radio receives a packet transmitted from a radio that is closer to the destination, the farther radio throws away that packet, and never retransmits it. It also updates its list of packet progress.
As they work backwards toward the source, the retransmissions propagate the batch of packets' progress information back to the source radio.
At the end, a few packets of each batch sent by the source may never reach the destination. It sends these on by the most reliable route, using conventional routing.