NÀtverksstacken F-Stack 2.0 har publicerats, som fungerar i anvÀndarutrymmet.

Projektet F-Stack 2.0 har slÀppts, vilket utvecklar en version av nÀtverksstacken FreeBSD, anpassad för avskild drift i anvÀndarutrymmet som ett bibliotek. Projektet skapades av Kinas största telekommunikationsföretag Tencent och anvÀnds i deras produkter och tjÀnster. Koden Àr skriven i C och distribueras under BSD-licensen. Stöd ges för drift i bÄde Linux och FreeBSD. Projektet stöder Àven översatta versioner av Nginx 1.28 och databashanteraren Redis 6.2.6, som visar prestanda över det normala i distributioner som körs ovanpÄ systemets nÀtverksstack.

F-Stack gör det möjligt att anvÀnda en egen lokal nÀtverksstack i applikationer, oberoende av operativsystemets nÀtverksstack, som fungerar i anvÀndarutrymmet och direkt interagerar med nÀtverksutrustningen. F-Stack positioneras som en lösning för att öka prestandan hos nÀtverksbegÀran, nÀr den inbyggda TCP/IP-stacken i Linux-kÀrnan blir en flaskhals och begrÀnsar skalbarheten. Teoretiskt sett kan F-Stack nÄ den maximala nÀtverkskapaciteten som Àr möjlig för det anvÀnda nÀtverkskortet, och i vissa situationer tillÄter det en kraftig ökning av antalet hanterade smÄ nÀtverksförfrÄgningar.

Prestandaökningen uppnÄs genom att utesluta operationer som kopiering av nÀtverkspaket, schemalÀggning av trÄdar, avbrottshantering och anrop till systemanrop. För interaktion med nÀtverkskortet, utan att gÄ via operativsystemets kÀrninterfacer, anvÀnds ramverket DPDK (Data Plane Development Kit), som utvecklar ett bibliotek för lÄg nivÄ arbete med nÀtverksadaptrar. DPDK möjliggör att minska overhead och passa in i minimiantalet CPU-cykler vid mottagning eller sÀndning av nÀtverkspaket.

Funktionaliteten i TCP/IP-stacken motsvarar nÀtverksstacken i FreeBSD 15 och har separerats frÄn detta operativsystem till ett oberoende bibliotek. För utveckling av applikationer kan man anvÀnda standard-API:et POSIX (socket, epoll, kqueue) eller ett eget programmeringsgrÀnssnitt baserat pÄ mikrotrÄdar, vilket förenklar skapandet av nÀtverksapplikationer och gör det möjligt att undvika komplex logik för asynkron hantering av förfrÄgningar. Det Àr möjligt att anvÀnda med oförÀndrade applikationer genom inlÀsning via LD_PRELOAD.

De mest mÀrkbara förÀndringarna i den nya versionen:

  • Komponenterna i nĂ€tverksstacken har uppdaterats till status FreeBSD 15 (tidigare anvĂ€ndes FreeBSD 13).
  • En trĂ„dhanteringslĂ€ge (thread_mode=1) har implementerats i en process, vilket kompletterar det tidigare tillgĂ€ngliga flervalslĂ€get.
  • En lĂ€ttviktsdriftmode (primary_slim) har lagts till, dĂ€r huvudprocessen bara utför grundlĂ€ggande uppgifter för initiering och samordning, medan paketmottagning och köhantering (rx/tx) bara utförs av dotterprocesserna.
  • Stöd för hĂ„rdvaruaccelerationsmekanismen har lagts till.
    TSO (TCP Segmentation Offload) för att utföra sammanslagning av paketoperationer pÄ nÀtverkskortet, med möjlighet att ÄtergÄ till programvaruimplementering. Stödet för TSO (TCP Segmentation Offload, överföring av paketsegmentbehandling till nÀtverkskortet) för IPv6 har förbÀttrats.
  • Möjlighet att Ă€ndra MTU (Maximum transmission unit) har lagts till och stöd för jumbo-ramar har implementerats.
  • Möjligheterna för hantering av hĂ„rdvaruaccelerationen av kontrollsummor för skickade paket har utökats.
  • Funktionen ff_zc_recv() för att ta emot data utan mellanliggande buffring (zero-copy) har lagts till. Denna funktion har reviderats och ff_zc_send() för sĂ€ndning har optimerats och kompletterats. stöd för IPv6. funktionen ff_rss_check().
  • Alternativet FF_KERNEL_COEXIST har lagts till för att fungera tillsammans med nĂ€tverksstacken i kĂ€rnan.
  • Möjlighet att spara trafikinformation i pcap-dumpar med nanosekundprecision har tillhandahĂ„llits.
  • Nya parametrar idle_loop_interval, extra_eal_args, drain_ring_size, reload_heartbeat_timeout_ms och reload_udp_idle_ms har lagts till i config.ini.
  • I den specialiserade versionen av nginx har stöd för omstart av konfigurationen och uppdatering av binĂ€rfilen utan avbrott i anslutningar (graceful_reload=1) implementerats.

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