On Sep 7, 2007, at 2:14 AM, Wojciech Czylok wrote:
Hello,
we are working on a research projekt about wireless sensor networks
and got a problem with packet loss under TinyOS 2.0.1
We use micaz family motes and our goal was to build a network
topology like a repeater.
The mote A sends packets (containing its TOS_NODE_ID and a counter)
to its neighbour mote B.
We used the application BlinkToRadio for this purpose.
Mote B uses our application BlinkToRadioReceive. It receives the
packet from "A", reads its information and sends a
new packet with this information to its neighbour C. This Mote does
the same thing as Mote B. The last mote in this
chain uses the programm BaseStation and receives the packet. We use
the java program Listen to read the packages
from the serial port.
If we set up a 1-to-1 connection between BlinkToRadio and
BaseStation (without any repeating motes in between), then we have
no packet loss at all.
For every mote we add to the chain, the packet loss rises about 2%.
The packet loss even occurs, if the motes are lying
right next to each other. It also doesn't depend on the period of
the timer, which tells the first mote to send packets.
The percentage of packet loss remains.
We wrote a few other test programs to examine this behaviour. So we
checked the following:
- storing received packets on the forwarding motes before sending
- using tasks instead of functions in the events
But after all, the packet loss did not improve. The packet loss
always rises about 2% for each mote we add.
We assume that there is a problem when a mote receives a message
and wants to send at the same time.
Output example from Listen. The last two bytes represent the counter:
00 00 00 00 00 04 00 06 00 01 00 35
00 00 00 00 00 04 00 06 00 01 00 36
00 00 00 00 00 04 00 06 00 01 00 37
//PAKETLOSS!
00 00 00 00 00 04 00 06 00 01 00 3A
00 00 00 00 00 04 00 06 00 01 00 3B
// ... //
00 00 00 00 00 04 00 06 00 01 00 83
00 00 00 00 00 04 00 06 00 01 00 84
00 00 00 00 00 04 00 06 00 01 00 85
//PAKETLOSS!
00 00 00 00 00 04 00 06 00 01 00 87
00 00 00 00 00 04 00 06 00 01 00 88
Does anyone have some ideas for a solution or experiences the same
problem?
Turn on acknowledgments and retransmit if you don't get an ACK. Note
that you probably won't get more than 3 nines of reliability (99.9%)
per link with this, as it's possible for a packet to pass CRC at
layer 2 yet be corrupted such that it does not get to the proper
layer 3. For greater reliability, you need layer 3 acks.
Phil
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help