Byl publikován síťový stack F-Stack 2.0, fungující v uživatelském prostoru

Byl vydán projekt F-Stack 2.0, který rozvíjí verzi síťového zásobníku FreeBSD přizpůsobenou pro samostatnou práci v uživatelském prostoru jako knihovnu. Projekt byl vytvořen největší telekomunikační společností v Číně, Tencent, a je používán v jejích produktech a službách. Kód je napsán v jazyce C a šíří se pod licencí BSD. Podporuje práci v Linuxu a FreeBSD. Projekt také podporuje verze Nginx 1.28 a databázového systému Redis 6.2.6 převedené k použití s F-Stack, které vykazují výkon nad běžnými sestavami fungujícími na systémovém síťovém zásobníku.

F-Stack umožňuje v aplikacích využívat vlastní místní síťový zásobník, který není závislý na síťovém zásobníku operačního systému, fungující v uživatelském prostoru a přímo komunikující se síťovým zařízením. F-Stack je pozicován jako řešení, které zvyšuje výkon zpracovatelů síťových požadavků v situacích, kdy standardní TCP/IP zásobník jádra Linuxu se stává úzkým místem a omezuje škálovatelnost. Teoreticky F-Stack umožňuje dosáhnout stropu síťového výkonu, který je možný pro používanou síťovou kartu, a v některých situacích nabízí možnost několikrát zvýšit počet zpracovávaných drobných síťových požadavků.

Zvýšení výkonu je dosaženo vyloučením takových operací, jako jsou kopírování síťových paketů, plánování vláken, zpracování přerušení a volání systémových funkcí. Pro interakci se síťovou kartou, obcházejícími rozhraními jádra operačního systému, se používá rámec DPDK (Data Plane Development Kit), který vyvíjí sadu knihoven pro nízkoúrovňovou práci se síťovými adaptéry. DPDK umožňuje snížit režijní náklady a vměstnat se do minimálního počtu cyklů CPU při příjmu nebo odesílání síťových paketů.

Funkčnost TCP/IP zásobníku odpovídá síťovému zásobníku FreeBSD 15 a byla oddělena z této operačního systému do nezávislé knihovny. Pro vývoj aplikací lze využít standardní API POSIX (socket, epoll, kqueue) nebo vlastní programové rozhraní založené na mikrovláknach, které usnadňuje vytváření síťových aplikací a umožňuje obejít se bez složité logiky asynchronního zpracování požadavků. Je možné použít bez modifikovaných aplikací s načítáním přes LD_PRELOAD.

Nejvýznamnější změny v novém vydání:

  • Komponenty síťového zásobníku byly aktualizovány na stav FreeBSD 15 (dříve byl použit FreeBSD 13).
  • Byl implementován režim vícevláknové práce (thread_mode=1) v jednom procesu, který doplňuje dříve dostupný víceprocesorový režim.
  • Byl přidán lehký režim práce (primary_slim), ve kterém hlavní proces vykonává pouze základní úkoly inicializace a koordinace práce, zatímco přijímání paketů a zpracování front příjmu/přenosu (rx/tx) je prováděno pouze na straně podřízených procesů.
  • Byla přidána podpora mechanismu hardwarového zrychlení.
    TSO (TCP Segmentation Offload) pro provedení operací slučování paketů na straně síťové karty s možností návratu k programové realizaci. Byla vylepšena podpora TSO (TCP Segmentation Offload, přesunutí zpracování segmentů paketů na síťovou kartu) pro IPv6.
  • Byla přidána možnost změny velikosti MTU (Maximum Transmission Unit) a byla realizována podpora jumbo rámců.
  • Byly rozšířeny možnosti řízení hardwarového zrychlení výpočtu kontrolních součtů odesílaných paketů.
  • Byla přidána funkce ff_zc_recv() pro přijímání dat bez mezipaměti (zero-copy). Byla přepracována podobná funkce ff_zc_send() pro odesílání. Optimalizována a doplněna. podporou IPv6 funkce ff_rss_check().
  • Byla přidána volba FF_KERNEL_COEXIST pro spolupráci se síťovým zásobníkem jádra.
  • Byla poskytnuta možnost uchování informací o provozu v pcap dumpích s nanosekundovou přesností.
  • Do config.ini byly přidány nové parametry idle_loop_interval, extra_eal_args, drain_ring_size, reload_heartbeat_timeout_ms a reload_udp_idle_ms.
  • Ve specializované sestavě nginx byla implementována podpora pro opětovné načtení konfigurace a aktualizaci spustitelného souboru bez přerušení připojení (graceful_reload=1).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster