[Tinyos-help] [TinyOs 2.x] ACK Bug?
Philip Levis
pal at cs.stanford.edu
Fri Jan 2 10:24:47 PST 2009
On Dec 23, 2008, at 2:00 AM, Pratibha S wrote:
> Hi All,
>
> We are running an algorithm in TOSSIM over 200-nodes and we are
> experiencing packet losses due to improper ACKs. i.e. The sender
> would receive the packet.wasAcked() signal, but the receiver wouldnt
> have got the message. Is this a bug? Any help on this issue would be
> appreciated.
>
This isn't a bug.
Experimentally, I've found that motes receive false positive
acknowledgements. This is rare, but it does happen. There are two
possible reasons:
1) The packet was corrupted, but passed CRC. If the AM type is
different, then unless you have a handler for that type the stack will
just discard it.
2) The packet is read properly by the radio and passes CRC, but the
software stack flushes the receive memory before reading it out.
Because net2 has observed this to happen experimentally on pretty much
every testbed we've used, I put it into TOSSIM. That way, your code
doesn't make incorrect assumptions about the behavior of hardware.
Remember the end-to-end argument: you can't depend on link-layer acks
to be sure that the packet arrived successfully at a network layer.
IIRC, TOSSIM issues false positive acks .1% of the time (1 in 1000),
which is approximately what net2 observed in CTP tests on telosb and
micaz hardware (CC2420).
Phil
More information about the Tinyos-help
mailing list