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.