Qualidade de Serviços em Redes IP
Edgard Jamhour
Nesse módulo, veremos como a qualidade de serviço (QoS) pode ser implementada em
redes IP.
A implementação do QoS envolve dois aspectos: mecanismos de controle de tráfego
implementados nos roteadores e uma metodologia de QoS, que define como os
mecanismos são utilizados.
Os mecanismos de QoS alteram a forma de encaminhamento de pacotes pelos roteadores.
Por default, a forma de encaminhamento adotada pelos roteadores é o FIFO (First In First
Out), isto é, os pacotes são encaminhados pelo roteador na mesma ordem que são
recebidos.
Os mecanismos de QoS permitem diferenciar a forma que os pacotes são tratados, de
forma a oferecer garantias para o tráfego transportado.
As metodologias de QoS, por outro lado, definem como os diversos elementos da rede
devem cooperar de forma a prover garantias fim-a-fim para o tráfego dos usuários. As
metodologias atualmente propostas pelo IETF são: serviços integrados, serviços
diferenciados e MPLS.
Tipos de Comutação e Qualidade de Serviço
slot de tempo = canal
...
...
1
N
2
...
1
2
N
...
circuito
...
quadro
sincronismo de quadro
cabeçalho
dados
...
pacote
t
Edgard Jamhour
Podemos definir qualidade de serviço como sendo um conjunto de garantias que a rede
oferece para o tráfego que está sendo transportado. Contudo, antes de iniciarmos a
discussão sobre a necessidade de qualidade de serviço (QoS), é importante
estabelecermos uma distinção entre as formas de comutação dos diversos tipos de
tecnologias de rede disponíveis. A forma de comutação afeta diretamente como os
recursos de uma rede são gerenciados e conseqüentemente, o tipo de garantias que são
oferecidos para o tráfego. Como veremos, a necessidade de mecanismos adicionais para
prover garantias de tráfego em uma rede comutada por circuito é muito menor que em
redes comutadas por pacote.
Nas redes comutadas por circuito, com as redes de telefonia baseadas em SDH, existe
uma reserva explícita de recursos para todo o tráfego transportado. A banda total de um
enlace da rede é dividida em slots multiplexados no tempo (canais). Nesse tipo de rede,
existe um pedido explicito para estabelecimento do circuito. Se existe um canal disponível,
o pedido é aceito. Caso contrário, ele é negado. Dessa forma, se um circuito é
estabelecido, sempre haverá recursos reservados, independente de haver tráfego ou não.
A vantagem desse modo é que o tráfego de diferentes canais não concorrem por recursos,
de modo que o tráfego é transportado com o mesmo desempenho até que seja feito um
pedido explícito de encerramento do circuito, e o canal seja liberado para outro usuário. A
desvantagem desse modo é o grande desperdício de recursos, pois os recursos subutilizados em um canal não pode ser aproveitado pelos demais canais.
Nas redes comutadas por pacotes a alocação de recursos é dinâmica, isto é, o recurso só
é alocado quando existe tráfego. O modelo original proposto para a tecnologia IP seguia
radicalmente este conceito. O modo de operação do IP era denominado de "melhor
esforço", pois os pacotes eram servidos na medida em que chegavam na rede sem
nenhum tipo de reserva prévia. Essa abordagem evita o desperdício de banda, mas pode
levar a um desempenho muito pobre para o tráfego transportado se houver
congestionamento (excesso de tráfego) na rede.
Medidas de Desempenho
recebido
atraso
1
2
3
4
tempo
transmitido
1
2
3
jitter
4
tempo
1
32
4
tempo
perda
1
2
3
4
tempo
Edgard Jamhour
A qualidade de serviço pode ser medida através das garantias que a rede oferece para o
tráfego transportado. Originalmente, o único modo de operação suportado pelo IP era o
melhor esforço (best effort). Nesse modo, a qualidade de serviço oferecida para o tráfego
transportado pode variar muito em condições de congestionamento. Existem basicamente
dois tipos de garantia: de desempenho e de disponibilidade.
As garantias de desempenho estão relacionadas a como a entrega do tráfego (pacotes)
será feita. Os parâmetros que medem o desempenho são:
•Atraso: indica quanto tempo o pacote leva para ser enviado da origem até o destino
•Jitter (variação do atraso): indica que pacotes podem chegar espaçados de forma
diferente em relação a como foram transmitidos, podendo, inclusive, chegar fora de ordem.
•Perda de pacotes: indica a porcentagem de pacotes transmitidos que chega ao seu
destino
A principal causa que afeta o desempenho de uma rede é o congestionamento, isto é,
quando mais tráfego é injetado na rede do que ela é capaz de suportar. Algumas
tecnologias de camada de enlace, como o ATM ou o Frame-Relay, já foram concebidas
com o intuito de tratar esse problema. O mundo IP, contudo, ignorou o assunto até
recentemente. Com a obsolescência gradativa da tecnologia ATM nos últimos anos, várias
técnicas foram introduzidas para tratar desses problemas ao nível da camada de rede (IP).
O objetivo deste módulo é justamente estudar essas técnicas.
Excesso de Tráfego e Desempenho
atraso da fila D (variável)
D (50 Mbps)
A (100Mbps)
C (100 Mbps)
2
1
B (100 Mbps)
E (50 Mbps)
atraso de propagação (fixo)
atraso da fila E (variável)
atraso da fila C
(variável)
A T R A S O V A R IÁ V E L
A C E IT Á V E L
d e ns id a d e d e
p r o b a b i li d a d e
A T R A S O IN A C E IT Á V E L
(D a d o s P e r d i d o s )
1-α
α
A tr a s o
F i xo
A TRA S O
V a r i a ç ã o d e A tr a s o
(J i tte r )
M á xi m o A tra s o
A c e i tá ve l
Edgard Jamhour
A figura ilustra o relacionamento entre as métricas de desempenho e o congestionamento
da rede. Primeiro, observe o desenho ilustrando a comunicação entre dois roteadores. O
tráfego chega ao roteador "1" através dos enlaces A e B. O tráfego é então transmitido
para o roteador 2 através do enlace C, que por sua vez encaminha os pacotes pelos
enlaces D e E. Nesse cenário existem duas fontes de atraso: o atraso de propagação e o
atraso de fila.
O atraso de propagação é um valor constante (fixo) que independe da carga da rede. Ele
corresponde ao tempo que um sinal elétrico ou ótico leva para se propagar através de um
enlace de longa distância. Por exemplo, um enlace de fibra ótica conectando as cidades de
São Paulo e Miami introduz um atraso de propagação na ordem de 100 ms. Esse atraso
existe independentemente de a rede estar congestionada ou não.
O atraso de fila é variável, pois depende da carga da rede. No cenário da figura, se a soma
do tráfego que chega pelas enlaces A e B exceder a capacidade do enlace C, mesmo que
momentaneamente, haverá formação de fila no roteador O mesmo ocorrerá no roteador 2,
se a quantidade de pacotes exceder momentaneamente a capacidade dos enlaces D ou E.
Como conseqüência, existe uma curva característica de atraso para redes de pacotes,
conforme ilustrado pela figura. Essa curva é descrita como a probabilidade de um pacote
sofrer uma certa quantidade de atraso. Observa-se que a probabilidade de um pacote
chegar ao destino em um tempo menor que o atraso de propagação é zero. Para muitas
aplicações, quando um pacote chega com atraso em demasia ele é considerado perdido.
Na figura, a porcentagem de pacotes que chegam acima do máximo atraso aceitável é alfa.
Uma porcentagem (1- alfa) dos pacotes será transmitida entre o atraso fixo e o valor
máximo aceitável pré-definido.
Medidas de Disponibilidade
TBF = 13
TBF = 18
1h
12 h
2h
16 h
falha
funcionando
falha
funcionando
TTR= 1
tempo
TTR= 2
Taxa de Falhas = 2/31 = uma falha a cada 15.5 horas
MTBF = (13+18)/2 = 15.5
TTR = (1+2)/2 = 1.5
Disponibilidade = (MTBF - MTTR)/ MTBF
Disponibilidade = (15.5 - 1.5) / 15.5 = 0,90 (90%)
Edgard Jamhour
A disponibilidade está relacionadas a garantias que o serviço de conectividade estará
"quase" sempre disponível. As redes comutadas por circuito oferecem boas garantias de
desempenho, mas podem sofrer com problemas de disponibilidade. Já as redes comutadas
por pacotes podem sofrer com problemas de desempenho e disponibilidade.
Em uma rede comutada por circuito o excesso de carga (por exemplo, um número
excessivo de usuários fazendo chamadas telefônicas) pode provocar problemas de
indisponibilidade, pois as chamadas só são atendidas quando existem recursos disponíveis
na rede. Em uma rede comutada por pacotes, o excesso de carga causa problemas de
desempenho.
Outra causa de problemas de indisponibilidade são as falhas de equipamentos e da
estrutura física (enlaces) da rede. Para esse tipo de causa, os seguintes parâmetros são
utilizados para medir a disponibilidade da rede:
• MTBF (mean time between failures): indica o intervalo médio esperado entre duas falhas
sucessivas da rede. Ele corresponde ao inverso da taxa de falhas (número de falhas pelo
período observado).
• MTTR (mean time to recover): indica o tempo médio que o serviço leva para ser
restaurado, uma vez que a falha aconteça.
• Disponibilidade: indica a porcentagem de tempo que serviço fica disponível. É calculado
de acordo com a fórmula indicada na figura.
SLA: Acordo de Nível de Serviço
Provedor de Serviço
A
B
SLA
Os pacotes que forem enviados de A para B em a uma taxa de até 1 Mbps, terão uma perda máxima
de 0.01% e um atraso médio inferior a 5 ms
Edgard Jamhour
Um termo bastante usado quando ser fala em qualidade de serviço (QoS) é o "acordo de
nível de serviço" (SLA - Service Level Agreement). O SLA é um acordo entre um cliente e
um provedor de serviço. Geralmente, o SLA é definido em termos do desempenho fim-afim do tráfego, isto é, da conectividade entre dois pontos da rede. Por essa razão, o SLA é
mais comum em circuitos virtuais vendidos para empresas do que para usuários
residenciais. Na figura, considere que existe um SLA para transmissão de pacotes entre os
pontos A e B. Geralmente o provedor do serviço só garante o SLA se o tráfego do usuário
estiver dentro de um certo limite máximo.
Um SLA possui dois componentes principais: Disponibilidade: (MTBF, tempo de
recuperação). Desempenho: (atraso, jitter e perda de pacotes). Considerando aspectos
desempenho, o SLA define em relação ao total de pacotes transmitidos pelo usuário:
a) O tempo médio de atraso esperado para os pacotes. Esse tempo irá variar bastante de
acordo com o tipo de tráfego transportado. Por exemplo, se o SLA se referir a um acordo
para transmissão de tráfego VoIP pode-se definir que o atraso médio deverá ser inferior a
50 ms e o atraso máximo inferior a 100 ms. Uma outra forma de especificar o atraso é em
termos de probabilidade. Por exemplo, a probabilidade do atraso ser inferior a 75 ms deve
ser 99,9968 %
b) Quantos pacotes são esperados chegar ao destino dentro dos limite atraso. Pacotes que
chegam após o limite são considerados perdidos. Novamente, os valores dependem muito
do tipo de tráfego transportado. Um valor típico para taxa máxima de perda de pacotes é
0.1%.
c) A variância do atraso (jitter) esperada para os pacotes. O jitter é mais importante que o
atraso para os equipamentos que tem pouca capacidade de bufferização. Em especial, por
razões de compatibilidade entre a rede VoIP e o sistema de telefonia convencional,
convenciona-se estabelecer limites de jitter bastante rígidos para a telefonia IP. Por
exemplo, o SLA pode especificar que a variância do atraso deve ser inferior a < 5 ms.
Necessidade de QoS em Redes IP
priorização
condicionamento de tráfego
descarte preventivo
controle de admissão
policiamento
3
PPPoE
2
CPE
CPE
ISP
externo
1
CPE
B-RAS
CPE
CPE
CPE
usuário
acesso
núcleo
núcleo
Edgard Jamhour
Este módulo irá se focar apenas nos mecanismos que permitem oferecer garantias de
desempenho para redes IP. Os aspectos de disponibilidade são muitas vezes tratados
através de enlaces redundantes e recursos disponíveis ao nível da camada de enlace, e
esse assunto está fora do escopo desse módulo que é focado em recursos diretamente
relacionados ao IP. Alguns protocolos como o MPLS (que tem bastante relação com o IP)
possuem mecanismos para aumentar a disponibilidade da rede, como será visto na
seqüência do curso.
Como dito anteriormente, a principal causa de problemas de desempenho é o
congestionamento da rede. Existem vários mecanismos que podem ser empregadas para
evitar o congestionamento. Os principais são listadas a seguir:
1) Controle de admissão: mecanismos que controla se o tráfego de um usuário será ou não
admitido na rede
2) Policiamento: controla a quantidade de tráfego que um usuário pode injetar na rede
3) Priorização: tratamento diferenciado para certos tipos de tráfego (de acordo com a
origem ou o tipo)
4) Condicionamento de tráfego: suavização do tráfego para eliminação ou redução de
rajadas
5) Descarte preventivo: descarte preventivo de pacotes visando redução do atraso e jitter
da rede
Requisitos de QoS
Classe de Serviço
Necessidade de
banda
Tolerância em relação a ...
Perda de
Pacotes
Atraso
Jitter
VoIP
baixa
muito baixa
muito baixa
muito baixa
Video Conferência
média
baixa/média
muito baixa
alta
Streaming de vídeo
alta
baixa/média
média
alta
Dados sensíveis ao atraso
variável
baixa
baixa/média
alta
Dados de grande vazão
alta
baixa
média/alta
alta
Padrão (melhor esforço)
variável
alta
alta
alta
Edgard Jamhour
Convém lembrar que até o início dos anos 80, o IETF adotava a metodologia do melhor
esforço que, por definição, é a ausência de QoS. Isto é, os pacotes são encaminhados por
um roteador na mesma ordem em que chegaram em suas interfaces, sem nenhum
esquema de priorização. Essa abordagem foi, por muitos anos, apontada como um dos
grandes responsáveis pelo sucesso da metodologia IP, pois conferia uma simplicidade
enorme aos equipamentos e evitava o desperdício de recursos, como ocorre no método de
comutação por circuito.
A partir dos anos 90 cresceu o interesse em adotar a tecnologia IP como sendo o principal
protocolo para empresas de telecomunicações. Para que o IP pudesse ser usado como
meio de transporte para aplicações de tempo real (video e voz) ou de missão crítica (como
serviços de conectividade para empresas) era necessário incluir no IP mecanismos que
oferecem garantias quanto ao atraso, jitter e a perda de pacotes. A tabela acima mostra
como diferentes tipos de aplicação necessitam de garantias distintas a fim de serem
transmitidas com a qualidade adequada.
Por exemplo, aplicações de VoIP são muito sensíveis a perda de pacotes, atraso e jitter.
Isto significa que este tipo de tráfego não pode ser bufferizado (isto é, armazenado em
memória para subseqüente transmissão) e precisa ser tratado com grande prioridade na
rede, mesmo que necessitando de pequenas quantidades de banda.
Por outro lado, o streaming de vídeo apresenta altos requisitos de banda, mas os dados
podem ser recebidos com certo atraso e jitter, sem grande perda de qualidade para o
usuário. Isso significa que os dados podem ser buferizados pelos roteadores da rede. Esse
tipo de tráfego não precisa ser tratado com prioridade excessiva.
Dessa forma, a fim de que os recursos de uma rede IP possam ser melhor aproveitados, é
necessário introduzir mecanismos de QoS diferenciados para cada tipo de tráfego.
Metodologias de QoS
host
2. sinalização
nó
1. Mecanismo de QoS
Priorização
Descarte
Etc.
sinalização
sinalização
nó
3. Ferramenta de
Gerenciamento
sinalização
host
nó
Políticas de QoS
(SLA, Controle de
Admissão)
Edgard Jamhour
Antes de discutirmos mais a fundo quais são os mecanismos para implementar QoS em
equipamentos de rede, convém apresentarmos as metodologias desenvolvidas pelo IETF
para qualidade de serviço. Para que o QoS possa ser implantado, é necessário que vários
elementos da rede cooperem, tendo uma visão comum de como os pacotes devem ser
tratados. Essa visão comum é denominada de "metodologia de QoS".
A figura ilustra os elementos que participam em uma transmissão fim a fim na rede. Os
elementos listados na figura são os seguintes:
1. Mecanismos de QoS: correspondem aos recursos disponíveis nos equipamentos de
rede para efetuar um tratamento diferenciado dos pacotes que trafegam pela rede. Os
mecanismos mais comuns de QoS são a priorização, o descarte preventivo de pacotes, o
policiamento, a marcação e o modelamento de tráfego.
2. Sinalização: corresponde a um protocolo que configura automaticamente os
mecanismos de QoS entre dois pontos da rede. A sinalização simplifica a tarefa de
administração do QoS pois a configuração pode ser feita e desfeita a partir de ordens
enviadas pelos extremos da rede, sem a necessidade de intervenção manual com cada
elemento da rede.
3. Ferramenta de Gerenciamento: quando a sinalização não está disponível, é necessário
criar políticas de QoS em cada equipamento. Existe um esforço do IETF para padronização
de protocolos de gerência e MIBs especiais para essa finalidade.
Convém ainda destacar que o QoS pode ser fim a fim ou não. O QoS fim a fim ocorre
quanto um caminho com recursos controlados é criado entre os dois hosts da rede. O
caminho não é fim a fim se o controle de recursos for feito apenas entre os roteadores.
Outra diferenciação é se o QoS é feito por fluxo ou para agregados. O QoS por fluxo cria
uma política individualizada para cada conexão (definido pelo par IP:PORTA de origem e
destino) entre dois hosts na rede. O QoS agregado trabalha com grandes classes de
tráfego, onde os usuários são agrupados e tratados em grandes categorias.
Metodologias de QoS
mais QoS
menos QoS
Serviços
Integrados
Controle de recursos por fluxo ao longo
de um caminho pré-definido
MPLS
Controle de recursos para tráfego agregado
ao longo de um caminho pré-definido
Serviços
Diferenciados
Controle de recursos para tráfego
agregado sem caminho pré-definido
Melhor Esforço
Ausência de controle de recursos. O
primeiro pacote a chegar é o primeiro a
ser atendido.
Edgard Jamhour
Nos anos 90, o IETF elaborou três metodologias de QoS, aproximadamente na seguinte
ordem cronológica:
1) Serviços Integrados: define uma estratégia de controle de qualidade por fluxo (isto é,
cada aplicação de um usuário da rede). Esse modelo introduziu um protocolo de
sinalização para QoS denominado RSVP (Resource Reservation Protocol). O método de
serviços Integrados foi considerado complexo demais para ser adotado em grande escala
na Internet
2) Serviços Diferenciados (DiffServ): definiu uma abordagem mais simples, mas menos
precisa de implementar QoS. Nessa estratégia, existe tratamento diferenciado apenas para
algumas grandes classes de tráfego. As classes do DiffServ recebem nomes padronizados
como "EF (expedited forwarding)", "AF (assured forwarding)" e "BE (best effort)". Cada
uma dessas classes é tratada de forma diferenciada pelos roteadores IP. O tráfego
individualizado dos usuários é classificado nessas grandes classes. Essa metodologia não
usa protocolo de sinalização.
3) MPLS (MultiProtocol Label Switching): inicialmente, o MPLS foi considerado como uma
alternativa para acelerar o processo de roteamento, que era considerado muito complexo
nas redes IP. Contudo, nos últimos anos, protocolos de sinalização como o RSVP-TE e o
CR-LDP formam introduzidos, tornando o MPLS uma importante ferramenta para
engenharia de tráfego. Através do MPLS, é possível definir caminhos com banda
reservada ao longo dos roteadores. Isso tornou o MPLS uma das tecnologias mais
importantes para criar circuitos virtuais comercializáveis.
Serviços Integrados e RSVP
1. Solicita conexão com o servidor
Aplicação
Multimídia
Servidora
2. Informa requisitos para o cliente (PATH)
3. Solicita Reserva (RESV)
Aplicação
Multimídia
Cliente
4. Confirma Reserva (RESVconf)
Servidor
Cliente
Edgard Jamhour
Uma das metodologias de QoS propostas pelo IETF foi denominada “serviços integrados”.
Nessa abordagem, aplicações podem negociar a reserva de recursos fim a fim na rede
para oferecer garantias para fluxos específicos de tráfego. A metodologia de serviços
integrados é baseada na introdução de um protocolo de sinalização, denominado RSVP
(Resource Reservation Protocol). O RSVP foi padronizado pela RFC 2205, de setembro de
1997. Diversas outras RFCs completaram a descrição do seu funcionamento.
O termo protocolo de sinalização refere-se ao fato que o RSVP não transporta os dados,
mas apenas estabelece e termina caminhos com reservas de recursos ao longo da rede.
Para ilustrar como o RSVP funciona, considere o exemplo mostrado na figura. Na
abordagem de serviços integrados, o RSVP precisa estar implementado em todos os
elementos da rede. Isto inclui as aplicações no cliente e servidor e os roteadores. O
objetivo do RSVP é criar um caminho fixo com garantia de recursos ao longo da rede. O
caminho do RSVP é sempre unidirecional, garantindo recursos apenas para o tráfego de
“download”, isto é, do servidor para o cliente.
O RSVP define um conjunto de mensagens padronizadas. A criação de uma reserva RSVP
inicia-se a pedido do cliente, ao estabelecer um pedido de conexão com um servidor. O
servidor responde ao cliente com a mensagem padronizada PATH que, além de “congelar”
um caminho entre o servidor e o cliente, também informa ao cliente qual a quantidade de
recursos que ele deve solicitar a rede a fim de receber a transmissão com qualidade.
O cliente efetua o pedido de reserva de recursos através da mensagem RESV, que segue
o mesmo caminho da mensagem PATH. Se todos os roteadores ao longo do caminho
forem capazes de satisfazer o pedido de reserva, o servidor confirma o sucesso através da
mensagem RESVconf, e a transmissão dos dados pode acontecer utilizando o protocolo
nativo da aplicação (TCP ou UDP).
Comportamento do Tráfego
taxa
(bytes/s)
p: taxa de pico
r: taxa média
p
r
taxa
(bytes/s)
t
VoIP sem supressão de silêncio
Comportado
t
VoIP com supressão de silêncio
Comportado
t
Vídeo compactado
Não comportado
p
r
taxa
(bytes/s)
p
r
Edgard Jamhour
Uma regra importante em relação ao QoS em redes IP é: “quanto menos comportado o
tráfego, mais recursos de rede ele consome”. Um tráfego comportado é aquele que
mantém uma taxa aproximadamente constante durante todo o período de transmissão. Um
tráfego mal comportado, por outro lado, pode intercalar períodos de silêncio com períodos
de rajadas.
Observe que dois tráfegos com a mesma taxa média podem ter um comportamento bem
diferente. Um tráfego de VoIP, por exemplo, mantém uma taxa aproximadamente
constante e igual a sua taxa média (o perfil do tráfego é ON-OFF quando se usa supressão
de silêncio e constante quando não se usa). Um tráfego de vídeo compactado, por outro
lado, pode apresentar longos períodos de baixo tráfego intercalados por rajadas, que
correspondem a variações bruscas nas imagens transmitidas.
Enquanto a quantidade de recursos necessária para acomodar múltiplos fluxos de VoIP é
facilmente previsível, o mesmo não pode ser dito em relação ao tráfego de vídeo. No
primeiro caso, a reserva é simplesmente o produto entre a taxa média de transmissão do
VoIP e o número de fluxos. No segundo caso, reservar apenas a taxa média pode levar a
uma redução da qualidade percebida pelo usuário, se múltiplos fluxos estiverem na taxa de
pico ao mesmo tempo.
.
O Modelo Balde de Fichas (Token Bucket)
saída
(bytes/s)
d <= b/p
Modelo da fonte transmissora
p
r
R
r bytes/s
t
b bytes
Reserva no roteador
reserva
chegada
saída
F
R
p bytes/s
B
Serviço
Garantido se
r <= R
Edgard Jamhour
Um modelo muito usado para medir o nível de comportamento do tráfego é o balde de
fichas. Esse modelo permite definir o comportamento de uma fonte transmissora (indicada
como F na figura) e funciona da seguinte forma:
a) Um balde de fichas é alimentado a uma taxa constante r. Suponha que cada ficha dá ao
transmissor o direito de transmitir um byte, de maneira que a taxa média do transmissor é
limitada a r bytes por segundo.
b) Se houver bytes aguardando transmissão quando uma ficha chega no balde, então o
byte é imediatamente transmitido.
c) Se não houver bytes aguardando transmissão, então a ficha é acumulada no balde.
d) As fichas se acumulam no balde até a quantidade máxima de “b” bytes. Além desse
valor, não há mais acúmulo de fichas.
e) A fonte pode utilizar as fichas acumuladas no balde para transmitir uma rajada na taxa
de “p” bytes por segundo. A duração máxima da rajada é dada pela relação b/p segundos.
Observe que esse modelo define uma fonte com taxa média conhecida “r”, mas podendo
ser mais ou menos comportada, de acordo com o valor de “b”. Uma fonte com valor “b”
pequeno é bem comportada (ela é um CBR – Constant Bit Rate se b for igual a zero) e
com "b" grande é muito mal comportada. Se um roteador puder bufferizar indefinidamente
as rajadas emitidas pela fonte, ele pode garantir a transmissão de todos os bytes sem
perdas reservando apenas um valor de R=r bytes/s no seu enlace de saída. O valor de R=r
é um limite instável, pois a fila do roteador pode atingir um tamanho não conhecido. Para
garantir uma transmissão com um tamanho limitado de fila o roteador deve reservar um
valor de R > r. Quanto maior a relação R/r, menor o tamanho médio da fila, e menor o
atraso médio experimentado pelos pacotes.
Exemplo de Reserva RSVP
100 Mbps (total)
30 Mbps (disponível com delay 5ms)
10 Mbps (disponível com delay 0)
2
5 Mbps
Folga 20 ms
PATH
3
Servidor
100 Mbps (total)
15 Mbps (disponível com delay 10ms)
1 Mbps (disponível com delay 0)
5 Mbps
Folga 20 ms
1
Cliente
5 Mbps
Folga 10 ms
100 Mbps (total)
10 Mbps (disponível com delay 10ms)
3 Mbps (disponível com delay 0)
5 Mbps
Folga 30 ms
Edgard Jamhour
A figura ilustra como ocorre o procedimento de reserva utilizando o RSVP. Primeiramente,
o servidor define um caminho fixo para o cliente através da mensagem PATH. Essa
mensagem inclui a descrição dos parâmetros do tráfego que será transmitido, utilizando o
modelo de balde de fichas (taxa média, taxa de pico e tamanho do balde).
O cliente por sua vez efetua o pedido de reserva de recursos para o roteador 1, indicando
o quanto de banda necessita (isto é, o valor R, definido quando falamos do modelo de
balde de fichas) e uma folga de atraso. A folga de atraso permite que os roteadores ao
longo do caminho utilizem uma banda menos prioritária para transportar os pacotes da
reserva. Quanto mais folga for cedido ao roteador, mais ele poderá bufferizar os pacotes
recebidos aguardando a passagem de momentos de congestionamento para transportar os
pacotes. Se a folga for muito pequena, o roteador precisará utilizar recursos privilegiados,
que são mais escassos. Como veremos adiante, esses recursos correspondem a filas
internas de alta prioridade, que geralmente são reservadas apenas para tráfego de VoIP e
VideoConferência.
No exemplo, o roteador 1 não tem banda suficiente para tratar a requisição sem atraso. Por
isso, ele aloca a reserva em sua faixa menos privilegiada, consumindo 10 ms da folga.
Observe que o pedido de reserva é passado para o roteador 2 com a folga reduzida a 20
ms. O processo se repete até que a reserva chegue no servidor. O servidor por sua vez,
envia a mensagem de confirmação da reserva para o cliente.
Se algum dos roteadores ao longo do caminho não puder atender a reserva, uma
mensagem de erro é retornada ao cliente. Por exemplo, se o roteador 1 não puder atender
a reserva, ele simplesmente retorna um erro ao cliente sem repassar o pedido ao roteador
2.
Elementos de um Nó RSVP
ENTRADA DADOS
ENTRADA
FLUXO RSVP
Roteamento
Classificador
controle de
admissão
Policiador
Policiador
Fila de
Saída
Fila de
Saída
controle de
política
configuração
Escalonador
Medidor
SAÍDA
FLUXO RSVP
SAÍDA DADOS
Edgard Jamhour
Computadores e roteadores, para terem suporte ao protocolo RSVP, precisam conter
internamente alguns elementos capazes de interpretar as mensagens do protocolo e
também alterar a forma como os pacotes são tratados. Os principais elementos envolvidos
no processo RSVP estão ilustrados na figura. Observe, primeiramente, que o fluxo de
mensagens RSVP e o fluxo de pacotes de dados são independentes. Os elementos de
rede, como roteadores, possuem diversos mecanismos para efetuar o tratamento
diferenciado de pacotes, conforme será estudado na seqüência deste módulo.
Um roteador com suporte RSVP precisa ter pelo menos três mecanismos básicos:
1) Classificador: determina quais pacotes correspondem a reserva RSVP estabelecida
2) Policiador: garantem que o roteador não irá receber mais pacotes do que estabelecido
na reserva.
3) Escalonador/Formatador de Tráfego: gerencia de qual fila do roteador cada pacote será
retirado. As filas internas permitem criar vários níveis de prioridade para diferentes tipos de
tráfego (por exemplo, fila com pouco atraso e fila com muito atraso).
A função principal do RSVP é configurar os elementos do roteador para que ele trate os
pacotes de forma diferenciada. O "software" de RSVP tem três funções principais:
1) Controle de Admissão: determina se o enlace de saída ainda tem recursos suficientes
para atender a demanda vinda da mensagem RESV.
2) Controle de Política: determina se o solicitante tem direitos suficientes para fazer o
pedido de reserva. O controle de política utiliza informações de autenticação do usuário
disponíveis nas mensagens RSVP.
3) Configuração: uma vez que a reserva seja aceita, cria as regras para:
a) Direcionar o tráfego do fluxo para fila de saída adequada, através do Classificador.
b) Descartar o excesso de tráfego através do policiador.
Serviços Diferenciados
ROTEADOR DE
BORDA
cliente
ROTEADOR DE
NÚCLEO
DOMÍNIO DIFFSERV
Edgard Jamhour
A metodologia de Intserv, baseada no RSVP, foi considerada pouco escalável para ser
utilizada na Internet, pois como a configuração dos mecanismos de QoS é dinâmica, e feita
por fluxo, roteadores de backbones poderiam ter que manter o estado de milhares de
fluxos simultaneamente. Como alternativa, o IETF propôs uma outra metodologia, visando
eliminar, ou pelo menos reduzir significativamente, a necessidade de criar regras de QoS
em roteadores de backbone. Essa metodologia foi denominada "Serviços Diferenciados",
ou Diffserv (definida na RFC 2475, de 1998).
A metodologia de Diffserv denomina "domínio Diffserv" um conjunto de roteadores que
disponibilizam serviço de comunicação IP com QoS. Os roteadores de um domínio Diffserv
são divididos em dois grandes grupos: roteadores de borda (EDGE) e roteadores de núcleo
(CORE). Os roteadores de borda são aqueles que fazem interface direta com a rede do
cliente. Geralmente, são os roteadores que fazem a fronteira entre a rede de acesso e o
backbone (como o B-RAS utilizado no acesso via ADSL). Os roteador de núcleo
interconectam os roteadores de borda. Na topologia física eles corresponderiam aos
roteadores do backbone.
A idéia básica do Diffserv foi que os roteadores de núcleo tratariam apenas grandes
classes de tráfego, deixando a tarefa de discriminar os fluxos individuais apenas para os
rotedores de borda. O Diffserv utiliza o conceito de qualidade de serviço para o tráfego
agregado ao invés de fluxos individuais como o Intserv. De acordo com essa metodologia,
os roteadores de núcleo possuem uma configuração estática, capaz de diferenciar apenas
algumas poucas classes de tráfego. Essa configuração estática é denominada de "PHB Per Hop Behavior". Os PHBs padronizados são definidos nas RFC 2597 e 2598, de 1999.
A principal função dos roteadores de borda é determinar a qual classe agregada o tráfego
do usuário pertence. Para marcar a classe nos pacotes IP, um novo campo denominado
"Campo DS" foi criado em substituição ao antigo campo TOS do IP (definido pela RFC
2474, de 1998).
Agregação de Fluxo
Fluxos individuais
Regras individuais para cada fluxo
usuário A nível ouro
Fluxos agregados
usuário B nível prata
usuário C nível bronze
borda 1
usuário D nível bronze
núcleo 1
núcleo 2
usuário E nível ouro
usuário F nível ouro
usuário G nível bronze
borda 2
usuário H nível bronze
Regras apenas para
os fluxos agregados
ouro, prata e bronze
Edgard Jamhour
A figura ilustra a relação que existe entre os roteadores de borda e os roteadores de
núcleo. De acordo com a metodologia Diffserv, os roteadores de borda possuem regras
para usuários individuais. Por exemplo, um roteador de borda sabe como identificar um
usuário de ADSL específico. Isto é, ele sabe qual o seu plano, a quantidade de banda, e o
tipo de tráfego que ele transmite (suporte ou não a VoIP, por exemplo). Conforme dito
anteriormente, um roteador de borda corresponde geralmente ao roteador que faz a
fronteira entre a rede de acesso e o backbone. Na arquitetura ADSL, ele seria o B-RAS
(Broadband Remote Access Server). Essas regras são geralmente dinâmicas. Por
exemplo, quando é feita a venda de uma linha para um novo usuário de ADSL, um regra é
criada no B-RAS. Quando o contrato é terminado, a regra é removida. Já os roteadores de
núcleo possuem regras estáticas, que independem da venda de assinaturas para usuários
finais. Nos roteadores de núcleo todos os usuários pertencentes a uma mesma classe são
tratados da mesma forma.
Um roteador de borda executa duas funções principais:
a) Marcação: ele determina a qual classe agregada o tráfego do usuário pertence. Por
exemplo, o roteador de borda 1 determinaria que o usuário A pertence a classe ouro, o B a
classe prata e o C e D a classe bronze. Já o roteador de borda 2 indicaria que os usuários
E e F pertence a classe ouro e os usuários G e H a classe bronze. O roteadores de borda
marcam os pacotes do usuário com códigos padronizados utilizando um novo campo no
cabeçalho IP, a fim de permitir que os roteadores de núcleo identifiquem a classe dos
pacotes sem possuir regras para cada usuário.
b) Policiamento: o roteador de borda diminui a prioridade ou descarta o tráfego do usuário
que exceda ao seu contrato.
O roteador de núcleo, por sua vez, implementa o tratamento diferenciado para cada uma
das classes agregadas pré-definidas utilizando os mecanismos clássicos de QoS, como
priorização, descarte preventivo, escalonamento com múltiplas filas e controle da taxa de
transmissão.
Differentiated Services (DS) Field
DS FIELD
VERS
HLEN
ECN
(6 bits)
(2 bits)
TOS
ID 8 bits
TTL
DSCP
Comprimento Total
FLG
Protocolo
Deslocamento
CheckSum Cabeçalho
IP Origem
IP Destino
Dados
...
Edgard Jamhour
Os pacotes IP precisam ser marcados nas fronteiras de entrada de uma rede administrada
segundo a metodologia Diffserv. A versão 4 do IP já continha um campo cuja finalidade era
definir uma forma diferenciada de tratamento para os pacotes IP. Esse campo era
denominado TOS (Type of Service). Através desse campo, era possível definir níveis de
prioridade para os pacotes transportados, e o tipo de tratamento desejado. O TOS era
utilizado como mais um classificador para que os pacotes seguissem rotas alternativas. Por
exemplo, de acordo com a marcação, o rotedor poderia escolher uma rota confiável, mas
lenta (para evitar perdas), uma rota rápida (para evitar atraso) ou, simplesmente, uma rota
barata (para reduzir custos).
Apesar do TOS ser implementado em muitos roteadores, sua adesão foi considerada
pouco significativa. Então, o IETF propôs um campo alternativo que ocupa exatamente os
mesmos 8 bits do campo TOS. Esse campo foi denominado "Differentiated Services Field"
(o campo DS). O campo DS, por sua vez, foi dividido em dois campos menores: o DSCP
(Differentiated Services Code Point) e o ECN (Explicit Congestion Notification). O DSCP
corresponde, efetivamente, ao campo utilizado para marcação das classes agregadas da
metodologia Diffserv. O ECN é uma proposta experimental, que permite aos roteadores
indicar que estão congestionados ao nível do protocolo IP, de forma similar ao que já existe
nas tecnologias ATM e Frame-Relay.
Os roteadores de borda utilizam o campo DSCP para informar aos roteadores de núcleo
como o pacote deve ser tratado. Enquanto um roteador de borda precisa ter regras para
cada usuário (ou redes), os roteadores de núcleo podem ter regras genéricas, para tratar
códigos DSCP específicos. Apesar do DSCP permitir a criação de até 2^6= 64 códigos, o
IETF definiu apenas alguns códigos padronizados para a metodologia Diffserv. As regras
que os roteadores de núcleo utilizam para tratar esses códigos padronizados são
denominadas PHB (Per Hop Behavior). O termo Per Hop é uma referência ao fato que os
roteadores do domínio Diffserv adotam um tratamento local para os pacotes recebidos,
sem se preocupar com o efeito do QoS fim-a-fim, como na metodologia Intserv.
PHB’s Padronizados
B'xxxxx0' – PHBs padronizados
B'xxxx11' – PHBs de uso experimental ou local.
B'xxxx01' – PHBs sem atribuição
DS5
DS4
DS3
Seletores de
Classe
DS2
DS1
ECN
ECN
Códigos
dentro da
classe
0
PHB Padronizado
Edgard Jamhour
Utilizando os 6 bits do DSCP, é possível definir até 64 valores distintos para tratamento do
tráfego agregado. O IETF denomina PHB o tratamento associado ao valor do campo
DSCP. Os PHBs são definidos em 3 grupos:
B'xxxxx0' – PHBs padronizados. Os roteadores devem implementar um comportamento
padronizado para todos os pacotes recebidos com esses códigos.
B'xxxx11' – PHBs de uso experimental ou local. Esses códigos tem significado apenas
para um único domínio de serviços diferenciados (isto é, para uma empresa específica). O
administrador pode definir um comportamento customizado para esses códigos, mas não
deve enviar pacotes com essa marcação para outros domínios.
B'xxxx01' – PHBs de uso experimental ou local, mas com potencial de serem agregados
ao grupo de PHBs padronizados. Esses códigos não são usados pelo IETF, mas podem vir
a ser utilizados no futuro.
Todos os PHBs padronizados utilizam o valor zero no bit menos significativo do DSCP (bit
DS1 na figura), de maneira que apenas 5 bits são utilizados para distinguir os códigos.
Esses cinco bits são, por sua vez, definidos da seguinte forma: Seletores de classe: 3 bits
mais significativos, Códigos dentro da classe: 2 bits menos significativos.
PHBs Padronizados
prioridade
DF
b‘000000
AF 1
AF 2
AF 3
AF 4
Baixa
Preferência
de Descarte
AF11
b'010000'
AF21
b'011000'
AF31
b'100000'
AF41
b'101000'
Média
Preferência
de Descarte
AF12
b'010010'
AF22
b'011010'
AF32
b'100010'
AF42
b'101010'
Alta
Preferência
de Descarte
AF13
b'010100'
AF23
b'011100'
AF33
b'100100'
AF43
b'101100'
EF
b‘101110
Edgard Jamhour
Apesar de ser possível definir até 8 classes com os seletores de classes, o IETF definiu
apenas 6 classes padronizadas:
DF: Default Forwading (Encaminhamento Default ou Melhor Esforço): Corresponde ao
código 000000
AF1: Assured Forwarding 1 (Encaminhamento Garantido): Corresponde ao código 010xx0
AF2: Assured Forwarding 2 (Encaminhamento Garantido): Corresponde ao código 011xx0
AF3: Assured Forwarding 3 (Encaminhamento Garantido): Corresponde ao código 100xx0
AF4: Assured Forwarding 4 (Encaminhamento Garantido): Corresponde ao código 101xx0
EF: Expedited Forwarding (Encaminhamento Expresso): Corresponde ao código 101110
Internamente no roteador, cada uma dessas classes é tratada como uma fila independente,
sendo que a fila EF é a mais prioritária e a fila DF é a menos prioritária. Dessa forma, a
qualidade do serviço oferecido varia nessa mesma ordem, isto é, EF é a máxima qualidade
e DF é a mínima.
PHBs Padronizados: RFC 4594
Classe de Serviço
DSCP
Tratamento na Borda
Tolerância para
Escalonament
o
Perda
Atraso
Jitter
Telefonia
EF
Nenhum
muito baixa
muito baixa
muito baixa
prioridade
Conferência Multimídia
AF4(1-3)
Marcação em até três cores
de acordo com a taxa
de chegada.
baixa/
média
muito baixa
alta
taxa
Streaming Multimídia
AF3(1-3)
baixo/
médio
médio
alta
taxa
Dados sensíveis a atraso
AF2(1-3)
baixo
baixa/alto
alta
Dados de grande vazão
AF1(1-3)
baixo
médio/alta
alta
Standard (Best Effort)
DF
taxa
Edgard Jamhour
A classe EF corresponde a prioridade máxima dentro da rede. Isto significa que um pacote
marcado como EF será sempre entregue com o menor atraso possível, passando a frente
de todos os outros tipos de pacotes no roteador. Essa classe é indicada para as aplicações
de telefonia sobre IP (VoIP).
As classes AF, por sua vez, são usadas para transporte de tráfego que deve ter poucas
perdas, mas que admite um certo nível de atraso e jitter. A classe AF4 é a mais prioritária
entre as AF, sendo utilizada para tráfego sensível ao atraso como a Video Conferência. O
streaming admite mais atraso que a vídeo conferência, podendo assim usar a classe AF3.
A classe AF2 é designada para tráfego de dados sensível ao atraso, como o SSH, por
exemplo, e a AF1 para tráfego de grande volume e pouco sensível ao atraso, como o FTP.
Cada uma das classes AF é dividida em subclasses. Por exemplo, a classe AF1 é
subdivida em AF11, AF12 e AF13. Essas subdivisões (denominadas cores) são usadas
para dar diferentes níveis de descarte para o tráfego atribuído a classe. Elas permitem que
o usuário injete tráfego excedente na rede, caso a rede esteja com recursos livres, mas
descarta o excesso quando a rede está congestionada. Por exemplo, um usuário
transmitindo dados dentro de uma faixa "garantida" seria marcado como AF11. Caso o
usuário injete mais tráfego na rede que seu limite garantido, o tráfego excedente é marcado
como AF12. Em caso de congestionamento, o tráfego AF12 será descartado antes do
AF11. O mesmo raciocínio se aplica a classe AF13.
A classe DF corresponde a ausência de tratamento diferenciado. Os pacotes sem
marcação (valor 0 no campo DSCP) estão nessa classe, e são tratados como best effort.
Elementos de um Nó Diffserv
ENTRADA
ENTRADA
Classificador
Policiador
Policiador
Policiador
Marcador
Marcador
Marcador
Descartador
Descartador
Descartador
Fila de Saída
Fila de Saída
Fila de Saída
Medidor
Formatador de Tráfego
SAÍDA
SAÍDA
Edgard Jamhour
A figura ilustra os mecanismos que devem estar disponíveis em um nó (tipicamente, um
roteador) com suporte a metodologia Diffserv. Observe que o roteador utiliza múltiplas filas
para diferenciar o tráfego. Por exemplo, ele pode ter uma fila para o EF, uma fila para o AF
(ou quatro filas, se todos os AF forem usados) e uma fila para o DF. A quantidade de filas
no roteador pode variar bastante, uma vez que o IETF não obriga que todas as classes
padronizadas sejam utilizadas. É muito comum que provedores de acesso a Internet
utilizem apenas três filas: EF, AF (sem distinção) e DF.
Internamento, o roteador precisa ter os seguintes mecanismos básicos de QoS:
Classificador: Determina para qual fila cada pacote recebido deve ser encaminhado.
Medidor: Contabiliza as estatísticas associadas aos fluxos de pacotes (taxa média, balde
de fichas, etc.)
Marcador: Marca o campo DSCP do pacote com os códigos EF, AF11, AF12, AF13, AF21,
etc.
Formatador de Tráfego: Determina a velocidade com o qual os pacotes serão retirados da
fila e enviados para rede
Descartador: Determina se alguns pacotes serão descartados de maneira preventiva para
evitar o congestionamento da rede
A implementação desses elementos no equipamento de rede pode varias bastante. Mas
geralmente, existe um conjunto independente desses elementos para cada uma das
interfaces do equipamento. Isto é, se um roteador tiver três interfaces, poderemos ter um
conjunto independente de filas de saída para cada interface do roteador. Isto significa que
o processo de QoS só terá início após o roteador determinar para qual de suas interfaces o
pacote será encaminhado, através da consulta a sua tabela de roteamento. Então,
considere na figura que o classificador recebe o pacote do módulo de roteamento.
Classificador: CORE e EDGE
Se IPsrc=200.1.2.0/24 e AF11
Se AF2
Se AF1
Se AF3
Se IPsrc=200.10.1.0/24
Se IPsrc=200.1.2.0/24 e TCP e PORTdst 80
ENTRADA
ENTRADA
Classificador
Classificador
Policiador
Policiador
Policiador
Policiador
Policiador
Policiador
Marcador
Marcador
Marcador
Marcador
Marcador
Marcador
Descartador
Descartador
Descartador
Descartador
Descartador
Descartador
Fila de Saída
Fila de Saída
Fila de Saída
Fila de Saída
Fila de Saída
Fila de Saída
Formatador de Tráfego
Formatador de Tráfego
SAÍDA
SAÍDA
Edgard Jamhour
A configuração interna de um roteador de borda (edge) e core (núcleo) não é idêntica.
Conforme discutimos anteriormente, o objetivo da metodologia Diffserv foi reduzir ao
máximo a necessidade de alterar a configuração nos roteadores dos backbones.
Tipicamente, um roteador de borda tem todos os mecanismos de QoS descritos
anteriormente. Já o roteador de núcleo não tem os elementos de policiamento e marcação.
A responsabilidade de policiar e marcar o tráfego é feita exclusivamente pelos roteadores
de borda (isto é, apenas o roteador de borda sabe que usuários da rede IP 200.10.1.0/24
podem transmitir no máximo 1 Mbps em AF11 e até 2 Mbps em AF12). Os roteadores de
núcleo, por sua vez, farão todo o possível para transportar o tráfego AF11 sem perda,
sacrificando o tráfego AF12 apenas se necessário.
O classificador de um roteador de borda pode ser complexo. Ele precisa determinar a qual
classe agregada cada pacote pertence utilizando qualquer conjunto de atributos
disponíveis no cabeçalho de rede e transporte do pacote. Já o classificador de um roteador
de núcleo é bem mais simples, pois ele precisa apenas interpretar o campo DSCP.
O IETF define os classificadores em dois grandes grupos:
Multicampos (MF): Tipicamente utilizado pelos roteadores de Borda. Utiliza o DSCP e
outros campos do cabeçalho IP (IP, Porta, etc.)
Comportamento Agregado (BA): Tipicamente utilizado pelos roteadores de Núcleo. Utiliza
apenas o campo DSCP
Policiador e Marcador
rate 500 kbps
tráfego
chegada
balde 1
(62,5kbytes)
rate 500 kbps
balde 2
(62,5kbytes)
X
drop
ENTRADA
Classificador
AF11
AF12
Se não houver transbordo no balde 1:
Marcar com AF11
Se houver transbordo no balde 1:
Passar ao balde 2
Se não houver transbordo no balde 2:
Marcar com AF12
Se houver transbordo no balde 2
Descartar
Policiador
Policiador
Policiador
Marcador
Marcador
Marcador
Descartador
Descartador
Descartador
Fila de Saída
Fila de Saída
Fila de Saída
Formatador de Tráfego
SAÍDA
Edgard Jamhour
Em uma rede Diffserv, o controle do tráfego injetado na rede deve ser feito pelos
roteadores de borda. Os roteadores de borda realizam duas tarefas que estão diretamente
relacionadas: Policiamento e Marcação. Essas tarefas são realizadas com a ajuda de um
terceiro elemento, denominado genericamente de Medidor. O medidor é geralmente
implementado utilizando um algoritmo do tipo balde de fichas (token bucket). Para as
classes AF, que possuem até três subníveis, utiliza-se geralmente uma seqüência de balde
de fichas em cascata. A figura ilustra como o cascateamento de baldes é usado em um
cenário em que a classe AF1 é subdividida nas classes AF11 e AF12. O IETF não obriga
que todas as subdivisões sejam utilizadas, cabendo ao administrador da rede essa
escolha.
A política que é implementada pelos baldes é a seguinte: Se o usuário transmitir até 500
kbps, todo o seu tráfego será marcado como AF11 (pouca possibilidade de descarte). O
tráfego do usuário que estiver entre 500 kbps e 1 Mbps, será transmitido como AF12
(média possibilidade de descarte). O tráfego do usuário que estiver acima de 1 Mbps será
descartado imediatamente, mesmo que não haja congestionamento da rede. Conforme
vimos anteriormente, o balde de fichas permite que o usuário envie rajadas de amplitude
superior a taxa média, desde que ele compense essas rajadas com períodos de baixa
transmissão. A duração das rajadas é definida pelo tamanho do balde. Um balde de 62,5
Kbytes (500 Kbits) permite que o usuário transmita a uma taxa de 1 Mbps por um segundo,
sem que nenhum pacote seja marcado como AF12. Somente os pacotes da rajada que
excederem a duração de um segundo irão para o segundo balde. Nesse mesmo cenário,
para esvaziar o balde e ganhar o direito de transmitir outra rajada, o usuário deve ficar 1
segundo sem transmitir. O mesmo raciocínio se aplica aos pacotes que chegam no
segundo balde.
Formador de Tráfego com Balde de Fichas
FILA 1
b=2
saída
(bytes/s)
b=1
p=2
b=1
b=1
Formatador
r=1
p=2
r=1
t
t
Tráfego Entrada
Tráfego Saída
Regra:
Aplicar PHB A para Fila 1
Edgard Jamhour
O condicionador de tráfego (Traffic Shaping) determina em que velocidade os pacotes que
foram alocados nas filas do roteador serão removidos e encaminhados para rede.
Existem inúmeras estratégias utilizadas para condicionamento de tráfego. A figura ilustra o
efeito de um formatador de tráfego implementado segundo a estratégia do balde de fichas
(token bucket). Como vimos, o balde de fichas determina que o tráfego deve respeitar a
uma certa taxa média, mas admite que rajadas de duração controlada sejam transmitidas,
desde que essas sejam posteriormente compensadas por períodos de baixa transmissão.
Suponha que o tráfego que chega na entrada do roteador é mal comportado, contendo
rajadas de duração superior ao permitido. Se os pacotes não forem descartados pelo
mecanismo de policiamento, eles serão alocados na fila de saída do roteador para
posterior transmissão. O tempo que os pacotes irão aguardar na fila dependerá do
formatador de tráfego. Se a taxa de retirada e envio dos pacotes for definida pelo balde de
fichas, então o perfil do tráfego na saída do roteador será conforme ilustrado no lado direito
da figura. Observe que na saída o tráfego respeita perfeitamente ao limites imposto pelo
balde.
A formatação do tráfego é usualmente empregada para "suavizar" o tráfego, isto é, reduzir
as rajadas e aproximar o perfil do tráfego de sua taxa média, tornado-o mais comportado.
Esse efeito é muito útil para rede, pois evita o congestionamento instantâneo dos enlaces
devido a superposição de rajadas. A formatação, contudo, tem o aspecto negativo de
introduz atraso e jitter no tráfego do usuário, pois os pacotes deverão aguardar um tempo
variável na fila se chegarem com um perfil diferente daquele imposto na saída.
Formatado de Tráfego
INJUSTO (UNFAIR):
• A fila mais prioritária é servida
enquanto houver pacotes
• Algumas filas podem nunca
transmitir pacotes
JUSTO (FAIR):
• Cada fila é associada a um token bucket
• A fila mais prioritária é servida enquanto não
ultrapassar a especificação do bucket
r = 1 Mbps, b= 64Kbytes
VoIP +
Enlace com
capacidade de
4 Mbps
AF 4
r = 1 Mbps, b= 64Kbytes
VoIP -
AF 3
r = 2 Mbps, b= 0 Kbytes
Dados +
Escolhe de qual fila o
pacote será retirado
para encaminhamento
SAÍDA
AF 2
r = 4 Mbps, b= 0Kbytes
Dados -
AF 1
Edgard Jamhour
O formatador de tráfego deve determinar duas coisas:
a) Se uma dada fila tem pacotes "prontos" para serem transmitidos.
b) Se mais de uma fila tiver pacotes "prontos", de qual fila o pacote será removido primeiro.
Antes de discutirmos o significado de pacotes "prontos", precisamos considerar que
existem basicamente duas estratégias para escolher qual fila será servida primeiro: a
estratégia justa e a injusta (a ação de escolher em que ordem as filas são servidas é
comumente denominada "escalonamento").
Na estratégia injusta, uma prioridade é atribuída a cada uma das filas. No exemplo da
figura, as filas poderiam ser ordenadas da mais prioritária para menos prioritária como AF4,
AF3, AF2 e AF1. Nessa estratégia, todos os pacotes das filas estão sempre "prontos", isto
é, cada fila pode ser servida individualmente na capacidade máxima do enlace de saída.
Dessa forma, a fila AF4 é servida enquanto tiver pacotes. A fila AF3 será servida apenas
se não houver pacotes na AF2 e assim por diante. Essa estratégia é chamada de injusta
pois pode acontecer que as filas menos prioritárias jamais sejam servidas.
Na estratégia justa, um balde de fichas define uma taxa de transmissão para cada fila.
Nessa abordagem, os pacotes deverão aguardar a chegada das fichas de maneira a
estarem "prontos" para transmitir. No exemplo da figura, AF4 será servido antes das
demais filas até uma taxa máxima de 1 Mbps. Se a chegada de pacotes na fila for acima
de 1 Mbps, eles terão que aguardar na fila, cedendo sua vez para as filas menos
prioritárias. Nessa abordagem, garante-se que todas as filas irão receber um mínimo de
banda. A abordagem também garante que a fila AF4 será sempre servida com menos
atraso que as demais filas, desde que não seja excedido o seu limite de banda.
Descartador
Um novo pacote está chegando para a classe AF4:
- Se a fila estiver com mais de 90 de ocupação descartar o pacote
- Se a fila estiver entre 75 e 90% de ocupação aceitar apenas AF41
- Se a fila estiver entre 50 e 70% de ocupação aceitar AF41 e AF42
- Se a fila estiver entre 0 e 50% de ocupação aceitar AF41, AF42 e AF43
r = 1 Mbps, b= 64Kbytes
VoIP +
AF 4
Enlace com
capacidade de
4 Mbps
r = 1 Mbps, b= 64Kbytes
VoIP -
AF 3
r = 2 Mbps, b= 0 Kbytes
Dados +
Escolhe de qual fila o
pacote será retirado
para encaminhamento
AF 2
SAÍDA
r = 4 Mbps, b= 0Kbytes
Dados -
AF 1
Edgard Jamhour
O descarte preventivo de pacotes é uma estratégia comum para diminuir o atraso total
imposto aos pacotes que atravessam um roteador. Para entender como essa estratégia
funciona, suponha que exista um roteador com um enlace de saída de 4 Mbps, e uma fila
única com capacidade de 4 Mbits. Suponha também que em algum instante, o roteador
receba uma rajada de 5 Mbps durante 4 segundos, e que depois disso a taxa de chegada
fique fixa em 4 Mbits. O resultado desse cenário é que o excedente de 1 Mbps durante 4
segundos irá encher completamente a fila do roteador. Após isso, todos os pacotes que
chegarem ao roteador serão transmitidos com um atraso de 1s, mesmo que a taxa de
chegada se mantenha nos 4 Mbps suportados pelo enlace. Para evitar que isso aconteça,
o roteador precisa evitar que sua fique cheia por muito tempo. Dependendo da aplicação, o
atraso de 1s pode fazer com que os pacotes transmitidos não sejam mais úteis para o
destino final (isso seria o caso se o pacote for de VoIP). Dessa forma, é melhor descartar
alguns pacotes quando a fila cresce muito, pois isso irá beneficiar todos os pacotes que
chegarão depois.
Para a classe AF da metodologia Diffserv, o descarte de pacotes é implementado usando
as subdivisões de classe (AFX1, AFX2, AFX3). Por exemplo, suponha que uma fila é
responsável por servir a classe AF4, que deve garantir níveis baixos de atraso, mas aceita
níveis mais elevados de perdas e jitter. Uma política possível para essa fila é a seguinte:
Um novo pacote está chegando para a classe AF4:
- Se a fila estiver com mais de 90 de ocupação descartar o pacote
- Se a fila estiver entre 75 e 90% de ocupação aceitar apenas AF41
- Se a fila estiver entre 50 e 70% de ocupação aceitar AF41 e AF42
- Se a fila estiver entre 0 e 50% de ocupação aceitar AF41, AF42 e AF43
SLA: Service Level Agreement
PROVEDOR
BACKBONE
EF
cliente
NÓ ENTRE DOMÍNIOS
remarcar EF para AF4 e
AF2 para AF1
AF4, AF1
AF 2
cliente
Classificador
Se EF
Remarca
para AF4
ENTRADA
Policiador
Policiador
Marcador
Marcador
Descartador
Descartador
Fila de Saída
Fila de Saída
Se AF2
Remarca
para AF 1
Formatador de Tráfego
Edgard Jamhour
A metodologia Diffserv prevê a possibilidade de integração entre domínios de serviços
diferenciados administrados por entidades distintas. Na verdade, esse cenário pode
acontecer em várias situações onde o provedor de acesso a Internet utiliza um backbone
de outra operadora de telecomunicações.
Por exemplo, um pequeno provedor pode necessitar se conectar a um Backbone de outra
operadora para obter conectividade com regiões não cobertas por sua rede. Nessas
situações, o mesmo código DSCP pode ter significados distintos em domínios Diffserv
diferentes. A figura ilustra esse conceito. Suponha que um provedor tenha definido o
código EF para usuários com suporte a video-conferência e AF2 para os usuários que
transmitem qualquer tipo de dados. Todavia, o Backbone usa o código EF apenas para
VoIP e AF4 para o tráfego de video-conferência. Da mesma forma, o Backbone usa o
código AF2 apenas para tráfego de dados sensível ao atraso, usando o código AF1 para
dados sem requisitos de tempo-real.
Para essas situações, a abordagem Diffserv prevê que os nós de fronteira entre diferentes
domínios Diffserv devem fazer remarcação de pacotes. A estrutura de um nó de fronteira
está ilustrada na parte inferior da figura.
MPLS X Roteamento Tadicional (Hop by Hop)
Melhor caminho:
Nova demanda
50 Mbps para
200.0.0.128/25
Para 200.0.0.0/24: 1 -2 -3
Para 210.0.0.0/24: 1-4-5
100 Mbps para
200.0.0.0/25
1Gbps [900]
Cliente
1
2
100Mbps [0]
1Gbs [900]
100Mbps [50]
50 Mbps para
210.0.0.0/24
3
4
200.0.0.128/25
200.0.0.0/24
200.0.0.0/25
100Mbps [100]
100Mbps [100]
100Mbps [50]
100Mbps [50]
5
210.0.0.0/24
Edgard Jamhour
O MPLS: Multiprotocol Label Switching foi originalmente proposto pelo IETF em 1997,
como uma solução para acelerar o processo de roteamento na Internet. A idéia principal
por trás do MPLS era introduzir uma técnica de comutação por rótulos, similar a existente
nas tecnologias Frame-Relay e ATM. A técnica de comutação por rótulos (Label Switching)
é considerada mais eficiente que a técnica Hop by Hop usada pelo protocolo IP. No
protocolo IP, o endereço de destino de um pacote pode estar contido em múltiplas rotas de
destino ao mesmo tempo. Por exemplo, o endereço 200.1.2.3 pode estar nas rotas
200.1.2.0/24, 200.1.0.0/16, 200.0.0.0/8 e até mesmo 0.0.0.0/0. Dessa forma, um roteador
precisa localizar a melhor rota para encaminhar um pacote. No MPLS, por outro lado, o
próprio quadro traz um código que identifica a rota de destino de maneira única.
Além disso, a técnica de comutação por rótulos permite definir múltiplos caminhos para um
mesmo destino. Essa característica tornou o MPLS um instrumento primordial para
engenharia de tráfego, pois ele permite uma melhor distribuição do tráfego pelas rotas
alternativas que uma rede WAN oferece. Antes de discutir esse aspecto do MPLS, convém
ilustrar porque o roteamento Hop-by-Hop é considerado inadequado para engenharia de
tráfego.
Considere o exemplo ilustrado na figura. Suponha que uma operadora de
telecomunicações vendeu para um cliente um canal de 100 Mbps para a subrede
200.0.0.0/25 e 50 Mbps para a subrede 210.0.0.0/24. No roteamento hop-by-hop os
pacotes são sempre roteados pelo caminho de menor custo. Considerando as velocidades
dos enlaces, o caminho de menor custo para a rede 200.0.0.0/25 é 1-2-3 e para rede
210.0.0.0/24 é 1-4-5.
Suponha agora que a operadora deseja vender mais um canal de 50 Mbps para a rede
200.0.0.128/25. Considerando a velocidade dos enlaces, o melhor caminho para essa rede
também é 1-2-3. Como o enlace 2-3 já está exaurido, o novo canal não pode ser vendido.
Contudo, observando a rede, ainda seria possível alocar o canal usando o trajeto 1-4-5-3.
Roteamento MPLS
SE LABEL de entrada for 30 ENTÃO enviar para 2 com LABEL 31
SE LABEL de entrada for 10 ENTÃO enviar para 2 com LABEL 11
SE LABEL de entrada for 20 ENTÃO enviar para 4 com LABEL 21
50 Mbps para
200.0.0.128/25 com
LABEL 30
SE LABEL de entrada for 31 ENTÃO enviar para 4 com LABEL 32
SE LABEL de entrada for 11 ENTÃO enviar para 3 com LABEL 12
100 Mbps para
200.0.0.0/25 com
LABEL 10
30
31
10
1
Cliente
2
11
12
13
32
20
3
21
50 Mbps para
210.0.0.0/24
com LABEL 20
4
34
33
22
5
LSP: Label Switch Path
35
200.0.0.128/25
200.0.0.0/24
200.0.0.0/25
210.0.0.0/24
23
Edgard Jamhour
O MPLS utiliza uma técnica de roteamento denominada "comutação de rótulos" (label
switching), que é muito utilizada pelas tecnologias que permitem criar "circuitos virtuais",
como o ATM e o Frame Relay. No MPLS, o termo LSP (Label Switch Path) é utilizado ao
invés de circuito virtual, todavia seu significa é muito similar. Um LSP é um caminho fixo
entre dois pontos da rede, definido como uma seqüência de enlaces de roteadores. Cada
enlace de roteador usado por um caminho específico é identificado por um LABEL, de
forma que um LSP é definido por uma seqüência de LABELs.
Um LABEL é um número inteiro (de 12 bits), contido no cabeçalho MPLS. O cabeçalho
MPLS é colocado entre os cabeçalhos de enlace (camada 2) e rede (camada 3) de cada
pacote. Por essa razão o MPLS é classificado com sendo pertencente a camada 2.5 do
modelo OSI.
A figura ilustra o conceito de LSP e comutação por LABELs. Primeiramente, considere o
caminho do cliente para a rede 200.0.0.0/5 (indicado em vermelho na figura). Esse LSP é
definido como sendo a seqüência de LABELs 10-11-12-13. Do ponto de vista do cliente,
contudo, o caminho é identificado apenas como sendo LABEL 10. Para o cliente usar o
caminho ele simplesmente configura a regra: "marcar com LABEL 10 todos os pacotes
direcionados para a rede 200.0.0.0/25). Observe que o LABEL 10 tem significado apenas
local ao enlace. O roteador 1 possui uma tabela de encaminhamento por LABELs,
conforme indicado na figura. Essa tabela pode ser preenchida manualmente pelo
administrador da rede quando o LSP é criado, ou automaticamente, utilizando protocolos
de sinalização criados para o MPLS, como o RSVP-TE e o CR-LDP. Observe que quando
o roteador 1 encaminha o pacote, ele troca o LABEL, justificando o nome da técnica como
"label switching". Apenas o roteador 1 precisa efetuar o mapeamento entre o mundo IP e
os LABELs. Todos os demais roteadores fazem o roteamento baseado exclusivamente na
informação do LABEL.
Na seqüência da disciplina, teremos um módulo adicional, onde o MPLS será visto com
mais detalhes.
Conclusão
Para suportar QoS, diversos mecanismos de controle de
tráfego precisam estar disponíveis em roteadores e outros
elementos de rede.
Atualmente, três metodologias de QoS são empregadas em
redes IP:
–
–
–
Serviços Integrados: QoS por fluxo com protocolo de sinalização
Serviços Diferenciados: QoS para grandes classes sem protocolo de
sinalização.
MPLS: QoS para caminhos específicos, com ou sem protocolo de
sinalização.
Edgard Jamhour
Neste módulo, nós vimos as principais metodologias de qualidade de serviço definidas para
as redes IP. Para suportar a qualidade de serviço, diversos mecanismos de controle de
tráfego precisam estar disponíveis em roteadores e outros elementos de rede. Esses
mecanismos permitem alterar a forma como os pacotes recebidos pelo roteador são
encaminhados.
No modelo sem qualidade de serviço (denominado melhor esforço) os pacotes são
encaminhados segundo a filosofia FIFO (First In First Out). No modelo FIFO os pacotes
são servidos na ordem em que chegam no rotedor. Quando os mecanismos de QoS são
utilizados, os roteadores criam múltiplas filas para encaminhamento dos pacotes. Dessa
forma, é possível diferenciar o tratamento oferecido para os pacotes, e oferecer garantias
para o tráfego transportado.
O IETF definiu três metodologias principais para controlar a QoS em redes IP:
Serviços Integrados: faz o controle de QoS por fluxo, com o auxílio de um protocolo de
sinalização
Serviços Diferenciados: faz o controle de QoS apenas para grandes classes de tráfego e
sem protocolo de sinalização.
MPLS: faz o controle de QoS para caminhos específicos, com ou sem auxílio de um
protocolo de sinalização.
Atualmente, as metodologias de Serviços Diferenciados e MPLS são as mais empregadas
operadoras de telecomunicações.
Download

Qualidade de Serviços em Redes IP