Baixe o app para aproveitar ainda mais
Prévia do material em texto
DESCRIÇÃO Os tipos de tráfego e a necessidade de mecanismos de qualidade de serviço (QoS) para o suporte às aplicações de redes multimídia. PROPÓSITO Compreender a necessidade do emprego dos mecanismos de QoS para a projeção de aplicações e de redes multimídia por meio da Internet. OBJETIVOS MÓDULO 1 Descrever os tipos de tráfego e as características das redes de melhor esforço MÓDULO 2 Identificar os mecanismos de QoS MÓDULO 3 Definir os serviços integrados e os diferenciados INTRODUÇÃO O tráfego de aplicações multimídia por meio das redes é sujeito a vários problemas inerentes às redes de melhor esforço, como atraso, variação de atraso (jitter), necessidade de largura de banda e perda de pacotes. Em um esforço para melhorar o suporte da rede a esse tipo de conteúdo, diversos estudos foram feitos, desde as formas de se dimensionar corretamente a rede IP tradicional – notadamente uma de melhor esforço – até a implementação de técnicas para a melhoria da QoS, com destaque para os serviços integrados e os diferenciados. MÓDULO 1 Descrever os tipos de tráfego e as características das redes de melhor esforço CARACTERÍSTICAS DOS FLUXOS DE DADOS DE APLICAÇÕES Quando analisamos as aplicações da Internet, devemos levar em conta as características dos seus fluxos de dados. Um fluxo do tipo pode ser analisado com base em quatro aspectos ou características: Características do fluxo de dados. Os quatro aspectos estão descritos a seguir: CONFIABILIDADE Especifica se determinado fluxo está ou não sujeito à perda de pacotes. A falta de confiabilidade em um fluxo implica que ele é muito sujeito à perda desses pacotes ou das confirmações. A sensibilidade das aplicações à confiabilidade é bem variada. O correio eletrônico exige uma alta confiabilidade. Já as aplicações de telefonia IP podem conviver com uma pequena taxa de perda de pacote. ATRASO O atraso origem-destino (ou fim a fim) corresponde ao tempo decorrido entre o envio do pacote pelo emissor e seu recebimento pelo destinatário. Por exemplo, quatro pacotes partem nos instantes 0, 1, 2, 3 e chegam ao destino nos instantes 20, 21, 22, 23 segundos. Eles, portanto, tiveram um atraso de 20 unidades de tempo. Aplicações de tempo real, como o VOIP, requerem um atraso mínimo, enquanto outras, como o correio eletrônico, conseguem conviver bem com o atraso. JITTER É a variação nos atrasos entre pacotes de um mesmo fluxo. Se, no exemplo dos quatro pacotes enviados nos instantes 0, 1, 2, 3, eles chegassem nos instantes 21, 23, 21 e 28 segundos, obviamente teriam atrasos diferentes: 21, 22, 19 e 24 segundos. Essa é a chamada variação de atraso (ou jitter). Nas aplicações de áudio e vídeo, a variação do atraso é um problema muito sério e deve ser tratado, o que não acontece nas de transferência de arquivos. LARGURA DE BANDA Aplicações diferentes possuem necessidades distintas de largura de banda. As de vídeo, estejam eles armazenados ou em tempo real, como uma videoconferência, por exemplo, exigem uma grande largura de banda, podendo atingir milhões de bits por segundo. Já as aplicações de áudio são duas ordens de grandeza menores em suas necessidades de largura de banda. A tabela a seguir mostra a sensibilidade de cada tipo de aplicação às características dos fluxos de dados: Aplicação Largura de banda Atraso Jitter Confiabilidade Correio eletrônico Baixa Baixa Baixa Média Transferência de arquivos Alta Baixa Baixa Média Acesso à web Média Média Baixa Média Login remoto Baixa Média Média Média Áudio por demanda Baixa Baixa Alta Baixa Vídeo por demanda Alta Baixa Alta Baixa Telefonia IP Baixa Alta Alta Baixa Videoconferência Alta Alta Alta Baixa Atenção! Para visualização completa da tabela utilize a rolagem horizontal Tabela: Sensibilidade das aplicações às características dos fluxos. Extraído de TANENBAUM, 2011, p. 254, adaptado por Sidney Nicolau Venturi Filho. Tomando como base as características dos fluxos, podemos classificar os de dados em classes. Cada uma delas possui características similares, o que permite seu tratamento de forma mais adequada quanto ao suporte da rede, fornecendo, assim, uma QoS adequada. QOS FUNDAMENTOS QoS é o acrônimo de quality of service, ou seja, qualidade de serviço. Trata-se de uma nomenclatura genérica para designar um conjunto de algoritmos capaz de fornecer vários níveis de tratamentos para tipos distintos de tráfego na rede. A ideia do emprego dos mecanismos de QoS é otimizar o uso da rede, permitindo que o tráfego fim a fim atenda de forma eficaz e eficiente às necessidades das aplicações, adequando-se, desse modo, às características dos fluxos de dados. QoS MODELAGEM DE TRÁFEGO Para garantir as características desejadas pelas aplicações por meio da QoS, é necessário saber qual tipo de tráfego está sendo gerado. Por conta disso, deve-se realizar a modelagem de tráfego. Redes de dados normalmente trabalham com um fluxo em rajadas, ou seja, a taxa de transmissão varia à medida que os usuários interagem com as aplicações e os computadores se alternam entre tarefas. A técnica de modelagem de tráfego busca regular a taxa média de entrada do fluxo de dados do cliente na rede do provedor, estabelecendo o que normalmente é chamado de acordo de nível de serviço ou SLA. Esse acordo define as características do serviço ofertado, permitindo a variação do fluxo de transmissão — incluindo as rajadas — do cliente. Dessa forma, o provedor reduz o congestionamento, ajudando a rede a cumprir sua promessa. Para que o esquema funcione, é necessário que o cliente mantenha o seu fluxo dentro das características definidas durante o estabelecimento do SLA. Se isso não ocorrer, os pacotes que excederem o padrão combinado poderão ser descartados pelo provedor ou marcados como tendo uma menor prioridade. O monitoramento de um fluxo de tráfego é denominado controle de tráfego. MODELOS Em uma rede sem QoS, o tráfego não é segregado e chega ao destino da melhor forma possível, baseado nas rotas do processo de roteamento e na largura de banda disponível. Em caso de congestionamento, os pacotes são descartados sem distinção. Esse modelo é denominado melhor esforço. Com o emprego de mecanismos de qualidade de serviço, o tráfego de algumas aplicações pode ter um tratamento prioritário, enquanto o de outras continua com o atendimento de melhor esforço. Dessa maneira, quando houver um congestionamento, os pacotes com esse atendimento serão descartados antes. Existem dois modelos para se implementar uma QoS: SERVIÇOS INTEGRADOS (INTSERV) Trata-se de um modelo baseado em reserva de recursos. Antes de iniciar uma comunicação, o emissor solicita aos componentes da rede a alocação de recursos necessários. O protocolo RSVP (resource reservation protocol) é utilizado para o controle de alocação dos recursos. SERVIÇOS DIFERENCIADOS (DIFFSERV) Os pacotes são marcados de acordo com as classes de serviços predeterminadas utilizando o campo ToS (de type of service) do cabeçalho do protocolo IP. O DiffServ tem sido o modelo mais utilizado para a implementação de QoS. A imagem a seguir ilustra os modelos de QoS. Modelos de QoS. MODELO DE MELHOR ESFORÇO O protocolo IP é um protocolo de melhor esforço e não oferece nenhum tipo de garantia. O modelo de melhor esforço trata todos os pacotes de dados da mesma forma. javascript:void(0) javascript:void(0) EXEMPLO Uma mensagem de voz de emergência é tratada da mesma maneira que uma fotografia digital anexada a um e-mail. Como nesse modelo não existe a QoS, a rede não pode saber a diferença entre os pacotes. Resultado: ela não pode tratá-los de forma preferencial. O modelo de melhor esforço é um conceito semelhante ao envio de uma carta por intermédio do correio normal. Ela, afinal, é tratada de forma idêntica a todas as outras cartas. Com o modelo de melhor esforço, a carta pode nunca chegar. A menos que tenha um acordo de notificação separado com o destinatário dela, pode ser que você aténunca saiba que ela não chegou. O modelo de melhor esforço oferece vantagens e desvantagens, a saber: Vantagem O modelo é o mais escalável. A escalabilidade é limitada apenas por limites de largura de banda. Nesse caso, todo o tráfego é igualmente afetado. Nenhum mecanismo de QoS especial é necessário. É o modelo mais fácil e de implantação mais rápida. Desvantagem Não há garantia de entrega. Os pacotes chegarão sempre que puderem e em qualquer ordem possível — se chegarem. Nenhum pacote tem tratamento preferencial. Os dados essenciais são tratados da mesma maneira que os dados casuais. OBTENDO O MELHOR DO MODELO DE MELHOR ESFORÇO Para que se possa obter o melhor desempenho possível no modelo de melhor esforço, o dimensionamento da rede é fundamental. As aplicações multimídia possuem requisitos de desempenho rigorosos, particularmente nos aspectos de atraso, jitter e perda de pacote. Uma solução seria “gastar dinheiro” criando uma infraestrutura melhor, ou seja, um enlace com capacidade de tráfego maior a fim de minimizar os congestionamentos e os consequentes atrasos e perdas de pacote. ATENÇÃO Se os enlaces possuírem a capacidade de atender a toda a demanda, os pacotes poderão correr a Internet sem atraso ou perda nas filas. Desconsiderando a capacidade do backbone da Internet, sobre a qual o usuário não tem influência direta, o enlace entre o cliente e o ISP precisa ser devidamente dimensionado. Mas ainda resta uma questão: como calcular a largura de banda necessária para sua aplicação? Veremos a seguir. LARGURA DE BANDA CONCEITO A largura de banda ou bandwidth (termo original em inglês) é a medida da capacidade de transmissão de determinado meio, conexão ou rede, determinando a velocidade que os dados passam por meio dessa rede específica. Essa largura é medida em bits por segundo, e não em bytes (8 bits = 1 byte), os quais determinam a medida de capacidade de determinado meio de transmissão por certa unidade de tempo, como Kbits/seg ou MBits/seg. Em alguns casos, ela também está relacionada à faixa de frequências, por exemplo, na medida de largura de banda para sinais analógicos. ATENÇÃO Por isso, em medidas de memória, 1 K significa 210 = 1024, enquanto 1 M corresponde a 220 = 1.048.576 (1024 X 1024). Já em largura de banda, 1 K significa 103 = 1000, e 1M corresponde a 106 = 1.000.000 (1000 X 1000). CALCULANDO A LARGURA DE BANDA NECESSÁRIA Quando desejamos implementar uma aplicação em tempo real, como, por exemplo, VOIP ou VOD, é preciso calcular a largura de banda necessária para atender às necessidades do tráfego de dados. Para exemplificarmos os cálculos, assumiremos que será utilizada uma aplicação VOIP. Para fazermos a codificação da voz, necessitamos de um codec. Cada um deles, porém, possui uma taxa de bits (bit rate) específica: Codificador Taxa (Kbps) PCM (G.711) 64 LD-CELP (G.728) 16 CS-ACELP (G.729a) 8 CS-ACELP (G.729) 8 MP-MLQ (G.723.1) 6,3 ACELP (G.723.1) 5,3 Atenção! Para visualização completa da tabela utilize a rolagem horizontal Tabela: Codec e sua taxa de bits. Elaborada por Sidney Nicolau Venturi Filho. Para relembrarmos como essa taxa é calculada, levaremos em consideração o codec PCM (G.711), o mais comum em aplicações VOIP. O teorema de Nyquist diz que a capacidade de um canal é o dobro da largura de banda vezes o logaritmo de dois do número de níveis discretos. A fórmula de cálculo, portanto, é esta: Atenção! Para visualização completa da equação utilize a rolagem horizontal A imagem a seguir descreve cada elemento da fórmula: Teorema de Nyquist Como o PCM trabalha como uma amostragem na faixa de 4.000Hz, temos B = 4.000 e 256 níveis de amostragem. Logo, M = 256 = 28; portanto, log2256 = 8. A fórmula ficaria então C = 2 X 4000 X 8. Isso dá como resultado 64.000, ou seja, 64 Kbps. Esse valor de 64 Kbps é a quantidade de bits que o codec gera por segundo. Tal valor, entretanto, ainda tem de ser “espalhado” ao longo do segundo, pois, se ele fosse transmitido de uma única vez, a conversação sairia com falhas. As transmissões precisam ser feitas em intervalos de tempo regulares medidos em milissegundos (ms). Esse processo é chamado de tempo de empacotamento. Esses intervalos podem variar, dependendo do codec e do tipo de aplicação, de 10ms a 60ms, determinando, com isso, quantos pacotes (payloads de voz) são gerados a cada segundo. A tabela a seguir exibe os intervalos mais comuns de cada codec em aplicações de VOIP: Codificador Tempo de empacotamento Pacotes por segundo PCM (G.711) 20 50 LD-CELP (G.728) 30 34 CS-ACELP (G.729a) 20 50 C = 2Blog2M CS-ACELP (G.729) 20 50 MP-MLQ (G.723.1) 30 34 ACELP (G.723.1) 30 34 Atenção! Para visualização completa da tabela utilize a rolagem horizontal Tabela: Tempo de empacotamento de codec em aplicações de VOIP. Elaborada por Sidney Nicolau Venturi Filho. Para o cálculo da banda necessária, utilizaremos a seguinte fórmula: Atenção! Para visualização completa da equação utilize a rolagem horizontal A imagem a seguir descreve cada elemento da fórmula: Cálculo da banda necessária. Consideremos ainda o G.711: como ele possui um tempo de empacotamento de 20ms, isso gera 50 pacotes de voz por segundo. Como a taxa de bits em um segundo é de 64.000, teremos então: P = 64000/50 Atenção! Para visualização completa da equação utilize a rolagem horizontal p = T N Isso gera P = 1280 bits por pacote, os quais, transformados para bytes, são iguais a 160 bytes, que é o payload típico do G.711. Esta tabela mostra o payload típico dos diversos codecs: Codificador Payload (bytes) PCM (G.711) 160 LD-CELP (G.728) 60 CS-ACELP (G.729a) 20 CS-ACELP (G.729) 20 MP-MLQ (G.723.1) 20 ACELP (G.723.1) 20 Atenção! Para visualização completa da tabela utilize a rolagem horizontal Tabela: Tamanho do payload. Elaborada por Sidney Nicolau Venturi Filho. Os cálculos feitos até agora nos permitiram determinar o tamanho do pacote de voz, mas não o cálculo da banda necessária. Isso ocorre porque os serviços a serem transportados na rede IP são encapsulados por meio dos protocolos RTP, TCP/UDP e IP e na tecnologia de camada 2: Encapsulamento do pacote de voz. Para fazermos o cálculo da largura de banda necessária, teremos de levar em conta o tamanho dos diversos cabeçalhos onde o pacote de voz é encapsulado. No entanto, o tamanho deles varia de acordo com a tecnologia utilizada: Encapsulamento em várias tecnologias. Para nossos cálculos, consideraremos a situação a seguir, que representa a transmissão em uma rede Ethernet utilizando o codec G.711: Transmissão em rede Ethernet. Observando a figura, podemos notar que, aos 160 bytes do pacote voz, são acrescidos os seguintes cabeçalhos: RTP 12 bytes UDP 8 bytes IP 20 bytes ETHERNET 18 bytes Então, temos 58 bytes de cabeçalho. Nosso pacote de voz terá, portanto, um tamanho total de 218 bytes (160 + 58). Como o G.711 gera 50 pacotes por segundo, seriam transmitidos 10.900 bytes por segundo (218 bytes X 50 pacotes). Ou melhor ainda: necessitaríamos de uma largura de banda para a transmissão de 87.200bps (10.900 bytes X 8 bits), ou seja, 87,2 Kbps. Isso significa que, para podermos transmitir 64 Kbps de voz, necessitamos de uma largura de banda de 87,2 Kbps. Cerca de 27% de tudo que foi transmitido, portanto, é composto de cabeçalhos ou overhead: Overhead do empacotamento. COMPRESSÃO DE CABEÇALHO RTP (CRTP) O que os cálculos abordados mostram é que, se for possível utilizar cabeçalhos menores, o overhead também diminuirá. Para atender a essa observação, foi adotada a possibilidade de se realizar a compressão de cabeçalho. O protocolo cRTP comprime o cabeçalho do pacote RTP, que transporta o tráfego de voz. Esta figura apresenta o formato de um pacote RTP: Pacote RTP Conforme observamos na figura anterior, o total dos cabeçalhos é de 40 bytes. O protocolo cRTP consegue, na maior parte do tempo, uma compressão de cabeçalho de 40 bytes para2 bytes, o que corresponde a uma redução de 95% na sobrecarga (overhead) referente aos cabeçalhos das camadas superiores. COMENTÁRIO A operação cRTP é simples: o tráfego total destinado a determinada interface é classificado, enquanto o que for RTP será separado para compressão. O tráfego RTP é, portanto, processado num compressor e colocado novamente na fila para ser transmitido. O MODELO DE MELHOR ESFORÇO Neste vídeo, você verá as limitações do serviço de melhor esforço para as aplicações multimídia, as características dos fluxos de dados e como elas impactam nas aplicações multimídia. VERIFICANDO O APRENDIZADO MÓDULO 2 Identificar os mecanismos de QoS MECANISMOS DE QOS Mecanismos de QoS são um conjunto de técnicas que podem ser aplicadas a fim de prover as melhores condições de tráfego para um fluxo da dados. Segundo Kurose (2014), esses mecanismos devem atender a quatro princípios: PRINCÍPIO 1 PRINCÍPIO 2 PRINCÍPIO 3 PRINCÍPIO 4 PRINCÍPIO 1 A marcação de pacotes permite que um roteador faça a distinção de pacotes pertencentes a diferentes classes de tráfego. Isso significa classificar os fluxos segundo suas necessidades de QoS. PRINCÍPIO 2 É desejável fornecer algum grau de isolamento de tráfego entre as classes para que uma classe não seja afetada adversamente por outra com um comportamento inadequado. PRINCÍPIO 3 Ao fornecer o isolamento de classes ou fluxos, é desejável utilizar os recursos (por exemplo, largura de banda e buffers) da maneira mais eficiente possível. PRINCÍPIO 4 Se os recursos suficientes nem sempre estiverem disponíveis e a QoS tiver de ser garantida, será necessário um processo de admissão de chamada no qual os fluxos declararão seus requisitos de QoS, sendo então admitidos na rede (com a QoS solicitada) ou bloqueados nela (se a QoS solicitada não puder ser fornecida pela rede). Descreveremos agora os três primeiros princípios pelo fato de eles estarem interligados. Já o quarto princípio será abordado em outro ponto deste módulo. MARCAÇÃO DE TRÁFEGO (PRINCÍPIO 1) A marcação de tráfego busca atender ao princípio 1 e parte do pressuposto de que uma boa solução é dividir os pacotes em classes de serviço que ofereçam recursos diferentes, como acontece, aliás, em qualquer atividade humana. EXEMPLO Em um voo, há quatro tipos de assento: os de primeira classe, classe executiva, econômica premium e econômica. O tratamento diferenciado é definido para a classe chamada serviço — e não para um fluxo (ou passageiro) em particular. Consideremos a situação da figura a seguir. Ela mostra um cenário simples de rede no qual dois fluxos de pacotes de aplicação que se originam nos hospedeiros H1 (telefonia IP) e H2 (HTTP) em uma LAN são destinados respectivamente aos hospedeiros H3 e H4 na outra LAN. Note ainda que o link entre os roteadores possui uma velocidade de 1,5 Mbits/s e que as LAN são do tipo fast ethernet (100 Mbits/s). Em um modelo de melhor esforço, os pacotes seriam misturados na fila de saída de R1 e transmitidos na ordem de chegada sem nenhum tipo de privilégio para os de voz. Como a taxa de transmissão da rede local é muito maior que a do enlace entre os roteadores, uma rajada de pacotes da origem HTTP poderia lotar a fila, fazendo os pacotes IP de áudio sofrerem atraso excessivo ou perda por causa do estouro do buffer em R1, o que afetaria de forma expressiva a aplicação de telefonia IP. Competição entre aplicações de áudio e HTTP. Para resolvermos essa situação, podemos priorizar a transmissão dos pacotes de voz. Dessa maneira, quando eles chegarem ao roteador, serão imediatamente transmitidos, passando à frente dos pacotes HTTP. Mas como podemos fazer isso acontecer? Como indicamos a prioridade de um pacote? A maneira de indicar a prioridade é fazendo sua marcação. Uma forma de fazer a marcação é identificar os fluxos por intermédio de quatro informações disponíveis nos cabeçalhos das camadas de transporte e rede: ENDEREÇO IP DE ORIGEM ENDEREÇO IP DE DESTINO PORTA TCP/UDP DE ORIGEM PORTA TCP/UDP DE DESTINO O encaminhamento dos pacotes entre a origem e o destino é feito pela camada de rede. Para tal, os roteadores ou switches (apenas os da camada 3 – L3) com funções de roteamento fazem a leitura do endereço IP de destino do datagrama, consultam sua tabela de roteamento e encaminham o pacote para a direção (interface) de melhor rota. ATENÇÃO A escolha da melhor rota baseia-se nos algoritmos de melhor custo. Eles podem considerar o menor caminho ou a melhor utilização de banda. O próprio processo de roteamento pode ser considerado uma forma de oferecer qualidade de serviço, já que se busca, com ele, o melhor caminho para o tráfego. O que não se consegue apenas com ele é o tratamento diferenciado do tráfego mediante encaminhamentos diferentes em função de: TIPO DE TRÁFEGO ENDEREÇOS IP DE ORIGEM E DESTINO PORTAS DE ORIGEM E DESTINO A identificação do tráfego de interesse baseia-se na busca de uma ou mais informações contidas nos endereços IP de origem e destino e nas portas de ambos. Em roteadores e switches, o mecanismo que permite essa identificação é a ACL ou lista de controle de acesso. ACL As ACLs (sigla de access control lists) são um conjunto de regras e ações sobre o tráfego. Elas são compostas por uma lista sequencial de instruções de permissão ou negação que se aplicam a endereços javascript:void(0) ou protocolos que são executados nas camadas da arquitetura TCP/IP. Para identificar o tráfego de origem da rede 200.20.20.0/24 com destino à aplicação servidor web, que está hospedada na máquina 230.17.17.9, deve-se procurar pacotes com os seguintes dados: ENDEREÇO DE ORIGEM 200.20.20.1 a 200.20.20.254 ENDEREÇO DE DESTINO 230.17.17.9 PORTA DE DESTINO 80 PORTA DE ORIGEM Qualquer PROTOCOLO TCP Os pacotes que se enquadrarem nessa regra poderão receber um tratamento diferenciado para esse pacote quanto à largura de banda, ao atraso etc. As ACL’s podem ser empregadas nas interfaces de entrada e de saída, funcionando de formas distintas, como explicado a seguir: ACLs de entrada Os pacotes de entrada, que chegam através das interfaces de entrada, são processados antes de serem roteados para a interface de saída. Uma ACL de entrada será eficiente porque evitará a sobrecarga das pesquisas de roteamento se o pacote for descartado. Além disso, se for permitido pelos testes, o pacote será processado para o roteamento. ACLs de saída Os pacotes de entrada são roteados para a interface de saída e, em seguida, processados pela ACL correspondente. ATENÇÃO As ACLs não funcionam em pacotes com origem no próprio roteador. ISOLAMENTO DE TRÁFEGO ENTRE CLASSES (PRINCÍPIO 2) Consideremos agora que, na situação apresentada anteriormente, os pacotes estejam sendo marcados e que os de voz possuam prioridade, ou seja, eles são transmitidos assim que chegam à fila, passando à frente dos pacotes HTTP. Se a aplicação de áudio gera 1 Mbit/s, isso significa — sabendo que o enlace entre os roteadores suporta 1,5 Mbits/s — que os pacotes HTTP recebem em média 0,5 Mbits/s de largura de banda. Isso permite que eles continuem sendo transmitidos. Porém, se a aplicação VOIP aumentar sua taxa para 1,5 Mbits/s, a aplicação HTTP simplesmente não receberá mais largura de banda para a transmissão, algo que também não é desejável. Para evitar isso, deve-se fazer o isolamento do tráfego entre as classes. A primeira solução é fazer a regulação de tráfego (demonstrada na figura a seguir). Nesse método, os fluxos das classes devem se ajustar a critérios predefinidos, por exemplo, o fluxo da voz não pode ultrapassar 1 Mbit/s. Para garantir isso, é implementado um mecanismo de regulação. Se a aplicação VOIP ultrapassar o limite, esse mecanismo atuará descartando pacotes ou os atrasando a fim de que o limite estabelecido não seja transposto e que o HTTP, no nosso exemplo, consiga obter banda para sua transmissão. Regulação e marcação de pacotes. Observemos que omecanismo de classificação e marcação de pacotes (princípio 1) e o de regulação (princípio 2) estão juntos na borda da rede, seja no sistema final ou em um roteador de borda. DICA O mecanismo do tipo “balde furado" — que será descrito a seguir — é um dos mais utilizados para a feitura dessa regulação. Uma segunda solução para fazer o isolamento é deixar para o mecanismo de programação de pacotes da camada de enlace a tarefa de realizar uma alocação da parte da largura de banda do enlace para cada uma das classes, como, por exemplo, fixar em 1 Mbit/s a largura de banda do VOIP e em 0,5 Mbits/s para o HTTP: Alocação de banda fixa por aplicação. UTILIZAÇÃO EFICIENTE DOS RECURSOS (PRINCÍPIO 3) Na imagem anterior, vimos um exemplo de alocação fixa da largura de banda. Apesar de o objetivo de garantir essa largura para o HTTP ter sido atingido, pode ocorrer um efeito colateral de desperdício de recursos quando o VoIP não tem nada para transmitir, porque os usuários podem ficar em silêncio. Neste caso, a largura de banda a ele alocada fica ociosa, já que o HTTP não pode utilizá-la. DICA Uma forma de evitar essa situação é por meio de mecanismos de escalonamento para gerenciar a fila dos pacotes a serem transmitidos pelos equipamentos. Além disso, deve existir a preocupação de garantir que todos os fluxos, mesmo os de menor prioridade, tenham seus pacotes transmitidos: Transmitindo pacotes de todos os fluxos. Por padrão, pacotes de diferentes fluxos de rede são multiplexados e enfileirados para a transmissão nos buffers de saída associados a um enlace. O modo como os pacotes enfileirados são selecionados para a transmissão pelo enlace é conhecido como políticas (ou disciplina) de escalonamento do enlace. POLÍTICAS DE ESCALONAMENTO Examinaremos algumas das mais importantes políticas de escalonamento. PRIMEIRO A ENTRAR/PRIMEIRO A SAIR (FIFO) Nessa política de escalonamento de pacotes conhecida como FiFO, o primeiro pacote que chega ao roteador ou ao switch é o primeiro que sai, ou seja, sua política nada mais é que transmitir os pacotes na ordem em que eles chegam. Ao chegarem ao equipamento, os pacotes são colocados em uma fila. Se a velocidade de chegada for maior que a da média de transmissão, eles se acumularão na fila até que não exista mais espaço. Isso fará com que, como demonstra a figura a seguir, novos pacotes entrantes sejam descartados. Após a transmissão, o pacote é retirado da fila, o que abre espaço para o recebimento dos novos: Disciplina FIFO. A figura a seguir mostra uma fila em operação. Na linha do tempo superior, setas numeradas indicam as chegadas dos pacotes. A linha inferior indica o momento das saídas deles. Já o tempo de transmissão é representado pelo pacote entre as duas linhas. Percebamos que os pacotes de saída seguem a mesma ordem de chegada, ainda que, pela existência da fila, exista um atraso de transmissão. Observemos ainda que, entre o final da transmissão do pacote 4 e o início daquela correspondente ao 5, o enlace de transmissão fica ocioso, pois a fila estava vazia: Operação da fila FIFO. ATENÇÃO Apesar da simplicidade de sua implementação, a disciplina FIFO não permite uma boa qualidade de serviço. Quando há muitos fluxos concorrentes para a saída, um fluxo agressivo em suas rajadas de pacotes pode afetar todos os outros, pois ele ocasiona o preenchimento de toda a fila, acarretando, assim, a perda de pacotes dos outros fluxos. Além disso, mesmo que a fila ainda tenha lugar, os do fluxo agressivo ocupam os primeiros lugares, o que aumenta o atraso para a transmissão daqueles dos demais fluxos. ENFILEIRAMENTO PRIORITÁRIO (PQ) Nessa disciplina de escalonamento denominada PQ, cada pacote está associado a uma classe de prioridade, que pode ser definida por uma marcação explicita no cabeçalho IP ou pelos endereços IP e de porta de origem ou destino. CABEÇALHO IP javascript:void(0) O cabeçalho IP possui o campo “Tipo de serviço”, que pode ser utilizado para determinar a classe de serviço do pacote. Na formação das filas por prioridade, os pacotes são classificados com um nível de prioridade e colocados na fila correspondente, já que cada nível possui uma fila específica. Os pacotes da fila de maior prioridade são processados primeiramente. Somente quando ela estiver vazia os daquela de menor prioridade serão processados. A figura a seguir contém o esquema de prioridade com duas filas (para simplificar seu entendimento): Fila por prioridade. ATENÇÃO Essa política de escalonamento fornece uma melhor QoS que a fila FIFO para os tráfegos de alta prioridade, como os de multimídia, já que eles têm um atraso menor. Ela, porém, pode gerar o seguinte efeito colateral: a inanição presente quando um fluxo de alta prioridade gera grandes quantidades de pacotes, monopolizando a largura de banda e impedindo que outros fluxos sejam processados. ENFILEIRAMENTO JUSTO PONDERADO (WFQ) O WFQ é uma disciplina de agendamento que proporciona uma alocação justa de largura de banda para todos os tráfegos de redes. O escalonador aplica a prioridade (ou pesos) para o tráfego identificado, classificando-o em conversas ou em fluxos associados a uma classe, como: GOLD SILVER BRONZE STANDARD A figura a seguir ilustra esse processo. Exemplo de WFQ. O WFQ determina a quantidade permitida de largura de banda de cada fluxo em relação aos outros fluxos. O algoritmo baseado em fluxo usado por essa política agenda, simultaneamente, o tráfego interativo para a frente de uma fila, buscando, com isso, reduzir o tempo de resposta. Em seguida, ele compartilha de forma justa a largura de banda restante entre os fluxos de largura mais alta. O WFQ classifica o tráfego em diferentes fluxos com base no endereçamento do cabeçalho do pacote, o que inclui certas características. Listaremos algumas delas a seguir: Endereços IP de origem e destino. Endereços MAC. Números de porta. Protocolo e valor do tipo de serviço (ToS) ou do campo classe de serviço (CoS). javascript:void(0) CLASSE DE SERVIÇO (COS) Marcação de tráfego realizada na camada de enlace que utiliza os campos do cabeçalho Ethernet quando o 802.1Q está habilitado. Precisamos entender as limitações do WFQ. Ele não é compatível com o encapsulamento e a criptografia, pois esses recursos modificam as informações de conteúdo do pacote necessárias para a classificação de WFQ. Embora se adapte automaticamente às mudanças nas condições de tráfego de redes, ele não possui o nível de controle de precisão em relação à alocação de largura de banda que o CBWFQ oferece. ENFILEIRAMENTO JUSTO PONDERADO COM BASE EM CLASSE (CBWFQ) O CBWFQ amplia a funcionalidade WFQ padrão a fim de oferecer suporte para as classes de tráfego definidas pelo usuário. Nessa política, essas classes são definidas tendo como base critérios de correspondência que incluem protocolos, listas de controle de acesso (ACLs) e interfaces de entrada. Os pacotes que satisfazem aos critérios de correspondência de uma classe constituem o tráfego dela. Uma fila FIFO é reservada para cada uma, enquanto o tráfego pertencente a uma classe é direcionado para a fila dela. Exemplo de CBWFQ. Para caracterizar uma classe, atribuem-se a ela a largura de banda, o peso e o limite máximo do pacote. Aquela atribuída em uma classe será a largura de banda garantida entregue à classe quando ocorrer uma situação de congestionamento. Depois de uma fila atingir o limite configurado para ela, são adicionados mais pacotes para a classe fazer com que ocorra o descarte total ou, dependendo de como a política da classe está configurada, o de um pacote. O total significa que um roteador simplesmente descarta qualquer pacote que chega ao fim de uma fila com os atributos daquele em espera. FILA DE BAIXA LATÊNCIA (LLQ) A funcionalidade LLQ incorpora um enfileiramento por prioridade (PQ) ao CBWFQ. Ao aplicar o PQ ao CBWFQ, o LLQ cria a possibilidade de que pacotes sensíveis a atrasos, como voz, sejamenviados antes dos dados em outras filas. Exemplo de CBWFQ com prioridade. ALGORITMOS PARA A REGULAÇÃO DE TRÁFEGO BALDE FURADO (LEAKY BUCKET) O funcionamento desse método corresponde ao de um balde com um pequeno furo em sua base em que, independentemente da velocidade com que a água o enche, a saída dela é feita com uma velocidade constante. Nesse esquema, quando o balde enche, a água extra é descartada. Em redes de computadores, o emprego da mesma ideia permite que o tráfego em rajadas seja suavizado. Conjuntos de blocos em rajadas são armazenados no balde e transmitidos a uma velocidade média (vide figura a seguir). Se um pacote chegar e a fila estiver cheia, ele será descartado da mesma forma que acontece com a água que transborda do balde. Balde furado. A figura a seguir demonstra a implementação simples do balde furado. Uma fila FIFO retém os pacotes de entrada e os retira da fila a uma velocidade constante, que poderá ser uma quantidade fixa de pacotes, se todos forem do mesmo tamanho, ou uma fixa de bytes, no caso daqueles de tamanhos diferentes. Implementação simples do balde furado. BALDE DE FICHAS (TOKEN BUCKET) O método do balde furado provoca uma saída constante independentemente das características do tráfego. Esse comportamento, muitas vezes, não é adequado para algumas aplicações. O mais adequado é permitir que a saída varie um pouco sua velocidade com o comportamento do tráfego em rajadas. Para suprir essas necessidades, existe o algoritmo do balde de fichas: ele retém aquelas que são geradas por um relógio na ordem de uma ficha para cada variação de T segundos. Nesse método, para que um pacote seja transmitido, ele deve, como exemplifica a figura a seguir, capturar e destruir uma ficha: Balde de fichas. Quando o balde enche, esse algoritmo descarta as fichas geradas, mas nunca abre mão dos pacotes. Esse método nos permite trabalhar melhor com os hosts ociosos ignorados no balde furado, pois, durante a ociosidade, eles acumulam as fichas que poderão ser consumidas para o envio de seus próximos pacotes. Esse esquema até consente que um host envie dados em rajada – desde que haja fichas suficiente no balde, o que era impossível no caso do furado. A figura a seguir demonstra a implementação do balde de fichas cujo controle é realizado por um contador associado a cada fluxo no seguinte algoritmo. Implementação do balde de fichas. A figura ilustrou os procedimentos seguintes: O contador é incrementado em 1 a cada ciclo de clock. Quando uma unidade de dados é enviada, o contador é decrementado em 1. Se o contador zerar, o host não poderá enviar dados. RESERVA DE RECURSOS (PRINCÍPIO 4) Os três primeiros princípios estão muito interligados: o segundo é decorrência do primeiro; o terceiro, do segundo. Todos, portanto, atuam a partir da marcação de tráfego e constituem a base para o modelo de QoS conhecido como serviços diferenciados. O quarto princípio, entretanto, possui uma proposta diferente: realizar a reserva de recursos, como buffers, largura de banda e outros, antes de enviar o pacote, algo que normalmente melhora bastante a QoS. Essa abordagem é a base do modelo de QoS denominado serviços integrados. Consideremos a situação da figura a seguir: Duas aplicações sobrecarregando o enlace de R1 a R2. A figura mostra a existência de dois fluxos de áudio de 1 Mbit/s cada, os quais, somados, ultrapassam a capacidade do enlace (1,5 Mbits/s). Como as duas aplicações são similares, ambas teriam as mesmas marcação e prioridade. Além disso, mesmo que isolássemos o tráfego entre elas, as duas perderiam 25% de seus pacotes, já que cada uma só conseguiria transmitir, em média, 0,75 Mbits/s. Duas questões podem surgir nesse momento: ESSA QUALIDADE DE SERVIÇO INUTILIZARIA AS DUAS APLICAÇÕES. O QUE A REDE DEVE FAZER ENTÃO? Como é impossível atender às duas simultaneamente, a rede precisa aceitar somente uma e bloquear a outra. MAS COMO A REDE PODE SABER ANTECIPADAMENTE QUE AS DUAS SÃO INCOMPATÍVEIS? Pela reserva de recursos. Na primeira aplicação que chegar com pacotes, a R1 solicitará a reserva de banda de 1 Mbit/s. Tendo em consideração que o enlace possui uma largura de banda de 1,5 Mbits/s, essa solicitação é aceita. A banda disponível fica, então, reduzida a 0,5 Mbits/s. Quando a segunda aplicação solicitar a reserva de 1 Mbit/s, R1 a bloqueará, pois não existe recurso disponível para a atender. Esse bloqueio será mantido até que a rede possa prover a QoS solicitada. MECANISMOS DE QOS Neste vídeo, você verá os mecanismos de QoS (Marcação, Isolamento, eficiência e reservas) e como eles estão associados aos quatro princípios. VERIFICANDO O APRENDIZADO MÓDULO 3 Definir os serviços integrados e os diferenciados SERVIÇOS INTEGRADOS (INTSERV) Há cerca de duas décadas, o Internet Engineering Task Force (IETF) iniciou estudos para a implementação da QoS por meio de um programa de pesquisa denominado serviços integrados (IntServ). A abordagem do IntServ é dividida em duas partes: RESERVA DE RECURSOS É necessário que seja realizada a reserva de recursos da rede antes que os dados sejam transferidos e os roteadores ao longo do caminho devem ter recursos para atender a reserva. POLICIAMENTO DE TRÁFEGO Deve ser realizado o policiamento de tráfego para que os pacotes transmitidos sejam monitorados, de forma que um fluxo não ultrapasse os recursos reservados. Veremos, a seguir, mais detalhes de cada parte: RESERVA DE RECURSOS javascript:void(0) javascript:void(0) A ideia da reserva de recursos é similar ao estabelecimento de um canal virtual entre a origem e o destino que possua características de QoS que atendam aos requisitos do fluxo de dados a ser transmitido. Serviços integrados. Antes do início da transmissão, o aplicativo informa à rede o perfil de tráfego e solicita determinado tipo de serviço que pode abranger os requisitos de largura de banda e de atraso. Se os dispositivos de rede ao longo do caminho puderem reservar a largura de banda necessária, o aplicativo de origem poderá começar a transmissão. Se a reserva solicitada falhar no caminho, esse aplicativo não enviará nenhum dado: Reserva de recursos. PROTOCOLO DE RESERVA DE RECURSOS (RSVP) O RSVP é um tipo de protocolo de sinalização utilizado no IntServ para a reserva de recursos, fazendo com que os receptores – e não o emissor – realizem a reserva de recursos. O RSVP possui vários tipos de mensagens. No entanto, para o nosso estudo, nos concentraremos somente em duas: PATH Como a reserva dos recursos é realizada pelos receptores, surge um problema: eles não conhecem o percurso seguido pelos pacotes antes de a reserva ser realizada, sendo que a rota seguida é um fator crítico para a reserva. Para resolver isso, o RSVP utiliza a mensagem Path. Ao longo de seu caminho, ela acumula as informações necessárias para os receptores identificarem a rota: Mensagem Path. RESV Após o receptor receber uma mensagem Path, ele envia uma mensagem Resv de volta ao emissor, fazendo uma reserva de recursos naqueles roteadores com suporte ao RSVP: Mensagem Resv. A figura a seguir ilustra todo o procedimento de reserva de recursos utilizando o RSVP. Ele está dividido em seis etapas: Funcionamento do RSVP. Veja a seguir cada passo ilustrado na figura: 1 O servidor define um caminho fixo para o cliente por meio da mensagem Path, o que inclui a descrição dos parâmetros do tráfego a ser transmitido. O cliente, por sua vez, efetua o pedido de reserva de recursos para o roteador 1, indicando o quanto de banda necessita e uma folga de atraso. 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 o transporte dos pacotes. Se a folga for muito pequena, o roteador precisaráutilizar recursos privilegiados, os quais, por sua vez, são mais escassos. 2 javascript:void(0) 3 Como o roteador 1 não tem, no exemplo acima, banda suficiente para tratar a requisição sem atraso, ele aloca a reserva em sua faixa menos privilegiada, consumindo 10ms da folga. O pedido de reserva é passado para o roteador 2, sendo a folga reduzida a 20ms. 4 5 O processo se repete até que a reserva chegue ao servidor. O servidor, por sua vez, envia a mensagem de confirmação da reserva (Resv) para o cliente. 6 Nota-se que, se algum dos roteadores ao longo do caminho não puder atender à reserva, uma mensagem de erro será retornada ao cliente. Se o roteador 1 não puder atender à reserva, ele simplesmente retornará um erro ao cliente sem repassar o pedido ao roteador 2. POLICIAMENTO DE TRÁFEGO O policiamento de tráfego visa a verificar se um fluxo está dentro dos parâmetros reservados. Quando o tráfego atingir a taxa máxima configurada, todo excedente será descartado (ou remarcado). Na figura a seguir, o primeiro gráfico indica como estava a transmissão antes de ser realizado o policiamento. A taxa de saída aparece como uma função dente de serra, com cristas e calhas. Já o segundo aponta a aplicação da política de policiamento, o que gera uma taxa máxima para o fluxo: Exemplo de policiamento de tráfego. PROBLEMAS COM SERVIÇOS INTEGRADOS Para Forouzan (2008), os serviços integrados possuem dois problemas básicos: ESCALABILIDADE O modelo de serviços integrados requer que cada roteador armazene informações de cada fluxo. À medida que a Internet cresce a cada dia, isso se torna um problema sério. LIMITAÇÃO DE TIPOS DE SERVIÇO Esse modelo fornece dois tipos de serviço: garantidos e com controle de carga. Aqueles que se opõem a tal modelo argumentam que as aplicações podem precisar de outros tipos de serviço. Veja um resumo das vantagens e das desvantagens dos serviços integrados: Vantagens Controle explícito de admissão de recurso ponta a ponta. Controle de admissão de política por solicitação. Sinalização dos números das portas dinâmicas. Desvantagens Intenso uso de recursos, devido à exigência de arquitetura stateful para sinalização contínua. javascript:void(0) javascript:void(0) Abordagem baseada em fluxo não escalável para grandes implementações, como a Internet. SERVIÇOS DIFERENCIADOS (DIFFSERV) O modelo QoS de serviços diferenciados (DiffServ) especifica um mecanismo simples e escalável para classificar e gerenciar o tráfego de redes, assim como para proporcionar garantias de QoS em redes IP modernas. O DiffServ pode, por exemplo, oferecer um serviço de baixa latência garantida para um tráfego de redes crítico, como voz ou vídeo, e, ao mesmo tempo, garantias de um tráfego de melhor esforço simples para serviços não críticos, como as transferências de arquivos ou o tráfego web. Ele supera os problemas de escalabilidade dos serviços integrados e as limitações do serviço de melhor esforço. O modelo de DiffServ é um conceito semelhante ao envio de um pacote usando um serviço de entrega. EXEMPLO Você solicita (e paga por) um nível de serviço quando envia um pacote. Pela rede de pacotes, esse nível pelo qual você pagou é reconhecido, enquanto o pacote é atribuído, dependendo do que solicitou, ao serviço preferencial ou ao normal. O DiffServ não constitui uma estratégia de ponta a ponta, pois não é possível aplicar as garantias desse tipo. Contudo, ele é uma abordagem mais escalável para a implementação da QoS. Diferentemente do IntServ e de seu QoS rígido, em que os hosts finais da QoS sinalizam suas necessidades para a rede, o DiffServ não utiliza a sinalização. Em vez disso, emprega uma abordagem "mais leve" de QoS, que pode ser chamada de “soft QoS”. Essa abordagem funciona no modelo de QoS provisionado, no qual os elementos da rede estão configurados para atender às várias classes de tráfego, cada uma com requisitos variados de QoS. Devido ao menor consumo de recursos, o DiffServ é o mecanismo mais utilizado. Esta figura é uma ilustração simples do modelo de DiffServ: Serviços diferenciados. Segundo Forouzan (2008), o serviço diferenciado, criado pela IETF, adota uma estratégia com duas diferenças fundamentais para o integrado: PROCESSAMENTO PRINCIPAL Ele foi transferido do núcleo da rede para as fronteiras dela, o que soluciona o problema de escalabilidade. Os roteadores não têm de armazenar informações sobre fluxos. As aplicações (ou hosts) especificam o tipo de serviço de que eles necessitam cada vez que transmitem um pacote. SERVIÇO O serviço por fluxo foi modificado para o serviço por classe. O roteador encaminha um pacote baseado na classe de serviço especificada no pacote, e não no fluxo. Isso soluciona o problema de limitação de tipos de serviço. Pode-se definir diferentes tipos de classes, de acordo com as necessidades das aplicações. A metodologia do DiffServ denomina o "domínio DiffServ" como um conjunto de roteadores que disponibiliza um serviço de comunicação IP com QoS. Os roteadores de um domínio DiffServ são divididos em: ROTEADORES DE BORDA (EDGE) Realizam interface direta com a rede do cliente. Geralmente, são os roteadores que fazem a fronteira entre a rede de acesso e o backbone. ROTEADORES DE NÚCLEO (CORE) Interconectam os roteadores de borda. Na topologia física, eles corresponderiam aos roteadores do backbone. A figura a seguir ilustra o domínio DiffServ: javascript:void(0) javascript:void(0) javascript:void(0) javascript:void(0) Domínio DiffServ. Nos serviços diferenciados, os roteadores de núcleo tratam apenas de grandes classes de tráfego, deixando aos roteadores de borda o tratamento dos fluxos individuais. Dessa forma, a qualidade de serviço ofertada no núcleo é garantida para o fluxo agregado — e não para o individual, como ocorre nos serviços integrados. Tráfego agregado. Nessa forma de atuação, estas funções são desempenhadas pelos roteadores: ROTEADOR DE BORDA Classificação de pacotes e condicionamento de tráfego. ROTEADOR DE NÚCLEO Envio do pacote ao próximo salto de acordo com o comportamento por salto (PHB) associado à classe do pacote. javascript:void(0) javascript:void(0) COMPORTAMENTO POR SALTO PHB O PHB define o comportamento a ser utilizado para o repasse de um pacote em um roteador com suporte a DiffServ. Isso implica que o PHB de uma classe pode resultar em um desempenho diferente para o de outra classe de serviço. EF PHB REPASSE ACELERADO (EXPEDITED FORWARDING – EF) Especifica que a taxa de partida de uma classe de tráfego de um roteador deve ser igual ou maior que uma taxa configurada. Ele oferece os seguintes serviços: Baixa perda Baixa latência Largura de banda garantida Dessa forma, o EF PHB repasse acelerado garante o equivalente à criação de uma conexão virtual entre a origem e o destino. AF PHB REPASSE ASSEGURADO (ASSURED FORWARDING – AF) Divide o tráfego em quatro classes e garante, a cada classe AF, o fornecimento de alguma quantidade mínima de largura de banda e de buffer. Ele ainda fornece a garantia de entrega do pacote desde que o tráfego da classe não ultrapasse o perfil de tráfego do nó, o que pode, eventualmente, gerar o descarte de algum pacote. DE PHB PADRÃO (PHB-DEFAULT) É o mesmo que a entrega best effort (melhor esforço), a qual, por sua vez, é compatível com o TOS. IDENTIFICAÇÃO DO TRÁFEGO Por meio de listas de acesso (ACLs), é possível identificar o tráfego, segregando os serviços. Apontaremos alguns tráfegos identificáveis a seguir: VOZ VÍDEO EM TEMPO REAL VÍDEO STREAMING DADOS CRÍTICOS TRÁFEGO DE ALTA DISPONIBILIDADE TRÁFEGO DE BAIXÍSSIMA PRIORIDADE E ALTA PROBABILIDADE DE DESCARTE A identificação do tráfego pode ser feita por meio de informações disponíveis nos cabeçalhos dos datagramas IP e dos segmentos TCP/UDP. Ela também pode usar outros critérios, tais como a interface por meio da qual o tráfego é transportado. O passo seguinte é marcar essa identificação conforme um critério de classes.Cada tipo de tráfego pode ser associado a uma classe de serviço. Para isso, é usado o ToS no cabeçalho do datagrama IP. Um código binário é escrito no byte ToS, identificando a classe de serviço à qual está associado o tráfego. A marcação acompanha o datagrama ao longo da rota na rede. ATENÇÃO É possível estabelecer, para cada classe de serviço, uma política de QoS particular na rede IP. Baseada na marcação do tráfego, a política pode ser aplicada em qualquer ponto da rede. Um mecanismo adotado para ler a marcação também é aplicado por meio de ACLs, as quais buscam especificamente os bits do byte ToS. MARCAÇÃO DE PACOTES A marcação de pacotes pode ser realizada na camada 2 ou na 3. Denominada CoS, a marcação em layer 2 utiliza os campos do cabeçalho Ethernet quando o 802.1Q está habilitado. O campo TPID do 802.1Q possui 2 bytes (16 bits). Os 3 primeiros (chamados de user-priority) são aqueles utilizados para a marcação do CoS. Dessa forma, com esses 3 bits, é possível definir 8 valores para o CoS: 000: Best Effort (CoS 0) 001: Bulk Data (CoS 1) 010: Critical Data (CoS 2) 011: Call Signaling (CoS 3) 100: Video (CoS 4) 101: Voice (CoS 5) 110: Routing (CoS 6) 111: Reserved (CoS 7) ATENÇÃO O CoS 3 é usado para sinalização e o CoS 5, para voz (RTP). É assim que o telefone IP marca os seus pacotes por default. Conhecida como ToS, a marcação em layer 3 utiliza 8 bits do cabeçalho IPV4. Os 3 primeiros são chamados de IP precedence, formando, com os próximos 3 bits (ou seja, os 6 primeiros), os DSCPs. Já os 2 bits restantes do campo são usados para o ECN: Campo ToS. ATENÇÃO No IPV6, o campo “Classe de tráfego” é utilizado com a mesma finalidade e notação. Uma característica interessante do DSCP é que o IP precedence (três primeiros bits do campo) utiliza a mesma representação do CoS. Dessa maneira, se estiver marcado o CoS 5 (101), o IP precedence também será 101 (precedence 5). Isso permite o estabelecimento de uma correlação entre as marcações das camadas de enlace e de redes. Porém, ao acrescentarmos os DSCPs, começamos a utilizar os outros 3 bits. Quando os 3 bits seguintes são 000, é formada a classe CSx do DSCP: CS1 = Precedence 1 = 001000 = DSCP 8 CS2 = Precedence 2 = 010000 = DSCP 16 CS3 = Precedence 3 = 011000 = DSCP 24 CS4 = Precedence 4 = 100000 = DSCP 32 CS5 = Precedence 5 = 101000 = DSCP 40 CS6 = Precedence 6 = 110000 = DSCP 48 CS7 = Precedence 7 = 111000 = DSCP 56 Se os valores dos 3 bits à direta forem mexidos, será formada a classe AFxy (de assured forwarding), em que x é o IP precedence e y, a preferência no descarte de pacotes em caso de congestionamento javascript:void(0) (utilizado em algoritmos de congestion avoidance como o WRED). Quanto maior for o y, maior será a preferência de descarte desse pacote. CLASSE AFXY (DE ASSURED FORWARDING) É a classe do AF PHB repasse assegurado. O precedence (x) varia de 1 a 4 e o drop preference (y), de 1 a 3. Com isso, obtêm-se os seguintes valores possíveis: AF11 = 001010 = DSCP 10 AF12 = 001100 = DSCP 12 AF13 = 001110 = DSCP 14 AF21 = 010010 = DSCP 18 AF22 = 010100 = DSCP 20 AF23 = 010110 = DSCP 22 AF31 = 011010 = DSCP 26 AF32 = 011100 = DSCP 28 AF33 = 011110 = DSCP 30 AF41 = 100010 = DSCP 34 AF42 = 100100 = DSCP 36 AF43 = 100110 = DSCP 38 No entanto, resta uma dúvida: se o IP precedence varia de 1 a 4 no AF, o que acontecerá quando o precedence for 5 (justamente como os pacotes de voz são marcados)? Encontra-se aí a classe EF DSCP 46, 101110, que é marcada por padrão pelos telefones e softphones de VOIP. Além deles, também existe o DSCP 0, que é a classe BE (best effort). CLASSE EF A classe do EF PHB repasse acelerado. javascript:void(0) javascript:void(0) CLASSE BE A classe do DE PHB melhor esforço. CLASSES DE SERVIÇOS A PARTIR DO VALOR DO DSCP A partir dos valores possíveis para o DSCP, existem seis classes padronizadas: DF – Default Forwarding (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. Atenção! Para visualização completa da tabela utilize a rolagem horizontal Tabela: Classes DSCP. Elaborada por Sidney Nicolau Venturi Filho. As classes AF possuem — cada uma — 3 subclasses, totalizando 12 possibilidades. No roteador, cada uma é tratada como uma fila independente, sendo que a fila EF é a mais prioritária e a DF, a menos prioritária. Dessa forma, a qualidade de serviço oferecido varia nessa mesma ordem, isto é, EF é a máxima qualidade e DF, a mínima: Prioridade entre as classes. A RFC 4594 padronizou as classes de serviços para algumas aplicações: Classe de serviço DSCP Tratamento de borda Tolerância para Escalonamento 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 Dados sensível a atraso AF3(1- 3) AF2(1- 3) AF1(1- 3) Baixo/médio Baixo Baixo Médio Baixa/alto médio/alta Alta Alta Alta Taxa Dados de grande vazão Standard (Best Efford) DF Taxa Atenção! Para visualização completa da tabela utilize a rolagem horizontal Tabela: Classes de serviço da RFC 4594. Elaborada por Sidney Nicolau Venturi Filho. Veja um resumo das vantagens e desvantagens dos serviços diferenciados: Vantagem Altamente escalável. Vários níveis diferentes de qualidade. Desvantagem Nenhuma garantia absoluta de QoS. Exigência de trabalho em conjunto, em toda a rede, por parte de um grupo de mecanismos complexos. POLÍTICAS DE QOS Não adianta nada você marcar os pacotes e definir suas classes, mas não aplicar as regras (policy) devidas para cada classe de tráfego nos roteadores. A política de QoS define as regras que organizam o tráfego conforme a necessidade do uso da banda passante, podendo vigorar em níveis de prioridade, reserva de banda e pré-roteamento. Essa política define as ações dos pacotes dentro da classe de serviço. Essas ações causam certa mudança em algum dos quatro fatores que influenciam a transmissão. É nesse momento que designamos as ferramentas de QoS. Pode-se escolher a ferramenta de enfileiramento para garantir uma quantidade de banda à classe de service ou para evitar congestionamento dentro das filas. Ela é fundamental para um rendimento eficaz e produtivo do controle de entrada e saída do tráfego. Graças a tal política, amplia-se a visão relacional, além de facilitar e otimizar todo o controle de banda. A implantação de uma política de QoS segue estes passos: PASSO 1 Identificar o tráfego e seus requerimentos. Separar, de forma otimizada, a banca necessária para cada aplicação dentro da rede. PASSO 2 Dividir o tráfego em classe. Designar o tráfego para determinar a classe, relacionando-a com precisão, a fim de atender a aplicação. PASSO 3 Definir as políticas de QoS para cada classe. Essencialmente, a política de QoS é baseada no trabalho realizado nos dois primeiros passos. Veremos a seguir um exemplo de implementação de QoS. O processo de configuração de QoS em dispositivos Cisco consiste em três etapas básicas: Classificação do tráfego via class-map. Definição da política por meio de policy-map. Aplicação da policy-map na estrada/saída de alguma interface. Juntos, esses recursos são poderosos para classificar e marcar diversos tipos de tráfego para fins de QoS. ATENÇÃO Class-maps podem ser escritas para classificar tráfego de áudio, vídeo, dados, aplicações específicas etc. Já as policy-maps utilizam a classificaçãoprévia para fazer a marcação dos pacotes, comumente escrevendo os códigos DSCP (6 bits) do campo ToS (8 bits) do cabeçalho IP. javascript:void(0) javascript:void(0) javascript:void(0) Consideremos agora a seguinte situação: Você deseja criar uma política para pacotes da classe de serviço 5 (CoS 5). Para essa classe, você deseja limitar a largura de banda a 3000 e o tamanho da fila a 30 pacotes. Deseja, também, aplicar essa política à interface de e1/1 como uma política de saída. Como fazer isso? Veja o passo a passo a seguir: router(config)# class-map class1 router(config-cmap)# match cos 5 Match-all é o padrão router(config-cmap)# exit O primeiro passo é criar a classe e marcar os pacotes. #class-map - cria o mapeamento chamado class1 #match cos 5 - associa a classe de serviço ao mapeamento router(config)# policy-map policy1 router(config-pmap)# class class1 router(config-pmap-c)# bandwidth 3000 router(config-pmap-c)# queue-limit 30 router(config-pmap)# exit O segundo passo é criar uma política. #policy-map policy1 - cria uma política chamada policy1 #class class1 - associa a classe class1 a política policy1 #bandwidth 3000 - limita a largura de banda de class1 a 3000 #queue-limit - estabelece em 30 a quantidade de pacotes na fila da classe router(config)# interface e1/1 router(config-if)# service-policy output policy1 router(config-if)# exit No terceiro, atribui-se a política a uma interface, definindo a direção. #service-policy output policy1 - associa a política a interface e1/1 como política de saída. INTSERV E DIFFSERV Neste vídeo, você verá os serviços integrados e diferenciados, com foco maior no DiffServ. VERIFICANDO O APRENDIZADO CONCLUSÃO CONSIDERAÇÕES FINAIS Neste conteúdo, conhecemos os problemas que os fluxos de multimídia encontram em uma rede de melhor esforço. Descrevemos inicialmente as características que afetam os fluxos e mostramos como se dimensiona uma rede para minimizá-las. Em seguida, apresentamos os conceitos de qualidade de serviço (QoS) e os mecanismos de sua implementação. Ainda estudamos os dois modelos de QoS (os serviços integrados e os diferenciados), pontuando suas características e seu funcionamento. Também descrevemos o protocolo RSVP e os tipos de marcação de tráfego. Por fim, oferecemos um exemplo de uma política de QoS. PODCAST Ouça o podcast sobre as limitações do serviço de melhor esforço para as aplicações multimídia e como a rede deve se adaptar para que possa suportar as aplicações multimídia. AVALIAÇÃO DO TEMA: REFERÊNCIAS COMER, D. E. Interligação de redes com TCP/IP. 6. ed. Rio de Janeiro: Elsevier, 2015. FOROUZAN, B. Comunicação de dados e redes de computadores. 4. ed. São Paulo: McGraw-Hill, 2008. KUROSE, J. F.; ROSS, K. W. Redes de computadores e a Internet: uma abordagem top-down. 6. ed. São Paulo: Pearson Education, 2014. TANENBAUM, A. Redes de computadores. 5. ed. Rio de Janeiro: Campus, 2011. EXPLORE+ Faça uma pesquisa na Internet para saber como se implementa uma QoS nos equipamentos de redes. CONTEUDISTA Sidney Nicolau Venturi Filho CURRÍCULO LATTES javascript:void(0);
Compartilhar