OpenQoS: An OpenFlow Controller Design for Multimedia Delivery with End-to-End Quality of Service Over Software-Defined Networks Bruno dos Santos Silva1 1 Instituto de Computação – IC Universidade Federal Fluminense – UFF 29 de Outubro de 2015 Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 1 / 39 Introdução 1 Introdução 2 OpenQoS: Projeto do Controlador 3 Rede de Teste OpenFlow e Implementação do OpenQoS 4 Resultados 5 Conclusão 6 Referências Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 2 / 39 Introdução Em transmissões multimı́dia, é preferı́vel que a entrega ocorra rapidamente do que ter confiança de que a entrega será feita. Aplicações de streaming multimı́dia têm exigências rigorosas de atraso que não podem ser garantidam na Internet de melhor esforço. Por isso, é interessante que a rede suporte Quality of Service (QoS) em transmissões multimı́dia. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 3 / 39 Introdução Quality of Service (QoS) Definição Quality of Service (QoS) [1] é a capacidade de fornecer prioridade diferente para diferentes aplicações, usuários ou fluxos de dados, ou de garantir um determinado nı́vel de desempenho para um fluxo de dados. Por exemplo, pode ser garantida uma taxa de bits, atraso, jitter, probabilidade de descarte de pacote ou taxa de erro de bit. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 4 / 39 Introdução Arquiteturas para QoS Com o objetivo de prover QoS para transmissões multimı́dias, a Internet Engineering Task Force (IETF) explorou diversas arquiteturas, das quais se destacam: 1 2 3 IntServ (Integrated Services) DiffServ (Differentiated Services) MLPS (Multiprotocol Label Switching) Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 5 / 39 Introdução Objetivo O objetivo do artigo em estudo é: tratar um problema especı́fico de rede que é prover QoS para transmissões multimı́dia, e apresentar uma solução baseada em OpenFlow para o problema. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 6 / 39 Introdução Proposta O artigo em estudo propõe um novo projeto de controlador, que habilita QoS para transmissões multimı́dia sobre redes OpenFlow, chamado OpenQoS. No OpenQoS, o tráfico é separado em: 1 2 Fluxo de dados: rota tradicional de caminho mais curto Fluxo multimı́dia: rotas geradas dinamicamente com garantia QoS A diferença do OpenQoS para outras arquiteturas QoS é o roteamento dinâmico. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 7 / 39 OpenQoS: Projeto do Controlador 1 Introdução 2 OpenQoS: Projeto do Controlador 3 Rede de Teste OpenFlow e Implementação do OpenQoS 4 Resultados 5 Conclusão 6 Referências Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 8 / 39 OpenQoS: Projeto do Controlador Arquiteturas QoS e Projeto do OpenQoS Há um contı́nuo debate sobre como evoluir a Internet de forma a prover QoS para tráfego multimı́dia. Pode-se agrupar as arquiteturas QoS em duas grandes categorias: 1 2 Serviços Integrados (IntServ) Serviços Diferenciados (DiffServ) Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 9 / 39 OpenQoS: Projeto do Controlador Arquiteturas QoS e Projeto do OpenQoS IntServ Utiliza reserva de recursos Transmissão de dados inicia após conexão fim-a-fim ser estabelecida Maior problema é requerer mudanças no cerne da rede Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 10 / 39 OpenQoS: Projeto do Controlador Arquiteturas QoS e Projeto do OpenQoS DiffServ Utiliza escalonamento para fornecer garantia QoS (fila de prioridade) Requer mudança na borda da rede Utiliza o mesmo mecanismo de roteamento da Internet Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 11 / 39 OpenQoS: Projeto do Controlador Arquiteturas QoS e Projeto do OpenQoS OpenQoS Novo esquema de prioritização baseado em roteamento Roteamento dinâmico de fluxos QoS (tráfego multimı́dia) Outros fluxos de dados permanecem no caminho mais curto Vantagem sobre outros métodos: minimiza latência e perda de pacotes em fluxos não-QoS Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 12 / 39 OpenQoS: Projeto do Controlador Arquiteturas QoS e Projeto do OpenQoS Figura: Comparação de arquiteturas QoS. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 13 / 39 OpenQoS: Projeto do Controlador Arquiteturas QoS e Projeto do OpenQoS OpenQoS é uma extensão do padrão OpenFlow E oferece várias interfaces e funções para habilitar QoS Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 14 / 39 OpenQoS: Projeto do Controlador Arquiteturas QoS e Projeto do OpenQoS Figura: Projeto de controlador OpenQoS. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 15 / 39 OpenQoS: Projeto do Controlador Roteamento por Fluxo em OpenQoS O OpenFlow permite definir fluxos de várias formas. Fluxos podem ser definidos através de uma combinação de campos de cabeçalho. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 16 / 39 OpenQoS: Projeto do Controlador Roteamento por Fluxo em OpenQoS Figura: Campos de identificação de fluxos em OpenFlow. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 17 / 39 OpenQoS: Projeto do Controlador Roteamento por Fluxo em OpenQoS Quando definindo um fluxo, o operador da rede deve levar em conta a limitamção de processamento do dispositivo de rede. Para evitar acessos complexos a tabela de fluxos, definições de fluxos devem ser agregadas de forma inteligente. Tabelas de fluxo são processadas em um sequência linear. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 18 / 39 OpenQoS: Projeto do Controlador Roteamento por Fluxo em OpenQoS Figura: Tabelas de fluxo e processamento sequencial. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 19 / 39 OpenQoS: Projeto do Controlador Roteamento por Fluxo em OpenQoS OpenQoS pode diferenciar tráfegos de dados e multimı́dia através dos seguintes campos: 1 2 3 4 5 Classe de tráfego (MPLS) Tipo de serviço em IPV4 Classe de tráfego em IPV6 Endereço IP, se servidor multimı́dia for conhecido Número de porta de origem ou destino Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 20 / 39 OpenQoS: Projeto do Controlador Roteamento por Fluxo em OpenQoS Como é desejável definir fluxos de acordo com camadas menores, já que complexidade da verificação do campo é menor, os autores propõem definir o fluxo através do campo MPLS. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 21 / 39 OpenQoS: Projeto do Controlador Otimização de Roteamento QoS Dinâmico O roteamento QoS dinâmico é um problema do Caminho mais Curto com Restrição (CSP). Em aplicações multimı́dia, as métricas de custo costumam ser: perda de pacote, atraso e variação do atraso (jitter). O problema CSP é conhecido por ser NP-Completo, então há heurı́sticas e algoritmos de aproximação na literatura. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 22 / 39 OpenQoS: Projeto do Controlador Otimização de Roteamento QoS Dinâmico Para a função de cálculo da rota, os autores propuseram usar o algoritmo Lagrangian Relaxation Based Agregated Cost (LARAC). Esse algoritmo é polinomial e encontra uma boa rota. Quando é detectada uma mudança no topologia, a função de cálculo da rota executa o algoritmo LARAC, para resolver o problema CSP. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 23 / 39 OpenQoS: Projeto do Controlador Otimização de Roteamento QoS Dinâmico Então, quando é detectada uma mudança no topologia, a função de cálculo da rota executa o algoritmo LARAC, para resolver o problema CSP. O controlador atualiza a tabela de fluxo do switch com os novos dados. Logo, as rotas QoS são ajustadas dinamicamente. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 24 / 39 Rede de Teste OpenFlow e Implementação do OpenQoS 1 Introdução 2 OpenQoS: Projeto do Controlador 3 Rede de Teste OpenFlow e Implementação do OpenQoS 4 Resultados 5 Conclusão 6 Referências Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 25 / 39 Rede de Teste OpenFlow e Implementação do OpenQoS Rede de Teste A rede de teste é composta de 3 switches, um controlador e 3 hosts. O controlador roda a implementação do OpenQoS. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 26 / 39 Rede de Teste OpenFlow e Implementação do OpenQoS Roteamento por Fluxo em OpenQoS Figura: Rede de teste. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 27 / 39 Rede de Teste OpenFlow e Implementação do OpenQoS Implementação do OpenQoS O OpenQoS foi implementado sobre o controlador Floodlight. Floodlight possui uma arquitetura modular, que permite a adição de novos módulos. O OpenQoS implementa dois novos módulos: 1 2 gerenciamento de rota, e cálculo de rota. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 28 / 39 Rede de Teste OpenFlow e Implementação do OpenQoS Implementação do OpenQoS Gerenciamento de rota Coleta informação atualizada da rede, através de requisições feitas do controlador aos switches. O controlador OpenQoS coleta informações a cada 1 segundo. O módulo então verifica se há congestionamento (mais de 70% da banda utilizada) em algum dos links e, determina o custo de cada link a ser usado no custo do problema. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 29 / 39 Rede de Teste OpenFlow e Implementação do OpenQoS Implementação do OpenQoS Cálculo de rota Feita quanto o controlador recebe uma mensagem PACKET IN. OpenQoS verifica se é um pacote multimı́dia. Então, o módulo calcula dois caminhos entre origem e destino: um é o caminho QoS otimizado e o outro é o caminho mais curto. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 30 / 39 Resultados 1 Introdução 2 OpenQoS: Projeto do Controlador 3 Rede de Teste OpenFlow e Implementação do OpenQoS 4 Resultados 5 Conclusão 6 Referências Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 31 / 39 Resultados Ambiente de teste Para mostrar o desempenho do OpenQoS, foi utilizado um ambiente de transmissão de vı́deo sobre a topologia apresentada anteriormente. O vı́deo de teste foi gerado com base em uma sequência de quadros. O formato escolhido para o vı́deo foi H.264 com resolução de 1280x720. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 32 / 39 Resultados Ambiente de teste Transmissão sobre UDP Figura: Melhor resultado de transmissão UDP. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 33 / 39 Resultados Ambiente de teste Transmissão sobre UDP Figura: Um resultado de transmissão UDP. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 34 / 39 Resultados Ambiente de teste Transmissão adaptativa baseada em HTTP Figura: Resultado de transmissão HTTP adaptativo. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 35 / 39 Conclusão 1 Introdução 2 OpenQoS: Projeto do Controlador 3 Rede de Teste OpenFlow e Implementação do OpenQoS 4 Resultados 5 Conclusão 6 Referências Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 36 / 39 Conclusão OpenQoS com TCP supera a transmissão adaptativa baseada em HTTP considerada o estado-da-arte, sob congestionamento. OpenQoS garante transmissão de vı́deo sem interrupção, mesmo se um protocolo não confiável com UDP é utilizado. Se um protocolo de transporte confiável como o TCP é usado, OpenQoS garante qualidade total do vı́deo. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 37 / 39 Referências 1 Introdução 2 OpenQoS: Projeto do Controlador 3 Rede de Teste OpenFlow e Implementação do OpenQoS 4 Resultados 5 Conclusão 6 Referências Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 38 / 39 Referências Referências I Disponı́vel em: <https://en.wikipedia.org/wiki/Quality of service> Acesso em: 28 de outubro de 2015. Bruno Silva (IC-UFF) RTS/CTS-Induced Congestion 29 de Outubro de 2015 39 / 39