QoS (Qualidade de Serviço)
Prezados, nosso objetivo neste post é conhecer um pouco sobre o assunto QoS (Qualidade de Serviço). Para facilitar nosso entendimento, contamos com uma pequena série de quatro posts. Este é post I sobre QoS e daremos os primeiros passos valorizando a teória essencial para a compreensão dessa tecnologia. É provável que este conteúdo possa ajudar aos interessados nas carreiras do CCVP/CCIP ou mesmo CCNP. Desta forma, vamos em frente…
CRONOGRAMA
Parte I
- Fundamentos do QoS
- Componentes do QoS
- Auto-QoS, CLI e MQC
Parte II
- Classificação e marcação
- Métodos de enfileiramento
- Métodos de evitar congestionamentos
1 - Fundamentos do QoS
1.1 - Introdução ao QoS
- 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 capazes de fornecer vários níveis de tratamentos para diferentes tipos de tráfego na rede. O propósito dessa tecnologia é otimizar o uso da banda passante provendo um tráfego fim-a-fim eficaz e econômico. O QoS resolve a necessidade da aquisição de mais banda para a rede, pois supre a demanda de tráfego das LANs/WANs de forma inteligente e organizacional através dos mais diversos mecanismos que ele dispõe.
- O QoS é muito importante para as redes convergentes, pois as tornam capazes de transportar de maneira bem próximo ao ideal os mais diversos tráfegos, como: vídeo, voz e dados, de modo simultâneo sem que um interfera no outro. Cada um desses tráfegos, merece um tratamento especial conforme suas características. Assim, é necessário que os cuidados especiais sejam obedecidos para que não ocorra possíveis problemas. Que cuidados são esses? Calma, veremos mais na frente.
- O QoS tornou-se indispensável em alguns casos, como por exemplo, ficaria impraticável o tráfego pela WAN de video e voz se não houvesse QoS, concordam? Salvo os casos em que há muita banda para WAN. Entretanto, sabemos que quanto maior for Banda do Circuito mais elevado é o custo desses links. Portanto, podemos citar que a economia de banda seja o benefício principal do QoS.
1.2 - Pontos chaves do QoS
- Os fatores que determinam à qualidade na transmissão são: latência, jitter, perda de pacotes e banda passante. A seguir iremos abordar esses pontos dos quais são tão importantes.
1.2.1 - Latência
- A latência ou delay, é o tempo gasto para iniciar outro procedimento de dados. O delay é subdividido em sensível ou não ao tráfego. O menor delay ocorre no sensível a tráfego. Existe inúmeros tipos de delays, como: serialização, propagação, encaminhamento, entre outros. Eita! Está começando a complicar! E o que diferencia entre eles? Apenas o modo em que ele inicia e que termina. Como exemplo, temos: Forwarding Delay (lantência baseada em encaminhamento) que se refere ao tempo para encaminhar o pacote até o seu destino.
- As taxas de delays variam na casa dos mili segundos. O Delay de maneira geral define os bits do pacote dentro da interface física até a saída. Para entendermos melhor o delay veremos a seguir o jitter.
1.2.2 - Jitter
- Conhecido como: “Variação de Delay”, ou seja é a variação do atraso entre os pacotes consecutivos.
- Quanto menor o Jitter maior sua prioridade, pois os pacotes vão estar nas filas cada vez mais juntos.
- O Jitter influencia bastante, pois reduzindo o delay, tornando uma variação menor possível, o prazo para entrega dos pacotes também reduz.
- O Jitter pode ser suavizado através das técnicas de compressão e das técnicas de delay. Isso será abordado apenas na parte III (aguardem, por favor).
- É importante lembrar que a tolerância de resposta é um fator de determinístico para cada aplicação. Assim, se você utiliza correio eletrônico por exemplo, não terá a mesma importância para a variação da latência do que uma chamada de telefonia IP. Pois em breve iremos perceber que o tráfego de voz é bem sensível a latência.
1.2.3 - Perda de pacote
- Nas técnicas de QoS, pouco se fortificou pela Perda de Pacotes, muitas vez é realmente inevitável a perda de pacote. Entrentanto, abaixo encontram-se os principais mecanismos de controle de perda de pacotes:
- Controle de Bits com Erros: Que varia de protocolo para protocolo, no TCP teríamos um controle de FCS (Frame Check Sequence) minucioso e que garante menores taxas de erros;
- Controle da falta de espaço em uma fila: É outra técnica importante que pode ajudar bastante durante o ajuste incorreto do pacote com jitter.
- A título de VoIP/ToIP, usamos a integridade com o CAC (Call Admission Control) que é a técnica mais adequada para evitar perdas de pacotes. Este assunto será tratado na parte III com mais detalhes.
1.2.4 - Bandwidth
- Refere-se ao número de bits por segundo que pode, inteligentemente, ser expedido para sucesso na entrega.
- Trata-se do “gargalo”, ou seja, a espessura da porta que pode trafegar os dados ou a voz ou o video. É importante usar técnicas de bandwidth para otimizar os processos de entrega dos pacotes. Essas normas usam de enfileiramentos extras para garantir um equilíbrio no percentual de transporte dos dados.
- A titulo de WAN, sabemos que o HDLC e PPP possuem o valor da banda é o próprio valor dela de forma dedicada. Já para circuitos Frame-Relay, temos bandwidth sendo chamada de EIR (Excess Information Rate), ou seja, a taxa máxima que um tráfego pode percorrer. Ainda para Frame-Relay, temos a taxa CIR (Commited Information Rate) que é a banda mínima garantida de envio ao destino. É justamente no CIR que ocorrerá atuação do QoS para os circuitos frame-relay. Em relação aos circuitos MPLS, trata-se como os casos PPP/HDLC de forma transparente para os roteadores do lado cliente.
2. Componentes do QoS
2.1 - Modelos de QoS
- IntServ - Serviços Integrados, usa um conceito baseado em fluxo unido com uma sinalização do protocolo ao longo do caminho que o pacote percorrer. Subdividido em: Serviços Garantidos para fornecer o fim-a-fim e Carga Controlada para carregar e descarregar tráfegos na rede. Vantagens: conceito simples, como exemplo de uso desse serviço temos o CAC (Controle de Admissão de Chamadas) e descreve para o fluxo de QoS , marcando arquitetura chamada. Desvantagens: todos os pontos são implementados pelo RSVP (Protocolo de Reserva de Recursos), é pouco escalável, apresenta periódica atualização de mensagens que são usadas durante o transporte fim-a-fim e todos os elementos da rede obrigam principalmente o estado do câmbio sinalizar as mensagens.
- DiffServ - Serviços Diferenciados, usa a marcação para classificar e tratar cada pacote independentemente. Vantagens: escalável, performance devido à decisão de QoS ser realizado no valor fixo, flexível, como todos os fabricantes usam IPv4 ou IPv6 o DiffServ torna-se inter-operante e apresenta baixo consumo de CPU para os equipamentos. Desvantagens: sem fim-a-fim de reservação de banda, garantia de serviços pode ser prejudica pela rede, não é capaz de implementar o mecanismo com atuação do RSVP.
- BestEffort - Serviço de Melhor Esforço. Na realidade, não é definido como um tipo de QoS, pois ele trata todos os pacotes como de igual importância. Portanto, nele o pacote que chegar primeiro é o que sairá primeiro. Um exemplo clássico é o tráfego pela Internet, pois não há como propogar diferenciação de pacote por esse meio, salvo no caso de QoS Pré-classificado e tunelado (iremos abordar esse assunto na parte IV).
- MPLS - Multi-layer Protocol Label Switching , normalmente, é implementado somente pelos switches modulares de camada 3 ou roteadores de alto porte. Ele é o protocolo que engloba todas funcionalidades de QoS, incluindo InterServ+DiffServ e integrando de forma inteligência um pré-roteamento, feito pelo LabelSwitching. Recomenda-se que toda comutação seja feita pelos switches chassis de camada 3, pois apresentam um maior vazão de velocidade. O MPLS é bem inteligente e é capaz de utilizar tanto fluxo por camada 2 ou 3, de modo a garantir menor latência possível. Então, de forma abstrata, ele trata o fim-a-fim das transmissões de maneira bem otimizada. Reforçando: para os roteadores do lado cliente não há necessidade de implantação de MPLS, pois ele atua de forma transparente.
2.2 - Os comportamentos dos Serviços Diferenciados
- Como foi citado, o DiffServ é bem flexível, mas para enterdemos esse modelo mais a fundo, precisamos saber que tudo começa no byte ToS (Type of Service) que fica dentro do cabeçalho do IPv4.
- Como o ToS é um byte, ele é obviamente composto de 8 bits, sendo que apenas 6 bits são utilizados propriamente para formação do DS Field (Campo dos Serviços Diferenciados) e os outros dois bits são tidos como reservados.
- O DS Field é quem define o tal do DSCP que significa DiffServ Code Point. Como ele é composto de 6 bits, temos em decimal então uma permutação de 2 elevado à 6 que é 64 valores possíveis, variando portanto de 0 à 63. Essa faixa de valores é que define literalmente a marcação dos pacotes. De antemão todo pacote BestEffort (BE) ou Melhor Esforço é tratado como DSCP 0 ou em binário 000000.
- O DSCP dispõe de algumas convenções são elas: precendência de IP, classe seletora e marcação convencial em hexadecimal como AFxy e EF por exemplo. O AF significa Assured Forward e o EF significa Expedited Forward. Há uma padronização para a marcação em hexadecimal, portanto ela ou seus valores equivalentes em decimal por exemplo são os mais utilizados quando precisamos marcar os pacotes… Mas é importante citar que o pensamento AFxy não foi atoa, onde o valor X e o Y tem sua importância deterministica, é como pensar em uma matriz 4×3, tratando de forma grosseira. O valor X representa o grau de importância da matriz, onde o 4 está na frente do 3,2,1 e o Y representa o grau de preferência a descarte, sendo o valor 1 de menor preferência, 2 de média e o 3 de alta preferência para descarte. Eita! Ainda não estou entendo essa tal da marcação! Calma iremos abordar esse assunto com maior detalhe no post II. Mas confiram a imagem da convenção DSCP em decimal:

Não é nosso objetivo tratarmos sobre o IPv6, mas vale frisar que ele já é adepto ao QoS por padrão.
2.3 - Ações básicas de acionar o QoS
- Existem duas ações para disparar um conjunto de de QoS, são elas: match-all (padrão) e o match-any. Afinal qual a diferença entre esses? A diferença está justamente na “porta lógica” usada por eles. O match-all utiliza a porta AND, ou seja, só haverá um “match” uma vez que todas as regras sejam dependentes daquele grupo sejam ativas. Já o match-any utiliza a porta lógica OR, ou seja, se pelo menos uma das regras que pertence ao grupo for ativa haverá um “match”. É muito comum o uso dessas ações de forma atrelado as listas de acesso, se você não compreende este assunto, recomendo a leitura da série de ACL feita pela Márcia. Bem, então vamos conferir o exemplo abaixo:
class-map match-any CLASSE_DADOS_ALTAmatch access-group name ACL_Oracle
match access-group name ACL_Italogerencia
match access-group name ACL_SQL
match access-group name ACL_Replicacao
match access-group name ACL_NETBIOS
!
class-map CLASSE_VOZ !l
match access-group name ACL_SIP
match access-group name ACL_RTP
- Assim, o nosso primeiro caso da CLASSE_DADOS_ALTA uma vez havendo um hit em qualquer uma das ACL’s haverá um “match” do DiffServ (porta lógica OR). Já no segundo caso só haverá um “match” se ambas ACL’s SIP e RTP fizerem um hit (porta lógica AND).
3 - Auto-QoS, CLI e MQC
Antes de essas técnicas de implantação de QoS, precisamos conhecer um pouco como se baseia uma política de QoS.
3.1 - Política de QoS
- A Política de QoS define 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. Ela é fundamental para um rendimento eficaz e produtivo do controle de entrada e saída do tráfego. Através dela, amplia-se a visão relacional, facilita e otimiza todo controle de banda. Nos casos de média ou alta complexidade é interessante elaborar documentos definindo todo o escopo da Política de QoS, inclusive a topologia de rede.
Confiram a imagem:

- Para a realização da implantação da Política de QoS destacamos três passos dentro do escopo de planejamento, são eles:
1º passo: identificar tráfego e seus requirementos: consiste no princípio de separar a banda necessária para cada aplicação dentro da rede de forma otimizada.
- Problemas: “Raramente os responsáveis pela rede conhecem todo o tráfego que passa pela rede”; “Os encarregados pela rede possuem grande idéia das aplicações, mas desconhecem todos os protocolos que elas usam”.
- Soluções: analisar através de protocolos de gerenciamento o que se tráfega pela rede, usar ferramentas de reconhecimento de aplicação, ou qualquer outro mecanismo que possa identificar o volume do tráfego e os protocolos. Além disso, devemos determinar a importância do tráfego descoberto e percebemos se é realmente importante deixá-lo na rede.
2º passo: dividir o tráfego em classe: consiste em designar o tráfego para sua determinar classe, relacionando-a com precisão a fim de atender a aplicação.
3º passo: definir as Políticas de QoS para cada classe: essencialmente, a Política de QoS é baseada no trabalho realizado nos dois primeiros passos. A Política define a ação dos pacotes dentro da classe de serviço. Essas ações causam alguma mudança em algum dos quatro fatores que influência a transmissão. É neste passo, que designamos as ferramentas de QoS. Por exemplo, podemos escolher a ferramenta de enfileiramento para garantir uma quantidade de banda para a classe de serviço. Podemos destacar outro exemplo como sendo o mecanismo de evitar congestionamento dentro das filas.
3.2 - Auto-QoS
- O Auto-QoS é uma das formas mais simples de implementação de QoS nos equipamentos de rede, com apenas poucos comandos ou poucos ajustes consegue-se aplicá-lo. Denominou-se de Auto-QoS, pois toda estrutura da Política de QoS é montada automaticamente seguindo padrão para atender a necessidade de estruturas de VoIP de pequeno à médio porte. Nos roteadores ele classifica os pacotes dentro de três classes, são elas: voz, sinalização de voz e todo o restante do tráfego.
- O Auto-QoS não requer grandes conhecimentos em QoS para aplicá-lo na rede. Além desta vantagem, ele pode ser ajustado conforme a necessidade de configuração.
- Nos switches o princípio também é elementar. Ocorre um mapeamento básico para esses dispositivos na estrutura de mapeamento de CoS para DSCP, e vice-versa, tornando-se capaz a interação e o reconhecimentos dos pacotes vindos dos roteadores. Ah e CoS significa Class of Service.
- O Auto-QoS é muito simples também para desabilitá-lo. Entretanto, se alguém fizer algum ajuste nas configurações, deverá desfazê-lo manualmente. A maioria dos fabricantes, define a sua Política de QoS baseando-se nas melhores práticas e a Cisco(r) participa dessa idéia.
3.3 - CLI
- O modelo de configuração via CLI (Command Line Interface) à configuração é realizada via comandos de forma personalizada. Assim, requisita-se maior entendimento para realização de execução, operação e manutenção.
3.3 - MQC
- O modelo MQC (Modular QoS Configuration) segue um padrão específico para configurações via CLI. Ele é o mais usado nos equipamentos Cisco, por ser padronizado e apresentar apenas três etapas simples, são elas:
3.3.1. Criar a política para cada classe de serviço.
3.3.2. Aplicar o QoS nos níveis desejados, marcando pacotes e provendo recursos.
3.3.3. Apontar dentro da interface a política como saída ou entrada.
- O que é válido informar é que o princípio do MQC é o mesmo para circuitos Frame-relay e PPP/HDLC, entretanto suas sintaxes são bem diferentes!!! Mas para finalizar, vamos conferir como seria uma simples configuração de MQC para um circuito PPP, vejam a imagem:

Prezados, este é o nosso post II sobre QoS (Qualidade de Serviço). Desta vez, vamos abordar temas indispensáveis para compreendermos como realizamos os tratamentos específicos para os pacotes, envolvendo-os desde a chegada deles nos roteadores até a sua expedição. Creio que a partir deste post, já teremos uma idéia de como e iniciar as nossas primeiras implementações de QoS. Então, vamos em frente…
CRONOGRAMA
Parte I
- Fundamentos do QoS
- Componentes do QoS
- Auto-QoS, CLI e MQC
Parte II
- Classificação e marcação
- Métodos de enfileiramento
- Métodos de evitar congestionamentos
1 – Classificação e Marcação
1.1 – Introdução
A classificação & marcação são dois termos muito importantes para o QoS, pois é através das atuações deles que compreendermos em plenitude os Serviços Diferenciados. A princípio, vamos fazer uma pequena alusão a grosso modo considerando que a marcação “define valores dos pacotes” e a classificação “agrupa as marcações em classes”. Para compreendermos melhor essa questão, vamos falar sobre a marcação em específico:
O termo “marcar pacote” nada mais é do que alterar o valor do DSCP. Como já sabemos, à nível de ipv4, existe um campo chamado ToS (Type of Service) que possui um sub-campo chamado: DS Filed que acopla o DSCP (DiffServ Code Point) formado por seis bits. Em algum momento podemos questionar: - Para que servem os dois outros dois bits restantes do ToS? A resposta é que eles simplesmente são usados para controle de descarte, assunto que será abordado no item 3.

