4. Moldagem e policiamento de tráfego
4.1 Moldagem genérica
Generic Traffic Shaping, ou GTS como chamada, provê mecanismos para controle de tráfego utilizando filtros conhecidos como token bucket , limitando o tráfego de saída de uma interface a uma determinada taxa. Como mostra a Figura 5, o tráfego classificado vai para um um buffer limitador, sendo liberado sob regras pré-definidas de acordo uma política de controle de tráfego, que pode ser configurada pelo administrador ou derivada da interface.

Figura 5 - Generic Traffic Shaping
Moldagem ou conformidade de tráfego pode ser útil em vários casos. Por exemplo, para limitar o tráfego de rajada de forma a não prejudicar o tráfego prioritário, reduzindo assim a latência; ou, em situações de congestionamento, para limitar um determinado tipo de tráfego não sensível a retardo, como transferência de arquivos, eliminando possíveis gargalos.
A moldagem GTS aplica-se apenas em interfaces de saída, com o uso de listas de acesso para classificar e selecionar o tráfego. Funciona com qualquer tecnologia de enlace (nível 2) como Frame Relay, ATM (Asyncronous Transfer Mode), SMDS (Switched Multimegabit Data Service) e Ethernet.
Algumas vezes, fui questionado sobre como limitar o tráfego FTP numa conexão serial que, em determinados intervalos, estava causando congestionamento e travando o tráfego Web. O primeiro passo é assegurar que a versão do sistema operacional IOS possua a funcionalidade para moldagem de tráfego (comando traffic-shape). Aí vai a dica, considerando como exemplo uma conexão serial de 512 Kbps e o limite para o tráfego FTP de 128 Kbps (bit-rate), 8 K de burst-size e zero de excess-burst-size:
interface serial 3/1
traffic-shape group 101 128000 8000 0
!
access-list 101 permit tcp any eq ftp any
2 - token bucket é um definição formal para taxa de transferência. Possui três componentes: um tamanho de rajada em bits (burst size), também chamado de committed burst (Bc) que espefica o quanto pode ser enviado num determinado intervalo de tempo; uma taxa média (mean rate) em bps, também chamada de CIR (Committed Information Rate), que espefica o quanto de dados, na média, pode ser enviado por unidade de tempo; e um intervalo de tempo (Tc) em segundos, intervalo de medida que especifica o tempo por rajada.
4.2 Policiamento
O CAR (Committed Access Rate) é o método para policiamento e controle de tráfego IP que realiza, basicamente, duas funções para qualidade de serviço:
- Gerenciamento de banda com limitação de taxa de acesso (policing) - permite controlar a taxa máxima de transmisão ou recepção de dados de uma determinada interface. O tráfego conformante é transmitido ou recebido, enquanto os pacotes que excedem os limites pré-definidos, ou são descartados, ou são reclassificados com outra prioridade para retransmissão;
- Classificação de pacotes através de precedência IP ou de grupos de QoS (um rótulo interno do roteador utilizado para definição de classes - permite particionar a rede em múltiplas classes de serviços ou níveis de priorização.
Para isso, utilizando também o mecanismo token bucket, o CAR examina o tráfego recebido na interface ou parte do tráfego selecionado pelos critérios das listas de acesso, compara a taxa de tráfego com a do token bucket e, de acordo com o resultado, toma uma ou várias ações. Ou seja, pode transmitir o pacote, descartá-lo ou reclassificá-lo com outro nível de prioridade, etc.

Figura 6 - Commited Access Rate com token bucket
Os tokens são inseridos no balde na mesma taxa CIR. A profundidade do balde é o tamanho da rajada (burst size). Se houver tokens suficientes quando o tráfego chega ao balde, então o tráfego é dito estar em conformidade e a quantidade correspondente de tokens é removida. Se não houver tokens suficientes, então o tráfego é dito excessivo.
Os critérios de seleção de tráfego podem ser baseados em todo tráfego IP, em precedência IP, em listas de acesso (padrão ou estendida), em endereço MAC ou, ainda, em grupos de QoS. O endereço MAC e a precedência IP podem ser definidos através de listas de acesso rate-limit.
Com o CAR, pode-se limitar o tráfego por aplicação (Web, FTP, etc), por interface (p. ex., uma conexão serial a 2 Mbps, mas com acesso limitado em 512 Kbps), por endereço MAC (p. ex., controle de tráfego em PTT - Pontos de Troca de Tráfego), ou pode-se classificar ou reclassificar todo o tráfego de entrada num backbone a partir dos roteadores de borda, para tratamento diferenciado em termos de qualidade de serviços. A Tabela 1 abaixo apresenta as diferenças entre CAR e GTS:
| CAR | GTS |
| Aplica-se em tráfego de entrada e de saída | Aplica-se apenas em tráfego de saída |
| Não "buferiza" nem molda tráfego | Molda e suaviza o tráfego |
| Pode marcar pacotes (ex: precedência IP) | Não possui essa funcionalidade |
| Em Frame Relay, não suporta FECN e nem BECN | Suporta FECN e BECN em Frame Relay |
| Suporta políticas em cascata | Não suporta essa funcionalidade |
| Não suporta uso com RSVP | Suporta RSVP quando usa WFQ |
| Suportas listas padrões e estendidas | align="center">Suportas apenas listas estendidas |
| Gerência o descarte entre o normal_burst e o extended_burst | Não suporta essa funcionalidade |
| Executa no modo distribuído (VIP do 7500) | Não suporta essa funcionalidade |
Tabela 1 - Comparação entre CAR e GTS





