Introdução

          As redes de computadores são um sucesso, sendo parte do cotidiano de bilhões de pessoas. Assim, as redes são compostas por milhares de equipamentos, podendo chegar a milhões no caso da Internet. Devido a esse grande número, propostas de novos protocolos para essas redes podem se tornar impossíveis de serem testadas em ambientes reais, pois muitas necessitariam de mudanças em todos os equipamentos da rede. Além disso, como as redes de computadores são parte da infraestrutura crítica de residências, escritórios e instituições de ensino, essas mudanças poderiam ser descartadas pelos seus administradores. Portanto, esses fatores criam barreiras para novas ideias na área de redes de computadores, pois muitas propostas de pesquisadores dessa área acabam não sendo testadas em ambientes reais. Muitos desses pesquisadores consideram que a infraestrutura de rede está “ossificada”, não podendo ser modificada [1].
          Para possibilitar o experimento de novos protocolos em redes de computadores, algumas redes virtualizadas programáveis estão em desenvolvimento como o GENI [4]. Esse tipo de rede tem como objetivo possibilitar a experimentação de protocolos em larga escala. Assim, essas redes devem possuir roteadores e comutadores, espalhados por um país ou pelo mundo, que podem ser programados para executar protocolos experimentais. Na proposta do GENI, por exemplo, através da virtualização, para cada pesquisador interessado em executar seus experimentos é atribuída um fatia dos recursos da rede que consiste em enlaces de rede, roteadores, comutadores e terminais clientes. Assim, o pesquisador pode configurar esses recursos como desejar.
          As redes virtualizadas programáveis são interessantes para diminuir as barreiras entre uma nova proposta e sua experimentação. Porém, a implementação dessas redes pode ser custosa e demorada devido à sua grande escala [1]. Assim, para permitir a experimentação de novas propostas para redes de computadores em uma escala menor, foi proposto o Comutador OpenFlow (OpenFlow Switch) [1]. Essa proposta tem como objetivo inicial possibilitar que um pesquisador execute seus experimentos na rede real de sua própria universidade. Apesar de parecer uma ideia de simples concretização, devido ao fato de a rede já estar dentro da universidade, ainda existe o problema de os experimentos atrapalharem o funcionamento da rede. Como exposto anteriormente, a infraestrutura de rede é um ponto crítico na universidade e assim o tráfego experimental não pode influenciar no tráfego real da rede. Para isso, no OpenFlow é proposto um mecanismo que é executado em todos os comutadores da universidade de forma que pudesse haver isolamento entre esses dois tipos de tráfego. Assim, o OpenFlow possibilita que os pesquisadores reprogramem os comutadores para executar seus experimentos sem interferência no funcionamento da rede de produção. Outro objetivo dessa proposta é possibilitar que os fabricantes possam adicionar as funcionalidades do OpenFlow aos seus comutadores sem necessitarem expor o projeto desses equipamentos. Além disso, esses equipamentos devem possuir baixo custo e desempenho semelhante aos já utilizados na universidade, de forma que os administradores da rede aceitem a substituição dos equipamentos já existentes. Com base no exposto, o projeto do OpenFlow tem como objetivo ser flexível para atender os seguintes requisitos[1]:

               -Possibilidade de uso em implementação de baixo custo e de alto desempenho;
               -Capacidade de suportar uma ampla gama de pesquisas científicas;
               -Garantia de isolamento entre o tráfego experimental e o tráfego de produção;
               -Consistência com a necessidade dos fabricantes não exporem o projeto de suas plataformas.

          Neste trabalho será abordado o Comutador OpenFlow, que vem conquistando diversos adeptos na comunidade científica. Na Seção Funcionamento será detalhado o funcionamento do OpenFlow. Na Seção Aplicações serão apresentadas algumas aplicações do OpenFlow na experimentação de novos protocolos. Nas Seções NOX e FlowVisor serão detalhadas propostas que adicionam outras funcionalidades ao OpenFlow. Finalmente, a Seção Conclusão apresentará as discussões finais.