Lansarea stivei de rețea F-Stack 1.24, executată în spațiul utilizatorului

A apărut stiva de rețea F-Stack 1.24, care reprezintă o ediție a stivei de rețea FreeBSD, funcționând în spațiul utilizatorului și utilizând framework-ul DPDK pentru a atinge o performanță maximă. Proiectul a fost realizat de cea mai mare companie de telecomunicații din China, Tencent, și este utilizat în produsele și serviciile sale. Codul este scris în C și este distribuit sub licența BSD. Este compatibil cu Linux și FreeBSD.

F-Stack permite aplicațiilor să utilizeze propria stivă de rețea locală, independentă de stiva de rețea a sistemului de operare, funcționând în spațiul utilizatorului și interacționând direct cu echipamentele de rețea. F-Stack este poziționat ca o soluție care îmbunătățește performanța gestionării cererilor de rețea în condițiile în care stiva TCP/IP standard a nucleului Linux devine un punct de îngustare și limitează scalabilitatea — în anumite situații, proiectul permite creșterea semnificativă a numărului de cereri de rețea de mici dimensiuni procesate. Teoretic, F-Stack permite atingerea limitei de performanță a rețelei, posibilă pentru placa de rețea utilizată.

Creșterea performanței este realizată prin excluderea unor operații precum copierea pachetelor de rețea, programarea firelor, gestionarea întreruperilor și utilizarea apelurilor de sistem. Pentru interacțiunea cu placa de rețea, ocolind interfețele nucleului sistemului de operare, se utilizează framework-ul DPDK (Data Plane Development Kit), care dezvoltă un set de biblioteci pentru lucrul la nivel scăzut cu adaptoarele de rețea. DPDK permite reducerea cheltuielilor auxiliare și respectarea unui număr minim de cicluri CPU la primirea sau transmiterea pachetelor de rețea.

Funcționalitatea stivei TCP/IP corespunde stivei de rețea FreeBSD 13 și a fost separată din acest sistem de operare într-o bibliotecă independentă. Pentru dezvoltarea aplicațiilor, se poate utiliza API-ul standard POSIX (socket, epoll, kqueue) sau propria interfață de programare bazată pe micro-aranjamente, care simplifică crearea aplicațiilor de rețea și permite evitarea logici complexe de procesare asincronă a cererilor.

Proiectul sprijină edițiile multicore traduse pentru utilizarea F-Stack. server Nginx 1.25.2 și baza de date Redis 6.2.6, demonstrând performanțe superioare celor obișnuite care funcționează pe deasupra stivei de rețea a sistemului.

Cele mai notabile schimbări din noua versiune:

  • În fișierul de configurare config.ini a fost adăugată opțiunea de a alege între utilizarea KNI (Kernel NIC Interface) și virtio_user ca transport pentru transmiterea pachetelor între nucleu și aplicația de procesare a pachetelor bazată pe DPDK. A fost adăugată posibilitatea de a folosi ratelimit pentru KNI.
  • A fost adăugată suportul pentru activarea setării stivei de rețea „net.add_addr_allfibs=1” pentru a adăuga adrese în toate tabelele de rutare.
  • A fost adăugat API-ul ff_get_traffic pentru a obține traficul, de exemplu, pentru implementarea QoS (Quality of Service).
  • Au fost adăugate funcțiile pthread_create și pthread_join, amintind de funcții similare din POSIX.
  • A fost adăugat API-ul ff_dpdk_raw_packet_send pentru a permite aplicației să trimită pachete raw direct prin DPDK, nu prin socket.
  • A fost implementat suportul pentru configurarea automată VLAN, rutarea și policy routing.
  • A fost realizată trecerea la versiunea DPDK 22.11.6 LTS.
  • În implementarea Nginx pe F-Stack a fost adăugat suportul pentru modulul stream.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster