Publicēts F-Stack 2.0 tīkla steks, kas darbojas lietotāja telpā

Notika par projektu F-Stack 2.0, kas attīsta FreeBSD tīkla steka izdevumu, pielāgotu atsevišķai darbībai lietotāja telpā bibliotēkas formā. Projekts izveidots lielākajā telekomunikāciju uzņēmumā Ķīnā Tencent un tiek izmantots tās produktos un pakalpojumos. Kods uzrakstīts C valodā un tiek izplatīts saskaņā ar BSD licenci. Atbalsta darbību Linux un FreeBSD. Projekts arī atbalsta pielāgotas F-Stack versijas Nginx 1.28 un datubāzu Redis 6.2.6, kas demonstrē augstāku veiktspēju salīdzinājumā ar parastajām versijām, kas darbojas virs sistēmas tīkla steka.

F-Stack ļauj izmantot lietotnēs savu lokālo tīkla steku, kas nav atkarīgs no operētājsistēmas tīkla steka, funkcionējot lietotāja telpā un tieši sadarbojoties ar tīkla aprīkojumu. F-Stack tiek pozicionēts kā risinājums, kas ļauj palielināt tīkla pieprasījumu apstrādātāju veiktspēju apstākļos, kad Linux kodola štata TCP/IP steks kļūst par šauru vietu un ierobežo mērogojamību. Teorētiski F-Stack ļauj sasniegt tīkla veiktspējas griestus, kas ir iespējami attiecīgajai tīkla kartei, un dažos gadījumos ievērojami palielina apstrādāto mazo tīkla pieprasījumu skaitu.

Veiktspējas palielinājums tiek panākts, izslēdzot tādas operācijas kā tīkla paketu kopēšana, plūsmu plānošana, traucējumu apstrāde un piekļuve sistēmas izsaukumiem. Sadarbībai ar tīkla karti, apsteidzot operētājsistēmas kodola interfeisus, tiek izmantots DPDK (Data Plane Development Kit) ietvars, kas attīsta bibliotēku kopu zemas līmeņa darbam ar tīkla adapteriem. DPDK ļauj samazināt overhead un samazināt CPU ciklu skaitu tīkla paku uzņemšanai vai nosūtīšanai.

TCP/IP steka funkcionalitāte atbilst FreeBSD 15 tīkla stekam un ir izdalīta no šīs operētājsistēmas neatkarīgā bibliotēkā. Lietojumprogrammu izstrādei var izmantot standarta POSIX API (socket, epoll, kqueue) vai savu programmatūras interfeisu, pamatojoties uz mikrosērijām, kas vienkāršo tīkla lietojumprogrammu izveidi un ļauj izvairīties no sarežģītas asinhronās pieprasījumu apstrādes loģikas. Iespējama izmantošana ar nemodificētām lietojumprogrammām, ielādējot caur LD_PRELOAD.

Visredzamākās izmaiņas jaunajā laidienā:

  • Tīkla steka komponenti ir atjaunoti līdz FreeBSD 15 stāvoklim (iepriekš tika izmantots FreeBSD 13).
  • Ieviesta daudzsēriju darba režīms (thread_mode=1) vienā procesā, papildinot iepriekš pieejamo daudzprocesoru režīmu.
  • Pievienots vieglais darba režīms (primary_slim), kurā pamata process veic tikai pamata inicializācijas un koordinācijas uzdevumus, bet paketes saņemšana un pieņemšanas/komunikācijas apstrāde (rx/tx) tiek veikta tikai bērnu procesu pusē.
  • Pievienota aparatūras paātrinājuma mehānisma atbalsts.
    TSO (TCP Segmentation Offload) operāciju pārvietošanai uz tīkla karti, nodrošinot iespēju iziet uz programmatūras īstenojumu. Uzlabots TSO atbalsts (TCP Segmentation Offload, apstrādes segmentu pakotnes pārvietošana uz tīkla karti) IPv6.
  • Pievienota iespēja mainīt MTU (Maksimālā pārraides vienība) un ieviesta jumbo-rāmju atbalsts.
  • Paplašinātas iespējas tālruņa paātrinājuma kontroles summu aprēķināšanai nosūtītajām pakotnēm.
  • Pievienota funkcija ff_zc_recv() datu saņemšanai bez starpposma buferizēšanas (zero-copy). Pārveidota līdzīga funkcija ff_zc_send() nosūtīšanai. Optimizēta un papildināta. ar IPv6 atbalstu. funkcija ff_rss_check().
  • Pievienota opcija FF_KERNEL_COEXIST, lai kopīgi darbotos ar kodola tīkla steku.
  • Iespējams saglabāt informāciju par trafiku pcap-dampos ar nanosekundes precizitāti.
  • config.ini pievienoti jauni parametri idle_loop_interval, extra_eal_args, drain_ring_size, reload_heartbeat_timeout_ms un reload_udp_idle_ms.
  • Speciālajā nginx izlaidumā ieviesta konfigurācijas pārlādēšanas un binārā faila atjaunināšanas atbalsts bez savienojumu pārtraukšanas (graceful_reload=1).

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster