Qualidade de Serviço (QoS) : Marcação de pacotes QoS

Comparando os Comandos de Largura de Banda e de Prioridade de uma Política de Serviço QoS

22 Maio 2008 - Tradução Manual
Outras Versões: Versão em PDFpdf | Tradução por Computador (28 Julho 2013) | Inglês (19 Abril 2005) | Feedback


Índice

Introdução
Pré-requisitos
     Requisitos
     Componentes Usados
     Convenções
Sumário de Diferenças
Configurando o Comando de Largura de Banda
Configurando o Comando de Prioridade
Que Classes de Tráfego Podem Usar Largura de Banda Excedente?
Como a Largura de Banda não Utilizada é Alocada?
Usando o comando police para definir um máximo
Entendendo o Valor da Largura de Banda Disponível
Discussões relacionadas da comunidade de suporte da Cisco

Introdução

Os comandos bandwidth e priority definem ações que podem ser aplicadas dentro de um mapa de política de interface de linha de comando de qualidade modular (MQC), que você aplica a uma interface, subinterface ou circuito virtual (VC) através do comando service-policy. Especificamente, esses comandos fornecem uma garantia de largura de banda aos pacotes compatíveis com os critérios de uma classe de tráfego. Entretanto, os dois comandos têm diferenças funcionais importantes nessas garantias. Esta nota técnica explica essas diferenças e explica como a largura de banda não utilizada de uma classe é distribuída a fluxos compatíveis com outras classes.

Pré-requisitos

Requisitos

Não existem requisitos específicos para este documento.

Componentes Usados

Este documento não se restringe a versões específicas de software e de hardware.

As informações apresentadas neste documento foram criadas a partir dos dispositivos em um ambiente de laboratório específico. Todos os dispositivos usados neste documento começaram com uma configuração esclarecida (padrão). Se a sua rede estiver ativa, certifique-se de entender o impacto potencial de todos os comandos.

Convenções

Para obter mais informações sobre convenções de documentos, consulte Convenções e Dicas Técnicas da Cisco.

Sumário de Diferenças

Esta tabela lista as diferenças funcionais entre os comandos bandwidth e priority:

Função

bandwidth Comando

priority Comando

Garantia de largura de banda mínima

Sim

Sim

Garantia de largura de banda máxima

Não

Sim

Vigilante embutido

Não

Sim

Fornece baixa latência

Não

Sim

Além disso, os comandos bandwidth e priority são desenhados para estarem de acordo com diferentes objetivos de política de Quality of Service (QoS). Esta tabela lista esses objetivos distintos:

Aplicativo

bandwidth Comando

priority Comando

Gerenciamento de largura de banda para enlaces de WAN

Sim

Pouco

Gerenciar retardo e variações no retardo (variação de sinal)

Não

Sim

Melhorar o tempo de resposta do aplicativo

Não

Sim

Mesmo com as interfaces rápidas, a maioria das redes ainda precisa de um forte modelo de gerenciamento de QoS para lidar efetivamente com pontos de congestionamento e gargalos que ocorrem inevitavelmente devido a incompatibilidades de velocidades ou padrões variados de tráfego. Redes no mundo real têm recursos limitados e gargalos e precisam de políticas de QoS para garantir a alocação adequada de recursos.

Configurando o Comando de Largura de Banda

Os guias de configuração do Cisco IOS® descrevem o comando bandwidth como a "quantidade de largura de banda, em kbps, a ser atribuída à classe, . . .para especificar ou modificar a largura de banda alocada a uma classe pertencente a um mapa de política".

Veja o significado dessas definições.

O comando bandwidth (largura de banda) oferece garantia de largura de banda mínima durante um congestionamento. Há três formas de sintaxe de comando, conforme ilustrado nesta tabela:

Sintaxe do comando

Descrição

                  bandwidth {kbps}
               

Especifica a alocação de largura de banda como uma taxa de bit.

                  bandwidth percent {value}
               

Especifica a alocação de largura de banda como uma porcentagem da taxa de enlace subjacente.

                  bandwidth remaining percent {value}
               

Especifica a alocação de largura de banda como uma porcentagem da largura de banda que não foi alocada a outras classes.

Observação: O comando bandwidth define um comportamento, que consiste em uma garantia de largura de banda mínima. Nem todas as plataformas de roteador Cisco utilizam enfileiramento considerável ponderado (WFQ) como o algoritmo subjacente para implementar esse comportamento. Para obter mais informações, consulte Por Que Usar o CBWFQ?.

Configurando o Comando de Prioridade

Os guias de configuração do Cisco IOS descrevem o comando de prioridade como a reserva de "uma fila de prioridade com uma quantidade específica de largura de banda disponível para o tráfego de CBWFQ… Para dar prioridade a uma classe de tráfego baseada na quantidade de largura de banda disponível dentro de uma política de tráfego". O item abaixo explica o que essas definições significam.

Cria-se uma fila de prioridade com estes conjuntos de comandos:

Router(config)# policy-map policy-name
            
Router(config-pmap)# class class-name
            
Router(config-pmap-c)# priority kpbs [bytes]
            
         

Durante as condições de congestionamento, a classe do tráfego é a largura de banda garantida igual à taxa especificada. (Lembre-se que as garantias de largura de banda são apenas uma questão quando uma interface está congestionada.) Em outras palavras, o comando priority (prioridade) fornece uma garantia de largura de banda mínima.

Além disso, o comando priority implementa uma garantia de largura de banda máxima. Internamente, a fila de prioridade usa um token bucket que mede a carga oferecida e garante a conformidade do fluxo de tráfego à taxa configurada. Somente o tráfego em conformidade com o token bucket tem a baixa latência garantida. O tráfego excedente é enviado se o enlace não estiver congestionado ou tiver sido desconectado se o enlace estiver congestionado. Para obter mais informações, Consulte O Que É um Token Bucket?.

A finalidade do vigilante embutido é assegurar que as outras filas sejam atendidas pelo agendador de enfileiramento. No recurso de enfileiramento de prioridade original da Cisco, que usa os comandos priority-group e priority-list, o agendador sempre atendia a prioridade mais alta primeiro. Em casos extremos, as filas de prioridade mais baixa raramente eram atendidas e efetivamente ficavam sem nenhuma largura de banda.

A real vantagem do comando priority — e sua principal diferença em relação ao comando bandwidth — consiste na forma na qual ele fornece uma prioridade de desenfileiramento rígida para fornecer um limite na latência. Veja como essa vantagem está descrita no Guia de configuração do Cisco IOS: "Uma fila de prioridade máxima (PQ) permite que dados sensíveis a retardo, como os dados de voz, sejam desenfileirados e enviados antes que os pacotes de outras filas sejam desenfileirados." Vejamos o que isso significa.

Cada interface de roteador mantém estes dois conjuntos de filas:

Fila

Localização

Métodos de enfileiramento

Política de serviço se aplicam

Comando para ajuste

Fila de hardware ou anel de transmissão

Adaptador de porta ou módulo de rede

Somente FIFO

Não

tx-ring-limit

Fila de camada 3

Sistema de processador de camada 3 ou buffers de interface

WFQ, CBWFQ, LLQ com base no fluxo

Sim

Varia com o método de enfileiramento. Use o comando queue-limit com uma classe de largura de banda.

Na tabela acima, podemos ver que uma política de serviço se aplica apenas aos pacotes na fila de camada 3.

O desenfileiramento estrito refere-se ao programador de encapsulamento que atende à fila de prioridades e que encaminha seus pacotes ao anel de transmissão primeiro. O anel de transmissão é a última parada antes do meio físico.

Na ilustração a seguir, o anel de transmissão foi configurado para conter quatro pacotes. Se já houver três pacotes no anel, o máximo que se pode fazer é enfileirar para a quarta posição e depois esperar que os outros três esvaziem. Assim, o mecanismo de enfileiramento de baixa latência (LLQ) simplesmente desenfileira os pacotes à extremidade da fila first-in, first-out (FIFO) no nível do driver no anel de transmissão.

priorityvsbw1.jpg

Use o comando tx-ring-limit para ajustar o tamanho do anel de transmissão para um valor diferente do padrão. A Cisco recomenda o ajuste do anel de transmissão ao transmitir tráfego de voz. Consulte o Módulo do Recurso de Enfileiramento de Baixa Latência.

A priorização do tráfego é especialmente importante para aplicativos baseados em transações interativas e sensíveis a retardos. Para minimizar o retardo e a variação de sinal, os dispositivos de rede devem poder servir os pacotes de voz tão logo cheguem ou, em outras palavras, na forma de prioridade máxima. Só prioridade máxima funciona bem para voz. A menos que os pacotes de voz sejam imediatamente desenfileirados, cada salto irá gerar mais retardo.

