ufes-20191-redes-mininet/proj-prop/proposition.tex
2019-05-23 23:26:53 -03:00

58 lines
6.1 KiB
TeX

\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[portuguese]{babel}
\usepackage[margin=2cm, lmargin=3cm, tmargin=3cm]{geometry}
\usepackage{fancyhdr}
% \pagestyle{myheadings}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.85em}
\title{Proposta de Implementação para Redes de Computadores: revisitar a gerência de rotas entre comutadores de pacotes programáveis}
\author{Ádler Oliveira Silva Neves}
\date{}
\begin{document}
\maketitle
% \tableofcontents
% \begin{abstract}
% \end{abstract}
\section{Introdução}
Redes definidas por software (SDN) permitiram o controle de certas partes da rede que não eram possíveis com \textit{switches} e roteadores tradicionais.
Filtragem de pacotes, monitoramento, balanceamento de carga e outros foram funções de rede virtualizadas (NFV) mudaram a mesma conforme o tempo passou e novas funções foram sendo adicionadas.
Ou seja, adicionou um nível de flexibilidade à infraestrutura existente.
Com a adoção empresarial e a evolução de tal tecnologia, novas possibilidades, aplicações e necessidades surgiram. Uma delas é a definição de redes virtuais entro do \textit{data center} e entre \textit{data centers}.
Entre ambos os \textit{hosts}, existe uma rede que os conecta, e apenas o ``melhor esforço'' na entrega de pacotes pode não atender ao requisitos de aplicação.
Isso demanda um novo olhar sobre a gerência dos fluxos rede.
\section{Problema}
A forma como o algoritmo de \textit{Spanning Tree} do \textit{Open Shortest Path First} (\textit{OSPF}) estabelece rotas em sua forma padrão é eliminar uniformemente \textit{links} para todos os fluxos com base na quantidade de nós.
Essa pode não ser a melhor forma de orquestrar uma rede de data center, na qual a largura de banda e a latência dos \textit{links} podem ser diferentes entre cada segmento, suprindo de maneira diferente cada aplicação conforme sua necessidade.
Um exemplo que pode ser dado é a comunicação entre o \textit{proxy}-reverso e o armazém de binários estáticos grandes duma aplicação, cuja requisição ao armazém obtém um maior proveito de uma latência menor, e a resposta ao \textit{proxy}-reverso, duma banda maior.
Tais peculiaridades de cada aplicação vem sendo negligenciada com uma abordagem ``\textit{one-size-fits-all}''.
Distribuir a aplicação ao redor do globo, para aproximar a aplicação do usuário nem sempre é uma solução.
Alguns artigos do GDPR impõem limites ao que pode ser feito com o dados dos cidadãos dentro e fora do solo europeu.
O projeto de lei nº4060 de 2012, que dispõe sobre o tratamento e proteção de dados pessoais e pode colocar limitações a como os dados de brasileiros podem ser manuseados caso aprovado.
Pode ser conveniente manter os dados de brasileiros no Brasil, por fins de segurança jurídica, ainda que tecnicamente possível replicá-los ou movê-los entre \textit{data centers}, ainda que partes desses dados precisem ser deslocados por longas distâncias esporadicamente e processadas remotamente para atender às requisições dos usuários.
\section{Proposta de solução}
Para buscar uma solução mais apropriada que a abordagem ``\textit{one-size-fits-all}'' do \textit{spanning tree}, assumindo uma rede composta de \textit{hosts}, \textit{links} e comutadores de pacotes programáveis, propõe-se a possibilidade de atribuir a cada par origem-destino na camada 3 (\textit{IP}) uma característica da rede a ser priorizada na entrega do fluxo, como latência e largura de banda, por exemplo.
Com essas informações, o controlador do comutador programável poderia descobrir a topologia da rede, a as características de cada \textit{link} da topologia (exceções seriam informadas explicitamente, como uma conexão de fibra ótica com a \textit{internet} de 7 Gbps através de um enlace de 10 Gbps, por exemplo) e manter um monitoramento constante, de forma a descobrir a melhor rota para o fluxo segundo os critérios do designer da aplicação sem o uso de cotas.
Isso garantiria uma escalabilidade maior mantendo-se o mesmo \textit{hardware} de infraestrutura, sem a necessidade de humanos realizarem tardiamente o ajuste-fino da rede após algum episódio de congestionamento (ou um pico de sobrecarga) da rede.
Detectada alguma mudança nas características da rede ou nos requisitos da aplicação, as novas rotas seriam calculadas sobre as novas características e aplicadas assim que o processamento for concluído e o circuito integrado do comutador fizer uma operação que resulte numa nova consulta ao controlador.
Isso resulta, indiretamente, numa sobreposição de redes, na qual cada combinação única de prioridades feita por cada projetista da aplicação é visto pelo algoritmo de caminho mínimo como um grafo com pesos diferentes nas arestas, resultando em diferentes grafos podados até serem reduzidos a diferentes árvores.
\section{Contribuição com o projeto de pesquisa}
O projeto de pesquisa seria beneficiado (e, consequentemente, a dissertação) com essa implementação a partir do momento que a \textit{Generic Autonomic Networking Architecture} (\textit{GANA}) pressupõe a existência de redes sobrepostas com a finalidade de controlar as \textit{managed entities} (\textit{ME}s) a partir de \textit{decision elements} (\textit{DE}s) com critérios descobertos automaticamente a partir do tráfego na rede e com conhecimentos advindos do \textit{knowledge plane} (\textit{KP}).
O \textit{knowledge plane} ainda não foi realizado, mas implementar os \textit{decision elements} consultando dados fornecidos pelos desenvolvedores, como proposto neste documento, vai de encontro ao \textit{GANA} nível 4, que deixa explícito que compete ao \textit{knowledge plane} descobrir e aprender automaticamente com a rede seus objetivos, prioridades e características.
Como resultado, espera-se obter um código que pode ser reutilizado como prova de conceito de que o \textit{GANA} nível 4 é realizável, uma vez que um candidato a \textit{knowledge plane} esteja implementado e se modifique os \textit{decision elements} para consultar o \textit{knowledge plane}.
\end{document}