PÀrast poolteist aastat arendust projekti vÀljalaskmine , arendades kÔrge jÔudlusega vÔrgustiku pinu, mis töötab kasutaja ruumis, ja pÔhineb raamistikul ja FreeBSD TCP/IP pinos (F-Stack ei ole seotud FreeBSD-ga ja esmaste rakendamisplatvormidena kaalub Linuxit). Projekti kasutatakse erinevates toodetes ja teenustes , Hiina suurima telekommunikatsioonifirma. Kood on BSD litsentsi all. Toetatakse töö tegemist Linuxis ja FreeBSD-s.
F-Stack vĂ”imaldab korraldada vĂ”rgusuhtlust rakendustes, kasutades operatsioonisĂŒsteemi vĂ”rgu pinu asemel oma vĂ”rgupinu, mis töötab kasutaja ruumis ja on otseselt ĂŒhendatud vĂ”rguteenustega. spetsialiseeritud vĂ€ljaandeid Nginx ja Redis, kohandatud F-Stacki kasutamiseks.
Rakenduste arendamiseks nii Posix API (Socket, Epoll, Kqueue), mis lihtsustab olemasolevate rakenduste tĂ”lkimist F-Stacki, ning oma programmistiku, mis pĂ”hineb koroutine'idel (mikrovoogudel), mis lihtsustab vĂ”rgu rakenduste loomist ja vĂ”imaldab vĂ€ltida keerulist asĂŒnkroonsete pĂ€ringute töötluse loogikat. F-Stack pakub ka tööriistu, et lihtsustada rakenduste kasutamist mitme protsessiga arhitektuuriga.
VĂ”rgukaardi suhtlemiseks, mööda operatsioonisĂŒsteemi tuuma liideseid, kasutatakse raamistikku (Data Plane Development Kit), mis pakub madala taseme teegikogumit vĂ”rguadapteritega töötamiseks, interaktsiooniks mitme tuumaga sĂŒsteemides, ringbuffereid ja suuri mĂ€lulehte (âhuge pageâ). DPDK kasutamine vĂ”imaldab vĂ”rgu pakettide vastuvĂ”tmist ja saatmist minimaalse CPU tsĂŒklite arvu tĂ€itmisega (umbes 80 tsĂŒklit paketi kohta) ja arendada kĂ”rge jĂ”udlusega vĂ”rgu stack komponente. TCP/IP stackâi funktsionaalsus on otseselt laenatud FreeBSD 11.1-st ja eraldatud operatsioonisĂŒsteemist sĂ”ltumatuks raamatukoguks.
F-Stack on lahenduseks, mis vÔimaldab suurendada vÔrgu pÀringute töötlemise efektiivsust olukordades, kus Linuxi tuuma tavapÀrane TCP/IP kiht muutub kitsaskohaks ja piirab skaleeritavust. F-Stack'i rakendamine toob mÀrkimisvÀÀrse optimeerimise ja vÔimaldab teatud olukordades suurendada töödeldavate vÀikeste pÀringute arvu mitu korda.
TĂ”hususe tĂ”us saavutatakse vĂ”rgu paketide kopeerimise, voogude planeerimise, katkestuste töötlemise ja sĂŒsteemikutsungite vĂ€listamise kaudu. F-Stack vĂ”imaldab saavutada vĂ”rgu jĂ”udluse katet, mis on vĂ”imalik kasutatava vĂ”rkaartiga. NĂ€iteks on F-Stack'i lahendused demonstreerinud vĂ”imalust töödelda 10 miljonit samal ajal ĂŒhendust, 5 miljonit pĂ€ringut sekundis ja 1 miljon ĂŒhendust sekundis.
Uues vÀljaandes:
- Lisatud on VLAN-i tugi;
- Tagatud on töövÔime isoleeritud konteinerites, mis pÔhinevad Docker'il;
- Töötavad liidesed ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd ja ff_setsockopt_freebsd;
- Lisatud on 'idle_sleep' parameeter, et vÀhendada CPU koormust, kui sissetulevaid pakette ei ole.
- Lisa toetust ARM64 arhitektuuri ehitusele;
- F-Stack redaktsioonis tÔlgitud Nginx'is on asendatud getpeername, getsockname ja shutdown kÀsitlejad;
- Ălemineku teostamine DPDK 17.11.4 LTS uuele versioonile;
- Komplekti on lisatud utiliit aktiivsete F-Stack rakenduste kaudu voolava hetktaseme allalaadimise kuvamiseks (sarnaneb trafshow'ga).
Tuleviku plaanides IPv6 tugi, API pakkumine Python, PHP ja Go keeledele, Cyptodev API tugi ïŒïŒ, pakettide saatmisel zerocopy kasutamine, tugi ja vĂ”imalus kĂ€ivitada taustprotsessina.
Allikas: opennet.ru