A International Telecommunications Union (ITU) recomenda um retardo máximo unidirecional de 150 milissegundos de ponta-a-ponta. Sem o desenfileiramento imediato na interface do roteador, um único salto de roteador pode responder pela maior parte desse orçamento de retardo. Para obter mais informações, consulte Dicas Técnicas para Qualidade de Voz.

Observação: Com ambos os comandos, o valor em kbps deverá levar a carga adicional da camada 2 em consideração. Em outras palavras, se uma garantia for feita a uma classe, essa garantia refere-se à transferência de dados da camada 2. Para obter mais informações, consulte Quais Bytes são Contados pelo IP para Enfileiramento de ATM CoS? e Por que Usar o LLQ?.

Que Classes de Tráfego Podem Usar Largura de Banda Excedente?

Embora as garantias de largura de banda fornecidas pelos comandos bandwidth e priority tenham sido descritas com palavras como "reservada" e "largura de banda a ser reservada", nenhum dos dois comandos implementa uma reserva verdadeira. Em outras palavras, se uma classe de tráfego não estiver usando sua largura de banda configurada, qualquer largura de banda não utilizada é compartilhada entre as outras classes.

O sistema de enfileiramento impõe uma exceção a essa regra com uma classe de prioridade. Como observado acima, a carga oferecida de uma classe de prioridade é medida por um vigilante de tráfego. Durante condições de congestionamento, uma classe de prioridade não pode usar nenhuma largura de banda excedente.

Esta tabela descreve quando uma classe de largura de banda e uma classe de prioridade podem usar largura de banda excedente:

Comando

Congestionamento

Sem congestionamento

bandwidth Comando

Permissão para exceder a taxa alocada.

Permissão para exceder a taxa alocada.

priority Comando

O Cisco IOS mede os pacotes e aplica um sistema de medição de tráfego através de um token bucket. Os pacotes correspondentes têm a taxa de bps configurada vigiada e todo pacote excedente é descartado.

A classe pode exceder esta largura de banda configurada.

Observação: Uma exceção a essas diretrizes para LLQ é o Frame Relay no roteador Cisco 7200 e em outras plataformas que não sejam de processador de rota/switch (RSP). A implementação original do LLQ no Frame Relay, nessas plataformas, não permite que as classes de prioridade excedam a taxa configurada durante os períodos sem congestionamento. O Cisco IOS Software Release 12.2 remove essa exceção e garante que os pacotes sem conformidade sejam apenas descartados se houver congestionamento. Além disso, pacotes menores que o tamanho de fragmentação de FRF.12 não são mais enviados através do processo de fragmentação, reduzindo a utilização da CPU.

A partir da discussão acima, é importante entender que, como as classes de prioridade são vigiadas em condições de congestionamento, elas não recebem nenhuma largura de banda restante das classes de largura de banda. Portanto, a largura de banda restante é compartilhada por todas as classes de largura de banda e o padrão da classe.

Como a Largura de Banda não Utilizada é Alocada?

Esta seção explica como o sistema de enfileiramento distribui larguras de banda restantes. Veja a seguir como a Visão Geral Sobre o Enfileiramento Moderado Ponderado Baseado em Classe descreve o mecanismo de alocação: "Se houver largura de banda em excesso, o excedente será dividido entre as classes de tráfego na proporção das larguras de banda configuradas. Se a largura de banda não estiver toda alocada, a restante será proporcionalmente alocada entre as classes, com base nas larguras de banda configuradas." Vejamos dois exemplos.

No primeiro exemplo, o comando policy-map foo garante 30% da largura de banda para a classe bar e 60% da largura de banda para a classe baz.

policy-map foo
  class bar
    bandwidth percent 30
 class baz
  bandwidth percent 60

Se você aplicar esta política a um enlace de 1 Mbps, significa que 300 kbps está garantido para a classe bar e 600 kbps está garantido para a classe baz. É importante observar que 100 kbps é o restante para o padrão da classe. Se o padrão da classe não precisar disso, os 100 kbps não utilizados estarão disponíveis para uso pela classe bar e pela classe baz. Se ambas as classes precisarem de largura de banda, elas a compartilham com base na proporção das taxas configuradas. Nesta configuração, a taxa de compartilhamento é de 30:60 ou 1:2.

A próxima configuração de exemplo contém três mapas de política — bar, baz e poli. No mapa de política chamado bar e no chamado baz, a largura de banda é especificada por porcentagem. No entanto, no mapa de política chamado poli, a largura de banda é especificada em kbps.

