Pourquoi ma communication sans fil UDP Broadcast est-elle limitée à 1 Mo?

10

J'essaie d'implémenter le codage réseau sur un réseau maillé. Par conséquent, je dois envoyer des paquets vers plusieurs destinations, c'est ainsi que j'utilise des paquets de diffusion. Mais je ne peux pas comprendre pourquoi cela est plafonné à ~ 990 Ko.

Y a-t-il une configuration à faire?

Vladimir Leiv
la source
Peut-être mentionner comment générez-vous les paquets et de quel système d'exploitation il s'agit. La question pourrait être plus à la maison dans stackoverflow
ytti
4
@ytti, pour moi, cela ne ressemble pas à une question de développement, c'est plutôt dans mon esprit très clairement une question fondamentale 802.11. Mais bon, je peux me tromper (et comme le souligne ma femme, je le suis souvent).
YLearn
Veuillez ajouter: des configurations pertinentes, des informations sur le matériel / le firmware et peut-être un diagramme?
Mike Pennington

Réponses:

11

Dans le sans fil 802.11 (ce qui, je suppose, est votre cas), les trames de diffusion / multidiffusion généralement (ainsi que de nombreuses trames de gestion) sont transmises au débit de données de base / de base / requis le plus bas (le terme varie selon le fournisseur). Ceci est distinct des débits de données pris en charge.

En règle générale, pour une meilleure portée et une compatibilité maximale, cela correspond par défaut au débit de 1 Mbps, bien qu'au cours des dernières années, certains fournisseurs aient augmenté cette valeur par défaut.

Certains fournisseurs incluent également une conversion multidiffusion vers unidiffusion en gardant une trace des clients de multidiffusion avec une certaine forme d'espionnage de multidiffusion, mais je ne connais aucun moyen similaire pour la diffusion (un appareil sans fil ne peut pas connaître tous les clients dont il peut avoir besoin). atteindre).

Si vous parlez d'un réseau maillé ad hoc, vous n'avez souvent pas de contrôle sur celui-ci dans les paramètres du pilote.

YApprendre
la source
7

Le taux de multidiffusion doit être le plus petit dénominateur commun pour que tous les appareils puissent le recevoir avec succès. Les trames de multidiffusion ne peuvent pas être acquittées [1], donc si un pair ne parvient pas à le recevoir, l'expéditeur ne le saura pas et ne retransmettra pas la trame. Il est courant d'avoir des taux de perte de plus de 1% par récepteur. Des taux de perte beaucoup plus élevés peuvent être attendus s'il y a un trafic unicast important en cours sur le même canal.

Si vous augmentez le taux de multidiffusion de base, vous augmenterez également le taux de perte. Mais comme vous devez combiner des paquets natifs et introduire une redondance pour compenser le taux de perte, votre réseau devrait être capable de survivre à cela. Gardez à l'esprit que les trames de gestion multicast 802.11 (y compris les balises) ne sont pas conçues pour prendre en charge des taux de perte élevés.

Sous Linux, la plupart des pilotes mac802.11 devraient prendre en charge la définition du taux de multidiffusion. Les noyaux pas si récents exigent que cela soit fait au moment de la jonction pour IBSS et le maillage. iwa une mcast-rateoption pour la commande ibss joinet mesh join.

Mais si vous utilisez un noyau assez récent et iwque les deux prennent en charge NL80211_CMD_SET_MCAST_RATE, vous pouvez le changer à tout moment, et c'est aussi simple que

iw dev wlanX set mcast_rate 6

pour définir un taux de multidiffusion de 6 Mbps.

[1] Peut-être qu'ils le peuvent, maintenant. Il a été proposé de modifier la norme 802.11 pour accuser réception des trames de multidiffusion: toutes les stations, après avoir reçu une trame de multidiffusion avec succès, choisiraient une interruption aléatoire et enverraient un accusé de réception à l'émetteur. Les accusés pourraient bien entendu entrer en collision, de sorte que l'émetteur la retransmettrait et autoriserait des interruptions plus importantes jusqu'à ce que tous les récepteurs aient reconnu la trame avec succès.

BatchyX
la source
1

Il est en fait possible de modifier le débit binaire en forçant le débit sur la carte sans fil. Sous Linux, la commande est:

sudo iwconfig wlan0 rate 11M

Vladimir Leiv
la source
3
iwconfigest obsolète. Tous les ioctls qu'il utilise sont soit piratés, soit complètement truqués, voire sans opération. Quoi qu'il en soit, ce que fait cette commande particulière est horrible. Et ce n'est pas ce que vous voulez: cela limite le taux disponible, cela ne le fixe en aucune façon. Et je ne suis même pas sûr que ce paramètre survivra longtemps en cas d'IBSS.
BatchyX
2
Bien que cela ait pour effet de permettre à vos émissions de dépasser 1 Mbps, ce n'est pas une bonne réponse à la question posée, qui est essentiellement: "Pourquoi la diffusion sans fil est limitée à 1 Mo?" Ce que vous avez fait, c'est de dire au sans fil de fonctionner à un seul débit de données, et il doit y avoir au moins un débit de base / de base / requis. Tandis que vous obtenez un trafic de diffusion plus élevé, vous perdez la possibilité de réduire les débits de données (pour maintenir une bonne connexion lorsque le signal est plus faible) ou d'augmenter les débits de données (et cela affecte également le trafic unicast). En substance, il s'agit d'une solution rapide qui ne convient pas au monde réel.
Apprendre