Logo img
Redes de Computadores II - prof. Luís Henrique

Membros do Grupo

  • Bruno Carvalho
  • Lucas Meyer

Introdução

Com o passar dos anos, houve um crescimento da demanda por sistemas mais centralizados pela internet, exigindo a criação e expansão de data centers. Com a necessidade de escalabilidade, o protocolo BGP(Border Gateway Protocol) foi adaptado para ser o protocolo de roteamento dentro destas estruturas. Contudo, foram encontradas várias questões e desafios ao longo do tempo quanto ao uso do BGP, devido ao fato de ser um protocolo mais geral desenvolvido para um ambiente descentralizado. Mesmo sendo possível tratar muitas dessas questões, um protocolo de roteamento dedicado diretamente para trabalhar em um ambiente estruturado terá claras vantagens sobre o BGP. Será abordado neste trabalho um deste tipo de protocolo: o protocolo RIFT (Routing In Fat Trees). Mostraremos seu funcionamento e como se aproveita da estrutura de um data centers para obter melhor performance, se comparado com o seu antecessor.

O que são Fat Trees

O conceito Fat-Tree foi proposto por Charles E. Leiserson, um pesquisador do MIT, em 1985. Em seu artigo ele apresenta as fat-trees como “uma rede de roteamento para computação paralela”[3], onde fat-trees são “uma família de estratégias de interconexão de uso geral que utilizam efetivamente qualquer quantidade de recursos de hardware dedicados à comunicação”[3].

Software Project Canvas.png

Uma fat-tree é uma rede de roteamento baseada em uma árvore binária completa. Um conjunto P de n processadores está localizado nas folhas da fat-tree. Cada aresta da árvore subjacente corresponde a dois canais da fat-tree: pai para filho e filho para pai. Cada canal consiste em um feixe de fios, e o número de fios em um canal c é chamado de capacidade, denotado de cap(c). As capacidades dos canais na rede de roteamento são determinadas pela quantidade de hardware que estarão conectados. O canal que sai da raiz da árvore corresponde a uma interface com a rede externa. Cada nó interno da fat-tree contém circuitos que alternam mensagens entre canais de entrada e canais de saída.

Diferentemente das árvores comumente utilizadas na computação, a fat-tree possui maior semelhança com as árvores reais, pois é mais densa conforme se distancia das folhas e se aproxima da raiz. Esse aumento do número de enlaces conforme vai se distanciando das folhas confere a fat-tree vantagens no roteamento comparado com uma estrutura de árvore binária convencional, solucionando dois problemas: sobrecarga dos enlaces de nível mais alto da árvore, impacto de falhas em nós de níveis altos.

No seu artigo[3], Charles E. Leiserson prova que para uma determinada quantidade física de hardware, nenhuma rede é melhor que a fat-tree e tal afirmação se sustenta até os dias de hoje.

O protocolo RIFT

O RIFT foi projetado para enfrentar os desafios de roteamento em redes fat tree, que incluem a necessidade de uso eficiente da largura de banda da rede, baixa latência e alta disponibilidade da rede. O RIFT consegue isso usando uma combinação de algoritmos de roteamento centralizados e distribuídos.

No RIFT, os core switches na camada superior da árvore (raíz) são responsáveis por computar e distribuir informações de roteamento para os outros switches da rede. Cada switch na rede mantém uma tabela de roteamento que especifica o melhor caminho para cada destino.

O RIFT permite que vários caminhos sejam usados para o tráfego entre quaisquer dois switches na rede através de uma técnica chamada Equal-Cost Multi-Path (ECMP). Dessa forma, o tráfego é distribuído na rede e proporciona melhor desempenho.

Comparação BGP x RIFT

RIFT e BGP são protocolos de roteamento usados em redes de data centers, mas diferem em seus objetivos e capacidades de design.

BGP é um protocolo de roteamento amplamente utilizado em redes de provedores de serviços de grande escala e redes corporativas. Ele é projetado para roteamento entre diferentes sistemas autônomos (AS) e troca de informações de roteamento entre diferentes redes.

Por outro lado, o RIFT foi projetado especificamente para uso em redes de data centers que usam uma topologia de fat-tree. O RIFT é otimizado para comunicação de alta largura de banda e baixa latência na rede do data center e pode fornecer roteamento eficiente e escalável em grandes data centers.

Embora o RIFT e o BGP sejam protocolos de roteamento usados em redes de data centers, eles têm objetivos e capacidades diferentes. O RIFT é otimizado para comunicação de alta largura de banda e baixa latência em redes de data centers com topologia fat-tree, enquanto o BGP é mais flexível e adequado para cenários de roteamento mais genéricos.

Implementação do RIFT

A proposta inicial oficial de implementação do RIFT foi estabelecida em janeiro de 2018 como um working group da IEFT. Por ser recente, muitos dos projetos de teste e implementações estão ainda amadurecendo. Mesmo assim, falaremos sobre alguns dos mais interessantes:

A Juniper, uma empresa multinacional especializada em desenvolvimento e marketing de produtos de networking, desenvolveu uma implementação proprietária já disponível para uso.

Para implementações Open Source do protocolo, foram indepentemente desenvolvidos nas linguagens Python e Rust

Conclusão

Apesar de possuir aplicações limitadas, o protocolo RIFT se destaca nas áreas em que se adequa, superando em performance seus antecessores. Por se tratar ainda de um assunto muito novo, é um campo com muito espaço para novas pesquisas, testes e implementações, portanto é de se esperar um aumento no número destes com o passar do tempo.

A internet de hoje tem evoluído cada vez mais tendendo para serviços centralizados, onde protocolos especializados como o RIFT estão mais aptos a se destacarem. Visto a isso, não é difícil imaginar um próspero futuro para esta tecnologia.