Lançamento da pilha de rede F-Stack 1.24, executada no espaço do usuário.

Foi publicado o stack de rede F-Stack 1.24, que representa uma edição do stack de rede FreeBSD, operando no espaço do usuário e utilizando o framework DPDK para alcançar a máxima performance. O projeto foi criado pela maior empresa de telecomunicações da China, Tencent, e é utilizado em seus produtos e serviços. O código é escrito em linguagem C e distribuído sob a licença BSD. O suporte está disponível para Linux e FreeBSD.

O F-Stack permite que aplicativos utilizem seu próprio stack de rede local, independente do stack de rede do sistema operacional, funcionando no espaço do usuário e interagindo diretamente com o hardware de rede. O F-Stack é posicionado como uma solução que aumenta a performance dos manipuladores de solicitações de rede em situações onde o stack TCP/IP padrão do kernel Linux se torna um gargalo e limita o escalonamento — em algumas situações, o projeto permite aumentar drasticamente o número de pequenas solicitações de rede processadas. Teoricamente, o F-Stack pode alcançar o limite da performance de rede possível para o adaptador de rede em uso.

O aumento de performance é alcançado pela exclusão de operações como cópias de pacotes de rede, agendamento de threads, processamento de interrupções e utilização de chamadas de sistema. Para interagir com o adaptador de rede, evitando as interfaces do kernel do sistema operacional, é utilizado o framework DPDK (Data Plane Development Kit), que desenvolve um conjunto de bibliotecas para o trabalho de baixo nível com adaptadores de rede. O DPDK permite reduzir os custos operacionais e manter um mínimo de ciclos de CPU ao receber ou enviar pacotes de rede.

A funcionalidade do stack TCP/IP corresponde ao stack de rede FreeBSD 13 e foi separada deste sistema operacional em uma biblioteca independente. Para o desenvolvimento de aplicativos, pode-se usar a API padrão POSIX (socket, epoll, kqueue) ou sua própria interface de programação baseada em microthreads, simplificando a criação de aplicativos de rede e permitindo evitar a lógica complexa de processamento assíncrono de solicitações.

O projeto suporta versões traduzidas para uso do F-Stack do multiprotocolo servidor Nginx 1.25.2 e o banco de dados Redis 6.2.6 demonstram desempenho superior em comparação com compilações convencionais que operam sobre a pilha de rede do sistema.

As mudanças mais notáveis na nova versão:

  • No arquivo de configuração config.ini, foi adicionada a opção de escolher entre o uso de KNI (Kernel NIC Interface) e virtio_user como transporte para a transferência de pacotes entre o núcleo e o aplicativo de processamento de pacotes baseado em DPDK. A utilização do ratelimit para KNI também foi adicionada.
  • Adicionada a opção de habilitar a configuração da pilha de rede "net.add_addr_allfibs=1" para adicionar endereços em todas as tabelas de roteamento.
  • Adicionado o API ff_get_traffic para receber tráfego, por exemplo, para implementar QoS (Qualidade de Serviço).
  • Adicionadas as funções pthread_create e pthread_join, semelhantes às funções do POSIX.
  • Adicionado o API ff_dpdk_raw_packet_send para enviar pacotes raw diretamente pelo DPDK, em vez de usando um socket.
  • Implementado suporte para configuração automática de VLAN, roteamento e roteamento baseado em políticas.
  • Transição para a versão DPDK 22.11.6 LTS.
  • Na implementação do Nginx sobre o F-Stack, foi adicionado suporte para o módulo stream.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster