Última alteração: 10-11-2021
Resumo
As redes de computadores tradicionais são muito complexas e difíceis de gerenciar, fazendo com que um novo protocolo de rede possa levar anos até a sua implementação. Ao contrário das redes atuais, que possuem o plano de controle e plano de dados agrupados, as Redes definidas por software (SDN - Software Defined Networks) propõem a separação lógica do controle da rede, simplificando a criação e introdução de novas abstrações sem exigir modificações significativas nos dispositivos de rede. A separação do plano de controle e de dados em redes SDN é efetuada através de uma interface de programação (API) entre os switches e o controlador SDN, como por exemplo, OpenFlow. O protocolo OpenFlow possui algumas limitações, principalmente em relação à mudança de comportamento do dispositivo de forma dinâmica. Tais limitações podem ser contornadas com a utilização do plano de dados programável, através de linguagens como POF, NPL, P4 e µP4. Tais linguagens possuem potencial para possibilitar um encaminhamento flexível e personalizável através da configuração dos switches. Este trabalho visa avaliar o impacto do uso de diferentes linguagens de programação de plano de dados. Nosso estudo comparativo das linguagens de programação do plano de dados inicia com a análise da compatibilidade de tais linguagens no que diz respeito ao suporte a modularização, reuso, e manutenção/atualizações disponíveis para usuários. O resultado desta avaliação pode auxiliar na escolha da linguagem a ser utilizada, de forma a atender as necessidades do administrador da rede. Para realizar a comparação, foram utilizados três critérios qualitativos. Vale destacar que, em trabalhos futuros, critérios quantitativos serão analisados. Os critérios utilizados no presente trabalho foram: Modularização, reuso e manutenção/atualizações. Como resultado do presente estudo, percebeu-se que a linguagem µP4 possui um nível maior de modularização e reuso em relação às outras, enquanto o P4 é a linguagem com atualizações mais recentes e recorrentes. Desta forma, o µP4 mostrou-se mais adequado em cenários que necessitem de otimização do código em cada switch. Por outro lado, o P4 é a linguagem com mais atualizações, consequentemente, com maior suporte e manutenabilidade. Como trabalhos futuros, pretendemos realizar a avaliação das linguagens de programação do plano dados com a utilização de critérios quantitativos, tais como medidas de desempenho, uso da memória, dentre outros. Além disso, pretende-se avaliar estas linguagens em diferentes cenários, como por exemplo, com o particionamento de políticas em cada switch.