Aplicações

          Como visto anteriormente, o OpenFlow permite o experimento de novas proposta na área de Redes de Computadores utilizando uma infraestrtura de rede já existente nas universidades. Dentre os possíveis experimentos permitidos podem ser citados os seguintes [1]:
               -Novos Protocolos de Roteamento: Os algoritmos de um protocolo de roteamento podem ser implementados para executarem no Controlador de uma rede OpenFlow. Assim, quando um pacote do experimento chegar a um comutador ele é encaminhado para o Controlador, que é responsável por escolher a melhor rota para o pacote seguir na rede a partir dos mecanismos do protocolo de roteamento proposto. Após isso, o Controlador adiciona entradas na Tabela de Fluxos de cada comutador pertencente a rota escolhida. Os próximos pacotes desse fluxo que forem encaminhados na rede não necessitarão serem enviados para o Controlador.
               -Mobilidade: Uma rede OpenFlow pode possuir pontos de acesso sem-fio, permitindo que clientes móveis utilizem sua infra-estrutura para se conectarem a Servidores ou à Internet. Assim, mecanismos de handoff podem ser executados no Controlador realizando alteração dinâmica das tabelas de fluxo dos comutadores de acordo com a movimentação do cliente, permitindo a redefinição da rota utilizada.
               -Redes Não-IP: Como visto anteriormente, um comutador OpenFlow pode ser desenvolvido para analisar campos arbitrários de um pacote, permitindo flexibilidade na definição do fluxo. Assim, podem ser testadas, por exemplo, novas formas de endereçamento e roteamento. Nos comutadores do “tipo 0” os pacotes Não-IP podem ser definidos pelo endereço MAC de origem ou destino ou a partir de um novo Tipo de Ethernet ou IP como foi visto na Figura 2.
               -Redes com Processamento de Pacotes: Existem propostas de protocolos que realizam processamento de cada pacote de um fluxo como, por exemplo, os protocolos de Redes Ativas[5]. Esse tipo de proposta pode ser implementado no OpenFlow forçando que cada pacote que um comutador receba seja enviado para o Controlador para ser processado. Outra alternativa é enviar esses pacotes para processamento por um comutador programável, como é o caso de um roteador programável baseado em Net-FPGA [6].