If you assume a gilbert-elliot model for the bit error rate and plot
the packet size vs. throughput, the optimum occurs at around ~35 bytes
per packet. Basically, a gilbert-elliot model is a 2 state markov
chain model, where one state is a good state (where bit errors do not
occur) and the other state is a bad state (where bit errors occur with
high probability, ~0.4) and you have transitions between these 2
states. Wireless channel error characteristics have been modeled using
this particular model.
 Also, we conducted experiments to verify this theoretical result and
as David pointed out, the packet size of ~30 bytes optimizes the
throughput achieved. The throughput achieved is ~40% of the channel
rate (for micaz it is 250Kbps), which is pretty bad, but with other
packet sizes the throughput achieved is even lower. So, in fact there
is a rationale behind the use of 29 bytes.

Raghu
*********************************************************************

Message: 1
Date: Mon, 24 Apr 2006 10:07:13 -0700
From: "David Gay" <[EMAIL PROTECTED]>
Subject: Re: [Tinyos-help] Rationale for 29 bytes payload
To: "Vinai Sundaram" <[EMAIL PROTECTED]>
Cc: [email protected]
Message-ID:
       <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1

On 4/21/06, Vinai Sundaram <[EMAIL PROTECTED]> wrote:
> I need to send more than 29 bytes for the application I am working on.
> However, I do not want to increase the payload size so much that it will
> reduce the throughput of the network. Is "29 bytes" found to give close
> to optimal throughput? Are there any empirical/analytical studies that
> suggest a payload size range that would give near-optimal throughput? I
> didn't come across the reason for 29 bytes in any of the documents.

It's historical. The original TinyOS motes had a radio that was
controlled by software at the bit level, and somebody (Jason?) found
that 36 bytes/packet was a good place to be (maximise throughput,
minimise chance of packets getting lost because of software timing
glitches).

That was 30 bytes of payload, 4 bytes of header, and 2 bytes of CRC.
Packets were always 36 bytes.

Then someone added variable-length packets, adding 1 byte (the
length...) to the header. Hence 29 bytes of payload. Still later,
someone added the option for a different payload length, but the
default is 29.

At this point it's still 29 bytes because:
- nobody has bothered to change the default
- it avoids the message buffers taking too much RAM

David Gay

_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to