Experimento: avaliação de desempenho de rede IEEE 802.11
Nesta atividade, iremos realizar uma medição de desempenho de comunicações em uma rede sem-fio, e relatá-la aqui nesta wiki. Para isso, vamos usar uma rede sem-fio para realizar o experimento, que pode ser uma rede sem-fio residencial. O desempenho será caracterizado com base em dois tipos de medição:
- Vazão (throughput): a vazão é a maior taxa de bits sustentável que se pode obter. Essa taxa pode ser estimada realizando-se uma transmissão de dados durante um certo intervalo de tempo, e ao final calculando-se quantos bytes (ou Mbytes) foram transmitidos durante o intervalo
- Latência: no contexto da rede wifi, latência é o atraso (ou demora) para receber uma resposta a uma requisição (ex: ping). Então esse tipo de medição pode ser feito executando-se o programa ping, e observando quanto tempo cada mensagem demora para ser respondida.
Procedimento para medição de vazão
Duas formas de medição de vazão (pelo menos) podem ser feitas. A primeira utiliza o programa iperf e necessita de dois dispositivos, tais como um computador ou laptop e um celular, ou dois computadores ou laptops. A segunda explora um serviço de medição de velocidade do link para Internet, e precisa somente de um celular ou laptop na rede sem-fio.
Usando o programa iperf3
O programa iperf3 fornece boas medições de vazão, porém ele depende de haver dois dispositivos (ex: um laptop e um computador, ou um celular e um computador). Um desses dispositivos deve estar na mesma rede cabeada em que está o AP ou roteador sem-fio, e o outro deve se comunicar pela rede sem-fio (ver figura a seguir). No caso do computador, o programa iperf3 pode ser facilmente instalado no Linux com o comando sudo apt install iperf3. No celular com sistema Android, existe o app Magic IPerf.
Os equipamentos do experimento
Para realizar este tipo de medição, execute o iperf3 em modo servidor no computador da rede cabeada. Ele deve ser executado desta forma em um terminal:
iperf3 -s -D
Se estiver usando um laptop na rede sem-fio, abra um terminal e execute o iperf3 em modo cliente, indicando que deve se conectar no IP do computador da rede cabeada:
iperf3 -c IP_computador -i 5 -t 60
O comando acima executa uma medição de 60 segundos, e apresenta resultados a cada 5 segundos. Ao final, um sumário da vazão obtida durante toda a medição é apresentado.
Se for usar o app Magic Iperf no Android, instale-o em seu celular e então execute-o. Informe a versão do iperf (iperf3) e as opções de execução, como exemplificado na figura a seguir (ali 192.168.0.53 é o IP do computador que roda o iperf3 em modo servidor):
Em seguida, toque no botão Stopped. Ele aparecerá como Started, e então a medição começará a ser realizada. O resultado aparecerá na tela do celular:
Usando um medidor de velocidade Internet
Você pode também usar um dos serviços de medição de velocidade da Internet existentes. Nesse caso, você pode usar um celular ou laptop para acessar a rede sem-fio, e neles acessar a página do serviço de medição de velocidade. Porém isso pode afetar o resultado, se sua rede sem-fio for mais veloz que o acesso a Internet (ou se o serviço de medição de velocidade for mais lento que sua rede sem-fio).
Procedimento para medição de latência
A medição de latência pode ser feita facilmente com ping. Você pode executar o ping em um laptop ou celular, pedindo que envie mensagens para algum outro computador ou equipamento existente na mesma rede cabeada onde está o AP ou roteador sem-fio. Por exemplo, pode-se fazer o ping para o próprio AP ou roteador.
O recomendável é que deixe o ping rodando por um minuto ou mais, para observar a variabilidade da latência. Por exemplo, se for usar um laptop para executar o ping, o resultado poderia ser este (aqui fiz a medição por 10 segundos, para simplificar):
sobral@casa:~/Downloads$ ping -w 10 192.168.0.52
PING 192.168.0.52 (192.168.0.52) 56(84) bytes of data.
64 bytes from 192.168.0.52: icmp_seq=1 ttl=64 time=1.29 ms
64 bytes from 192.168.0.52: icmp_seq=2 ttl=64 time=2.18 ms
64 bytes from 192.168.0.52: icmp_seq=3 ttl=64 time=2.24 ms
64 bytes from 192.168.0.52: icmp_seq=4 ttl=64 time=1.24 ms
64 bytes from 192.168.0.52: icmp_seq=5 ttl=64 time=1.52 ms
64 bytes from 192.168.0.52: icmp_seq=6 ttl=64 time=1.40 ms
64 bytes from 192.168.0.52: icmp_seq=7 ttl=64 time=2.45 ms
64 bytes from 192.168.0.52: icmp_seq=8 ttl=64 time=1.81 ms
64 bytes from 192.168.0.52: icmp_seq=9 ttl=64 time=2.07 ms
64 bytes from 192.168.0.52: icmp_seq=10 ttl=64 time=2.74 ms
--- 192.168.0.52 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9010ms
rtt min/avg/max/mdev = 1.244/1.898/2.747/0.496 ms
Observem que, ao final da execução do ping, um sumário é apresentado nas duas últimas linhas. Ali tem várias informações, tais como quantidade de pacotes perdidos, e tempos mínimo, médio e máximo para cada envio e resposta recebida pelo ping.