wolfIP és passt — könnyű TCP/IP verem, amely dinamikus memóriafoglalás nélkül működik

A wolfSSL kriptográfiai könyvtár fejlesztői a wolfIP TCP/IP verem fejlesztésén dolgoznak, amelyet beágyazott eszközök korlátozott erőforrásainak használatára optimalizáltak, valamint olyan rendszerekhez, amelyek valós idejű üzemmódban működnek, és megnövelt megbízhatóságot (Safety-Critical) igényelnek. A wolfIP-ben a kiszámítható erőforrás-felhasználás érdekében nem használnak dinamikus memóriaallokálást - az összes puffert és socket-táblázatot fix méretűre állítják be a fordítás során. A projekt kódja C nyelven íródott, és GPLv3 licenc alatt terjesztik.

A projekt felhasználható felhasználói térben működő TCP/IP veremként, amely helyettesíti a Linux, FreeBSD és macOS hálózati veremét, valamint alkalmazható beágyazott rendszerekben, amelyek FreeRTOS, SafeRTOS, Zephyr, Azure RTOS ThreadX, NuttX, RTEMS, VxWorks és QNX alapúak. Ezenkívül a wolfIP alapján önálló hálózati alkalmazások is létrehozhatók, amelyek közvetlenül a hardveren (bare-metal) futnak. A wolfSSL könyvtárral kombinálva a TLS 1.3 támogatása lehetővé teszi kompakt beágyazott rendszerek létrehozását, amelyek támogatják a HTTPS-t.

A wolfIP főbb jellemzői:

  • Hálózati csomagok feldolgozása során előre foglalt statikus memóriával rendelkező pufferek használata. A malloc és free hívások nem kerülnek felhasználásra.
  • Lehetőség a rendszer alapértelmezett hálózati veremének helyettesítésére POSIX rendszereken.
  • BSD socket támogatás nem blokkoló és blokkoló módban.
  • Kompakt méret (4200 kód sor, 4-szer kevesebb, mint az lwIP TCP/IP verem).
  • STM32 Ethernet hálózati interfészek támogatása.
  • TAP hálózati interfész használata lehetőség tesztelési munkákhoz hardver nélkül.
  • Fejlesztés a biztonság iránti magas követelmények figyelembevételével: determinisztikus és reprodukálható konfiguráció; biztonságot biztosító telepítési modell (Secure-by-default); izoláció a komponensek között. Támogatás a biztonságos verziófrissítésekhez; hosszú távú támogatás.
  • A nagy megbízhatóságú rendszerek követelményeinek figyelembevételével: dinamikus erőforrás-allokáció hiánya; fix memóriaállományok; erőforrások kontrollált használata; kiszámítható viselkedés; egyszerűsített architektúra; támogatás az igazoláshoz szükséges artefaktumok generálásához.
  • IPv4, UDP, TCP, IPSEC, ARP, ICMP, DHCP kliens, DNS kliens és HTTP/HTTPS szerver megvalósítása. A TCP RFC 7323 (TCP Időbélyeg, RTT mérés, PAWS, Ablak Méretezés), MSS (Maximum Szelet Méret), RTO (Újraküldési időtúllépés) és SACK (Szelektív Elismerés) megvalósításának támogatása. Több algoritmus a torlódás-ellenőrzéshez.

A wolfIP korlátai közé tartozik, hogy a wolfIP-t csak végső csomópontként lehet használni, amely képes kapcsolatok fogadására és létrehozására, de nem támogatja a forgalom útválasztását hálózati interfészek között.

Ezen kívül megemlíthető, hogy a Red Hat munkatársa hasonló TCP/IP verem, a passt aktív fejlesztés alatt áll, amely felhasználói térben működik, és nem használ dinamikus memóriaallokációt. A passt projekt azzal a céllal fejlődik, hogy kapcsolatot létesítsen a gazda környezete és a vendég rendszerek között a QEMU-ban, mint a libslirp biztonságosabb alternatívája. A passt kód C nyelven íródott, körülbelül 5000 sorból áll, és GPLv2+ licenc alatt terjesztik.

A passt jellemzői közé tartoznak: IPv6 támogatás az IPv4 mellett, AVX2 utasítások alapján optimalizálás, synflood elleni védelem, QEMU, libvirt és Podman beépített támogatása, csomagok az összes népszerű disztribúcióhoz, ARP proxy szolgáltatás, minimalista DHCPD, DHCPv6 és NDP szerverek, seccomp profil az összes nem használt rendszerhívás blokkolására, NAT támogatás, átlátszó helyettesítés slirp4netns néven.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster