wolfIP og passt — lette TCP/IP-stakke, der fungerer uden dynamisk hukommelsestildeling.

Udviklerne af den kryptografiske biblioteks wolfSSL opretholder TCP/IP-stakken wolfIP, som er optimeret til brug på indlejrede enheder med begrænsede ressourcer samt systemer, der arbejder i realtid og løsninger, der kræver høj pålidelighed (Safety-Critical). For forudsigelig ressourceforbrug anvendes der ikke dynamisk hukommelsesallokering i wolfIP — alle buffere og socket-tabeller har en fast størrelse og konfigureres på kompileringstidspunktet. Projektkoden er skrevet i C og distribueres under GPLv3-licensen.

Projektet kan anvendes som en TCP/IP-stak, der kører i brugerrummet og erstatter netværksstakken i Linux, FreeBSD og macOS, samt egnet til brug i indlejrede systemer baseret på FreeRTOS, SafeRTOS, Zephyr, Azure RTOS ThreadX, NuttX, RTEMS, VxWorks og QNX. Desuden kan der opbygges selvforsynende netværksapplikationer bygget oven på hardware (bare-metal) baseret på wolfIP. I kombination med wolfSSL-biblioteket understøttes TLS 1.3, hvilket gør det muligt at udvikle kompakte indlejrede systemer, der understøtter HTTPS.

Hovedfunktioner i wolfIP:

  • Brug af forudallokerede buffere i statisk hukommelse til behandling af netværkspakker. Funktionsopkald til malloc og free anvendes ikke.
  • Mulighed for at bruge i stedet for de indbyggede systematiske netværksstakke på POSIX-systemer.
  • Understøttelse af BSD-sockets i blokerende og ikke-blokerende tilstand.
  • Kompakt størrelse (4200 kodelinjer, 4 gange mindre end TCP/IP-stakken lwIP).
  • Understøttelse af netværksgrænseflader STM32 Ethernet.
  • Mulighed for at bruge TAP-netværksgrænseflade til testning uden hardware.
  • Udvikling med fokus på systemer med høje sikkerhedskrav: deterministisk og reproducerbar konfiguration; implementeringsmodel, der sikrer sikkerhed (Secure-by-default); isolering mellem komponenter. Understøttelse af sikker opdatering af versioner; langvarig support.
  • Hensyntagen til kravene til højpålidelige systemer: ingen dynamisk allokering af ressourcer; faste hukommelsespools; kontrolleret ressourceforbrug; forudsigeligt adfærd; forenklet arkitektur; understøttelse af generering af artefakter til verifikation.
  • Implementeringen af IPv4, UDP, TCP, IPSEC, ARP, ICMP, DHCP-klient, DNS-klient og HTTP/HTTPS-server. Understøttelse af TCP RFC 7323 (TCP Timestamps, RTT-måling, PAWS, Window Scaling), MSS (Maximum Segment Size), RTO (Retransmission timeout) og SACK (Selective Acknowledgment). Flere algoritmer til kontrol af overbelastning.

En begrænsning ved wolfIP er muligheden for kun at bruge wolfIP som en endenode, der kan modtage og etablere forbindelser, men som ikke understøtter routing af trafik mellem netværksinterface.

Derudover kan det nævnes, at en medarbejder fra Red Hat aktivt udvikler en tilsvarende TCP/IP-stak kaldet passt, som arbejder i brugerrummet og ikke bruger dynamisk hukommelsesallokering. Projektet passt udvikles til at organisere kommunikationskanalen mellem vært-miljøet og gæstesystemerne i QEMU som en mere sikker erstatning for libslirp. Koden fra passt er skrevet i C, består af ca. 5000 linjer og distribueres under GPLv2+-licensen.

Blandt funktionerne ved passt kan nævnes: understøttelse af IPv6 udover IPv4, optimeringer baseret på AVX2-instruktioner, beskyttelse mod synflood, indbygget støtte til QEMU, libvirt og Podman, pakker til alle populære distributioner, ARP-proxy service, minimalistiske DHCPD-, DHCPv6- og NDP-servere, seccomp-profil til at blokere for alle ubrugte systemopkald, NAT-understøttelse, mulighed for at fungere som en gennemsigtig erstatning for slirp4netns.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster