<font face="times new roman" size="2"><p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">On Friday, August 7, 2015 4:03pm, "David Lang" <david@lang.hm> said:<br />> </p>
<div id="SafeStyles1438982423">
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">> Wifi is the only place I know of where the transmit bit rate is going to vary<br />> depending on the next hop address.<br /><br /></p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">This is an interesting core issue.  The question is whether additional queueing helps or hurts this, and whether the MAC protocol of WiFi deals well or poorly with this issue.  It is clear that this is a peculiarly WiFi'ish issue.</p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">It's not clear that the best transmit rate remains stable for very long, or even how to predict the "best rate" for the next station since the next station is one you may not have transmitted to for a long time, so your "best rate" information is old.  Queueing makes information about the channel older, by binding it too early.  Sending longer frames means retransmitting longer frames when they don't get through, rather than agilely picking a better rate after a few bits.</p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">The MAC protocol really should give the receiver some opportunity to control the rate of the next packet it gets (which it can do because it can measure the channel from the transmitter to itself, by listening to prior transmissions).  Or at least to signal channel changes that might require a new signalling rate.</p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">This suggests that a transmitter might want to "warn" a receiver that some packets will be coming its way, so the receiver can preemptively change the desired rate.  Thus, perhaps an RTS-CTS like mechanism can be embedded in the MAC protocol, which requires that the device "look ahead" at the packets it might be sending.</p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">On the other hand, that only works if the transmitter deliberately congests itself so that it has a queue built up to look at.</p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">The tradeoffs are not obvious here at all.  On the other hand, one could do something much simpler - just have the transmitter slow down to the worst-case rate required by any receiving system.</p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">As the number of stations in range gets larger, though, it seems unlikely that "batching" multiple packets to the same destination is a good idea at all - because to achieve that, one must have n_destinations * batch_size chunks of data queued in the system as a whole, and that gets quite large.  I suspect it would be better to find a lower level way to just keep the packets going out as fast as they arrive, so no clog occurs, and to slow down the stuff at the source as quickly as possible.</p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;">[one should also dive into the reason for maintaining variable rates - multipath to a particular destination may require longer symbols for decoding without ISI.  And when multipath is involved, you may have to retransmit at a slower rate. There's usually not much "noise" at the receiver compared to the multipath environment. (one of the reasons why mesh can be a lot better is that shorter distances have much less multipath effect, so you can get higher symbol rates by going multi-hop, and of course higher symbol rates compensate for more airtime occupied by a packet due to repeating).]</p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: 'times new roman'; font-size: 10pt; word-wrap: break-word;"> </p>
</div></font>