yerinə yetirilmiş bir buçuk illik inkişafdan sonra layihənin buraxılışı , istifadəçi mühitində işləyən yüksək məhsuldar şəbəkə stəki, çərçivəyə əsaslanır və FreeBSD TCP/IP stəkinə (F-Stack FreeBSD-yə bağlı deyil və əsas tətbiq platforması kimi Linux-u nəzərdən keçirir). Layihə müxtəlif məhsul və xidmətlərdə istifadə olunur , Çindəki ən iri telekommunikasiya şirkəti. Kod BSD lisenziyasına tabedir. Linux və FreeBSD-də işləməsi dəstəklənir.
F-Stack, tətbiqlərdə şəbəkə əlaqəsini təşkil etməyə imkan tanıyır, əsl şəbəkə stəkinin yerinə istifadəçi mühitində fəaliyyət göstərən və şəbəkə avadanlığı ilə birbaşa işləyən öz şəbəkə stəkini tətbiq edir. F-Stack istifadə üçün çevrilmişdir.
Tətbiq inkişafı üçün həm də standart Posix API (Socket, Epoll, Kqueue), mövcud tətbiqləri F-Stack-a köçürməyi sadələşdirir, həm də mikrotiklər əsasında öz proqram interfeysi, şəbəkə tətbiqləri yaratmağı asanlaşdırır və mürəkkəb asinxron sorğuların emalı məntiqindən yayınmağa imkan verir. F-Stack, çoxprosesli arxitektura ilə tətbiqlərdə istifadəsini sadələşdirmək üçün də vasitələr təqdim edir.
Şəbəkə kartı ilə interacción yaratmaq üçün, əməliyyat sisteminin nüvəsinin interfeyslərini keçərək istifadə olunan çərçivə, (Data Plane Development Kit), şəbəkə adapterləri ilə aşağı səviyyəli iş üçün kitabxana dəsti, çox nüvəli sistemlər arasında qarşılıqlı əlaqə yaratmaq, dövri bufferlər və böyük yaddaş səhifələri ("huge page") istifadəsini təmin edir. DPDK-nın istifadəsi, şəbəkə paketlərinin qəbul və göndərilməsini minimal CPU dövrü sayı ilə (paket başına təxminən 80 dövr) təmin edir və yüksək məhsuldar şəbəkə stəkləri komponentlərini inkişaf etdirməyə imkan tanıyır. TCP/IP stəkinin funksionallığı birbaşa FreeBSD 11.1-dən götürülmüşdür və əməliyyat sistemindən müstəqil bir kitabxanaya ayrılmışdır.
F-Stack, şəbəkə sorğularının emalı üçün məhsuldarlığı artırmaq məqsədilə tətbiq olunan bir həll kimi təqdim edilir, burada Linux nüvəsinin standart TCP/IP stəkinin işi dar fəaliyyətdədir və genişlənməni məhdudlaşdırır. F-Stackın tətbiqi kifayət qədər hiss edilən optimallaşdırma təmin edir və bəzi hallarda işləmə sayını artırmağa imkan tanıyır.
İş performansının artırılması, şəbəkə paketlərinin köçürülməsi, axınların planlaşdırılması, kəsilmələrin emalı və sistem çağırışlarının tətbiqi kimi əməliyyatların istisna edilməsi ilə əldə edilir. F-Stack, istifadə olunan şəbəkə kartı üçün mümkün olan şəbəkə performansı tavanına nail olmağa imkan verir. Məsələn, F-Stack-a əsaslanan həllər 10 milyon eyni anda bağlantını, saniyədə 5 milyon sorğunu və saniyədə 1 milyon bağlantını emal edə biləcəyini nümayiş etdirdi.
Yeni buraxılışda:
- VLAN dəstəyi əlavə edildi;
- Docker əsaslı izolyasiya olunmuş konteynerlərdə işləmək imkanı təmin edildi;
- ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd və ff_setsockopt_freebsd interfeysləri reallaşdırıldı;
- Giriş paketi olmadığı zaman CPU yükünü azaltmaq üçün "idle_sleep" parametr əlavə edildi.
- ARM64 arxitekturası üçün tərtib dəstəyi əlavə edildi;
- F-Stack-a keçid edilən Nginx versiyasında getpeername, getsockname və shutdown emalçıları dəyişdirildi;
- Yeni DPDK 17.11.4 LTS versiyasına keçid edildi;
- Qaynağa bir yardımçı proqram əlavə edildi, F-Stack əsaslı tətbiqlərin emal etdiyi cari trafiki göstərmək üçün (trafshow-a bənzəyir).
Gələcək planlarda IPv6 dəstəyi, Python, PHP və Go dilləri üçün API təminatı, Cyptodev API dəstəyi (), paketlərin göndərilməsində zerocopy istifadə edilməsi, dəstək və arxa planda proses kimi işə salma imkanı.
Mənbə: opennet.ru
