Prevenção e Controlo de Congestão Sistemas Telemáticos Licenciatura em Engenharia de Sistemas e Informática Departamento de Informática Universidade do Minho
Prevenção e Controlo de Congestão
Sistemas TelemáticosLicenciatura em Engenharia de
Sistemas e InformáticaDepartamento de Informática
Universidade do Minho
Materias utilizados Internet Congestion Control with Active Queue
Management (AQM), Seungwan Ryu ([email protected])
Sumário Introdução Controlo de Congestão no TCP Gestão Activa de Filas Notificação Explícita de Congestão
Congestão (1) As redes de comutação de pacotes têm
recursos limitados Largura de banda das linhas que interligam os
encaminhadores Comprimento finito das filas em que são
armazenados os pacotes à espera de transmissão
Os recursos da rede devem ser partilhados entre as diversas conexões suportadas
Congestão(2) Quando muitos pacotes têm que
ser enviados através da mesma linha As filas ultrapassam o seu limite
máximo Alguns pacotes são descartados
Se o descarte é muito frequente...a rede fica congestionada
Congestão(3) Transformou-se num problema
sério Aumento da utilidade e uso das redes
de computadores Mistura de diferentes tecnologias
Exemplo: Pares entraçados e fibras ópticas
Fibras permitem grandes larguras de banda Desadaptação entre diferentes débitos
O que é a congestão? O que é a congestão ?
A necessidade agregada de largura de banda excede a capacidade disponibilizada pela linha.
O que acontece ? Degragação de desempenho
• Perdas múltiplas de pacotes• Baixa utilização da ligação • Tempos de atraso altos• Colapso de congestão
Métricas de detecção Podem ser usadas vários métricas para
detectar se uma rede está congestionada Percentagem de pacotes descartados por falta
de espaço de armazenamento Tamanho médio das filas Número de pacotes que disparam o
temporizador e são retransmitidos Tempo médio de atraso dos pacotes Desvio padrão para o atraso dos pacotes
Em qualquer dos casos o aumento nos números significa aumento da congestão
As razões da congestão Inundação de tráfego destinado à mesma
linha de saída As filas enchem e os pacotes são descartados O problema pode não ser resolvido única e
simplesmente com aumento de memória Processadores lentos ou software de
encaminhamento pouco eficiente. Desadaptação entre partes do sistema
(várias linhas rápidas e uma lenta) A congestão tem tendência a alimentar-se a
si própria e piorar a situação.
Congestão vs. Controlo de Fluxo O controlo de congestão têm que se
certificar que a rede é capaz de transportar o tráfego
A congestão é um problema global, envolve todos os sistemas finais e encaminhadores
O controlo de fluxo lida com tráfego ponto-a-ponto entre uma fonte e um destino (por exemplo um supercomputador a descarregar para um PC através duma fibra)
Congestão As redes mais modernas têm que ter algum
mecanismo para controlar a congestão Essas técnicas estão estreitamente
relacionadas com a forma como os recursos limitados são alocados às várias conexões activas na rede
Dois paradigmas alternativos: Alocação de Recursos em tempo de estabelecimento
de conexão como forma de prevenir a congestão A fonte detectar a congestão e a ajudar na sua
redução ou eliminação quando ela ocorre.
Congestão Uma alternativa é a rede ter um papel activo na
alocação de recursos Embora isto possa evitar a congestão, a conexão pode ser
rejeitada se houver recursos disponíveis insuficientes É contudo uma tarefa difícil uma vez que essas alocações
devem ocorrer em todos os encaminhadores e linhas da rede. Adicionalmente, esta abordagem pode potenciar a sub-
utilização dos recursos que são limitados. Outra alternativa é permitir às fontes enviarem os
dados que quiserem para rede, e forcá-la a recuperar de situações de congestão.
Uma abordagem mais simples, mas a congestão pode demorar algum tempo a ser dissipada (com a perda de pacotes a persistir).
Fluxos numa rede não orientada à conexão O conceito de fluxo é essencial para o
processo de alocação de recursos É feita pela rede uma expedição
independente de cada datagrama entre e endereço IP fonte e o IP destino.
Contudo, na prática, é suposto que uma sequência de pacotes siga a mesma rota na rede entre a fonte e o IP destino Esta sequência de pacotes constitui um fluxo
Fluxos numa rede não orientada à conexão
Na prática o fluxo não é estabelecido Geralmente um encaminhador reconhece os
fluxos pela análise de cadeia de pacotes que passam por ele. Basta analisar a fonte e o destino dos pacotes IP
O encaminhador pode manter informação a respeito de cada fluxo que passa por ele para efeitos de alocação de recursos Chamada muitas vezes informação de estado ligeira(soft state)
Mecanismos de alocação de recursos Existem inúmeras formas das redes
realizarem na prática as operações de alocação de recursos
Contudo, iremos analisar três critérios de classificação para os mecanismos de alocação de recursos Centrado no encaminhador ou no sistema final Baseado em reserva ou em realimentação Baseado em janela ou em débito
Centrado na rede ou na fonte
As fontes IP e os os encaminhadores estão envolvidos na alocação de recursos
Classificação que localiza as responsabilidades Centrado na rede:
Encaminhadores têm a a responsabilidade de decidir quando os pacotes são expedidos ou descartados;
Informam as fontes IP de quanta informação estão autorizados a enviar
As fontes devem respeitar estas mensagens de conselho Centrado na fonte:
Fontes monitorizam a rede e ajustam o seu comportamento em conformidade
Encaminhadores sob congestão descartam os pacotes
Reserva vs realimentação Numa abordagem baseada em reserva:
A fonte requisita explicitamente recursos (buffer e/ou capacidade nas linhas) dos encaminhadores (portanto centrado na rede) quando o fluxo é estabelecido
Cada encaminhador aloca os recursos requisitados, se isso não ultrapassar a sua capacidade limitada.
Numa abordagem baseada em realimentação Não há o processo de reserva As fontes IP ajustam o seu débito de acordo com a
informação de realimentação, que pode ser: Explícita: Mensagens de Controlo de Congestão (centrada na
rede) Implicita: Como resultado da medição do comportamento da
rede (centrada na fonte)
Baseada em janela ou débito Como é que o nó fonte IP é informado da
quantidade dos dados que pode enviar? Este critério classifica os mecanismos de
controlo de congestão na forma de relato usado para indicar à fonte quantos dados pode enviar Como um tamanho de janela aconselhada
pelos encaminhadores usados por um fluxo. Como um débito (i.e. Entidades por unidade
de tempo que a fonte pode transmitir para a rede).
Avaliação da alocação de recursos Um mecanismo de alocação de recursos
pode ser avaliado em termos tanto da sua eficácia como equidade(fairness).
A eficácia pode ser avaliada com:
Throughput e atraso são parâmetros que competem – forçar mais dados para a rede aumenta o tamanho das filas e portanto aumenta o atraso
1cally with typiDelay )Average(
Throughput )Average(Power
Equidade da alocação de recursos A equidade dum algoritmo de
alocação de recursos é uma quantidade mais difícil de medir. Para uma dada linha entre dois
encaminhadores, há maior equidade quando todos fluxos recebem uma parte equitativa da largura de banda?
Uma métrica comum para a equidade é o índice de Jain.
Índice de equidade de Jain Para um dado conjunto de fluxos x1, x2,
…. xN, o índice de equidade é dado por:
O índice de equidade varia entre 0 e 1 (1 é o maior valor)
N
1i
2i
2N
1ii
N21
xn
xx,....x,xf
Prevenção e Controlo de Congestão Duas abordagens para lidar com a
congestão
Controlo de Congestão (Reactiva)• Actua depois da rede estar sobrecarregada
Prevenção de Congestão (Proactiva)• Actua antes da rede estar sobrecarregada
Algoritmos de Controlo de Congestão São conhecidos muitos algoritmos de
controlo de congestão Foi desenvolvida uma taxonomia para
os organizar A taxonomia começa por dividí-los em
algoritmos em anel aberto e em anel fechado As soluções em anel aberto são divididas
entre aquelas que actuam na fonte e as que actuam no destino
Categorias em anel fechado Divididas em duas sub-categorias
Realimentação explícita São enviados pacotes de aviso dos
pontos de congestão para a fonte Realimentação implícita
As fontes deduzem a existência de congestão pelas suas próprias observações
Controlo de Congestão Controlo de congestão
Em anel aberto usado principalmente em redes de comutação de circuitos (GMPLS)
Em anel fechado usado principalmente em redes de comutação de pacotes usa informação de realimentação: global & local
Controlo de Realimentação implícito
End-to-end congestion control Exemplos:TCP Tahoe, TCP Reno, TCP Vegas, etc.
Controlo de realimentação explícito controlo de congestão assistido pela rede Exemplos:IBM SNA, DECbit, ATM ABR, ICMP source quench, RED, ECN
Políticas que afectam a congestão
Camada Políticas
Transporte Política de retransmissões Política de caching de pacotes fora de
ordem Política de confirmação de recepção Política de controlo de fluxo Determinação de tempo de disparo de
temporizadores Rede CV e datagramas no interior da rede
Política de gestão de filas e escalonamento
Política de descarte de pacotes Protocolo de encaminhamento Gestão de tempos de vida dos pacotes
Ligação Lógica Política de retransmissões Política de caching de pacotes fora de
ordem Política de confirmação de recepção Política de controlo de fluxo
Anel Aberto: Calibração de Tráfego Traffic shaping Uma das principais causas de congestão é a
o tráfego são as rajadas (bursty) de tráfego. A calibração de tráfego é um método em anel
aberto que tenta gerir a congestão forçando que os pacotes sejam transmitidos a um débito previsível
O seu objectivo é regular o débito médio (e rajada) na transmissão dos dados
Quando se estabelece a ligação a calibração é acordada entre o utilizador e o transportador.
Algoritmo do balde vazanteLeaky Bucket Algorithm O que se pretende é disponibilizar um
fluxo consistente e regular de tráfego Imagine um balde com um buraco em
baixo ou uma torneira com o fluxo de saída é constante, independente da água que entra ou que existe.
É essa a ideia de suporte a este algoritmo
Algoritmo do Balde vazante
O fluxo de saída tem um débito constante , quando há agua no balde e é zero qunado o balde está vazio
Algoritmo do Balde vazante Concretização
Um balde vazante não é mais que um sistema de fila com um único servidor com um tempo de serviço constante
Os pacotes podem chegar a qualquer instante, mas o host só está autorizado a colocar um pacote na rede por cada tique do relógio.
Se os pacotes forem de diferentes tamanhos é melhor usar um número fixo de bytes por tique em vez de um pacote.
Quando a fila enche, os novos pacotes são descartados
Algoritmo do Balde com CréditosToken Bucket Algorithm O balde vazante força um padrão de saída
rígido O algoritmo do balde com créditos permite
acelerações na saída quando chegam muitos pacotes (rajadas)
Aqui cada balde mantém créditos que são gerados por um relógio à velocidade de um crédito em cada T segundos
Para transmitir precisa de um crédito Os hosts que ficam períodos em silêncio,
podem enviar rajadas mais tarde.
Realimentação Implícita vs Explícita Controlo de Congestão com Realimentação
Implícita A rede descarta pacotes quando a congestão
ocorre A fonte infere a congestão implicitamente
• Disparo de temporizadores, confirmações duplicadas, etc.
Examplo: Controlo de Congestão fim-a-fim do TCP
Fácil de concretizar mas imprecisa• Concretizada apenas na camada de transporte (TCP)
Realimentação Implícita vs Explícita Controlo de Congestão com realimentação
explícita O encaminhador indica explicitamente a
congestão às fontes Marcação de pacotes
Exemplos: DECbit, ECN, etc. Disponibiliza informação mais precisa às fontes Mais complicado de concretizar
• É preciso mudar algoritmos dos elementos da rede e de das fontes
• É necessária a cooperação entre as fontes e os componentes da rede
Controlo de Congestão no TCP
Ideia Assumir rede melhor- esforço (encaminhadores
FIFO ou FQ) em que cada fonte determina a capacidade da rede por si só
Usa realimentação implícita As confirmações fazem aumentar as
transmissões (auto-relógio) Desafio
Determinar em primeiro lugar a capacidade disponível
Ajuste a mudanças na capacidade disponível
Controlo de Congestão no TCP
Usa controlo de congestão fim-a-fim Usa realimentação implícita
• i.e., time-out, ACKs triplos duplicados, etc. Usa controlo de fluxo baseado em janela
• cwnd = min (pipe size, rwnd)• Auto-relógio (self-clocking)• Arranque lento e prevenção de congestão
Exemplos:• TCP Tahoe, TCP Reno, TCP Vegas, etc.
Controlo de Congestão no TCP
Arranque lento e prevenção de congestão
cwnd
TimeRTT1
2
4
Arranque lento
W*
W W+1
RTT
Prevenção de Congestão
W*/2
Arranque lento no TCP Quando pensamos num algoritmo de controlo
de fluxo baseado em janela deslizante Assumimos que a fonte pode enviar segmentos
até ao tamanho da janela Isto funciona bem para dois computadores
ligados à mesma LAN… mas pode causar problemas se houver
encaminhadores e linhas mais lentas no percusros entre os dois
O TCP precisa de suportar um algoritmo chamado de arranque lento…
Arranque lento no TCP O arranque lento adiciona uma outra janela
para a emissor TCP: a janela de congestão Quando se estabelece uma nova conexão, a
janela de congestão é inicializada a 1 segmento.
Cada vez que se recebe uma confirmação, a janela de congestão é aumentada de 1
O emissor pode enviar até um número de segmentos que é o mínimo entre a janela de congestão e a janela de controlo de fluxo
Arranque lento no TCP1
1
1
1
tempo 0
tempo 1
tempo 2
tempo 3
1
1
1
1
tempo 4
tempo 5
tempo 6
tempo 7
Arranque lento no TCP2
2
2
2
tempo 8
tempo 9
tempo 10
tempo 11
2
2
2
tempo 13
tempo 14
tempo 15
3
3
3
3tempo 12
3
3
3
3tempo 16
2
4
tempo 175 4
Arranque lento no TCP6
6
tempo 18
tempo 19
tempo 20
tempo 21
6tempo 23
tempo 24
tempo 25
7
7
7tempo 22
7
7tempo 26
2
10
tempo 27
5 4
6 5 4
7 6 54
4 5
4 5
4 5
86 75
9 86 7
9 8
11 10 9 8
Arranque lento no TCPtempo 28
12 11 10 9
tempo 31 15 14 13 12
tempo 29 13 12 11 10
tempo 3014 13 12 11
8
98
1098
1098 11
Arranque lento no TCP A janela de congestão é o controlo de fluxo
imposto pelo emissor, enquanto a outra janela é o controlo de fluxo do receptor
A capacidade da Internet pode ser atingida a qualquer instante, e um encaminhador intermediário começar a decartar pacotes… Isso indica ao emissor que a janela de congestão
está muito grande
Que tamanho deve ter a janela? No exemplo apresentdo a janela atingiu os
8 segmentos. A capacidade do pipe ou o produto atraso e
largura de banda pode ser dada por capacidade(bits) = largura de banda (bps) x
tempo-de-ida-e-volta(seg) Exemplos
T1 (1.54mbps), através dos EUA (60ms RTT) dá 11,580bytes (max tamanho de janela TCP é 64K)
T3 (45mbps), dá 337,500bytes!!
Controlo de Congestão no TCP
Duas “fases” Arranque lento Prevenção de
congestão Variáveis
importantes: Congwin threshold: define a
fronteira entre as duas fases
“probing” da largura de banda utilizável:
Idealmente: transmitiro mais rápido possível (Congwin o maior possível) sem perdas
Aumentar Congwin até haver perdas l(congestão)
Perdas: diminuir a Congwin, e então recomeçar o probing (aumento) novamente.
Controlo de Congestão no TCP
/*arranque lento terminado*/ /* Congwin > threshold */Until (loss event) { every w segments ACKed: Congwin++ }threshold = Congwin/2Congwin = 1Executar arranque lento
Prevenção de Congestão
Controlo de Congestão no TCP
TCP Tahoe Usa arranque lento/prevenção da congestão Uma melhoria: rápida retransmissão
Detectar pacotes (segmentos) descartados por três ACKs duplicados
W = W/2, e começa a prevenção da congestão TCP Reno (recuperação rápida)
Depois de receber três ACKs duplicados ssthresh = W/2, e retransmitir pacotes em falta W = ssthresh +3
Depois de receber a confirmação (ACK): W = ssthresh Permitir ao tamanho da janela crescer depressa para
manter cheio o pipeline
Controlo de Congestão no TCP TCP SACK (Selected Acknowledgement)
O emissor TCP (Thaoe) pode apenas saber duma única perda por tempo-de-ida-e-volta ( RTT)
A opção SACK disponibiliza uma melhor recuperação de uma situação de múltiplas perdas
O emissor pode transmitir todos os pacotes perdidos Mas esses pacotes podem já ter sido recebidod
Operação Adicionar a opção SACK ao cabeçalho TCP O receptor envia um SACK ao emissor para o informar da
recepção do pacote Então, o emissor pode retransmitir apenas o pacote em falta
Gestão Activa de FilasActive Queue Management (AQM)
Degradação de desempenho no Controlo de Congestão do TCP Múltiplas perdas de pacotes Baixa utilização das linhas Colapso de congestão
O papel dos encaminhadores torna-se importante Controlo eficiente da congestão nas redes Alocação apropriada da largura de banda
Técnicas de Gestão de Filas Um dos aspectos mais básicos da
alocação de recursos é como os pacotes são colocados nas filas quando aguardam a sua transmissão
As duas técnicas mais comuns são: Filas FIFO Filas com Equidade (Fair queuing)
Filas FIFO Tem uma capacidade finita de armazenar pacotes Os pacotes são armazenados pela ordem de chegada O pacote no topo da fila é transmitido pela linha Uma fila FIFO introduz alguma latência (atraso) já que
os pacotes esperam na fila até a sua transmissão Com a fila cheia, um pacote que chega é descartado A FIFO é uma disciplina de serviço da fila enquanto o
descarte da cauda é uma política de descarte
Filas FIFO com Prioridade Uma ligeira variação das filas FIFO básicas Cada encaminhador mantém múltiplas filas FIFO
Cada fila tem pacotes com uma certa prioridade Os pacotes são enviados por ordem de prioridade
É um ligeiro melhoramento do conceito melhor esforço da Internet.
Uma geração não controlada de pacotes de alta prioridade pode tornar esta abordagem não usável
É necessário um mecanismo para controlar os pacotes com alta prioridade enviada por cada fonte.
Filas FIFO: Comentários As filas FIFO colocam todo ênfase do controlo de
congestão nos sistemas finais (fonte e destino) Adicionalmente não diferenciam o tráfego com
base em fluxos É bastante provável que um sistema final não adira
(incompreensão ou desobediência) aos pedidos para reduzir o seu fluxo
Desta forma pode apoderar-se de grandes quantidades dos recursos FIFO
Uma solução mais equitativa seria os encaminhadores terem uma FIFO para fluxo
Não aderência a pedidos só afecta o próprio fluxo
Filas com EquidadeFair Queuing (FQ)
Num sistema FQ, o encaminhador mantém uma FIFO por cada fluxo.
As FIFOs são servidas de forma circular (round-robin) Quando a fila dum fluxo fica cheia, qualquer pacote
posterior é descartado (até que a fila se reduza). O FQ não é por si só um algoritmo de controlo
de congestão, simplesmente segrega os fluxos Não diz nada à fonte para reduzir o seu fluxo Precisa de ser combinado com um algoritmo de
controlo de congestão fim-a-fim
Filas Equitativas: Problemas A abordagem FQ básica ignora o impacto
do tamanho dos pacotes na fila Um fluxo com pacotes grandes obtém um
maior número de recursos que outro com pacotes curtos
Um algoritmo FQ mais justo deveria considerar o tamanho dos pacotes Um abordagem ideal (mas obviamente
impraticável) seria servir cada FIFO na base do bit.
Filas Equitativas:Concretização Considere um encaminhador com n fluxos activos O encaminhador concretiza um relógio que se
incrementa cada vez que são transmitidos n bits Qunado o pacote i (num fluxo particular) chega ao
encaminhador é etiquetado com uma estampilha temporal com um valor (Fi) , igual à soma seguinte:
Fi : Tempo em que se finaliza a transmissão do pacote i Ai: Tempo de chegada do pacote i ao encaminhador Pi : O tamanho do pacote i (em bits)
ii1ii PA,FmaxF
Filas Equitativas:Concretização
Quando uma linha de saída fica inactiva, o próximo pacote a ser transmitido é com a menor estampilha temporal (valor Fi)
Desta forma, para um pacote permanecer numa FIFO durante um certo tempo, a linha de saída não pode estar jnactiva durante esse tempo.
Este característica é chamada conservação do trabalho Algumas das características mais importantes da
técnica de conservação são: Cada fluxo tem garantido pelo menos 1/n of da LB de saída Se a largura de banda dum fluxo é usada por outros (se as
FIFOs não estiverem vazias)
Filas Equitativas Ponderadas Weighted Fair Queuing (WFQ) A WFQ permite ser associado um peso a
cada fila Isto resulta a alocação aos diferentes fluxos
proporções maiores ou mais pequenas da largura de banda da linha de saída (que o 1/n da FQ) Considere 3 fluxos ( 1, 2 e 3) respectivamente –
que recebem 1/6, 1/3e 1/2 da LB da linha saída Em termos práticos, este processo pode ser
concretizado usando os pesos para o desiquilíbrio do valor Pi usado para calcular Fi
Filas Equitativas Ponderadas Weighted Fair Queuing (WFQ)
Os pesos dos valores para o WFQ usado no encaminhador podem ser Configurados manualmente (não é
prático) Inicializados pela fonte do fluxo com
alguma forma de sinalização É um tipo de alocação baseada em reserva
mas é imprecisa A proporção da LB atribuída a cada fluxo depende
do número de fluxos activos no encaminhador.
Gestão Activa de Filas
Problemas com os algoritmos convencionais dos encaminhadores Usam uma gestão de filas FIFO com descarte dos
pacotes na cauda (Tail Drop- TD) Dois problemas com a descarte na cauda:
Um pequeno número de fluxos monopolizam a capacidade do buffer
A fila está sempre cheia (atrasos altos na fila) Solução possível: Gestão activa de filas
Definição: Um grupo de mecanismos de gestão de filas FIFO para suportar o controlo de congestão fim-a-fim na Internet
Gestão Activa de Filas
Objectivos Reduzir o tamanho médio da fila:
Diminuir o atraso fim-a-fim Reduzir perda de pacotes:
Uma mais eficiente alocação de recursos Métodos:
Descartar pacotes antes do buffer ficar cheio Usar uma ponderação exponensial do tamanho
médio da fila como indicador de congestão Exemplos: RED, BLUE, ARED, SRED, FRED,
….
Gestão Activa de Filas Random Early Detection (RED)
Usa um algoritmo de rede para detectar congestão incipiente Objectivos da concepção:
• Minimizar perda de pacotes e atraso na fila• Evitar sincronização global• Manter uma utilização alta da linha• Remover desiquilíbrios gerados por fontes em
rajada (bursty source ) Métodos utilizados
• Descarte aleatório de pacotes• Manter um tamanho médio de fila
Gestão Activa de Filas: RED
P1
maxp
mint
h
maxth K
QWavgWavg QQQQ )1(
Qth
thQththth
thQ
thQ
d
avg
avgavg
p
avg
P
max1
maxminminmaxmin
min0
max
0 < Wq < 1 (0.002)
Gestão Activa de Filas: REDDetalhes do RED
A notificação é implícita Basta descartar o pacote
TCP dispara o temporizador Pacote poderia ser marcado explicitamente
Descarte antecipado de pacotes Em vez de de esperar que a fila encha
descarta-se os pacotes com probablilidade p uma vez antingido determinado valor de limiar
Gestão Activa de Filas: REDDetalhes do RED
Dois valores de corte na fila
if AvgLen <= MinThreshold then colocar o pacote na filaif MinThreshold < AvgLen < MaxThreshold then calcular a probabilidade P descartar pacote chegado com probablilidade Pif ManThreshold <= AvgLen then descartar pacote
Gestão Activa de Filas: REDAfinação do RED Probablilidade de descarte de um pacote dum
dado fluxo é aproximadamente proporcional à % de largura
de banda usada pelo fluxo. MaxP é colocada em 0.02
Quando o tamanho médio da fila está a meio dos dois valores de corte é descartado um pacote em cada 50.
Se houver rajadas de tráfego O MinThreshold deve ser suficientemte grande
para manter a utilização da linha a um nível aceitável.
Gestão Activa de Filas: REDAfinação do RED (cont.) A diferença entre os dois valores
de corte deve ser suficientemente grande É razoável colocar MaxThreshold = 2* MinThreshold
Gestão Activa de Filas: BLUE Conceito
Para eliminar problemas do RED Ajuste de parâmetros Flutuação do tamanho da fila
Desliga o controlo de congestão do tamanho da fila
Usa só as perdas e a inactividade como eventos indicadores
Mantém uma única probablidade de descarte, pm
Problema Não consegue evitar algum grau
de múltiplas perdas de pacotes e/ou baixa utilização da linha
Algoritmo Perda de pacotes
if (now - last_update >freeze_t)
Pm = pm + d1 last_update = now
Linha inactiva if (now - last_update
>freeze_t) Pm = pm - d2 last_update = now
Gestão Activa de Filas: SRED
Conceito Estabilizar a ocupação da fila Usar o tamanho actual da fila Penalizar fluxos mal
comportados Problemas
P(i)-1 não é um bom estimador para tráfego heterogéneop
Ajuste de parâmetros: Psred, Pzap, etc.
Estabiliza a ocupação da fila quando o tráfego é alto.
(E quando a carga é baixa ?)
Algoritmo O iésimo pacote chegado é
comparado com um seleccionado aleatóriamente da lista
Acerto = 1, se forem do mesmo fluxo
Acerto = 0, se não p(i) =frequência de acerto =(1-)p(i-
1) +Acerto p(i)-1: estimador de # de fluxos
activos Probablidade de descarte de
pacotes
BqBqBp
BqBppsred
)6/1(0)3/1()6/1()4/1(
)3/1(
max
max
)))(256(
1,1min(* 2iPPP sredzap
Gestão Activa de Filas: ARED
Adaptar a agressividade do RED consoante a mudança da carga de tráfego
Adaptar maxp baseado no comportamento da fila
Operação Aumentar maxp quando avgQ ultrapassa maxth Diminuir maxp quando avgQ é inferior a minth Congelar maxp após mudança para prevenir
oscilações
Gestão Activa de Filas: RIO RIO (RED in and out)
Separar fluxos em duas classes: Dentro e Fora do perfil de serviço
O encaminhador mantém duas estatísticas diferentes para cada perfil de serviço
Parâmetros e tamanho médio das filas diferentes Quando congestionado aplica políticas de
controlo diferentes para cada classe
Pmax_IN
1p
avg
Pmax_OUT
Minth_OUT Maxth_OUT
= Minth_IN
Maxth_IN
Gestão Activa de Filas: Problemas existentes Problemas com proposta existentes
Incompabitilidade entre o comportamento microscópico e macroscópico das filas
Insensibilidade à mudança do tráfego de entrada
Problemas de configuração Definição dos valores dos parâmetros
Razões: Média do tamanho das filas Uso de indicador de congestão não apropriado Uso de função de controlo não apropriada
Notificação Explícita da Congestão Explicit Congestion Notification (ECN)
Indicação actual da congestão Usa o descarte de pacotes para indicar a
congestão A fonte infere a congestão implicitamente
ECN Obter menos perdas de pacotes e melhor
desempenho Marcar em vez de descartar pacotes É preciso a cooperação entre as fontes e a rede São necessários 2 bits no cabeçalho IP: ECT-bit,
CE-bit
Notificação Explícita da Congestão
1
Cabeçalho TCP
ECT CE
1 0Cabeçalho IP
CWR
0
ECT CE
CWR
2
1 1
0
3
Cabeçalho do ACK TCP
ECN-Echo
1
4
Cabeçalho TCP
CWR
1
Fonte Encaminhador Destino
Sumário
xi(t)
pl(t)
TCP: Reno Vegas
AQM: DropTail RED RIO