NetMetric: medição ativa de redes IP

O sistema Netmetric teve origem em 2005, a partir de um convênio firmado entre a empresa Vivo e o Departamento de Engenharia Elétrica da UFRGS. No ano de 2007, o projeto foi transferido para o Departamento de Engenharia Elétrica da PUCRS, e em 2010 foi integrado ao PRAV-UFRGS (Projetos em Áudio e Vídeo - PRAV, www.inf.ufrgs.br/prav). O Netmetric é uma ferramenta de medição ativa de redes que tenta alinhar as vantagens do monitoramento ativo com um controle racional da intrusão de tráfego que o mesmo provoca.

É utilizado para monitoramento da rede fixa e também 3G/4G da Telefônica/Vivo. A Figura 1 fornece uma visão esquemática do sistema. O gerente é o servidor de medições e os agentes Windows, Android e Linux são os terminais que se localizam na rede em que se deseja efetuar uma medição.

O MoM (Manager of Managers) é o componente web do sistema, concentrando todos os resultados de medições, recebendo-os dos agentes, armazenando-os em banco de dados e os exibindo, principalmente sob a forma de gráficos. Nesta interface web, os testes podem ser detalhadamente configurados, tornando o sistema personalizável. O usuário seleciona quais testes deseja fazer, a qual intervalo, quais sites testar, etc. As configurações disponíveis dependem do agente utilizado, sendo exportadas em um arquivo de agenda em formato XML (eXtensible Markup Language), que é então enviado aos agentes. Na tela inicial, é possível ver o status atual de todas as sondas distribuídas no país. Os agentes, por sua vez, enviam ao MoM os seus resultados. É suportado nos navegadores Chrome, Internet Explorer e Mozilla Firefox.

O sistema possui quatro grandes grupos de métricas.

As chamadas métricas principais são de Throughput (HTTP, TCP e UDP), atraso (unidirecional e bidirecional), entre outras.

O grupo chamado de métricas do dispositivo corresponde a características que são extraídas por comandos implementados pelos fabricantes das interfaces utilizadas para o ingresso na rede (modems 3G). Neste grupo, temos: Cellid (identidade da antena da Vivo ao qual o terminal se conectou); LAC (Location area code, ou identificador de região geográfica); BER (bit error rate ou porcentagem de dados corrompidos); Marca e modelo do modem utilizado; Força do sinal (Intensidade do sinal recebido pela antena); etc. Algumas métricas de dispositivo também são extraídas a partir de comandos enviados ao sistema operacional, como ocorre com a obtenção do MTU (Unidade máxima de transmissão do link utilizado).

As chamadas métricas de serviço são extraídas a partir de requisições a servidores externos que tenham algum propósito específico, como provedores de conteúdo web, resolução de nomes ou servidores de transferência de arquivos, por exemplo. Adicionalmente, a análise do link em relação a estas entidades externas é enriquecida com informações de rota e latência.

As métricas de qualidade estão em desenvolvimento, e são de Monitoração de IPTV, Monitoração de VoIP, descoberta de QoE, entre outras.

Situação

Convergência – cada vez mais serviços de comunicação e informação são disponibilizados sobre redes IP;

QoS (Quality of Service) – as operadoras de serviços de comunicação devem garantir que seu produto atenda a determinadas expectativas do usuário;

IPPM (Internet Protocol Performance Metrics) – Grupo de métricas definidas por especialistas para caracterizar uma rede IP.

A ferramenta

O NetMetric objetiva a medição ativa (injeta tráfego adicional) de redes IP, nos perfis:

Mecanismos de medição

Na medição, estão envolvidas duas entidades – o gerente, que irá programar as medições, e o agente, que é o elemento de referência na medição.



O gerente dispara uma rajada de acordo com um perfil definido para a medição. O protocolo de transporte utilizado é o UDP.



O agente receberá as rajadas, e enviará outra semelhante ao gerente, com suas próprias marcações de tempo, permitindo assim a medição do link de upstream.



O gerente receberá a rajada do agente e montará uma tabela de marcações, que será repassado aos plugins para que computem as métricas, armazenando seus resultados.

Objetivos futuros da ferramenta

O desenvolvimento futuro do NetMetric está vinculado a 4 grandes objetivos:

Definição das métricas obtidas pelo agente NetMetric Windows

O agente NetMetric é capaz de medir três grandes grupos de métricas: as chamadas métricas principais, obtidas por técnicas de medição ativa de redes, as métricas do dispositivo, extraídas por comandos implementados pelos fabricantes das interfaces utilizadas para o ingresso na rede e, por fim, métricas auxiliares, as quais refletem condições inerentes a um terminal conectado à rede independente da existência de um servidor de referência.

Métricas Principais

As métricas principais do NetMetric são medidas através da técnica do trem de pacotes, como podemos ver na Figura A.1. O trem é enviado pelo gerente NetMetric em direção ao agente (blocos em verde) Windows e respondido simetricamente por este (blocos em vermelho).

Figura A.1: Método de extração das métricas principais do agente NetMetric Windows.

Cada pacote possui uma identificação sequencial de 1 a n, em ordem de envio, onde n é a quantidade total de pacotes em um trem, sendo ainda associado a quatro marcações temporais, correspondente aos tempos de partida e chegada aos dois terminais da medição (os tempos de T1 a T4, conforme a Figura A.1). O gerente NetMetric então monta uma tabela com estes dados e dela deriva todas as métricas, disponibilizando-as para a exibição no agente através do protocolo Simple Network Management Protocol (SNMP). Para o agente Windows, seis métricas são obtidas com este método, a saber:

A métrica de throughput HTTP difere das anteriores, pois não utiliza o gerente para envio de pacotes e medições de tempo, mas sim requests HTTP. Para o teste de download, o agente solicita um arquivo ao servidor especificado; para o teste de upload, o agente envia um arquivo, que é recebido por um script PHP alocado no servidor. Em ambos os testes, são medidos o número de bytes transferidos e o tempo decorrido.

Métricas do Dispositivo

Os dispositivos 3G homologados implementam em seus firmwares comandos normatizados pelo 3rd Generation Partnership Project (3GPP) para a obtenção de métricas relacionadas à identificação do dispositivo e das condições de conexão a que ele está sujeito. Tais comandos podem ser invocados a partir de um terminal ou ferramenta que acesse o dispositivo via comunicação serial. As implementações são de responsabilidade dos fabricantes, de tal maneira que à interface NetMetric só compete extraí-las, de acordo com a Figura A.2.

Figura A.2: Método de extração das métricas do dispositivo.

Esta extração se dá através de uma porta serial auxiliar fornecida pelo dispositivo ao sistema operacional (a porta principal é usada para a conexão Point-to-Point Protocol – PPP – com a Internet). Esta porta auxiliar normalmente é controlada pelos softwares discadores fornecidos pelos fabricantes. O NetMetric utiliza privilégios administrativos para deter este controle, acessar a respectiva porta e obter as seguintes métricas:

Métricas Auxiliares

O agente NetMetric Windows passa a incorporar a partir da versão 2.0 informações extraídas de maneira independente do trem de pacotes NetMetric, tornando possível a obtenção de MTU, atraso DNS e Rota, detalhados abaixo. Tais métricas estabelecem relações com outros servidores além do gerente NetMetric (como na métrica de atraso de DNS), e também permitem a detecção de configurações do link e da interface local de rede (respectivamente, rota e MTU) que possam estar impactando nos indicadores puros já extraídos pela ferramenta (throughput, perda, atraso, etc.). A interface NetMetric implementa estas funcionalidades diretamente a partir do seu código, acessando funções de acesso ao sistema operacional, conforme a Figura A.3.

Figura A.3: Método de obtenção das métricas auxiliares.

As três métricas obtidas por este método são: