1 / 75

Prevenção e Controlo de Congestão

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. Materias utilizados. Internet Congestion Control with Active Queue Management (AQM) , Seungwan Ryu (sryu@eng.buffalo.edu).

marin
Download Presentation

Prevenção e Controlo de Congestão

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Materias utilizados • Internet Congestion Control with Active Queue Management (AQM), Seungwan Ryu (sryu@eng.buffalo.edu)

  3. Sumário • Introdução • Controlo de Congestão no TCP • Gestão Activa de Filas • Notificação Explícita de Congestão

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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.

  10. 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)

  11. 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.

  12. 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).

  13. 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

  14. 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)

  15. 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

  16. 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

  17. 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)

  18. 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).

  19. 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

  20. 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.

  21. Í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)

  22. 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 antesda rede estar sobrecarregada

  23. 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

  24. 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

  25. 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

  26. Políticas que afectam a congestão

  27. Anel Aberto: Calibração de TráfegoTraffic 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.

  28. 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

  29. 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

  30. 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

  31. 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.

  32. 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)

  33. 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

  34. 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

  35. 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.

  36. cwnd Arranque lento W* 4 2 1 Time RTT Controlo de Congestão no TCP • Arranque lento e prevenção de congestão Prevenção de Congestão W+1 W W*/2 RTT

  37. 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…

  38. 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

  39. Arranque lento no TCP 1 tempo 0 tempo 4 1 1 tempo 1 tempo 5 1 1 tempo 2 tempo 6 1 1 tempo 3 tempo 7 1

  40. Arranque lento no TCP 2 tempo 8 tempo 13 2 3 3 2 tempo 9 tempo 14 2 3 3 2 tempo 10 tempo 15 2 3 3 2 tempo 11 4 tempo 16 3 3 tempo 12 5 4 2 tempo 17

  41. Arranque lento no TCP 6 5 4 tempo 18 tempo 23 4 5 6 7 7 6 5 4 8 tempo 19 tempo 24 5 6 7 7 6 5 tempo 20 9 8 4 tempo 25 6 7 7 6 tempo 21 10 9 8 4 5 tempo 26 7 7 tempo 22 11 10 9 8 4 5 2 tempo 27

  42. Arranque lento no TCP 12 11 10 9 tempo 28 8 13 12 11 10 tempo 29 8 9 14 13 12 11 tempo 30 8 9 10 15 14 13 12 tempo 31 8 9 10 11

  43. 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

  44. 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!!

  45. 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

  46. Controlo de Congestão no TCP Prevenção de Congestão /*arranque lento terminado*/ /* Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 Executar arranque lento

  47. 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

  48. Controlo de Congestão no TCPTCP 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

  49. 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

  50. 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)

More Related