wolfIP och passt — lĂ€tta TCP/IP-stackar som arbetar utan dynamisk minnesallokering

Utvecklarna av kryptografibiblioteket wolfSSL utvecklar TCP/IP-stacken wolfIP, optimerad för anvÀndning pÄ inbyggda enheter med begrÀnsade resurser, samt för system som arbetar i realtid och lösningar som krÀver ökad tillförlitlighet (Safety-Critical). För förutsÀgbart resursutnyttjande anvÀnds ingen dynamisk minnesallokering i wolfIP - alla buffertar och socket-tabeller har fast storlek och konfigureras vid kompilering. Projektets kod Àr skriven i C och distribueras under GPLv3-licens.

Projektet kan anvÀndas som en TCP/IP-stack som körs i anvÀndarutrymme, som ersÀtter nÀtverksstacken i Linux, FreeBSD och macOS, samt Àr lÀmpad för inbyggda system baserade pÄ FreeRTOS, SafeRTOS, Zephyr, Azure RTOS ThreadX, NuttX, RTEMS, VxWorks och QNX. Dessutom kan sjÀlvstÀndiga nÀtverksapplikationer byggas ovanpÄ hÄrdvaran (bare-metal) med wolfIP. I kombination med biblioteket wolfSSL stöds TLS 1.3, vilket möjliggör skapandet av kompakta inbyggda system som stöder HTTPS.

Huvudfunktioner i wolfIP:

  • AnvĂ€ndning av förhandsallokerade buffertar i statiskt minne för bearbetning av nĂ€tverkspaket. Anrop av malloc och free anvĂ€nds inte.
  • Möjlighet att anvĂ€nda istĂ€llet för standard systemnĂ€tverksstackar pĂ„ POSIX-system.
  • Stöd för BSD-sockets i icke-blockerande och blockerande lĂ€ge.
  • Kompakt storlek (4200 rader kod, 4 gĂ„nger mindre Ă€n TCP/IP-stacken lwIP).
  • Stöd för nĂ€tverksgrĂ€nssnitt STM32 Ethernet.
  • Möjlighet att anvĂ€nda TAP-nĂ€tverksgrĂ€nssnittet för testning utan hĂ„rdvara.
  • Utvecklat med hĂ€nsyn till system med högre sĂ€kerhetskrav: deterministisk och reproducerbar konfiguration; en distributionsmodell som sĂ€kerstĂ€ller sĂ€kerhet (Secure-by-default); isolering mellan komponenter. Stöd för sĂ€ker versionuppdatering; lĂ„ngsiktig support.
  • Beaktande av kraven för högpĂ„litliga system: ingen dynamisk resursallokering; fasta minnespooler; kontrollerad anvĂ€ndning av resurser; förutsĂ€gbart beteende; förenklad arkitektur; stöd för generering av artefakter för verifiering.
  • Genomförande av IPv4, UDP, TCP, IPSEC, ARP, ICMP, DHCP-klient, DNS-klient och HTTP/HTTPS-server. Stöd för implementering av TCP RFC 7323 (TCP-tidsstĂ€mpel, RTT-mĂ€tning, PAWS, fönster-skala), MSS (Maximal segmentstorlek), RTO (Återöverföringstid) och SACK (Selektiv bekrĂ€ftelse). Flera algoritmer för överbelastningskontroll.

Bland begrÀnsningarna för wolfIP Àr det vÀrt att notera att wolfIP endast kan anvÀndas som en slutpunkt som kan ta emot och etablera anslutningar, men som inte stödjer trafikrutning mellan nÀtverksgrÀnssnitt.

Det bör ocksÄ nÀmnas att en anstÀlld pÄ Red Hat aktivt utvecklar en liknande TCP/IP-stack, passt, som fungerar i anvÀndarrummet och inte anvÀnder dynamisk minnesallokering. Projektet passt utvecklas för att organisera kommunikationskanalen mellan vÀrdmiljön och gÀstsystemen i QEMU som en sÀkrare ersÀttning för libslirp. Koden för passt Àr skriven i C och bestÄr av cirka 5000 rader, och distribueras under licensen GPLv2+.

Bland funktionerna hos passt kan man nÀmna: stöd för IPv6 förutom IPv4, optimeringar baserade pÄ AVX2-instruktioner, skydd mot synflood, inbyggt stöd för QEMU, libvirt och Podman, paket för alla populÀra distributioner, ARP-proxyservice, minimalistiska servrar DHCPD, DHCPv6 och NDP, seccomp-profil för att blockera alla oanvÀnda systemanrop, stöd för NAT, möjlighet att fungera som en transparent ersÀttning för slirp4netns.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster