I am trying to implement Network Coding over a meshed network. Therefore I need to send packets to several destinations, this is way I am using Broadcast packets. But I can not understand why this is capped at ~990KBs.

Is there some configuration to do ?

  • Maybe mention how are you generating the packets and what operating system it is. Question might be more at home in stackoverflow – ytti Jun 10 '13 at 13:35
  • 4
    @ytti, to me this doesn't sound like a dev question, rather it is in my mind very clearly a 802.11 fundamentals question. But hey, I could be wrong (and as my wife points out, often am). – YLearn Jun 10 '13 at 13:48
  • Please add: relevant configs, HW / firmware info, and maybe a diagram? – Mike Pennington Jun 11 '13 at 7:03

In 802.11 wireless (which I assume is your case), typically broadcast/multicast frames (as well as many management frames) are transmitted at the lowest base/basic/required (term varies by vendor) data rate. This is separate from the supported data rates.

Typically, for best range and maximum compatibility, this defaults to the 1Mbps data rate, although in the past several years, some vendors have been increasing this default.

Some vendors also now include a multicast-to-unicast conversion keeping track of multicast clients with some form of multicast snooping, however I know of no similar means for broadcast (a wireless device can't know all the clients out there that it may need to reach).

If you are talking about an ad-hoc mesh network, then often you do not have control over this in the driver settings.

| improve this answer | |

Multicast rate has to be the lowest common denominator so that all devices can receive it successfully. Multicast frames cannot be acknowledged[1], so if a peer fails to receive it, the sender will not know, and will not retransmit the frame. Having loss rates of more than 1% per receiver is common. Much higher loss rates can be expected if there is heavy unicast traffic going on on the same channel.

If you increase the basic multicast rate, you will also increase the loss rate. But since you are to combine native packets and introduce redundancy to compensate for the sheer loss rate, your network should be able to survive that. Keep in mind that multicast 802.11 management frames (including beacons) are not designed to support high loss rates.

On Linux, most mac802.11 drivers should support setting the multicast rate. Not so recent kernels requires this to be done at join time for both IBSS and mesh. iw has a mcast-rate option for the ibss join and mesh join command.

But if you happen to be running a fairly recent kernel and iw that both support NL80211_CMD_SET_MCAST_RATE, then you can change it at any time, and it is as simple as

iw dev wlanX set mcast_rate 6

to set a 6Mbps multicast rate.

[1] Maybe they can, now. There was a proposed modification to the 802.11 standard to acknowledge multicast frames: All stations, after receiving a multicast frame successfully, would pick a random backoff and send an ack to the transmitter. Acks could collide of course, so the transmitter would retransmit it and allow larger backoffs until all receivers have acknowledged the frame successfully.

| improve this answer | |

It is actually possible to modify the bit rate by forcing the rate on the wireless card. On Linux, the command is :

sudo iwconfig wlan0 rate 11M

| improve this answer | |
  • 3
    iwconfig is obsolete. All the ioctls that it uses are either hacked up or are completely faked, or even no-ops. Anyway, what this particular command does is horrible. And is not what you want to: this limits the available rate, it does not fix it in any way. And i'm not even sure that this setting will survive for long in case of IBSS. – BatchyX Jun 11 '13 at 19:44
  • 2
    While this provides the effect of allowing your broadcasts to exceed 1Mbps, it is not a correct answer to the question posed, which is essentially, "Why Broadcast wireless is capped at 1MBs?" What you have done is to tell the wireless to run at only one data rate, and there must be at least one base/basic/required data rate. While you get higher broadcast traffic, you lose the ability to lower data rates (to maintain a good connection when signal is weaker) or to increase data rates (and this impacts unicast traffic as well). In essence, this is a quick fix that is not suitable to real world. – YLearn Jun 13 '13 at 23:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.