De antemão, a marcação padrão tem valor igual a 0 (zero), assim, quando não há marcação, esse valor é assumido. O valor DSCP=0 também é chamado de BE (Best Effort ou Melhor Esforço) ou mesmo precedência de nome routine. No item 1.2, vamos conhecer mais sobre precedências.
O PHB (Per-Hop Behavior) é o termo usado para informar os valores do DSCP, feito referencia ao seu comportamento. Por exemplo, o comportamento do tráfego de maior preferência terá que ser marcado com um valor que possibilite que ele seja realmente adequado a prioridade quando for escalonado. Você deve está se questionando… - Mas isso é tão óbvio! Sendo que na realidade, há ocasiões que um pacote é marcado com um valor menor, entretanto a sua expedição é mais rápida do que um pacote marcado com um valor maior, pois o seu escalonar possibilita que isso aconteça. Iremos entender isso quando estivermos tratando sobre os enfileiramentos.
Quando marcamos um pacote, devemos saber o objetivo de termos feito isso. Existe algumas convenções chaves que iremos conhecer mais adiante.
Agora vamos tratar sobre a classificação em específico:
O termo “criar classe” se refere a designar um grupo para alocar diversos tipos de modelagens de QoS englobando não só mais a marcação, mas também mecanismos de enfileiramento, controle de descarte de pacotes, entre outros aspectos. Um conjunto de classes deverá ter o propósito de formar uma política e esta será aplicada dentro de uma interface.
Como sabemos, as classes podem agrupar as marcações usando portas lógicas AND ou OR para que sejam efetivamente escolhidas. É válido mencionar que as classes são muito flexíveis, podendo inclusive apontar alvo para outras classes.
Portanto, classes são grupos que capacitam os pacotes a determinar um lugar para uma fila. Conheceremos as filas no item 2.
1.2 – PHB Detalhado
Agora o nosso foco é desmistificar os valores que podem ser alocados no DS Field. O PHB foi definido pelo IETF, alguns livros abordam que seriam em quatro categorias, mas na realidade sabemos que é melhor representá-los de forma mais abrangente. Portanto, abaixo, vamos conferir essas categorias:
- CS (Class Selector) determina o valor da prioridade de modo linear.
- BE este eu garanto que já conhecemos!
- EF(Expedited Forwarding) é representado pelo DSCP=46 e é usado para aplicações que precisam de baixa latência.
- IP Precedence apresenta grande compatibilidade com o CS, sendo que inclui o BE.
- AF (Assured Forward) é mais específico do que o CS, pois consegue tratar o nível de descarte. O seu modo de atuação assemelhasse à uma matriz [4×3]. Desta forma, até 12 valores podem ser escolhidos.
- Decimal valor é simplesmente um valor entre 0-63. Esses valores abrangem todos os possíveis valores do que o CS e o AF conseguem formar. Como exemplo, vamos citar o DSCP 32 que corresponde ao IP Precedence 3.
Em termos de implementação, podemos executar da seguinte maneira:
- ip precendence <valor>
- DSCP <valor> (DSCP puro - decimal)
- DSCP CS<valor>
- DSCP AF<valor>
1.2.1 - CS (Classe Seletora)
Começamos pelo CS por ele ser o mais fácil de entendermos. O CS usa os três bits mais significativos do DS Field. Portanto teremos a seguinte formação binária: XXXyyy, onde X pode valer 0 (zero) ou 1 (hum) e y sempre será igual a ZERO. A única exceção é a formação dos trio “X” igual a ZERO, pois formaríamos o nosso famoso BE. Para outros efeitos, se convertermos os valores para decimal teremos o DSCP puro.
Os valores do CS variam de 1-7, ou seja, CS1, CS2, CS3 e assim sucessivamente. Como começamos com o CS1, nosso binário inicia-se com 00100 e encerra-se 111000. Portanto devemos lembrar que o trio binário menos significativo deve se manter constante e igual a ZERO.
1.2.2 – IP Precedence
O IP precedence é o CS incluindo o BE (DSCP default). O IP precedence possui uma nomenclatura correspondente ao seu valor. Abaixo podemos conferi-la:
ip precedence 0 – routine
ip precedence 1 – priority
ip precedence 2 – immediate
ip precedence 3 – flash
ip precedence 4 – flash-override
ip precedence 5 - critical
ip precedence 6 - internet
ip precedence 7 – network
O ipp 6 e 7 correspondem aos valores que existem, porém são considerados como reservados e a Cisco não recomenda o uso deles. É natural que no começo possamos nos confundir um pouco com esses nomes, ou até mesmo confundir com o assunto de enfileiramento que será explorado adiante.
1.2.3 – AF (Assured Forward)
O AF é o mais difícil de entendermos, agora a por bits possui o formato: [XXX][yy(z)], gerando dois números decimais, onde X e Y podem assumir valores 0 (zero) ou 1 (um) e Z sempre será igual a ZERO. Desta forma, teremos mais combinações quando comparamos com o IP Precedence ou o CS. É importante considerarmos que a variável Z se torna o valor Y em decimal.
O valor AF é interessante de aprendermos, pois ele é um valor em hexadecimal quando referido ao decimal DSCP puro. Ele se torna interessante não apenas por isso, mas também porque tem um propósito da união do CS com um conceito chamado preferencia de descarte. Ah, agora acredito que estamos entendendo o porquê de termos citado aquela história da MATRIZ. Certo, vamos conhecer esses valores durante o LAB. É importante sabemos no momento que:
- X corresponde a classe, sendo que o menor valor é 1 (último) e o maior é o 4 (primeiro).
- Y corresponde ao valor da prioridade de descarte, sendo 1 (menor preferência); 2 (média) e 3 (alta preferência para descarte).
Agora, vamos entender como é formada a idéia da matriz:
[11] [21] [31] [41]
[12] [22] [32] [42]
[13] [23] [33] [43]
Essa matriz é importante, pois quando tratamos essas marcações em um tipo de escalonador que propícia a adequação dos pacotes de modo justo, isso será altamente útil.
1.3 – C&M na prática
Agora que vimos um pouco sobre classificação e marcação, vamos partir um pouco para a prática. Podemos usar o Dynamips para esses fins, simuladores ou mesmo roteadores Cisco.
Router>ena
Password:Router#conf t
Router(config)#hostname LAB_CLASSES
% Hostname contains one or more illegal characters.
LAB_C&M(config)#class-map DADOS_PRIORITARIOS !criando a classe
LAB_C&M(config-cmap)#match precedence ?
<0-7> Enter up to 4 precedence values separated by white-spaces
critical Match packets with critical precedence (5)
flash Match packets with flash precedence (3)
flash-override Match packets with flash override precedence (4)
immediate Match packets with immediate precedence (2)
internet Match packets with internetwork control precedence (6)
network Match packets with network control precedence (7)
priority Match packets with priority precedence (1)
routine Match packets with routine precedence (0)
LAB_C&M(config-cmap)#match dscp ?<0-63> Differentiated services codepoint value
af11 Match packets with AF11 dscp (001010)
af12 Match packets with AF12 dscp (001100)
af13 Match packets with AF13 dscp (001110)
af21 Match packets with AF21 dscp (010010)
af22 Match packets with AF22 dscp (010100)
af23 Match packets with AF23 dscp (010110)
af31 Match packets with AF31 dscp (011010)
af32 Match packets with AF32 dscp (011100)
af33 Match packets with AF33 dscp (011110)
af41 Match packets with AF41 dscp (100010)
af42 Match packets with AF42 dscp (100100)
af43 Match packets with AF43 dscp (100110)
cs1 Match packets with CS1(precedence 1) dscp (001000)
cs2 Match packets with CS2(precedence 2) dscp (010000)
cs3 Match packets with CS3(precedence 3) dscp (011000)
cs4 Match packets with CS4(precedence 4) dscp (100000)
cs5 Match packets with CS5(precedence 5) dscp (101000)
cs6 Match packets with CS6(precedence 6) dscp (110000)
cs7 Match packets with CS7(precedence 7) dscp (111000)
default Match packets with default dscp (000000)
ef Match packets with EF dscp (101110)
Quando estamos realizando uma configuração de marcação, percebemos que há uma grande flexibilidade de uso, ora podemos mencionar um DSCP puro (decimal) ou DSCP usando alguma padronização para termos o mesmo resultado. Por exemplo: a marcação DSCP AF41 pode ser facilmente representada por DSCP 34. Como sabemos desse valor? Basta converter de hexadecimal (AF) para Decimal (dscp puro).
Para finalizarmos, vale citar que há uma característia do IOS chamada de NBAR (Network Based Application Recognition) que é muito útil também para marcar pacotes, baseando-se no tráfego da camada 7.
2 – Métodos de enfileiramento
2.1 – Introdução
Como vimos, a classificação e a marcação fazem um grande trabalho na categorização do tráfego, apesar disso se eles estiverem isolados, não haverá efeito algum do comportamento, sabiam? Ora, ora, e quem irá nos ajudar? Como resposta, já sabemos, os mecanismos de enfileiramento.
2.2 – Tipos de enfileiramento:
- Hardware Queueing: esse é o tipo de enfileiramento conhecido como TxQ (fila de transmissão) ele é usa o hardware e SEMPRE usa o mecanismo FIFO (First In First Out) e apenas quando essa fila fica cheia o software queueing será acionado. Vale salientar que, o FIFO não é verdadeiramente um mecanismo de operação de QoS, apesar de alguns livros informar que sim. Não, porquê!? Não mesmo! Pois ele não realiza quaisquer operações de QoS, como por exemplo reordenação de pacotes. De qualquer maneira essa questão pode até gerar uma certa discussão…
- Software Queueing: esse tipo de enfileiramento tem uma grande gama de opções. É importante nos prepararmos para a “sopa de letras” que está por vir. Cada tipo de enfileiramento possui características das quais auxiliam e organizam os pacotes nas filas, entretanto se o mecanismo que for escolhido para a ocasião não for o mais coerente, pode gerar alguns problemas. Como exemplo de softqueues, temos: PQ, CQ, MDRR, WFQ, LLQ, CBWFQ, dentre outros.
2.3 – Software Queueing:
Agora vamos aborda um pouco sobre as principais filas baseadas em software. Para facilitar nosso aprendizado, iremos discuti-las da seguinte forma: característica mais marcante, vantagens e desvantagens, de modo respectivo. Isso é bom até mesmo para facilitar nosso aprendizado. Desta forma, confiram:
- PQ – Priority Queue. Formação: possui 4 filas FIFO, que são unidirecionais, e um pacote da fila em espera só entra em ação quando sua superior é esvaziada. Vantagens: Fornece prioridade restrita para um tráfego na classe. Desvantagem: pode sofrer de um fênomeno chamado: starvation (morte por insuficiência de alimentação).
- CQ – Custom Queue. Formação: possui 16 filas FIFO, que são unidirecionais, e um pacote da fila em espera só entra em ação quando sua superior é esvaziada.Vantagens: garante banda para aplicações menos críticas. Desvantagem: precisa criar uma política dentro da interface.
- WFQ – Weighted Fair Queueing, ou seja, enfileiramento justo baseado em peso, ele atua de forma justa eliminando o fenômeno stavartion. Ou seja, o primeiro da coluna de cada fila é expedido para o DEQUEUE e todos os pacotes da segunda coluna são expedidos e assim sucessivamente. Desvantagem: ideal para links até 2MBps, caso contrário muitos ciclos de CPU serão executados e não possui uma fila única de prioridade.
- CBWFQ – Class-Based Weighted Fair Queue. Formação: possui 64 filas FIFO, que são unidirecionais, e um pacote da fila em espera só entra em ação quando sua superior é esvaziada. Vantagem: recordista do número de classes, suporta até 64 para realizar controle de banda. Desvantagem: sem fila exclusiva de prioridade.
- IP RTP Priority – Conhecido por PQWFQ, por ser composto por uma fila PQ e o grupo de WFQ.Vantagens: ótimo para arquitetura AVVID da Cisco, garante banda e propicia a menor latência, não apenas para portas
- UDP/RTP mas qualquer outro tipo de porta. Vantagens: adequado para transportar voz, dados e video, há um PQ que não sofre do fenômeno do starvation. Desvantagem: limitado para porta RTP/UDP e não por admissão de chamada.
- LLQ – Low Latency Queue. Conhecido por PQCBWFQ, motivo: possui uma fila PQ e um grupo em CBWFQ! É sério é assim que ele é conhecido, num já havíamos mencionado que seria uma “sopa de letras”? Pois é… Vantagens: ótimo para arquitetura AVVID da Cisco, excelente para aplicações real-time, garante banda e propicia a menor latência, não apenas para portas UDP/RTP mas qualquer outro tipo de porta. O seu único problema diz respeito a sua classificação não ser feita de modo automatizado, havendo a necessidade de configuração. Esse é o nosso método mais utilizado, porém SE as classes não estiverem bem ajustadas conforme a realidade, podemos ter alguns problemas, que daí para frente teremos que realizar alguns troubleshootings!!!


