NewsGeneration: um serviço oferecido pela RNP desde 1997


ISSN 1518-5974
Boletim bimestral sobre tecnologia de redes
produzido e publicado pela  RNP – Rede Nacional de Ensino e Pesquisa
12 de maio de 2000 | volume 4, número 3

volta à página inicial de NewsGeneration

Nesta edição:

NewsGeneration:



Qualidade de Serviço em VoIP - Parte I

Adailton J. S. Silva <>

Rede Nacional de Ensino e Pesquisa (RNP)

Introdução
QOS – Modelo básico
Classe de serviços – Precedência IP
Controle e inibição de congestionamento
Considerações preliminares
Referências bibliográficas
Sites relacionados

Desde sua origem, o protocolo IP foi desenvolvido e implementado como um protocolo de comunicação com controle de tráfego utilizando a regra do melhor esforço (Best-effort Service ou Lack of QoS), que não provê nenhum mecanismo de qualidade de serviços e, conseqüentemente, nenhuma garantia de alocação de recursos da rede. Na época, niguém imaginava que a Internet se tornaria a grande rede mundial que é atualmente. E, desse rápido crescimento da Internet, a tendência atual é a integração de voz (telefonia) e dados numa única infra-estrutura de redes de pacotes, a rede IP. Essa emergente e crecente demanda pelos serviços IP Telephony, como chamado pelo mercado, provocou uma corrida frenética dos fabricantes de equipamentos de redes para desenvolver protocolos que garantissem qualidade de serviços fim-a-fim. É sobre essa parafernália de protocolos, técnicas e mecanismos que falaremos a seguir.

^

Introdução

Para adicionar recursos de qualidade de serviços à pilha TCP/IP, dois modelos de classes de serviços para tráfego Internet estão sendo considerados e desenvolvidos pela IETF (Internet Engineering Task Force): o primeiro refere-se aos serviços diferenciados, denominado Differentiated Services [ DIFFSERV ] ou ainda de Soft QoS, que provê uma tratamento diferenciado, com preferência estatística, a determinados tipos de fluxo; e o segundo refere-se aos serviços integrados ou Integrated Services [ INTSERV ], também chamado de Hard QoS, que fornece uma garantia absoluta na alocação dos recursos da rede.

Artigos como Qualidade de Serviço na Internet , e outros desta edição do NewsGeneration, inclusive, apresentam estes dois modelos com mais detalhes. Portanto, não é o objetivo principal deste trabalho se aprofundar nos mesmos. Aqui, serão abordados mecanismos de controle e inibição de congestionamento, técnicas de controle de tráfego com classificação e priorização de fluxo. Além disso, são apresentadas algumas comparações entre as técnicas abordadas, mas tudo sem se prender às denominações e classificações dos dois modelos definidos pela IETF.

Neste artigo, trata-se, especificamente, de mecanismos de garantia de qualidade de serviços fim-a-fim para voz sobre IP (VoIP) ou IP Telephony, mas que também podem servir para outros tipos de tráfego, como vídeo.

Todos os protocolos aqui apresentados já podem ser utilizados em projetos reais, estando todos disponíveis nos principais equipamentos Cisco, plataforma básica para os exemplos utilizados nos próximos artigos. Mas alguns protocolos também estão presentes em plataformas de outros fabricantes como Nortel, Lucent, Motorola e 3Com.

O tema VoIP é muito vasto. Há diversos protocolos e funcionalidades envolvidas, como a arquitetura de interoperabilidade do protocolo H.323, por exemplo. Como o artigo não pode ser muito extenso, os protocolos e funcionalidades VoIP não são aqui abordados. Mas não se preocupem, pois, mais a frente, será apresentado um artigo apenas sobre voz sobre IP, com os detalhes que o assunto requer. Será apresentado também um breve estudo de um caso real de VoIP (IP Telephony) com considerações de projeto, utilizando roteadores e gateways VoIP da Cisco.

^

QOS – Modelo básico

Como mostra o modelo da figura 1 a seguir, o principal objetivo da QoS é priorizar o tráfego interativo sensível a retardo, em detrimento ao tráfego referente à transferência de arquivos, que não é sensível a retardo.

Figura 1 - Modelo para QoS

