[SensorNetArch] Meeting Minutes: 9/27

Rodrigo Fonseca rfonseca at eecs.berkeley.edu
Mon Sep 27 22:42:17 PDT 2004


> I think that using FEC may be good for certain situations and not for 
> others. The problem with FEC is that it expands the payload thus 
> increasing power consumption, and may not be necessary if the links 
> are of high quality. On the other hand if the links are really lossy 
> then FEC may not be sufficient to recover the long packet. I'm not 
> sure if anyone's done something like Reed-Solomon, but the computation 
> costs may also be significant.

Sukun implemented Reed Solomon code for the mica motes for our paper. 
Some interesting facts:
    *We use systematic codes, meaning that the original message is sent 
as part of the "encoded" set of packets => if no packets are lost, 
decoding is free
    *Operations are carried out either with fast XOR operations for 
additions. Multiplication is done with lookups on log and exp tables, 
and additions.
    *Encoding is done with no extra memory involved: the original 
packets are sent out, and the other redundant packets are computed on 
the fly and sent out
    *Both encoding and decoding can be performed faster than the time to 
send a packet, meaning it is practical to do it on the fly.
    *Code is available in the tinyos repository

Of course, this is not a good solution always. If the loss pattern is 
such that the average loss rate is small, but bursty, you will (i) waste 
bandwidth in the periods in which you get all packets through, and (ii) 
waste encoding effort in a burst that is longer that what the code 
allows for. In this case you loose all the data. So, erasure coding will 
only help if the networking stack below it can make the loss pattern 
amenable to FEC. Link level retransmissions and fast reaction to route 
changes are important in that regard.

Rodrigo




More information about the SensorNetArch mailing list