Lembre-se de que os mapas da classe já devem estar criados antes de você criar os mapas de política.


 policy-map bar
  class voice
   priority percent 10
  class data
   bandwidth percent 30
  class video
   bandwidth percent 20
 policy-map baz
  class voice
   priority percent 10
  class data
   bandwidth remaining percent 30
  class video
   bandwidth remaining percent 20
 policy-map poli
  class voice
  class data
   bandwidth 30
  class video
   bandwidth 20

Observação: O comando de percentual restante de largura de banda foi apresentado no Cisco IOS versão 12.2(T). Consulte Enfileiramento de Baixa Latência com Suporte a Porcentagem de Prioridade para obter uma descrição detalhada do comando bandwidth.

Usando o comando police para definir um máximo

Se uma largura de banda ou classe de prioridade não deve exceder sua largura de banda durante períodos sem congestionamento, você pode combinar o comando priority com o comando police. Esta configuração impõe uma taxa máxima que está sempre ativa na classe. Optar por configurar uma instrução police nesta configuração dependerá do objetivo da política.

Entendendo o Valor da Largura de Banda Disponível

Esta seção explica como o sistema de enfileiramento deriva o valor de largura de banda disponível, conforme exibido na saída dos comandos show interface ou show queueing.

Criamos este mapa de política chamado leslie:

7200-16# show policy-map leslie
  Policy Map leslie
    Class voice
      Weighted Fair Queueing
            Strict Priority
            Bandwidth 1000 (kbps) Burst 25000 (Bytes)
    Class data
      Weighted Fair Queueing
            Bandwidth 2000 (kbps) Max Threshold 64 (packets)

Então, criamos um circuito virtual permanente (PVC) ATM, atribuímos este circuito à categoria de serviço ATM em tempo não-real de taxa de bits variável e configuramos uma taxa de células sustentada de 6 Mbps. Então aplicamos o mapa de política ao PVC com o comando service-policy output leslie.

7200-16(config)# interface atm 4/0.10 point
7200-16(config-subif)# pvc 0/101 
7200-16(config-if-atm-vc)# vbr-nrt 6000 6000 
7200-16(config-if-atm-vc)# service-policy output leslie
         

O comando show queueing interface atm exibe "Available Bandwidth 1500 kilobits/sec".

7200-16# show queueing interface atm 4/0.10
  Interface ATM4/0.10 VC 0/101
  Queueing strategy: weighted fair
  Output queue: 0/512/64/0 (size/max total/threshold/drops)
     Conversations  0/0/128 (active/max active/max total)
     Reserved Conversations 1/1 (allocated/max allocated)
     Available Bandwidth 1500 kilobits/sec

Vejamos como esse valor é derivado:

  1. 6 Mbps é a taxa média de células (SCR). Por padrão, 75% dessa taxa podem ser reservados:

    0.75 * 6000000 = 4500000
    
  2. 3000 kbps já está sendo usado pelas classes de voz e dados:

    4500000 - 3000000 = 1500000 bps
    
  3. A largura de banda disponível é 1500000 bps.

O valor máximo padrão de largura de banda reservável de 75% é desenhado para deixar largura de banda suficiente para tráfego adicional, como atualizações de protocolo de roteamento e manutenções de atividade da camada 2. Ele também cobre a carga adicional da camada 2 para os pacotes correspondentes às classes de tráfego definidas ou às classes padrão de classe. Agora você pode aumentar o valor máximo de largura de banda reservável nos PVCs ATM usando o comando max-reserved-bandwidth. Para obter versões do IOS com suporte e informações adicionais, consulte Entendendo o Comando max-reserved-bandwidth em PVCs ATM.

Nos PVCs de Frame Relay, os comandos bandwidth e priority calculam o valor total de largura de banda disponível de uma destas maneiras:

  • Se uma taxa mínima aceitável de informações comprometidas (minCIR) não estiver configurada, a CIR é dividida por dois.

  • Se uma minCIR estiver configurada, a definição da minCIR será usada no cálculo. A largura de banda total da taxa acima pode ser atribuída a classes de prioridade e de largura de banda.

Dessa forma, não há suporte ao comando max-reserved-bandwidth nos PVCs de Frame Relay, embora você deva certificar-se de que a largura de banda configurada seja grande o suficiente para acomodar carga adicional da camada 2. Para obter mais informações, consulte Configurando o CBWFQ em PVCs de Frame Relay.


Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Document ID: 10100