A qualidade de serviço deve ser fim-a-fim, ou seja, considerando o modelo acima, o tráfego tem que ser tratado inicialmente na rede local (LAN) de origem, depois no próprio roteador (controle de descarte de pacotes, por exemplo), posteriormente nas conexões de longa distância (WAN) e roteadores intermediários, no roteador destino, e finalmente na rede local destino. Utilizaremos este modelo básico como referência nos itens a seguir.

^

Classe de serviços – Precedência IP

Para se obter as classes de serviços (Class of Service - CoS) no atual protocolo da Internet (IPv4), foram utilizados 3 bits do campo ToS (Type of Service) do cabeçalho IP, como ilustra a figura 2 abaixo. Este campo foi inicialmente definido e estava reservado para indicar os tipos de serviços; mas, de fato, nunca havia sido utilizado em nenhuma implementação. Com a classificação de pacotes, obtém-se, então, as funcionalidades para precedência IP ou IP Precedence.

Figura 2 - Precedência IP no Campo ToS

Com os 3 bits para o campo Precedência IP têm-se as seguintes configruações e funções:

Quanto maior o nível de classificação do pacote, maior será a prioridade no tratamento e alocação de recursos da rede. Os níveis 6 e 7 são reservados para as aplicações de controle e gerência da rede, ou seja, não é possível habilitar um pacote com 6 ou 7 e nem modificar um pacote já marcado. Todos os pacotes são normalmente marcados com o nível zero.

Nos roteadores Cisco, o campo precedência IP pode ser modificado através de listas de acesso (access lists) ou mapas de rotas (route maps). Nos gateways VoIP, podem ser habilitados em cada interface lógica dial peer voip.

^

Controle e inibição de congestionamento

Há vários mecanismos de enfileiramento para controle e prevenção de congestionamento em interfaces de roteadores (Ethernet, seriais, Frame Relay, etc.) e switches nível 3, aplicáveis tanto em redes WAN como em LAN. As principais são apresentadas a seguir.

FIFO - FIRST IN FIRST OUT

Em geral, o controle de tráfego nas conexões seriais dos roteadores é implementado através de filas FIFO (o primeiro a entrar é o primeiro a sair). Uma fila FIFO é um mecanismo de armazenamento e repasse (store and forward) que não implementa nenhum tipo de classificação.

Figura 3 - Operação da Fila FIFO

A ordem de chegada dos pacotes é que determina a alocação da banda, e o que chega primeiro é logo atendido. É o tratamento default da fila nos roteadores, já que não requer nenhuma configuração. O problema ocorre em tráfego de rajada, que pode causar longos atrasos em aplicações sensíveis ao tempo. Por isso, filas FIFO não servem para aplicações que requerem QoS.

ENFILEIRAMENTO FAIR QUEUEING

No algoritmo de Enfileiramento Fair Queueing (enfileiramento justo), as mensagens são ordenadas em sessões, e, para cada sesssão, é alocado um canal (figura 4). A ordem na fila é realizada através do último bit que atravessa o canal. Essa operação provê uma alocação mais justa da banda entre os fluxos de dados.

Figura 4 - Filas Fair Queueing

O algoritmo WFQ - Weighted Fair Queueing é uma implementação Cisco na qual é possível ponderar determinados tipos de fluxo. O algoritmo escalona o tráfego prioritário (interativo) para a frente da fila, reduzindo o tempo de resposta. Ao mesmo tempo, compartilha o restante da banda com os outros tipos de fluxo de uma forma justa. O WFQ é dinâmico e se adapta automaticamente às mudanças das condições de tráfego, sendo bastante útil em conexões seriais de baixa velocidade até 2 Mbps.

Figura 5 - Operação do Algoritmo WFQ

Por apresentar um desempenho superior à fila FIFO, a fila WFQ já vem pré-configurada nas interfaces seriais dos roteadores Cisco.

Figura 6 - Filas WFQ

Como pode ser verificado na figura 6 acima, a classificação dos fluxos de dados pode ser realizada de diversas formas: por endereço fonte ou destino, por protocolo, pelo campo predência IP, pelo par porta/socket, etc. A quantidade de filas é configurável e a ponderação pode ser estabelecida por precedência IP, ou em conjunto com outros protocolos de QoS como o RSVP, ou ainda em tráfego Frame Relay, como VoFR (Voice over Frame Relay) por exemplo, através dos parâmetros FECN (Forward Explicit Congestion Notification), BECN (Backward Explicit Congestion Notification) e DE (Discard Eligible).

