Autor Original do texto:
Martin A. Brown
martin@linux-ip.net
http://linux-ip.net
Martin A. Brown
martin@linux-ip.net
http://linux-ip.net
8. Regras, Orientações e Abordagens
8.1 Regras Gerais de Controle de Tráfego Linux
Existem algumas regras que facilitam o estudo do controle de tráfego Linux. As estruturas de controle de tráfego sob o Linux são as mesmas da configuração inicial que foram feitas tanto com o tcng quanto com o comando tc.
• Qualquer roteador que executa uma função shaping deve ser o gargalo no link, e deve estar fazendo shape ligeiramente abaixo da largura de banda máxima disponível do link. Isso evita que filas se formem em outros roteadores, permitindo-se máximo controle de pacote latência/atraso ao dispositivo que executa shape.
• Um dispositivo pode somente fazer shape do tráfego que ele transmite [10]. Como o trafego já foi recebido sobre uma interface de entrada, o tráfego não pode ser shape-ado. Uma solução tradicional para esse problema é um guarda (policer) ingress.
• Toda interface precisa ter uma qdisc. A qdisc padrão (a qdisc pfifo_fast) é usada quando uma outra qdisc não for explicitamente associada à interface.
• Uma das qdiscs classful adicionadas a uma interface sem nenhuma classe descendente tipicamente consome somente CPU sem qualquer benefício.
• Qualquer classe criada mais recentemente contém uma fila FIFO. Essa qdisc pode ser substituída explicitamente por alguma outra qdisc. A qdisc FIFO será removida implicitamente se uma classe descendente for associada a essa classe.
• Classes diretamente associada à qdisc root podem ser usadas para simular circuitos virtuais.
• Um filtro pode ser associado a classes ou a uma das qdisc’s classful.
8.2 Manipulando um link com uma largura de banda conhecida
O HTB é uma qdisc ideal para usar em um link com uma largura de banda conhecida, porque as classes mais internas podem ser definidas com a largura de banda máxima disponível sobre um dado link. Os Fluxos podem ser subdivido em mais classes descendentes, permitindo tanto largura de banda garantida para classes particulares de tráfego quanto dando preferência a tipos de tráfegos específicos.
8.3 Manipulando um link com uma largura de banda variável (ou desconhecida)
Na teoria, o escalonador PRIO é o ‘match’ ideal para links com largura de banda variável, porque ela é uma qdisc work-conserving (o que significa que ela não faz qualquer shape). No caso de um link com uma largura de banda flutuante ou desconhecida, o escalonador PRIO simplesmente prefere des-enfileirar qualquer pacote disponível na primeira banda de prioridade mais elevada, depois desce para as filas de prioridade mais baixa.
8.4 Compartilhando/dividindo largura de banda baseada em fluxos
Dos muitos tipos de concorrência por largura de banda de rede, essa é um dos tipos mais fáceis de concorrência para tratar no geral. Usando a qdisc SFQ, o tráfego em uma fila particular pode ser separado em fluxos, cada um dos quais será servido de um modo justo (dentro dessa fila). Aplicações bem comportada (e usuários) descobrirão que usando SFQ e ESFQ são suficientes para muitas necessidades de compartilhamento.
O calcanhar de Aquiles desses algoritmos de enfileiramento justo é o mau comportamento de um usuário ou aplicações que abrem muitas conexões simultaneamente (por exemplo, eMule, eDonkey, Kazaa). Quando criando um número muito grande de fluxos individuais, a aplicação pode se apossar dos slots no algoritmo de enfileiramento justo. Como já dito, o algoritmo de enfileiramento justo não tem qualquer idéia que uma única aplicação esteja gerando a maioria dos fluxos, e assim não consegue penalizar o usuário. Outros métodos são exigidos.
8.5 Compartilhando/dividindo largura de banda baseada em IP
Para muitos administradores esse é o método ideal para divisão de largura de banda entre os seus usuários. Infelizmente, não existe nenhuma solução fácil, e ela se torna crescentemente complexa com o número de máquinas compartilhando um link de rede.
Para dividir largura de banda equitativamente entre N endereços IP, precisa haver N classes.
________________________________________
[10] De fato, o Dispositivo de Enfileiramento Intermediário – Intermediate Queuing Device (IMQ) simula um dispositivo de saída sobre o qual as estruturas de controle de tráfego podem ser associadas. Essa solução inteligente permite a um dispositivo de rede compartilhar tráfego ingress no mesmo modo que o tráfego egress. A despeito da aparente contradição da regra, o IMQ aparece como um dispositivo ao kernel. Consequentemente, não tem havido qualquer violação dessa regra, mas especialmente uma interpretação sutil dessa regra.
Nenhum comentário:
Postar um comentário