Publication de la pile réseau F-Stack 1.24, exécutée dans l'espace utilisateur

La pile réseau F-Stack 1.24 a été publiée, représentant une édition de la pile réseau FreeBSD, fonctionnant dans l'espace utilisateur et utilisant le cadre DPDK pour atteindre des performances maximales. Le projet a été créé par la plus grande entreprise de télécommunications en Chine, Tencent, et est utilisé dans ses produits et services. Le code est écrit en C et distribué sous licence BSD. Il prend en charge le fonctionnement sous Linux et FreeBSD.

F-Stack permet d'utiliser dans les applications sa propre pile réseau locale, indépendante de la pile réseau du système d'exploitation, fonctionnant dans l'espace utilisateur et interagissant directement avec le matériel réseau. F-Stack est positionné comme une solution permettant d'améliorer la performance des gestionnaires de requêtes réseau dans des situations où la pile TCP/IP standard du noyau Linux devient un goulot d'étranglement et limite l'évolutivité — dans certaines situations, le projet permet d'augmenter considérablement le nombre de petites requêtes réseau traitées. Théoriquement, F-Stack permet d'atteindre le plafond de performance réseau possible pour la carte réseau utilisée.

L'augmentation des performances est obtenue en éliminant des opérations telles que la copie de paquets réseau, la planification des threads, la gestion des interruptions et l'utilisation des appels système. Pour interagir avec la carte réseau, contournant les interfaces du noyau du système d'exploitation, le cadre DPDK (Data Plane Development Kit) est utilisé, développant un ensemble de bibliothèques pour un travail de bas niveau avec les adaptateurs réseau. DPDK permet de réduire les frais généraux et de fonctionner avec un nombre minimal de cycles CPU lors de la réception ou de l'envoi de paquets réseau.

La fonctionnalité de la pile TCP/IP correspond à celle de la pile réseau FreeBSD 13 et a été extraite de ce système d'exploitation en une bibliothèque indépendante. Pour le développement d'applications, il est possible d'utiliser l'API standard POSIX (socket, epoll, kqueue) ou son propre interface logicielle à base de micro-threads, simplifiant la création d'applications réseau et permettant de se passer de la logique complexe de traitement asynchrone des requêtes.

Le projet prend en charge les éditions multiprotocoles traduites pour utiliser F-Stack de serveurs Nginx 1.25.2 et SGBD Redis 6.2.6, démontrant des performances supérieures aux compilations standard fonctionnant au-dessus de la pile réseau système.

Les changements les plus notables dans cette nouvelle version :

  • Le fichier de configuration config.ini permet de choisir entre l'utilisation de KNI (Kernel NIC Interface) et virtue_user comme transport pour le transfert de paquets entre le noyau et l'application de traitement de paquets basée sur DPDK. La possibilité d'utiliser le ratelimit pour KNI a été ajoutée.
  • Ajout du support pour activer la configuration de la pile réseau « net.add_addr_allfibs=1 » pour ajouter des adresses dans toutes les tables de routage.
  • Ajout de l'API ff_get_traffic pour obtenir le trafic, par exemple, pour mettre en œuvre la QoS (Qualité de Service).
  • Ajout des fonctions pthread_create et pthread_join, similaires aux fonctions analogues de POSIX.
  • Ajout de l'API ff_dpdk_raw_packet_send pour envoyer des paquets bruts directement par l'application via DPDK, et non par socket.
  • Support de la configuration automatique des VLAN, du routage et du routage de politiques.
  • Mise à jour vers la version DPDK 22.11.6 LTS.
  • Ajout du support du module stream dans l'implémentation de Nginx sur F-Stack.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster