Por que minha comunicação sem fio UDP Broadcast está limitada a 1 MB?

10

Estou tentando implementar a codificação de rede em uma rede em malha. Portanto, preciso enviar pacotes para vários destinos. É dessa maneira que estou usando pacotes de transmissão. Mas não consigo entender por que isso está limitado a ~ 990 KB.

Existe alguma configuração para fazer?

Vladimir Leiv
fonte
Talvez mencione como você está gerando os pacotes e qual sistema operacional é. A pergunta pode estar mais em casa no stackoverflow
ytti
4
@ytti, para mim isso não soa como uma pergunta de desenvolvedor, mas, na minha opinião, é claramente uma questão de fundamentos do 802.11. Mas, ei, eu posso estar errado (e, como minha esposa ressalta, geralmente estou).
YLearn
Por favor, adicione: configurações relevantes, informações sobre HW / firmware e talvez um diagrama?
Mike Pennington

Respostas:

11

Na rede sem fio 802.11 (que eu assumo é o seu caso), normalmente os quadros de difusão / difusão seletiva (assim como muitos quadros de gerenciamento) são transmitidos na menor taxa de dados básica / básica / necessária (o prazo varia de acordo com o fornecedor). Isso é separado das taxas de dados suportadas.

Normalmente, para obter o melhor alcance e compatibilidade máxima, o padrão é a taxa de dados de 1 Mbps, embora nos últimos anos alguns fornecedores tenham aumentado esse padrão.

Agora, alguns fornecedores também incluem uma conversão multicast para unicast acompanhando clientes multicast com alguma forma de espionagem multicast, no entanto, não conheço meios semelhantes para transmissão (um dispositivo sem fio não pode conhecer todos os clientes por aí que possam precisar alcançar).

Se você está falando sobre uma rede mesh ad-hoc, geralmente não tem controle sobre isso nas configurações do driver.

YLearn
fonte
7

A taxa de difusão seletiva deve ser o menor denominador comum para que todos os dispositivos possam recebê-la com sucesso. Os quadros de difusão seletiva não podem ser reconhecidos [1]; portanto, se um par falhar em recebê-lo, o remetente não saberá e não retransmitirá o quadro. Ter taxas de perda de mais de 1% por receptor é comum. Podem ser esperadas taxas de perda muito maiores se houver tráfego unicast pesado no mesmo canal.

Se você aumentar a taxa multicast básica, também aumentará a taxa de perda. Mas como você deve combinar pacotes nativos e introduzir redundância para compensar a taxa de perda total, sua rede deve sobreviver a isso. Lembre-se de que os quadros de gerenciamento 802.11 multicast (incluindo beacons) não foram projetados para suportar altas taxas de perda.

No Linux, a maioria dos drivers mac802.11 deve oferecer suporte à configuração da taxa de difusão seletiva. Os kernels não tão recentes exigem que isso seja feito no momento da junção para o IBSS e a malha. iwtem uma mcast-rateopção para o ibss joine mesh joincomando.

Mas se você estiver executando um kernel bastante recente e iwque ambos suportam NL80211_CMD_SET_MCAST_RATE, pode alterá-lo a qualquer momento, e é tão simples quanto

iw dev wlanX set mcast_rate 6

para definir uma taxa de multicast de 6 Mbps.

[1] Talvez eles possam, agora. Houve uma modificação proposta no padrão 802.11 para reconhecer quadros de difusão seletiva: Todas as estações, depois de receberem um quadro de difusão seletiva com sucesso, selecionariam um retorno aleatório e enviariam uma confirmação ao transmissor. Os recursos podem colidir, é claro, de modo que o transmissor o retransmitiria e permitiria retiros maiores até que todos os receptores reconhecessem o quadro com sucesso.

BatchyX
fonte
1

Na verdade, é possível modificar a taxa de bits forçando a taxa na placa sem fio. No Linux, o comando é:

sudo iwconfig wlan0 taxa 11M

Vladimir Leiv
fonte
3
iwconfigé obsoleto. Todos os ioctls que ele usa são hackeados ou completamente falsificados, ou mesmo sem operações. De qualquer forma, o que esse comando em particular faz é horrível. E não é o que você deseja: isso limita a taxa disponível, não a fixa de forma alguma. E nem tenho certeza de que essa configuração sobreviverá por muito tempo no caso de IBSS.
BatchyX
2
Embora isso ofereça o efeito de permitir que suas transmissões excedam 1 Mbps, não é uma resposta correta para a pergunta, que é essencialmente: "Por que a transmissão sem fio está limitada a 1 MB?" O que você fez foi dizer ao dispositivo sem fio para rodar em apenas uma taxa de dados e deve haver pelo menos uma taxa de dados básica / básica / necessária. Enquanto você obtém maior tráfego de transmissão, perde a capacidade de diminuir as taxas de dados (para manter uma boa conexão quando o sinal é mais fraco) ou de aumentar as taxas de dados (e isso também afeta o tráfego unicast). Em essência, essa é uma solução rápida que não é adequada ao mundo real.
YLearn