Académique Documents
Professionnel Documents
Culture Documents
Identificação:
Grande área do CNPq.: CIÊNCIA DA COMPUTAÇÃO
Área do CNPq: SISTEMAS DE COMPUTAÇÃO
Título do Projeto: Avaliação do uso do OpenFlow na recuperação de falhas em
Datacenters centrados nos servidores
Professor Orientador: RODOLFO DA SILVA VILLAÇA
Estudante PIBIC/PIVIC: PHILLIPI DE OLIVEIRA GIOBINI
Resumo: Em Data Centers centrados em servidores, estes não somente participam no processamento dos
dados, mas também no encaminhamento do tráfego de rede. Em geral os servidores são organizados em
uma topologia conhecida como hipercubo, onde o encaminhamento é feito através de simples operações
de ou-exclusivo (XOR). Se por um lado essa simplicidade contribui para o aumento da vazão e
diminuição da latência, por outro o encaminhamento só funciona caso o hipercubo esteja completo, ou
seja, na inexistência de falhas de nó ou enlace. Este trabalho se propõe a investigar uma alternativa,
baseada na tecnologia OpenFlow, para o tratamento de falhas em hipercubos. Espera-se, como resultado
deste projeto que, em caso de ocorrência de uma falha, um controlador SDN seja notificado e modifique
a forma de encaminhamento dos nós afetados por essa falha, calcule rotas alternativas e instale novas
regras de encaminhamento, garantindo a entrega das mensagens no Data Center.
1 – Introdução
Data Centers são bastante utilizados no processamento e armazenamento de grandes volumes de
dados e, em função disso, existem diversas arquiteturas para a montagem da sua infraestrutura, são
exemplos: Dcell [1], BCube [2], Al-Fares et al. [3]. Dentre essas arquiteturas destacam-se os Data
Centers centrados nos servidores (server-centric). A característica mais importante dos Data Centers
centrados nos servidores é que os elementos de rede (switches, por exemplo) não estão envolvidos
diretamente nas decisões de encaminhamento de tráfego de rede. Eles simplesmente fornecem conexões
entre os servidores, e estes sim, são os responsáveis por todas as decisões de encaminhamento no interior
do Data Center. Nesse contexto, equipamentos de rede de baixo custo (COTS, ou Commodity Off-the-
Shelf), podem ser utilizados na montagem da infraestrutura ou até mesmo ligações diretas entre os
servidores podem ser estabelecidas.
Uma topologia de interligação dos servidores bastante comum nas arquiteturas de Data Center
centrados nos servidores é o hipercubo [4]. Em um hipercubo cada servidor (que também pode ser
chamado de um nó na rede do Data Center) possui um identificador único de n-bits e n interfaces de rede,
que o interliga a outros n servidores, que serão os seus vizinhos no Data Center. A restrição na escolha
desses vizinhos é tal que cada servidor só poderá ter como vizinhos outros servidores cuja distância de
Hamming (D_h) entre seus identificadores é igual a 1, conforme Figura 1.
1
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
Essa restrição facilita o processo de encaminhamento de tráfego no interior do Data Center, onde
basta uma simples operação de XOR para determinação da interface de saída para a qual os pacotes
deverão ser encaminhados a fim de alcançarem o seu destino.
Por exemplo, considere o cenário da Figura 1. Imagine que o nó 010 deseja enviar uma
mensagem para o nó de destino 001. O nó de origem conhece o identificador do nó de destino, então
efetua a operação XOR. A decisão de roteamento (d) entre os nós 010 (src) e 001 (dst) é representada pela
Equação a seguir:
d = src dst (Equação 1)
onde corresponde à operação XOR. O resultado desta operação será 011 onde o primeiro bit 1 (menos
significativo) representa o eixo x, o segundo bit 1 representa o eixo y e o terceiro bit 0 (mais significativo)
representa o eixo z. Temos então dois caminhos de menor custo disponíveis até o destino desejado: um no
eixo x e outro no eixo y, cujos bits são iguais a 1. Isso quer dizer que encaminhar a mensagem nas
direções x ou y resultará em caminhos de custo igual. Em geral, sorteia-se aleatoriamente um próximo
para dar seguimento ao encaminhamento da mensagem até o seu destino final, 001. Dentre essas duas
possibilidades, selecionando-se por exemplo o caminho do eixo x a mensagem é transmitida para o nó
011. Por sua vez, o nó 011 recebe e efetua novamente a operação da Equação 1, com src=011 e como
resultado temos 010. Como o único bit igual a 1 corresponde ao eixo y a mensagem é encaminhada por
esse eixo chegando ao destino com o menor custo possível.
Embora o encaminhamento baseado em operações XOR seja bastante eficiente [5, 6], o mesmo
só funciona em situações onde os hipercubos virtuais estão completos, ou seja, na ausência de falhas de
nós ou de enlaces no Data Center. Na ocorrência de uma falha o resultado da operação XOR poderá
indicar uma interface de saída que leve o pacote a um nó inoperante ou a um enlace indisponível, o que
irá ocasionar perda de pacotes e quebra da completa conectividade entre os nós do Data Center enquanto
a falha estiver presente.
Devido a isso, torna-se necessário a proposição de soluções capazes de lidar com esse problema,
e este projeto se propõe a apresentar uma abordagem baseada em Redes Definidas por Software (SDN, ou
Software Defined Networking), especificamente no protocolo OpenFlow [7], para garantir o
encaminhamento de tráfego em Data Centers centrados nos servidores ligados na topologia de hipercubo.
2
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
Em [8] foi apresentada uma solução, denominada FlexForward, capaz de alterar dinamicamente a forma
de encaminhamento dos nós de um Data Center em função de mensagens de controle do protocolo
OpenFlow. No FlexForward todos os nós estão ligados a um plano de controle baseado no protocolo
OpenFlow.
Na ocorrência de uma falha de enlace (ou na indisponibilidade de um nó) o controlador é
avisado, reconstrói o grafo de conectividade, calcula rotas entre todas os possíveis origens e destinos para
os nós afetados por essa falha, envia mensagens de modificação das tabelas do protocolo OpenFlow e
altera a forma de encaminhamento dos nós, garantindo-se assim a conectividade mesmo durante o período
de restauração da falha.
2 – Objetivos
Sabendo-se que a topologia de hipercubo é bastante utilizada em Data Centers capazes de
armazenar e processar grandes volumes de dados, devido à simplicidade e baixa latência no
encaminhamento de pacotes na rede, o objetivo principal deste trabalho de Iniciação Científica é
implementar uma solução simples, baseada no protocolo OpenFlow, para o problema da conectividade em
hipercubos incompletos.
3 – Metodologia
Mininet [9] é um emulador de rede, que cria uma rede de hosts virtuais, switches, controladores e
links. Executa software de rede padrão do Linux, e seus switches suportam OpenFlow [10] para o
encaminhamento personalizado e altamente flexível em Redes Definidas Por Software.
Para controlar e gerenciar todos os dispositivos emulados, o Mininet fornece uma CLI
(Command Line Interface) conhecedora de toda a rede, ou seja, através de um único console, pode-se
controlar todos os dispositivos emulados. Outra grande vantagem desse emulador é a facilidade de criação
de topologias customizadas através de uma API (Application Programming Interface) para programação
em Python, que foi amplamente utilizada para execução dos algoritmos deste trabalho.
O Controlador utilizado foi o Ryu [11], por ser uma plataforma aberta que suporta as versões
mais recentes do protocolo OpenFlow. Em geral, o controlador SDN é o "cérebro" do ambiente SDN,
gerenciando o envio de pacotes e tratamento de eventos entre switches e roteadores compatíveis. No
desenvolvimento desta aplicação, realizamos uma divisão das atividades em módulos [12] (plano de
controle), onde cada um responsável por uma determinada etapa na construção das regras de fluxo,
partindo desde a manipulação das mensagens de falha até a geração das regras de modificação que serão
instaladas em cada um dos nós no hipercubo. Portanto, os módulos ficaram divididos da seguinte forma:
• 1) Recepção das Mensagens;
• 2) Tratamento dos Eventos;
• 3) Representação Topológica e Cálculo das Rotas e;
• 4) Instalação das regras de encaminhamento, identificado na Figura 2.
3
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
4
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
Até onde foi possível pesquisar, quase não se encontra trabalhos que explique um método de
criação e distribuição dos dos ID’s. O melhor encontrado, funciona com árvore de caminhos mínimos,
que consegue distribuir os ID’s por tentativa e erro, o que o torna ineficiente com um hipercubo de
grandes dimensões. O que mais se encontra, é hipercubos de dimensões pequenas, que podem ser feitos
geometricamente, sem muita dificuldade.
Após um estudo, e muitos esboços manuais de grafos a respeito do problema, foi possível
perceber que ao representar o grafo do hipercubo por matriz de adjacência, seguindo determinadas regras,
a matriz resultante começou a formar padrões interessantes, fundamentais na construção do algoritmo.
Uma matriz de adjacência [15] é uma das formas de se representar um grafo. Dado um grafo G com n
vértices, podemos representá-lo em uma matriz nxn A(G)=[aij] (ou simplesmente A). Para representarmos
um grafo não direcionado, simples e sem pesos nas arestas, basta que as entradas aij da matriz A
contenham 1 se Vi e Vj são adjacentes e 0 caso contrário.
Por hora, vamos considerar que o ID de cada vértices é sua coordenada, e que cada dimensão
dessa coordenada varia apenas entre bits 0 e 1. Na próxima seção, trataremos como um ID de fato, mas
aqui tornará mais facil para uma compreensão geométrica do problema.
Vamos analisar o quadrado apresentado na Figura 3(a). As coordenadas dos vértices estão
distribuidas respeitando as propriedades do plano cartesiano. Seus vértices, numerados de 1 a 4, estão
distribuidos com base na tabela verdade da Figura 3(b). A tabela tem como entrada as coordenas xy dos
vértices na ordem invertida, e na coluna de saída (V) a numeração sequencial dos vértices. A inversão das
coordenadas preserva a sequencia binária de entrada da tabela verdade, enquanto que a distribuição
sequencial na coluna de saída (V) preserva a distância de Hamming entre os vértices adjacentes. A Figura
3(c) apresenta a matriz de adjacência formada pela ligação dos vértices na Figura 3(a). A ligação entre os
vértices iguais (quando i=j) não é feita, pois estamos interessados apenas nos vizinhos daquele vértice. A
matriz ainda não nos revela muitas informações, mas é importante compreendê-la, pois faz parte da base
de uma recursão.
Y X V
0 0 1
0 1 2
1 0 3
1 1 4
5
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
mesmo padrão de conexões do 2º quadrante, enquanto que o 1º e 3º quadrantes possuem uma matriz
identidade. A função dessas matrizes identidades é conectar os dois quadrados, através dos seus vértices
correspondentes com uma terceira dimensão, formando um cubo. Por exemplo, os vértices 1 e 5 da Figura
4(a) são correspondentes, e interligados pela dimensão z.
Z Y X V
0 0 0 1
0 0 1 2
0 1 0 3
0 1 1 4
1 0 0 5
1 0 1 6
1 1 0 7
1 1 1 8
(a) (b)
Figura 5: Modelo 4D e Matriz de Adjacência.
A Figura 6(a) apresenta um hipercubo de 5 dimensões, onde ainda é possível representá-lo de uma
maneira pouco abstrata. Aqui novamente temos a adição de mais uma dimensão. Se observar atentamente
a figura, é possível perceber que, para formar este hipercubo, une-se os vértices correspondentes dos dois
hipercubos de 4 dimensões, através da quinta dimensão. A Figura 6(b) apresenta a matriz correspondente,
onde nos quadrantes 2 e 4, vemos o hipercubo de quatro dimensões sendo conectados pelos quadrantes 1
e 3, através das matrizes identidades.
6
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
(a) (b)
Figura 6: Modelo 5D e Matriz de Adjacência.
Usando essa representação por matrizes de adjacência, de forma recursiva, podemos criar um
hipercubo tão grande quanto precisarmos, de uma maneira rápida e eficiente. Não é preciso fazer o
desenho e nem a tabela verdade para monta-lo. Por exemplo, usando a matriz da Figura 6(b), onde temos
um hipercubo de 5 dimensões (2^5 = 32 nós), basta fazermos uma contagem binária de 5 bits e atribuir de
forma sequencial a cada nó. Então, o ID do nó 1 => 00000, do nó 2=>00001, …, do nó 32=>11111.
Exemplos de verificação entre nós adjacentes:
• 16=>01111 e 32=>11111, temos que 01111 11111 = 10000.
7
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
que o controlador conheça todos os nós, e seus vizinhos, para que o algoritmo identifique falhas ou
distribua seus ID’s. Também é usado para verificar quando ocorre algum evento, seja ele queda ou
reestabelecimento de alguma aresta no grafo do hipercubo do NetworkX, para determinar se os pacotes
serão encaminhados via XOR, ou da forma convencional por tabelas de roteamento.
Vamos considerar o hipercubo de quatro dimensões apresentado na Figura 7(a). Neste exemplo,
os nós estão identificados com letras para não serem confundidos com os números da matriz de
adjacência, e estão distribuidas de forma aleatória. Após o FLOOD, o controlador tem algo semelhante ao
apresentado na Figura 7(b), uma lista de nós com seus respectivos vizinhos (listagem de vizinhança).
(a) (b)
Figura 7: Hipercubo de 4 dimensões, sem distribuição de ID’s
Para essa distribuição de ID’s, consideramos a matriz da Figura 5(b), que deve ser da mesma
dimensão do hipercubo (ordem 4). O primeiro passo do algoritmo é obtermos a primeira linha da figura
5(b), e inserir em um vetor de tamanho 2^4 = 16 posições, da seguinte forma:
A B F N P
O primeiro nó de uma listagem de vizinhança é inserido no vetor de tal forma que, a identificação do nó
ocupa a 1ª posição do vetor (neste caso, o “A”), e seus vizinhos são colocados no vetor acima de acordo
com a primeira linha da matriz da figura 5(b), nas posições correspondentes marcadas com 1, ou seja, as
posições 2, 3, 5 e 9, que estão ocupadas por “B”, “F”, “N”, “P”, respectivamente. Neste passo, não é
necessário se preocupar com a ordem de “B”, “F”, “N”, e “P”, desde que o “A” esteja na primeira posição
e os elementos ocupem as posições mencionadas.
Vamos preencher a quarta posição do vetor, que se encontra em branco. Precisamos colocar um
nó ali que tenha o “B” e “F” como vizinhos, e que ainda não está no vetor. Analisando a Figura 7(b),
verificamos que o “I” atende os requisitos. Inserindo no vetor, temos:
A B F I N P
Vamos preecher a sexta posição. Recorrendo novamente a matriz da Figura 5(b), vamos precisar da sexta
linha. Da sexta linha, temos que 6 => [2, 5, 8, 14], onde vamos usar esses vizinhos do “6” para fazer uma
correspondência de posições do nosso vetor acima. O elemento 2, corresponde ao “B” (2ª posição), o
elemento 5 corresponde ao “N” (5ª posição), e as posições 8º e 14º do vetor estão vazias, portanto são
ignoradas. Agora temos que encontrar na Figura 7(b) novamente, um nó que tenha o “B” e “N” como
vizinhos, e que ainda não estão no vetor. Verificamos que o “L” atende aos requisitos, então preencherá a
sexta posição. Inserindo no vetor, temos:
A B F I N L P
8
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
Da mesma forma, vamos preencher a sétima posição do vetor. Da matriz, temos que 7 => [3, 5, 8, 15]. Do
nosso vetor, temos que “F” ocupa a 3ª posição e “N” a 5ª posição (8ª e 15ª posição vazias, então
ignoramos). Então, o elemento que possui “F” e “N” como vizinhos e ainda não está no vetor, é o “O”.
A B F I N L O P
Da mesma forma para a oitava posição, da matriz temos que 8 => [4, 6, 7, 16], então, do vetor temos “I”
(4ª posição), “L” (6ª posição), “O” (7ª posição) e o 16º elemento está em branco. Então, o elemento que
possui “I”, “L” e “O” como vizinhos, de acordo com a Figura 7(b), é o elemento “M”. Inserindo, temos:
A B F I N L O M P
Executando exatamente o mesmo algoritmo para todas as posições em branco, da esquerda para direita,
de forma sequencial (sem pular posições), obtemos o vetor:
A B F I N L O M P J G H D C E K
Se, em algum dos passos não for possível encontrar TODOS os elementos que um nó o possua como
vizinho, por exemplo, alguém que possua “X”, “Y” e “Z” como vizinho, e nenhum vértice corresponder
com os três elementos, então não é um hipercubo (existe falha em algum link). Caso contrário, da mesma
forma que na construção do hipercubo, basta fazer uma contagem binária de n=4 bits, e distribuir essa
contagem de forma sequencial ao vetor, tornando-se o ID de cada nó.
A B F I N L O M P J G H D C E K
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Substituindo as letras pelos ID’s, todos os vértices adjacentes da Figura 7(a) terão distância de Hamming
igual a 1. Esse algoritmo pode ser usado para cubos de qualquer ordem. É claro que, conforme aumenta a
dimensão, a quantidade de buscas do algoritmo aumenta de forma exponencial. Sua performance será
mostrada na seção resultados.
9
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
4 – Resultados
10
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
Foi utilizado como ambiente de emulação o Mininet 2.2.0, por ter suporte ao OpenFlow 1.3. Em
conjunto, como máquina de encaminhamento (software switch) foi utilizado o Open vSwitch [9] na
versão 2.3. Como descrito no início da metodologia, o controlador utilizado foi o Ryu, e os algoritmos
desenvolvidos na linguagem Python. Os testes foram realizados no Laboratório de Redes e
Telecomunicações do CEUNES, onde a máquina virtual do mininet foi executada em uma máquina com
processador Intel Core i7 (3ª Ger.), com 32 GB de RAM, sobre o Ubuntu 16.04 LTS.
Para resultados precisos, cada experimento foi repetido 50 vezes (5 repetições para hipercubos
acima de 15 dimensões, devido a demora). Os tempos mostrados nos resultados a seguir, são médias
aritméticas. Os resultados também não consideram o tempo de FLOOD (inundação controlada de pacotes
para descoberta de nós), apenas o tempo que ação levou para ser processada no plano de controle
(Controlador).
O gráfico da Figura 8(a) apresenta o tempo gasto para a criação do grafo do Hipercubo no
NetworkX, de acordo com a quantidade de dimensões. A tabela da Figura 8(b) apresenta com mais
precisão os valores do gráfico. Como pode ser observado no gráfico, a curva de tempo tem um
comportamento exponencial (quanto mais dimensões, mais tempo gasto).
Dimensão Qnt. Vértices Tempo Méd. Criação
3 8 0,190 ms
4 16 0,194 ms
5 32 0,205 ms
6 64 0,217 ms
7 128 0,452 ms
8 256 0,802 ms
9 512 1,394 ms
10 1024 2,702 ms
11 2048 6,384 ms
12 4096 12,988 ms
13 8192 27,847 ms
14 16384 57,446 ms
15 32768 119,62 ms
16 65536 521,292 ms
17 131072 527,755 ms
18 262144 1129,605 ms
(a) (b)
Figura 8: Tempo Médio de Criação do Hipercubo.
11
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
11 2048 4 MB 2 KB
12 4096 16 MB 4 KB
13 8192 64 MB 8 KB
14 16384 256 MB 16 KB
15 32768 1 GB 32 KB
16 65536 4 GB 64 KB
17 131072 16 GB 128 KB
18 262144 64 GB 256 KB
Tabela 1: Comparativo de consumo de RAM entre Matriz e Vetor de Adjacência.
O gráfico da Figura 9(a) apresenta o tempo gasto na verificação de falhas do grafo modificado
do NetworkX, de acordo com a quantidade de dimensões. Toda vez que um ou mais links são
reestabelecidos, a função de Cálculo das Rotas precisa verificar se o hipercubo está completo. Quanto
mais dimensões, mais custosa a verificação se torna. A tabela da figura 9(b) apresenta com mais precisão
os valores do gráfico.
(a) (b)
Figura 9: Tempo Médio de Verificação de Falhas no Grafo
O gráfico da Figura 10(a) apresenta a quantidade de buscas que a função de verificação de falhas
precisa fazer para cada dimensão do hipercubo. Essas são as buscas descritas na seção 3.2, onde o
algoritmo precisa encontrar qual nó possui determinados elementos como vizinho. A quantidade de
buscas aumenta exponencialmente conforme a quantidade de dimensões. A tabela da figura 10(b)
apresenta com mais precisão os valores do gráfico.
Dimensão Qnt. Nós Qnt. Buscas
3 8 15
4 16 52
5 32 135
6 64 306
7 128 651
8 256 1352
9 512 2799
10 1024 5830
11 2048 12243
12 4096 25884
13 8192 54951
14 16384 116858
15 32768 248475
16 65536 527632
17 131072 1118175
18 262144 2364174
(a) (b)
12
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
(a) (b)
Figura 11: Tempo Médio de Instalação das Tabelas.
Com base nos dados anteriores, a Tabela 2 apresenta o tempo total de recuperação de falhas.
Caso haja falhas simultâneas, a função de Representação Topológica e o módulo Instalação das Regras
irão tratar essas falhas obedecendo uma fila, ou seja, o tempo será multiplicado de acordo com a
quantidade de falhas, de acordo com o tamanho do hipercubo. Durante o tempo de recuperação, pacotes
que utilizam rotas com falha(s) via operação XOR serão perdidos, até que as novas tabelas de roteamento
sejam instaladas, recuperando a conectividade.
Dimensão Qnt. Nós Tempo Méd. Verificação Tempo Méd. Instalação Tempo Méd. Recuperação Falhas
3 8 0,211 ms 0,099 ms 0,31 ms
4 16 0,257 ms 0,559 ms 0,816 ms
5 32 0,372 ms 1,225 ms 1,597 ms
6 64 0,476 ms 7,108 ms 7,584 ms
7 128 0,855 ms 36,867 ms 37,772 ms
8 256 2,147 ms 222,436 ms 224,583 ms
9 512 4,124 ms 1,500 s 1,504 s
10 1024 10,031 ms 11,006 s 11,007 s
11 2048 28,962 ms 83,742 s 83,771 s
12 4096 79,125 ms 645,017 s 645,096 s
Tabela 2: Tempo total gasto na recuperação de uma falha.
5 – Discussão e Conclusões
Este relatório apresentou os resultados de uma avaliação de desempenho de uma solução baseada
no protocolo OpenFlow para garantir conectividade em hipercubos incompletos, uma topologia
13
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
tradicional em Data Centers centrados nos servidores. Para validação da proposta foi implementado um
protótipo experimental com uso do Mininet, controlador Ryu e OpenFlow 1.3.
A solução apresentada está longe de ser uma solução definitiva, mas atende bem em casos onde
são utilizadas poucas dimensões. Em trabalhos relacionados [12], existem métodos de compactação de
tabelas para os casos de falhas, solução que reduz, em alguns casos, em mais de 99% a quantidade de
entradas nas tabelas de encaminhamento e uniformiza a distribuição dos fluxos, em uma comunicação de
todos para todos, em 100% dos enlaces, ambos no plano de dados. Faz parte de uma dissertação de
mestrado, e está fora do escopo deste trabalho.
Mesmo em ambientes emulados, há alguma perda de conectividade até que se detecte a falha e
seja feita a instalação de rotas alternativas nos nós do hipercubo. Após isso, a conectividade é restaurada e
pode-se afirmar que o tempo de instalação das rotas alternativas é pequeno, em geral menor do que o
tempo de restauração da falha de um nó ou enlace, que pode ser da ordem de minutos ou horas.
Foram notadas instabilidades no mininet com após um tempo de funcionamento com hipercubos
grandes. Ao fim de cada teste, toda a topologia era reiniciada por completo. Grande toda ou parte da
literatura sobre SDN e OpenFlow, se encontra em lingua estrangeira.
6 – Referências Bibliográficas
[1] Guo, C., Wu, H., Tan, K., Shi, L., Zhang, Y., and Lu, S. (2008). Dcell: A scalable and fault-tolerant
network structure for data centers. SIGCOMM Computer Communications Review, 38(4):75–86.
[2] Guo, C., Lu, G., Li, D., Wu, H., Zhang, X., Shi, Y., Tian, C., Zhang, Y., and Lu, S. (2009). BCube: A
High Performance, Server-Centric Network Architecture for Modular Data Centers. SIGCOMM
Computer Communications Review, 39(4):63–74.
[3] Al-Fares, M., Loukissas, A., and Vahdat, A. (2008). A scalable, commodity data center network
architecture. SIGCOMM Computer Communications Review, 38(4):63–74.
[4] Saad, Y. and Schultz, M. H. (1989). Data communication in hypercubes. Journal of Parallel and
Distributed Computing, 6(1):115 – 135.
[5] Performance analysis of k-ary n-cube interconnection networks. IEEE Transactions on Computers,
39(6):775–785.
[6] Fujiwara, I., Koibuchi, M., Matsutani, H., and Casanova, H. (2014). Skywalk: A topology for hpc
networks with low-delay switches. In Proceedings of the 2014 IEEE 28th International Parallel and
Distributed Processing Symposium, IPDPS ’14, pages 263–272, Washington, DC, USA. IEEE
Computer Society.
[7] McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford, J., Shenker, S.,
andTurner, J. (2008). Openflow: Enabling innovation in campus networks. SIGCOMM Computer
Communications Review, 38(2):69–74.
[8] Vencioneck, R., Vassoler, G., Martinello, M., Ribeiro, M., and Marcondes, C. (2014). Flexforward:
Enabling an sdn manageable forwarding engine in open vswitch. In Network and Service
Management (CNSM), 2014 10th International Conference on, pages 296–299.
14
Universidade Federal do Espírito Santo
Programa Institucional de Iniciação Científica
Relatório Final de Pesquisa
Ciências Exatas e da Terra
[9] Brandon Heller Reproducible network research with high-fidelity emulation Ph.D. Thesis, Stanford
University, 2013.
[10] Ben Pfaff, Justin Pettit, Teemu Koponen, Ethan Jackson, Andy Zhou, Jarno Rajahalme, Jesse Gross,
Alex Wang, Joe Stringer, Pravin Shelar, Keith Amidon,Martin Casado (2015). The Design and
Implementation of Open vSwitch. 12th USENIX Symposium on Networked Systems Design and
Implementation (NSDI 15). pages 117-130.
[11] Ryu. Build SDN Agilely. Website. “https://osrg.github.io/ryu/”.
[12] DE LIMA, Dione S. A. Uma Abordagem OpenFlow para Tratamento de Falhas na Topologia
Hipercubo com Compactação de Tabelas de Encaminhamento. 2016. 72 f - Universidade Federal do
Espírito Santo. Vitória – ES. 2016.
[13] ONF, O. N. F. (2012). Openflow switch specification version 1.3.0 (wire protocol 0x04). Website.
https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-
specifications/openflow/openflow-spec-v1.3.0.pdf.
[14] Harary, F.; Hayes, J. P.; Wu, H.J. (1988), «A survey of the theory of hypercube graphs», Computers
& Mathematics with Applications.
[15] CHARTRAND, G., LESNIAK, L. Graphs & Digraphs. Editora CRC Press, 2004.
[16] NetworkX. High-productivity software for complex networks. Website.
“https://networkx.github.io/”.
15