Agora vamos conferir um quadro comparativo (equivale a um sumário):

Por padrão o FIFO é habilitado nas interfaces com a bandwidth acima de 2mbps e também por padrão o WFQ é habilitado nas interfaces com a bandwidth abaixo de 2Mbps. *
3 – Métodos de evitar congestionamentos
3.1 - Introdução
Esse é o assunto chamado de “Congestion Avoidance”. Vamos ser brévios sobre ele, ok? Pois o post já está imenso e esse assunto é fácil de entender, não vamos nos preocupar. Esse assunto é tranqüilo mesmo, uma vez compreendido os conceitos que iremos abordar.
3.2 - Mecanismos:
De antemão, a Cisco não implementa o mecanismo chamado: RED (Random Early Drop)
- Tail DROP é o descarte de pacotes baseado em hardware quando a fila está cheia.
- WRED (Weighted Randon Early Drop) é uma característica do IOS utilizada para previnir que uma fila seja preenchida pela capcidade de discartar o tráfego mais agressivamente quando a fila começa a se preencher. O descarte é feito baseado na prioridade de marcação, onde os pacotes de menor prioriodade terão maior chances de serem descartados. O WRED é formado pelo piso, teto, que são conhecidos por CDT (Congestion Discart Thresholds) e o MPD que iremos confirar abaixo:
- PISO ou Minimum Threshold - especifica o número de pacotes que precisa estar em uma fila antes que a fila considere o descartes dos pacotes que tem uma particular marcação.
- TETO ou Maximum Threshold - depois que uma fila excede o valor máximo todos os pacotes serão discartados “full drop”. Já um pouco antes disso acontecer, o valor da probabilidade de descarte será aumentado.
- MPD (Mark Probability Denominator) trata-se do fator percentual em que o pacote pode terá chances de ser descartado.
Os roteadores indicam que ocorrerá o congestionamento atravé do ECN (Explict Congestion Notification) que usa os dois bits menos significativos do byte ToS, quando eles estão iguais a 11, temos um conestionamento.
Se o pacote for marcado com o bit DE (Discart Eligible) ele terá maior chances de ser descartado. Existe também o dWRED que é muito semelhante a essa característia.
O tipo de enfileiramento WFQ possui seu mecanismo de descarte de pacotes chamado de Early Dropping e Agressive Dropping.
3.3 - WRED Hands-on!
Como vimos conforme a gravura acima, agora vamos por em prática uma pequena configuração:

Fonte: http://blog.ccna.com.br/2008/11/14/tutorial-is-is-parte-i/