Eu tenho uma configuração onde envio pacote de transmissão UDP para um aplicativo de vídeo.
Eu corro um VPS no meu servidor e envio pacotes UDP para um computador Jetson. Os dois estão na 10.0.2.x
rede. Ambos usam meu segundo NIC de servidor. Nessa NIC também tenho um roteador WiFi, mas esse está na rede 192.168.2.x
.
Por que o envio de pacotes UDP de broadcast diminuiria a velocidade do WiFi quando eu uso apenas 1/5 da largura de banda disponível e o WiFi usa cerca de 1/3? (e o resto é usado por outro computador).
Aqui está uma representação básica da rede:
+--------------+
| Server |
| +-------+ |
| | NIC 1 | | +---------+ +----------+
Internet <----->| | | | Switch | | Jetson |
| +-------+ | | 1Gbit |<--->| |
| ^ | | | +----------+
| | | | |
| v | | |
| +-------+ | | | +----------+ +-----------------+
| | NIC 2 | | | | | WiFi | | WiFi Computer |
| | |<------>| |<--->| |\/\/\/| |
| +-------+ | | | +----------+ ^ +-----------------+
| ^ | | | |
| | | | | \______ slow WiFi connection
| v | | | +----------+
| +--------+ | | | | Other |
| | VPS | | | |<--->| Computer |
| | | | +---------+ +----------+
| +--------+ | ^_______ speed not affected
| |
+--------------+
Portanto, os computadores conectados ao Switch usando um cabo de rede funcionam bem. Aqueles conectados pelo WiFi são impedidos, como se o roteador WiFi estivesse tentando encaminhar os pacotes para 10.0.2.x
quando o próprio roteador for um 192.168.2.x
endereço.
Apenas no caso, para quem ainda não entendeu a rede, não estou tentando transmitir por WiFi. Eu realmente gostaria que o roteador WiFi fosse totalmente ignorado nesse caso. Eu sei que transmitir através de WiFi é um grande "não! não!".
Apenas no caso, aqui está o menu do roteador. É um Belkin.
Em casos como esse, é útil pensar em Wi-Fi como Ethernet sem fio. Parece que o seu "roteador" Belkin Wi-Fi não está roteando entre com e sem fio, é apenas uma ponte. Então, está apenas agindo como um AP simples.
Ethernet (com ou sem fio) não sabe nada sobre IP. Então seu AP está sendo apenas uma ponte Ethernet. Ou seja, está seguindo as regras 802.1D para pontes e switches, e apenas prestando atenção aos endereços da camada Ethernet (MAC) e usando os endereços Ethernet de destino para decidir o que fazer a ponte para o wireless e o que descartar.
Suponho que você esteja enviando suas transmissões UDP para o endereço IP de transmissão de sub-rede de 10.0.2.255. Portanto, de acordo com os padrões, esses pacotes IP estarão dentro de quadros Ethernet endereçados ao endereço MAC multicast Ethernet 01:00:5e:00:02:ff (mesmo que eu tenha errado a conversão, ainda é um endereço MAC multicast Ethernet).
Assim, seu AP vê um endereço MAC de destino de multicast e, seguindo as regras 802.1D padrão para pontes e switches, ele automaticamente o conecta ao Wi-Fi e o envia como um multicast Wi-Fi.
Infelizmente, multicasts e transmissões são MUITO caros em Wi-Fi, em termos de uso de tempo de antena.
Os multicasts Wi-Fi devem ser enviados em uma espécie de taxa de sinalização de "menor denominador comum" para garantir que todos os clientes sem fio possam recebê-los com sucesso. Isso geralmente é apenas a taxa de sinalização mais baixa possível para essa banda. Então, isso é 1 Mbps para 2,4 GHz e 6 Mbps para 5 GHz.
Assim, por exemplo, uma transmissão de 1 Mbps ou fluxo de vídeo multicast tentará usar TODO o tempo de transmissão no canal de 2,4 GHz e 1/6 do tempo de transmissão no canal de 5 GHz. E isso é UDP, não TCP, então não há algoritmo de controle de congestionamento, então ele não compartilhará bem a largura de banda com os outros.
Uma solução pode ser habilitar o IGMP Snooping em seu AP, se ele for compatível. Não tenho certeza de cabeça, mas você também pode precisar mudar para multicasts UDP em vez de transmissões para que o IGMP se envolva para que o IGMP Snooping possa funcionar.
Outra solução pode ser usar VLANs para realmente separar suas duas sub-redes IP em duas redes de camada Ethernet separadas.
Mais uma solução seria habilitar o roteamento (encaminhamento de IP) ou NAT em seu dispositivo Belkin Wi-Fi, portanto, separe sua LAN sem fio da sua LAN com fio. Você precisaria fazer isso com cuidado ou poderia quebrar alguns tipos de conectividade / descoberta entre a LAN sem fio e a LAN com fio.