{"id":52859,"date":"2019-11-18T00:00:00","date_gmt":"2019-11-17T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/vypusk-setevogo-steka-f-stack-1-13-vypolnyaemogo-v-prostranstve-polzovatelya"},"modified":"2020-02-18T14:00:40","modified_gmt":"2020-02-18T11:00:40","slug":"vypusk-setevogo-steka-f-stack-1-13-vypolnyaemogo-v-prostranstve-polzovatelya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-setevogo-steka-f-stack-1-13-vypolnyaemogo-v-prostranstve-polzovatelya","title":{"rendered":"Release of the F-Stack 1.13 network stack, implemented in user space","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>After a year and a half of development <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/F-Stack\/f-stack\/releases\/tag\/v1.13\">the<\/a><\/noindex> project release <noindex><a rel=\"nofollow\" href=\"http:\/\/www.f-stack.org\">F-Stack 1.13<\/a><\/noindex>, developing a high-performance network stack operating in user space based on the framework <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=48099\">DPDK<\/a><\/noindex> and the TCP\/IP stack of FreeBSD (F-Stack is not tied to FreeBSD and considers Linux as its primary platform for application). The project is used in various products and services <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Tencent\">Tencent<\/a><\/noindex>, the largest telecommunications company in China. Code <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/F-Stack\/f-stack\">is distributed<\/a><\/noindex> under the BSD license. Supports operation in Linux and FreeBSD.<\/p>\n<p>F-Stack enables the organization of network interaction in applications by using its own network stack, functioning in user space and directly interacting with network hardware, instead of the operating system's network stack.  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/F-Stack\/f-stack\/tree\/dev\/app\">Specialized editions of<\/a><\/noindex> Nginx and Redis are provided, translated to use F-Stack.<\/p>\n<p>For application development <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/F-Stack\/f-stack\/blob\/dev\/doc\/F-Stack_API_Reference.md\">is supported<\/a><\/noindex> both as a native Posix API (Socket, Epoll, Kqueue), simplifying the migration of existing applications to F-Stack, and its own programming interface based on coroutines (micro-threads), facilitating the creation of network applications and allowing for the avoidance of complex asynchronous request processing logic. F-Stack also provides tools to simplify usage in applications with a multi-process architecture.<\/p>\n<p>To interact with the network card, bypassing the operating system kernel interfaces, the <noindex><a rel=\"nofollow\" href=\"http:\/\/dpdk.org\/\">DPDK<\/a><\/noindex> (Data Plane Development Kit), providing a set of libraries for low-level work with network adapters, interaction in multi-core systems, utilization of ring buffers, and large memory pages (\"huge page\"). Using DPDK enables the reception and transmission of network packets with minimal CPU cycles (about 80 cycles per packet) and the development of high-performance network stack components. The functionality of the TCP\/IP stack is directly borrowed from FreeBSD 11.1 and extracted into an operating system-independent library.<\/p>\n<p>F-Stack is marketed as a solution that can be used to enhance the performance of network request handlers in scenarios where the standard TCP\/IP stack of the Linux kernel becomes a bottleneck and limits scalability. The use of F-Stack provides a noticeable optimization and can, in some cases, significantly increase the number of handled small requests.  <\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/raw.githubusercontent.com\/F-Stack\/f-stack\/dev\/CPS_Reuseport.png\"><img decoding=\"async\" alt=\"Release of the F-Stack 1.13 network stack, implemented in user space\" src=\"\/wp-content\/uploads\/2019\/11\/c4d5710541cea747f158e1b279e08dda.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/raw.githubusercontent.com\/F-Stack\/f-stack\/dev\/Bandwidth.png\"><img decoding=\"async\" alt=\"Release of the F-Stack 1.13 network stack, implemented in user space\" src=\"\/wp-content\/uploads\/2019\/11\/81d513c7b6288c8a09b893613e2c67dc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Performance improvement is achieved by eliminating operations such as network packet copying, thread scheduling, interrupt handling, and system calls. F-Stack allows reaching the ceiling of network performance possible for the used network card. For instance, F-Stack-based solutions have demonstrated the capacity to handle 10 million simultaneous connections, 5 million requests per second, and 1 million connections per second.<\/p>\n<\/ul>\n<p>In the new release:<\/p>\n<ul>\n<li class=\"l\"> Added support for VLAN;\n<li class=\"l\"> Ensured the ability to operate in isolated Docker containers;\n<li class=\"l\"> Implemented interfaces ff_dup, ff_dup2, ff_ioctl_freebsd, ff_getsockopt_freebsd, and ff_setsockopt_freebsd;\n<li class=\"l\"> The parameter \"idle_sleep\" has been added to reduce CPU load in situations with no incoming packets.\n<li class=\"l\"> Added support for building for the ARM64 architecture;\n<li class=\"l\"> In the Nginx version translated to F-Stack, the handlers getpeername, getsockname, and shutdown have been replaced;\n<li class=\"l\"> Migrated to the new version DPDK 17.11.4 LTS;\n<li class=\"l\"> Included is a utility <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/F-Stack\/f-stack\/tree\/dev\/tools\/traffic\">traffic<\/a><\/noindex> to display the current traffic processed by applications based on F-Stack (similar to trafshow).\n<\/ul>\n<p>Plans for the future <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/F-Stack\/f-stack\/blob\/dev\/doc\/F-Stack_Roadmap.md\">include<\/a><\/noindex> support for IPv6, providing APIs for Python, PHP, and Go languages, support for the Cyptodev API (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/intel-quick-assist-technology-overview.html\">Intel QAT<\/a><\/noindex>), using zerocopy when sending packets, support <noindex><a rel=\"nofollow\" href=\"https:\/\/spdk.io\/\">SPDK<\/a><\/noindex> , and the ability to run as a background process.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51884\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 F-Stack 1.13, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0442\u0435\u043a, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 DPDK \u0438 TCP\/IP \u0441\u0442\u0435\u043a\u0435 FreeBSD (F-Stack \u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d \u043a FreeBSD \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 Linux). \u041f\u0440\u043e\u0435\u043a\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u0445 \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445 Tencent, \u043a\u0440\u0443\u043f\u043d\u0435\u0439\u0448\u0435\u0439 \u0432 \u041a\u0438\u0442\u0430\u0435 \u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041a\u043e\u0434 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-52859","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-setevogo-steka-f-stack-1-13-vypolnyaemogo-v-prostranstve-polzovatelya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430 F-Stack 1.13, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-setevogo-steka-f-stack-1-13-vypolnyaemogo-v-prostranstve-polzovatelya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-17T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Release of the F-Stack 1.13 network stack operating in user space | ProHoster","description":"After one and a half years of development, the project has been officially released.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-setevogo-steka-f-stack-1-13-vypolnyaemogo-v-prostranstve-polzovatelya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430 F-Stack 1.13, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-setevogo-steka-f-stack-1-13-vypolnyaemogo-v-prostranstve-polzovatelya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-17T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52859","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 05:12:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:35:26","updated":"2026-01-24 05:12:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/52859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=52859"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/52859\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=52859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=52859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=52859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}