wolfIP et passt — des piles TCP/IP légères fonctionnant sans allocation dynamique de mémoire

Les développeurs de la bibliothèque cryptographique wolfSSL développent la pile TCP/IP wolfIP, optimisée pour une utilisation sur des appareils intégrés ayant des ressources limitées, ainsi que pour des systèmes fonctionnant en temps réel et des solutions nécessitant une fiabilité accrue (Safety-Critical). Pour une consommation de ressources prévisible, wolfIP n'utilise pas d'allocation dynamique de mémoire : tous les tampons et tables de sockets ont une taille fixe et sont configurés lors de la compilation. Le code du projet est écrit en C et est distribué sous la licence GPLv3.

Le projet peut être utilisé comme une pile TCP/IP fonctionnant dans l'espace utilisateur, remplaçant la pile réseau de Linux, FreeBSD et macOS, ainsi que pour des applications dans des systèmes embarqués basés sur FreeRTOS, SafeRTOS, Zephyr, Azure RTOS ThreadX, NuttX, RTEMS, VxWorks et QNX. En outre, des applications réseau autonomes peuvent être créées sur la base de wolfIP, exécutées directement sur le matériel (bare-metal). En combinaison avec la bibliothèque wolfSSL, il offre une prise en charge de TLS 1.3, permettant de créer des systèmes embarqués compacts avec HTTPS.

Principales caractéristiques de wolfIP :

  • Utilisation de tampons préalloués en mémoire statique lors du traitement des paquets réseau. Les appels à malloc et free ne sont pas utilisés.
  • Possibilité d'utiliser wolfIP à la place des piles réseau système standard sur les systèmes POSIX.
  • Prise en charge des sockets BSD en mode non-bloquant et bloquant.
  • Taille compacte (4200 lignes de code, 4 fois moins que la pile TCP/IP lwIP).
  • Prise en charge des interfaces réseau STM32 Ethernet.
  • Possibilité d'utiliser l'interface réseau TAP pour tester le fonctionnement sans matériel.
  • Développement axé sur des systèmes avec des exigences de sécurité accrues : configuration déterministe et reproductible; modèle de déploiement garantissant la sécurité (Secure-by-default); isolation entre les composants. Prise en charge de la mise à jour sécurisée des versions; support prolongé.
  • Prise en compte des exigences pour des systèmes hautement fiables : absence d'allocation dynamique des ressources; pools de mémoire fixes; utilisation contrôlée des ressources; comportement prévisible; architecture simplifiée; prise en charge de la génération d'artefacts pour la vérification.
  • Mise en œuvre d'IPv4, UDP, TCP, IPSEC, ARP, ICMP, client DHCP, client DNS et serveur HTTP/HTTPS. Prise en charge dans l'implémentation de TCP RFC 7323 (horodatages TCP, mesure RTT, PAWS, mise à l'échelle des fenêtres), MSS (Taille maximale des segments), RTO (délai d'attente de retransmission) et SACK (accusé de réception sélectif). Plusieurs algorithmes de contrôle de congestion.

Parmi les limitations de wolfIP, on note la possibilité d'utiliser wolfIP uniquement en tant que point final capable d'accepter et d'établir des connexions, mais ne prenant pas en charge le routage du trafic entre les interfaces réseau.

En outre, on peut noter le développement actif par un employé de Red Hat d'une pile TCP/IP similaire appelée passt, fonctionnant dans l'espace utilisateur et ne nécessitant pas d'allocation dynamique de mémoire. Le projet passt est développé pour organiser un canal de communication entre l'environnement hôte et les systèmes invités dans QEMU en tant que remplacement plus sûr de libslirp. Le code de passt est écrit en C, compte environ 5000 lignes et est distribué sous licence GPLv2+.

Parmi les caractéristiques de passt, on peut noter : de l'IPv6 en plus d'IPv4, optimisation basée sur des instructions AVX2, protection contre les synfloods, support intégré pour QEMU, libvirt et Podman, paquets pour toutes les distributions populaires, service de proxy ARP, serveurs DHCPD, DHCPv6 et NDP minimalistes, profil seccomp pour bloquer tous les appels système inutilisés, support NAT, possibilité d'agir en tant que remplacement transparent de slirp4netns.

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