ENFILEIRAMENTO PRIORITY QUEUEING

Numa fila com Enfileiramento Priority Queueing - PQ (enfileiramento prioritário), o tráfego de entrada é classificado em quatro níveis de prioridade: alta, média, normal e baixa (high, medium, normal e low). Os pacotes não classificados são marcados, por default, como normal.

Figura 7 - Operação do Enfileiramento Priority Queueuing

Durante a transmissão, o tráfego classificado e marcado como prioritário tem preferência absoluta. Por isso, este método deve ser utilizado com cuidado, para evitar longos atrasos e aumento de jitter nas aplicações de menor prioridade. Num caso extremo, o tráfego de menor prioridade pode até nunca ser transmitido, se o de maior prioridade tomar toda a banda. Isso pode acontecer em conexões de baixa velocidade. Além disso, a fila default sempre tem que ser habilitada. Caso contrário, todo fluxo não classificado (sem uma correspondente lista de prioridade) também poderá não ser enviado.

Figura 8 - Filas Priority Queueing

Há várias opções de classificação de tráfego numa fila PQ. A classificação pode ser por protocolo (IP, IPX, DecNet, SNA, etc), por interface de entrada ou por lista de acesso. Este foi o método que apresentou a melhor qualidade di sinal de voz no estudo de caso que será apresentado no artigo sobre voz sobre IP.

ENFILEIRAMENTO CUSTOM QUEUEING

O algoritmo da fila CQ (Custom Queueing) permite especificar uma percentagem da banda para uma determinada aplicação (alocação absoluta da banda). A banda reservada é compartilhada proporcionalmente, no percentual pré-definido, entre as aplicações e os usuários. O restante da banda é compartilhado entre os outros tipos de tráfego.

Figura 9 - Operação do Enfileiramento Custom Queueing

O algoritmo CQ controla o tráfego alocando uma determinada parte da fila para cada fluxo classificado. As filas são ordenadas ciclicamente num esquema round-robin, onde, para cada fila, é enviado a quantidade de pacotes referente à parte da banda alocada antes de passar para a fila seguinte. Associado a cada fila, há um contador configurável que estabelece quantos bytes devem ser enviados antes da passar para a próxima fila.

Figura 10 - Filas Custom Queueing

Até 17 filas podem ser definidas, mas a fila zero é reservada para mensagens do sistemas como sinalização, keep-alive, etc. A classificação CQ pode ser feita por endereço fonte ou destino, por protocolo (IP, IPX, Appletalk, SNA, DecNet, etc), por precedência IP, por interface de entrada e ainda por listas de acesso.

Tabela 1 - Métodos de Enfileiramento

A tabela 1 acima apresenta um resumo dos três métodos de enfileiramento e a figura 11, a seguir, apresenta algumas considerações sobre a escolha de qual método utilizar. De fato, estas são as diretrizes básicas nas considerações iniciais de um projeto VoIP, mas, como todo projeto tem suas próprias pecualiaridades, na prática o que prevalecerá será o método e a configuração dos respectivos parâmetros que se enquandrem nas condições do projeto (disponibilidade de banda nas conexões WAN, topologia do backbone, roteamento estático ou dinâmico, etc.) e que produza uma boa qualidade subjetiva do sinal de voz.

Figura 11 - Esquema para Seleção de Método de Enfileiramento

A DETECÇÃO RED

A detecção RED - Random Early Detection (detecção randômica antecipada ) é um mecanismo para prevenção e inibição de congestionamento ou congestion avoidance. O algoritmo monitora o tráfego antecipadamente utilizando as funções de controle de congestionamento TCP, descartando pacotes aleatoriamente e indicando para a fonte reduzir a taxa de de transmissão, evitando assim situações de congestionamento antes que ocorra picos de tráfego. Quando habilitado numa interface, o RED começa a descartar pacotes a uma taxa que pode ser previamente configurada.

WRED, ou Weighted RED, é uma implementação da Cisco que combina as funcionalidades do RED com a classificação de pacotes por precedência IP. Baseado nessa classificação, o WRED descarta pacotes seletivamente, descartando inicialmente os pacotes de menor prioridade, com diferentes pesos para cada classe.

Figura 12 - O Funcionamento do WRED

É possível desabilitar a classificação precedência IP e habilitar o descarte com base apenas no tamanho do buffer da fila; ou ainda utilizar o WRED em conjunto com o RSVP para se obter um descarte mais seletivo. Nesse caso, antes que ocorra uma situação de congestionamento, os fluxos de menor prioridade nas sessões RSVP serão descartados antes dos outros de maior prioridade.

WRED é útil em qualquer interface na qual a possibilidade de congestionamento seja eminente. Entretanto, é geralmente utilizado em roteadores centrais de backbone (core routers), com a precedência IP habilitada pelos roteadores de acesso (edge routers).

^

Considerações preliminares

Pode até parecer estranho o título dessa sessão, mas é isso mesmo. Inicialmnte, imaginava-se que, considerando as limitações de tamanho para o artigo, seria possível abordar todos os protocolos e algoritmos planejados mas, infelizmente, não foi possível. Ainda falta assunto. Por isso optou-se por dividir o artigo em duas partes e o próximo artigo (Qualidade de Serviços em VoIP - Parte 2) terá que ser aguardado. Para manter a seqüência lógica, este artigo será apresentado antes do artigo sobre VoIP já prometido no ínício.

No próximo artigo, serão abordados mecanismos para melhorar a eficiência de conexões (link efficiency) como o CRTP (Compressed Real-time Transmission Protocol), LFI (Link Fragmentation and Interleaving, com o Multilink PPP) e FRF (Frame Relay Fragmentation), para moldagem e policiamento de tráfego com GTS (Generic Traffic Shaping), CAR (Commited Access Rate) e FRTS (Frame Relay Traffic Shaping), e qualidade de serviço em LANs com o protocolo IEEE 802.1p (Priotrity Queueing). Aguardem e confiram!

^

Referências bibliográficas

[1] Adailton Silva, Tecnologias de Alta Velocidade, VoIP e Internet2 - IComNet Tecnologia da Informação - Março/2000.

[2] Cisco Quality of Service (QoS) Networking http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/qos.htm

[3] Cisco Systems, Quality of Service for Voice over IP Solution Guide, V1.0, Cisco Systems, 1998.

[4] An Architecture for Differentiated Services http://www.ietf.org/rfc/rfc2475.txt ou ftp://ftp.ietf.rnp.br/rfc/rfc2475.txt

[5] Integrated Services in the Internet Architecture: an Overview http://www.ietf.org/rfc/rfc1633.txt ou ftp://ftp.ietf.rnp.br/rfc/rfc1633.txt

[6] Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers http://www.ietf.org/rfc/rfc2474.txt ou ftp://ftp.ietf.rnp.br/rfc/rfc2474.txt

[7] Resource reSerVation Protocol (RSVP) - Version 1 Functional Specification http://www.ietf.org/rfc/rfc2205.txt ou ftp://ftp.ietf.rnp.br/rfc/rfc2205.txt

[8] Integrated Service Mappings on IEEE 802 Networks http://www.ietf.org/internet-drafts/draft-ietf-issll-is802-svc-mapping-04.txt

[9] Cisco Connection Online IOS Quality of Service http://www.cisco.com/warp/customer/732/Tech/quality.shtml

[10] Cisco Systems, Cisco IOS Quality of Service Solution White Paper, 1998.

[11] Paul Ferguson, Evaluating Quality of Service: Surveying New QoS Technologies, Re-Engineering The Internet - Cisco Systems, 1998.

[12] Paul Ferguson, Quality of Service in the Internet: Fact, Fiction, or Compromise? http://www.employees.org/~ferguson/inet_qos.htm

^

Sites relacionados

[IETF] Internet Engineering Task Force
http://www.ietf.org

[DIFFSERV] Differentiated Services Working Group Charter http://www.ietf.org/html.charters/diffserv-charter.htm

[INTSERV] Integrated Services Working Group Charter http://www.ietf.org/html.charters/intserv-charter.html

[RSVP] Resource Reservation Setup Protocol Working Group Charter http://www.ietf.org/html.charters/rsvp-charter.html

[ISSLL] Integrated Services over Specific Link Layers Working Group Charter http://www.ietf.org/html.charters/issll-charter.html

[DIFFSINT] Differential Service in the Internet http://diffserv.lcs.mit.edu

[IETF/RNP] Mirror Oficial IETF no Brasil:
http://www.ietf.rnp.br
ftp://ftp.ietf.rnp.br

^

NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004