wolfIP und passt — leichte TCP/IP-Stacks, die ohne dynamische Speicherzuweisung arbeiten.

Die Entwickler der kryptografischen Bibliothek wolfSSL arbeiten an dem TCP/IP-Stack wolfIP, der für den Einsatz auf ressourcenbeschränkten Embedded-Geräten und für Systeme in Echtzeit sowie für Lösungen, die eine hohe Zuverlässigkeit (Safety-Critical) erfordern, optimiert ist. Um einen vorhersehbaren Ressourcenverbrauch zu gewährleisten, wird in wolfIP keine dynamische Speicherzuweisung verwendet – alle Puffer und Socket-Tabellen haben eine feste Größe und werden zur Compile-Zeit konfiguriert. Der Code des Projekts ist in C geschrieben und wird unter der Lizenz GPLv3 vertrieben.

Das Projekt kann als ein im Benutzerspeicher arbeitender TCP/IP-Stack verwendet werden, der den Netzwerkstack von Linux, FreeBSD und macOS ersetzt und auch für Embedded-Systeme auf Basis von FreeRTOS, SafeRTOS, Zephyr, Azure RTOS ThreadX, NuttX, RTEMS, VxWorks und QNX geeignet ist. Darüber hinaus können auf der Grundlage von wolfIP eigenständige Netzwerk-Anwendungen erstellt werden, die direkt auf der Hardware (bare-metal) ausgeführt werden. In Kombination mit der Bibliothek wolfSSL wird TLS 1.3 unterstützt, was die Entwicklung kompakter Embedded-Systeme mit HTTPS ermöglicht.

Hauptmerkmale von wolfIP:

  • Verwendung von bei der Verarbeitung von Netzpaketen vorherzugewiesenen Puffern im statischen Speicher. Die Aufrufe von malloc und free werden nicht verwendet.
  • Möglichkeit, anstelle der standardmäßigen systemmäßigen Netzwerk-Stacks auf POSIX-Systemen verwendet zu werden.
  • Unterstützung von BSD-Sockets im blockierenden und nicht blockierenden Modus.
  • Kompakte Größe (4200 Codezeilen, viermal kleiner als der TCP/IP-Stack lwIP).
  • Unterstützung von STM32 Ethernet-Netzwerkschnittstellen.
  • Möglichkeit, die TAP-Netzwerkschnittstelle zum Testen ohne Hardware zu verwenden.
  • Entwicklung mit Fokus auf Systeme mit hohen Sicherheitsanforderungen: deterministische und reproduzierbare Konfiguration; Bereitstellungsmodell, das Sicherheit gewährleistet (Secure-by-default); Isolation zwischen Komponenten. Unterstützung für sichere Versionsupdates; langfristige Unterstützung.
  • Berücksichtigung der Anforderungen an hochzuverlässige Systeme: keine dynamische Ressourcenverteilung; feste Speichermengen; kontrollierte Ressourcennutzung; vorhersehbares Verhalten; vereinfachte Architektur; Unterstützung für die Generierung von Artefakten zur Verifizierung.
  • Implementierung von IPv4, UDP, TCP, IPSEC, ARP, ICMP, DHCP-Client, DNS-Client und HTTP/HTTPS-Server. Unterstützung für die Implementierung von TCP RFC 7323 (TCP-Timestamps, RTT-Messung, PAWS, Window Scaling), MSS (Maximum Segment Size), RTO (Retransmission Timeout) und SACK (Selective Acknowledgment). Mehrere Algorithmen zur Überlastkontrolle (congestion control).

Zu den Einschränkungen von wolfIP gehört, dass wolfIP nur in der Rolle eines Endgeräts verwendet werden kann, das in der Lage ist, Verbindungen herzustellen und anzunehmen, jedoch keinen Traffic zwischen Netzwerkschnittstellen routieren kann.

Zusätzlich ist die aktive Entwicklung eines ähnlichen TCP/IP-Stacks namens passt zu erwähnen, der im Benutzerspeicher arbeitet und keine dynamische Speicherzuweisung verwendet. Das passt-Projekt wird entwickelt, um eine Kommunikationsverbindung zwischen der Host-Umgebung und den Gastsystemen in QEMU als sicherere Alternative zu libslirp zu schaffen. Der Code von passt ist in C geschrieben, umfasst etwa 5000 Zeilen und wird unter der Lizenz GPLv2+ vertrieben.

Zu den Merkmalen von passt zählen: IPv6-Unterstützung Neben IPv4 Optimierungen auf Basis von AVX2-Instruktionen, Schutz vor Synflood, integrierte Unterstützung für QEMU, libvirt und Podman, Pakete für alle gängigen Distributionen, ARP-Proxy-Service, minimalistische DHCPD-, DHCPv6- und NDP-Server, Seccomp-Profil zur Blockierung aller ungenutzten Systemaufrufe, Unterstützung für NAT und die Möglichkeit, als transparente Alternative zu slirp4netns zu fungieren.

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster