Resumo do texto de Nilmax Teones Moura sobre VoIP (Voice Over Internet Protocol)
Clayton Reis da Silva (creis@ic.uff.br)
1) Breve História
A fala, ao ser transmitida, na metade inicial do século XX, era convertida pra sinais analógicos. Porém, era bastante comum o problema com ruídos, além de ter problemas também com economia.
Então a partir da década de 50, começaram a surgir tecnologias para que a fala pudesse ser transmitida por meio de sinais digitais, o que acabaria com esses problemas.
Por volta de 1970 que a idéia de VoIP começou a ser discutida, porém as chamas VoIP iniciais eram de baixa qualidade. Assim, o sistema convencional PSTN (Public Switched Telephone Network), mais confiável, era mais usada.
Porém, com a popularização massiva da Internet a partir dos anos 90, e com o investimento na infra-estrutura da rede IP, o VoIP tornou-se uma estrutura viável para a transmissão de voz, principalmente por causa do baixo custo das ligações, principalmente de longas distâncias.
2) Qualidade de Voz
As redes IP não oferecem QoS (Quality Over Service) em suas aplicações, o que é um empecilho para aplicações multimídia, que precisam de uma alta confiabilidade, pois em uma rede IP não é possível garantir um atraso constante/pré-definido, o que torna uma aplicação em tempo real (como telefonia) um serviço de baixa qualidade.
Vários fatores determinam qualidade de voz:
3) Protocolos de Transporte
Como, já citado anteriormente, o VoIP usa UDP, que não é confiável.
O UDP é utilizado juntamente com o RTP (Real-time Transport Protocol), que juntos provêem uma função de transporte fim-a-fim para aplicações em tempo real (como aplicações multimídia).
4) Cenários de VoIP segundo David Clark (MIT)
(a) Internet como acesso à rede telefônica: ligação de telefone para telefone, passando pela Internet através de gateways.
(b) Interoperação entre Internet e rede telefônica: ligação de computador para telefone (ou vice-versa), onde a chamada é roteada pelo provedor de telefonia IP mais próximo ao destino.
(c) Substituição da rede telefônica pela Internet: ligação de PC para PC; nesse caso, todo tratamento de voz é realizado nos PC através de softphone.
5) Componentes do VoIP
As tecnologias do processo de telefonia IP são dividas em quatro categorias: sinalização, codificação, transporte e controle de gateway.
Quando a conversação começa, os seguintes passos são efetuados: codificação do sinal analógico produzido pela voz humana para sinal digital, a fim de ser transmitido; a rede assegura que a transmissão está numa qualidade aceitável; realização da conversão através de gateway para outro formato, para possibilitar a interoperação entre a rede IP e a rede PSTN (de telefonia convencional), que é a coleção de equipamentos responsáveis por prover o serviço de telefonia convencional de redes públicas.
O Signaling System 7 (SS7) é o conjunto usado para estabelecer, finalizar e manter a chamada no ambiente PSTN.
6) Internet Telephony Gateway
O Internet Telephony Gateway (ITG) tem como função prover conectividade entre usuários de telefonia IP e PSTN. Ele é que implementa a interoperabilidade da telefonia IP com as redes telefônicas existentes. Para que um IP host estabeleça a chamada com um usuário da rede PSTN, esse host deve conhecer o IP do gateway apropriado.
O ITG comumente opera em nível de aplicação (apesar de poder trabalhar na camada de rede), o que implica que ele age como sistemas finais em ambos os lados (tanto IP como PSTN).
7) Firewall, NAT, seus problemas e possíveis soluções
O objetivo do firewall é proteger a rede de ser acessada por fontes não autorizadas. Isto é feito através do bloqueio de tráfego baseado em três parâmetros: a fonte, o destino, e o tipo de tráfego. Ele também toma decisões baseados na direção do fluxo de tráfego. Tráfegos de chegada (de domínios públicos não conhecidos) são somente permitidos se aquela sessão foi iniciada por um dispositivo do domínio privado.
Como é possível que exista a situação onde existe apenas uma conexão DSL com um único endereço IP compartilhado por múltiplos computadores, o NAT (Network Address Translation), que vem sendo amplamente utilizado por provedores de serviços (que não podem possuir endereços suficientes), resolve este problema através do mapeamento interno dos endereços para um endereço público. As mensagens fim-afim do SIP entre clientes contêm detalhes sobre endereço e porta privada do cliente, que serão utilizados pelos fluxos de mídia. Quando os clientes tentarem usar o endereço privado para enviar ou receber mídia, a conexão falhará e eles não serão roteados. Qualquer abordagem para solucionar este problema deve permitir uma comunicação segura nos dois caminhos – incluindo as chamadas entrantes não solicitadas – e minimizar dependências na atualização do NAT. Porém, há mecanismos para tentar resolver o problema do NAT:
· UPnP (Universal Plug and Play) – permite que aplicações cliente descubram e configurem os componentes da rede , incluindo NAT e Firewalls, que estão equipados com o software UPnP. Nesta arquitetura um cliente pode perguntar para o NAT como ele mapeou um endereço particular IP:porta através do protocolo chamado UPnP. O cliente consulta o NAT via UPnP perguntando qual mapeamento deveria ser usado se ele quisesse receber na porta x. O NAT responde com o par IP:porta que alguém na Internet pública deveria usar para alcançar o cliente naquela porta. A principal desvantagem desta abordagem está relacionada com a segurança, ela não resolve este problema de forma satisfatória. Além disso, atualmente existem um pequeno número de fabricantes de NAT e Firewall comprometidos em suportar o UPnP.
· STUN (Simple Traversal of UDP Through NATs) – ele habilita um cliente SIP para descobrir se este está atrás de um NAT e para determinar o tipo de NAT. O STUN identifica o lado público do NAT, detalhado por uma inspeção exploratória das mensagens STUN que chegam no servidor STUN. O cliente STUN-enabled envia uma mensagem exploratória para o servidor STUN externo para determinar a porta de recepção que será usada. O servidor STUN examina a mensagem que chegou e informa ao cliente qual é o endereço público IP:porta que foi usado pelo NAT, onde esta resposta será usada na mensagem de estabelecimento da chamada. O maior problema é que ele falha na questão segurança, além de não trabalhar com o NAT mais comum, o NAT simétrico.
· ALG (Application Layer Gateway) – é um Firewall/NAT modificado. Ele processa a sinalização e o stream de mídia, a fim de poder modificar a sinalização para poder refletir o endereço IP público e a porta que será usada. O problema é que ele requer habilidade para configuração e gerenciamento, o que significa que atualizações/novas instalações não serão feitas de forma rápida.
· Manual Configuration – Neste método, o cliente é manualmente configurado com detalhes do endereço público e porta, que o NAT vai usar para sinalização e mídia. O NAT é também manualmente configurado com o mapeamento estático para cada cliente. Ele requer que o cliente deve ter fixado o par IP:porta para a recepção da sinalização e da mídia. O problema é que ele é pouco adaptável para ambientes de redes amplos.