Hi, for my benchmarks I'm generating random request of fixed size. The time between two requests is exponentially distributed. As long as The rate parameter of the exponential distribution is low enough my implementation achieves lower RTTs than blip, but when the rate parameter gets higher, blip becomes far better than my implementation. Here's a chunk of results obtained using lambda=1.0 (mean = 1.0). The first column is the the request size in bytes (not including the IEEE 802.15.4 header and the Active Message field), the second one is the RTT in ms of my implementation, the third one is the RTT in ms using blip.
08 68 71 16 57 75 24 81 87 32 110 93 40 147 95 48 175 96 56 296 102 64 305 103 72 375 115 80 405 165 88 494 164 96 565 177 It's hard to say if my implementation has a linear performance with a high slope or if it is quadratic. There are some anomalies (for example the sharp rise between RTT for requests of 72 and 80 bytes using blip, which seems to be a platform issue), but the trend is clear: blip sharply outperforms my implementation as the traffic gets heavier. I was able to use blip with high lambdas (=5.0) and still having decent RTTs: 8 105 16 98 24 123 32 144 40 190 48 217 56 184 64 203 72 297 80 498 88 738 96 961 As I said my echo implementation simply uses a Pool component to manage the echo requests (I also tried to use a ring buffer written by me but the results didn't change much), that's why I suppose that blip is particularly clever with buffer management, but still I can't understand where the trick is. -- Giuseppe Cardone On Thu, Dec 17, 2009 at 7:48 AM, Arik Sapojnik <[email protected]> wrote: > Hi, > > I'm currently investigating the same issue - RTT, delay, throughput... > Can you please post your results and the results of blip? > > Thanks, > Arik > > > On Wed, Dec 16, 2009 at 22:06, Giuseppe Cardone > <[email protected]> wrote: >> >> Hi all, >> >> to get acquainted with TinyOS I'm writing a simple echo application: >> it sends back any message it receives. I'm using two TelosB motes and >> Tiny OS 2.1 compiled from CVS. The hardware setup is: >> >> echo client PC --- Proxy running Serial Forwarer connected to a >> BaseStation --- Echo server on TelosB >> >> I'm using a Pool<message_t> to buffer messages on the echo server. >> Everything works and I'm happy with it. As comparison I wrote a simple >> UDP Echo server using blip, and even if blip has to deal with 6lowpan >> it still does a great job and actually under relatively high traffic I >> have a much better round trip time using blip than using my >> application. I compiled my echo server using the switches: >> >> -DENABLE_SPI0_DMA -DCC2420_HW_ACKNOWLEDGEMENTS -DTOSH_DATA_LENGTH=102 >> >> I'm not posting my source code since is pretty trivial: it's just a >> echo server that uses a ring buffer to deal with incoming messages. >> It's the simplest technique I could think of, and I don't know how >> blip can have better performance (and I didn't find any obvious trick >> in the source code). How does blip achieve such high performance? Does >> it use any trick with buffers to have a performance boost? >> >> Any help, tip or hint will be greatly appreciated. Thanks. >> >> -- >> Giuseppe Cardone >> _______________________________________________ >> Tinyos-help mailing list >> [email protected] >> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help > > > > -- > Best Regards, > Arik Sapojnik > [email protected] > _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
