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
Download

OpenQoS - Universidade Federal Fluminense