510 likes | 584 Views
Encaminhamento com QoS. Sistemas Telemáticos LESI Grupo de Comunicações por Computador. Materiais utilizados. Tema é ainda objecto de I&D Artigo “Survey of QoS” de Pragyansmita Paul and S. V. Raghavan Adaptação e simplificação de apresentação dos mesmos autores. Sumário.
E N D
Encaminhamento com QoS Sistemas Telemáticos LESI Grupo de Comunicações por Computador
Materiais utilizados • Tema é ainda objecto de I&D • Artigo “Survey of QoS” de Pragyansmita Paul and S. V. Raghavan • Adaptação e simplificação de apresentação dos mesmos autores
Sumário • Vantagens da Qualidade de Serviço (QoS) • QoS Fim-a-Fim • Encaminhamento com QoS • Questões em aberto no Encaminhamento com QoS • Algoritmos propostos (classificados com métricas)
QoS • A um conjunto de métricas e restrições que são usadas para especificar os requisitos das aplicações e que devem ser satisfeitas pela rede de suporte durante a transmissão de dados. • As métricas de QoS são: • Largura de Banda • Atrasos • Variação nos atrasos (Jitter) • Perda de Pacotes (Fiabilidade) • Número de saltos, Qualidade Áudio/Vídeo, etc.
QoS Fim-a-Fim • É necessária para: • Disponibilizar garantias sólidas necesárias pelas actuais aplicações com temporização crítica e com necessidades intensivas de largura de banda. • Prevenir a deterioração do desempenho da rede devido a aplicações mal comportadas. • Para optimizar o desempenho todas as camadas da pilha de protocolos devem suportar o QoS a disponibilizar à aplicação de rede a ser executada.
A Pedido de QoS por um host Selecção do Percurso e transferência dos dados (Encaminhamento com QoS) Tradução e negociação do QoS Fim da Transferência dos dados? Não Pedido aceite? Sim Não A Sim Fim da transferência dos dados Sequência de acções para disponibilizar a QoS fim-a-fim
B Controlo de Admissão Busca na tabela de encaminhamento Actualização da informação de estado Gestão de Recursos Reserva de Recursos (opcional) Fim da Transferência dos dados? Não C C Armazenamento e Escalonamento de pacotes Sim Fim da Transferência de Dados B Encaminhamento com QoS
Negociação de QoS e Controlo de Admissão • A negociação começa quando o sistema final envia o seu pedido de QoS • O módulo de controlo de admissão verifica se o pedido deve ser aceite ou rejeitado • Factores de decisão: LB residual, Nº Tx em curso • Se a aceitação levar à degradação de desempenho , o pedido é rejeitado • Alternativa: reencaminhamento das aplicações existentes • Renegociação do QoS
Negociação de QoS e Controlo de Admissão(2) • O sistema final (end-host) pode fazer o controlo de admissão • Faz o probe do nível de congestão • Admite o fluxo se o nível for baixo • Experiências: • Menor degradação de desempenho se o controlo de admissão for feito pelos sistemas finais em alternativa a ser feito pelos encaminhadores
Reserva de Recursos • Uma vez aceite o pedido • é escolhido o percurso para transmissão de dados com base em uma ou mais métricas • Necessária para satisfazer restrições de QoS da aplicação • Duas alternativas • Fazer parte do estabelecimento do percurso • Ser um processo separado
Armazenamento e Escalonamento dos Pacotes • Pacote recém-chegado ao encaminhador • É transferido para a interface de saída e armazenado num buffer • É descartado • Objectivo:Minimizar o descarte de pacotes • Algoritmos de gestão de filas • Algoritmos de escalonamento de pacotes
Algoritmos de Escalonamento • Fair Queueing (FQ) • 1 fila por fluxo (informação de estado por fluxo) • Stochastic Fair Queueing (SFQ) • Menor nº de filas que FQ, uso de função de hash • Core Stateless Fair Queueing (CSFQ) • 2 classes de encaminhadores: • De fonteira • mantêm informação de estado por fluxo • Estimam débito de chegada por fluxo (passam aos interiores) • Interiores • Em situação de congestão, descartam pacotes aleatóriamente com base nessa estimação
Algoritmos de Gestão de Filas • RED (Random Early Detection) & RIO • CHOKe (CHOose and Keep for responsive flows) • Considerar o buffer como uma amostra estatística do tráfego • Em situação de congestão, na chegada de pacote • Escolhe um pacote do buffer aleatoriamente • Se for do mesmo fluxo, descarta os dois • Senão: o do buffer fica intacto e o chegado é aceite em função do nível de congestão
Lookup da Tabela de Encaminhamento • Maior gargalo do processo de expedição dos pacotes • Mais crítica com tecnologias de alta velocidade • Unificação simples (tries) • Unificação mais longa (PATRICIA) • Multi-Protocol Label Switching (MPLS) • Etiqueta de comprimento fixo • Cada pacote tem uma etiqueta • Etiqueta usada para busca na tabela
Gestão de Recursos • Necessária para gerir a dinâmica das conexões estabelecidas • Reserva estática de recursos • GR necessária para verificar utilização eficiente de recursos • Reserva dinâmica?? • Quando não há reserva de recursos • Assegurar uma partilha adequada entre as conexões e que as exigências de cada fluxo são limitadas • Quando cada serviço recipiente recebe o mínimo de QoS, considera-se adequada
Fluxos BE num QoS Router • Para além dos fluxos com QoS, as aplicações BE devem ser geridas de forma apropriada. • Exemplo de trabalho nesse sentido • Restrição de LB para fluxos com QoS • Usa informação imprecisa para o estado de fluxos • MaxMin Fair Routing para fluxos BE • Maximiza a LB para fluxos que recebem menor LB entre todos • Escalonamento hierárquico com WFQ para alocação de LB
Aditiva Multiplicativa Côncava w1 w = w1 + w2 + w3 w = w1 . w2 . w3 w = max{w1 , w2 , w3} Selecção do Percurso – Métricas e Restrições Métrica w2 w3 Percurso P
Selecção do Percurso – Métricas e Restrições Simples Métricas Dual Múltiplas • Simples: Custo, Largura de Banda, Atraso • Dual: Custo e Atraso;LB e Atraso; LB e Custo • Múltiplas: ...
Selecção do Percurso – Métricas e Restrições • Como transformar uma métrica multiplicativa em aditiva? • w1.w2.w3 => log(w1)+log(w2)+log(w3) • Como transformar uma métrica dual (múltipla) numa métrica simples? • (w1,w2) => w´= w1+k w2 • Como transformar uma métrica com valor real ou inteiro não limitado numa com valor inteiro limitado? • w < c => w’= w* x/c
Percurso escolhido min. salto/custo [3,7] 1 A A B 1 B [1,2] 1 [1,4] F F [3,1] 1 [1,4] [1,1] 1 1 1 [4,1] C C E E 1 1 [2,2] D D [1,2] Selecção de Percurso – ME vs. QoS Percurso Escolhido ?
Selecção de Percurso – ME vs. QoS • Em contextos BE é mais fácil descobrir o PMC • Em contextos com QoS • É necessário considerar um conjunto de métricas • cada aresta do grafo tem mais que uma métrica associada • A escolha do PMC depende de • Regra de composição de métricas • Prioridade/Peso atribuídos a cada métrica
Selecção de Percurso no Encaminhamento com QOS • Wang e Crowcroft provaram que encontrar um percurso sujeito a duas ou mais restrições independentes (aditivas e/ou multiplicativas) é um problema NP-Completo.
Selecção de Percurso no encaminhamento com QoS – Resultados interessantes • Quando o número de métricas consideradas é infinito, é suficiente calcular o percurso de menor número de saltos, sem se ter que considerar distribuição dos pesos das métricas independentes. (resultado com interesse teórico) • Podem existir classes de grafos nos quais o encaminhamento com QoS não é NP-Completo. (Referência: P. Van Mieghem, F. A. Kuipers, “On the Complexity of QoS Routing”, na Computer Communications.).
Multicast Unicast • Custo +Atraso • Bandwidth • Múltiplas • Custo • Custo + Atraso • Múltipla • Largura de banda + atraso • Atraso • Delay • Atraso + Jitter • Métrica não aditiva • Qq 2 métricas aditivas Simples Dual Múltiplo Dual Múltiplo Simples Classificação de Algoritmos/Protocolos • Largura de banda • Atraso
N1 N1 N1 N1 -log (0.1) 0.1 0.1 0.2 0.2 N1 N1 N1 N1 1 1 4 4 4 N2 N2 N2 N2 N5 N5 N5 N2 N2 N2 N2 0.2 0.2 N5 N5 N5 N5 3 3 3 5 5 5 -log (0.1) 0.1 0.1 N5 2 2 3 3 3 N4 N3 N4 N4 N4 N3 N3 N3 N4 N4 N4 N4 N3 N3 N3 N3 Problema aditivo Encaminhamento unicast Restrição de Largura de Banda Algoritmo de Guerin Orda Filtragem da Topologia LB > 2 Maximizar Probablidade (LB Residual > 2)
LB • Atraso Multicast Unicast • Múltiplas • Custo • Custo + Atraso • Múltipla • Atraso • Atraso + Jitter • Métrica não aditiva Simples Dual Múltiplo Dual Múltiplo Simples Classificação de Algoritmos/Protocolos • Custo+Atraso • LB + Atraso • Qualquer 2 métricas aditivas
N1 N1 N1 N1 1 1 4 4 4 4 N2 N2 N2 N5 N5 N5 N2 N5 3 3 3 5 5 5 3 5 2 2 3 3 3 3 N4 N4 N4 N3 N3 N3 N4 N3 LB > 2 LB > 2 LB > 2 LB > 2 LB > 2 Encaminhamento Unicast com QoSRestrições de Atraso e Largura de Banda • Eliminatodas as ligações com largura de banda inferior à requerida. • A seguir, encontrao percurso mais curto relativamente ao atrasono grafo modificado usando o algoritmo de Djikstra. Algoritmo de Wang Crowcroft
7 7 2 3 2 3 5 5 3 8 3 8 1 1 1 4 1 4 10 10 2 2 5 5 6 6 6 5 6 5 7 7 Percurso mais curto com o Algoritmo de Djikstra Dado um grafo ponderado G=(V,E), e um par de vértices vs e vdÎ V qual é o percurso mais curto de vs para vd? Isto é qual é o percurso com a mínima soma dos pesos das arestas?
B F C E G D Abordagem básica A B E F H 15 A B E G H 14 A C E F H 16 A C E G H 15 A D E F H 26 A D E G H 25 PMC de A para H = PMC de A para B + PMC from B to H. PMC de A para H = PMC de A para C + PMC from C to H. PMC de A para H = PMC de A para vi+ PMC from vi to H; "vi. 1 2 5 7 1 3 A H 5 6 6 8
Algoritmo de Dijkstra para PMCs • Síntese: • Manter uma estrutura de dados com a lista de nós e pesos dos percursos para esses nós • Usar infinito para representar um no conjunto S de nós para os quais não tenha sido calculado um percurso • Em cada iteração, encontrar um nó em S, calcular o percurso para esse nó e apagá-lo de S
Algoritmo de Dijkstra para PMCs S = {0} /* Actual MST */ for i = 0 to n D[i] = M[0][i] /* Shortest path length from 0 to i */ end for for i = 1 to n-1 find the smallest D[v] such that v S S = S {v} for all vertices u S if (D[u] > D[v] + M[v][u]) then D[u] = D[v] + M[v][u] end if end for end for
B F C E H G D A A B B C C D D E E F F G G H H -- 2 1 6 ? ? ? ? B F E H -- 2 1 6 4 ? ? ? G D Algoritmo de Dijkstra Custo do Percurso mais curto de A para vi através de S 1 2 5 7 1 3 A 5 6 6 8 S = {A} 1 2 5 7 1 3 A C 5 6 6 8 S = {A,C}
F E H G D F H G D Algoritmo de Dijkstra(2) Custo do Percurso mais curto de A para vi atavés de S B 1 2 5 A B C D E F G H 7 1 3 A C -- 2 1 6 3 ? ? ? 5 6 6 8 S = {A,C,B} B 1 2 5 7 A B C D E F G H 1 3 A C E -- 2 1 6 3 10 8 ? 5 6 6 8 S = {A,C,B,E}
F H F H Algoritmo de Dijkstra(3) Custo do Percurso mais curto de A para vi atavés de S B 1 2 5 7 A B C D E F G H 1 3 A C E -- 2 1 6 3 10 8 ? 5 6 6 8 G S = {A,C,B,E,D} D B 1 2 5 A B C D E F G H 7 1 3 A C E -- 2 1 6 3 10 8 14 5 6 6 8 G S = {A,C,B,E,D,G} D
H Algoritmo de Dijkstra (4) Custo do Percurso mais curto de A para vi atavés de S B 1 2 F 5 A B C D E F G H 7 1 3 A C E -- 2 1 6 3 10 8 14 5 6 6 8 G S = {A,C,B,E,D,G,F} D B 1 2 F 5 A B C D E F G H 7 1 3 A C E H -- 2 1 6 3 10 8 14 5 6 6 8 G S = {A,C,B,E,D,G,F,H} D
1 2 3 4 5 6 -- 3 ? ? ? 5 1 2 3 4 5 6 -- 3 10 ? ? 5 7 2 3 5 1 2 3 4 5 6 3 8 1 -- 3 10 7 12 5 1 4 10 2 5 6 1 2 3 4 5 6 6 5 7 -- 3 10 7 12 5 1 2 3 4 5 6 -- 3 10 7 11 5 1 2 3 4 5 6 -- 3 10 7 11 5 Algoritmo de Dijkstra: Exemplo
LB • Atraso Multicast Unicast • Múltiplas • Custo • Custo + Atraso • Múltiplas • Atraso • Atraso + Jitter • Métrica não aditiva Simples Dual Múltiplo Dual Múltiplo Simples Classificação de Algoritmos/Protocolos • Custo +Atraso • LB + Atraso • Quaisquer 2 métricas aditivas
N1 [w1,15,w2,15] w15 w12 [w1,12,w2,12] N2 N5 [w1,24,w2,24] N1 w53 w24 [w1,53,w2,53] w54 w23 [w1,54,w2,54] [w1,23,w2,23] N2 N5 N4 N3 N4 N3 Encaminhamento Unicast com QoSRestrições de quaisquer duas métricas aditivas • Combinação de métricas ponderadas de Jaffe propõe a minimização duma combinação linear de pesos w1 + dw2 onde d=1 ou d=(c1/c2). A última obtém melhores resultados que a primeira. • Foi proposta uma estratégia de procura binária para escolher o peso. w = w1 + d w2
LB • Atraso Multicast Unicast • Múltiplas • Custo + Atraso • Múltiplas • Atraso + Jitter Simples Dual Múltiplo Dual Múltiplo Simples Classificação de Algoritmos/Protocolos • Custo +Atraso • Custo • LB + Atraso • Atraso • Quaisquer 2 métricas aditivas • Métrica não aditiva
Árvore de Steiner Seja G=(V, E) um grafo indirecto com um número finito de vértices V e um conjunto de arestas E, e uma função de custo que atribui a cada aresta um valor de custo real e positivo. Dado um subconjunto S dos vértices de V, o problema de Steiner é encontrar um subgrafo G´ conexo e acíclico de G (árvore), G' =(V', E'), que contém todos os vértices em S, de tal forma que o custo de todas arestas em E' é mínimo. Os vértices em S são designados por especiais.
Árvore geradora mínima • No caso particular de todos os nós da topologia fazerem parte do grupo (ou seja quando S=V), o problema é mais simples e resolve-se calculando a árvore geradora mínima: • Algoritmo de Prim • Algoritmo de Kruskall • …
Algoritmo de Prim • Começa por seleccionar um qualquer vértice (não importa qual), adicionando-o à solução. Depois, iterativamente, escolhe-se a aresta de menor custo, com ligação a vértices da solução, que não forma ciclos e junta-se à solução: O={1} (raiz da árvore). P={2,...,n}Enquanto (P <> Vazio) Escolheraresta K(i,j) de menor custo, com i pertencente a O e j pertencente a P Fazer O = O U {k} Fazer P = P \ {k} • Demo: http://students.ceid.upatras.gr/~papagel/project/prim.htm
Algoritmo de Kruskall • Selecciona a aresta de menor custo. Iterativamente adiciona sempre a aresta de menor custo ainda não seleccionada que não forme ciclos: A1=0,A2=A Enquanto (|A1| < n-1 arestas) ≥ && A2=0 fazer Escolher aresta a(i,j) de A2 de menor custo A2=A2-{a(i,j)} Se vértices V(i) e V(j) não pertencem à mesma árvore: Juntar as árvores de V(i) e V(j) numa única árvore. • Demo: http://students.ceid.upatras.gr/~papagel/project/kruskal.htm
N1 1 1 N2 N5 3 4 2 1 N4 N3 Encaminhamento Multicast com QoS Restrições de custo • Uma árvore que alcança todos membros do grupo e minimiza o custo total da árvore partilhada. Encontrar essa árvore é um problema NP-Completo. Algoritmo de Kou, Markowsky e Berman (KMB) • Criar um grafo conexo onde as arestas sejam as distâncias mais curtas entre os membros do grupo. • O algoritmo de Prim calcula a a árvore de menor custo deste grafo conexo. • As arestas do grafo conexo são posteriormente substituídas pelos percursos mais curtos originais para obter a árvore de Steiner.
Abordagem com informação de estado, com informação por fluxo. Abordagem sem informação de estado e portanto mais escalável Abordagens para QoS Diferenciação de serviço mais grossa. Nós de fronteira classificam os pacotes enquanto os nós interiores os processam de acordo com a classificação. Serviço fim-a-fim garantido por fluxo. Necessidade de reserva de recursos.
Eficácia do Encaminhamento com QoS • Embora o encaminhamento com QoS aumente a computação em cada nó, armazenamento de estado e custo de comunicação, tem a vantagem de aumentar a utilidade da rede e permitir uma degração graciosa do desempenho. • A presença de mecanismos com QoS assegura que mesmo as aplicações mais convencionais e cujo QoS sempre foi esquecido obtenham um melhor desempenho do serviço de rede.. • O encaminhamento com QoS é mais eficaz quando há desajustamento entre o tráfego e a capacidade da rede e existem rotas alternativas com menor carga. .
Questões em aberto (1) • Necessidade de protocolos para encaminhamento com QoS e técnicas de negociação de QoS normalizados • Mecanismos eficientes para evitar percursos com congestão, atrasos altos de propagação e instabilidade no processo de selecção de percursos.
Questões em aberto(2) • A imprecisão na informação de estado precisa de ser manipulada de forma apropriada. • Ao mesmo tempo que se maximiza o número de fluxos com QoS, deve-se procurar optimizar o desempenho e tempo de resposta ao tráfego best-effort. • Necessidade dum algoritmo/protocolo de QoS genérico que use por exemplo uma única métrica representativa de todas as outras com um mínimo de perda de informação.