Sthe F-Stack 2.0 u publikua, i cili funksionon në hapësirën e përdoruesit

U lançua projekti F-Stack 2.0, që zhvillon një redaktim të stack-ut rrjetit FreeBSD, të adaptuar për punim të veçuar në hapësirën e përdoruesit në formë biblioteke. Projekti është krijuar nga kompania më e madhe të telekomunikacionit në Kinë, Tencent, dhe përdoret në produktet dhe shërbimet e saj. Kodi është shkruar në gjuhën C dhe shpërndahet nën licencën BSD. Përdoret njëkohësisht me Linux dhe FreeBSD. Projekti gjithashtu mbështet redakimet e Nginx 1.28 dhe sistemit të menaxhimit të bazave të të dhënave Redis 6.2.6, të përkthyer për përdorim me F-Stack, duke treguar performancë më të lartë se ndarjet standarde që përdorin stack-un rrjetor të sistemit.

F-Stack lejon aplikacioneve të përdorin stack-un e tyre lokal rrjetësor, që nuk varet nga stack-u rrjetor i sistemit operativ, duke funksionuar në hapësirën e përdoruesit dhe duke punuar drejtpërdrejt me pajisjet rrjetësore. F-Stack pozicionohet si një zgjidhje të cilat rrit performancën e trajtuesve të kërkesave rrjetësore në kushte kur TCP/IP i sistemit Linux bëhet një pikë e ngushtë dhe kufizon shkallëzimin. Teorikisht, F-Stack mund të arrijë tavanin e performancës rrjetësore të mundshme për kartën rrjetësore që përdoret dhe në disa raste ofron mundësinë për të rritur ndjeshëm numrin e kërkesave të vogla rrjetësore që trajtohen.

Rritja e performancës arrihet përmes përjashtimit të operacioneve të tilla si kopjimi i paketimeve rrjetësore, planifikimi i rrjedhave, përpunimi i ndërprerjeve dhe thirrja e thirrjeve sistemore. Për të bashkëvepruar me kartën rrjetësore, duke anashkaluar ndërfaqet e bërthamës së sistemit operativ, përdoret korniza DPDK (Data Plane Development Kit), e cila zhvillon një grup bibliotekash për punë të ulët me adapterat rrjetësorë. DPDK ofron mundësinë për të reduktuar shpenzimet dhe për të përmbushur numrin minimal të cikleve CPU gjatë pranimit ose dërgimit të paketimeve rrjetësore.

Funksionaliteti i stack-ut TCP/IP pĂ«rputhet me stack-un rrjetor FreeBSD 15 dhe Ă«shtĂ« ndarĂ« nga ky sistem operativ nĂ« njĂ« bibliotekĂ« tĂ« pavarur. PĂ«r zhvillimin e aplikacioneve, mund tĂ« pĂ«rdoret API standard POSIX (socket, epoll, kqueue) ose njĂ« ndĂ«rfaqe programimi e vetme mbi mikropjesĂ«, qĂ« thjeshton krijimin e aplikacioneve rrjet dhe lejon shmangien e logjikĂ«s sĂ« ndĂ«rlikuar pĂ«r pĂ«rpunimin asinkron tĂ« kĂ«rkesave. ËshtĂ« e mundur pĂ«rdorimi me aplikacione tĂ« pa modifikuara duke ngarkuar pĂ«rmes LD_PRELOAD.

Ndryshimet më të dukshme në versionin e ri:

  • KomponentĂ«t e stack-ut rrjetor janĂ« azhuruar nĂ« gjendjen FreeBSD 15 (mĂ« parĂ« ishte pĂ«rdorur FreeBSD 13).
  • ËshtĂ« realizuar njĂ« funksionim me shumĂ« thread-e (thread_mode=1) brenda njĂ« procesi, duke plotĂ«suar llojin e mĂ«parshĂ«m me shumĂ« procese.
  • ËshtĂ« shtuar njĂ« mod i lehtĂ« funksionimi (primary_slim), ku procesi kryesor kryen vetĂ«m detyrat bazike tĂ« inicializimit dhe koordinimit tĂ« punĂ«s, ndĂ«rsa marrja e paketave dhe pĂ«rpunimi i radhĂ«ve tĂ« marrjes/dhĂ«nies (rx/tx) bĂ«het vetĂ«m nĂ« anĂ«n e proceseve tĂ« bij.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r mekanizmin e pĂ«rshpejtimit harduerik.
    TSO (TCP Segmentation Offload) pĂ«r tĂ« anashkaluar operacionet e bashkimit tĂ« pakove nĂ« kartĂ«n rrjet, duke e lejuar rikthimin nĂ« zbatimin programor. ËshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r TSO (TCP Segmentation Offload, anashkalimi i pĂ«rpunimit tĂ« segmenteve tĂ« paketave nĂ« kartĂ«n rrjet) pĂ«r IPv6.
  • ËshtĂ« shtuar mundĂ«sia pĂ«r tĂ« ndryshuar madhĂ«sinĂ« e MTU (NjĂ«sia maksimale e transmetimit) dhe Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r jumbo-frames.
  • JanĂ« zgjeruar mundĂ«sitĂ« pĂ«r menaxhimin e pĂ«rshpejtimit harduerik tĂ« llogaritjeve tĂ« checksum-eve tĂ« paketave tĂ« dĂ«rguara.
  • ËshtĂ« shtuar funksioni ff_zc_recv() pĂ«r marrjen e tĂ« dhĂ«nave pa buferim tĂ« ndĂ«rmjetshĂ«m (zero-copy). ËshtĂ« riparuar funksioni e ngjashĂ«m ff_zc_send() pĂ«r dĂ«rgimin. ËshtĂ« optimizuar dhe kompletuar mbĂ«shtetje pĂ«r IPv6 funksioni ff_rss_check().
  • ËshtĂ« shtuar opsioni FF_KERNEL_COEXIST pĂ«r tĂ« punuar sĂ« bashku me stack-un rrjetor tĂ« kernel-it.
  • ËshtĂ« ofruar mundĂ«sia pĂ«r ruajtjen e informacionit mbi trafikun nĂ« pcap-dumps me saktĂ«si nanosekondĂ«she.
  • NĂ« config.ini janĂ« shtuar parametrat e rinj idle_loop_interval, extra_eal_args, drain_ring_size, reload_heartbeat_timeout_ms dhe reload_udp_idle_ms.
  • NĂ« ndĂ«rtimin e specializuar tĂ« nginx, Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r ri-ngarkimin e konfiguracionit dhe pĂ«rditĂ«simin e skedarit binar pa ndĂ«rprerje tĂ« lidhjeve (graceful_reload=1).

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster