Hello.

Philip Levis wrote:
Now the problem is that there is packet loss: not all messages that should be (and are) generated are received by the nodes in range.

ok, thank you for the information. But I am currently not creating a braodcast storm: I work with sequence numbers and each node forwards each message just once.

I do a broadcast into the network, that means that the transmitting node does not know it's receivers. So CSMA worked correctly without changing the exponent before, but I oversaw the point that CSMA is not enough, as there is the hidden terminal problem, and CSMA can't avoid that. Also, using packet acknowledgements is not an option for broadcasts, so I had two choices:

- Find a node's neighbours using another approach (e.g. using a beacon system) and make unicasts, which will not make the hidden terminal go away, but I could check for lost messages with package acknowledgements. - Try avoiding the concurrent transfer of messages by delaying the transfer by a random time period.

I went for the second option, as that is easier and faster to implement. I played around with the delay intervall, and it works quite well for me now. The packet loss is now down from 30% to around 3-5%, which is ok for me. I think the beacon-based approach for connection discovery could produce even better results.

Philipp
--
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."  Benjamin Franklin
http://www.filzip.com
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to