Імплементація високонавантажених мережевих протоколів ІоТ систем
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Національний університет "Львівська політехніка"
Abstract
У кваліфікаційній роботі розроблено та реалізовано високопродуктивний
HTTP-сервер, здатний ефективно обробляти вхідні мережеві запити за допомогою
асинхронного неблокувального вводу-виводу на основі edge-triggered epoll.
Особливістю цього сервера є застосування лише одного потоку обробки при
збереженні високої продуктивності, що дозволяє обробляти понад 1100 запитів на
секунду навіть при навантаженні 100 000 одночасно підключених клієнтів з рівнем
конкурентності 20 000.
На початковому етапі було проведено аналітичний огляд сучасних підходів до
побудови високонавантажених серверів. Було розглянуто популярні підходи до
мультиплексування вводу-виводу: select, poll, level-triggered epoll — та зроблено
висновки щодо їх обмежень у контексті масштабованості, витрат на контекстні
перемикання та енергоспоживання. Це дало підстави для обґрунтованого вибору
саме edge-triggered epoll. З особливостей слід також зазначити, що були застосовані
додаткові оптимізаційні архітектурні рішення для розподілення навантаження та
keep-alive механізму.
У практичній частині роботи реалізовано модульну архітектуру HTTP-сервера
мовою програмування C, що включає:
? обробку запитів у неблокувальному режимі;
? підтримку HTTP протоколу відповідно до RFC 9110 [1], RFC 9112 [2],
Chunked Transfer Coding та масштабовану обробку клієнтів.
Для оцінки продуктивності використано Apache Benchmark (ab) —
стандартний інструмент навантажувального тестування, який дозволяє
змоделювати велику кількість одночасних клієнтів та проаналізувати стабільність,
затримки та пропускну здатність реалізованого рішення.
Отримані результати свідчать про високу ефективність розробленої системи:
навіть за умов екстремально високої конкурентності система демонструє стабільну
роботу та високу швидкодію.
Економічна частина подає аналіз економічного ефекту від розробленого
сервера.
Висновок коротко підсумовує теоретичні та практичні наукові здобутки, які
були отримані в процесі виконання роботи.
In this qualification thesis, a high-performance HTTP server has been designed and implemented. It is capable of efficiently handling incoming network requests using asynchronous non-blocking input/output based on edge-triggered epoll. A distinctive feature of this server is the use of only a single processing thread while maintaining high throughput, allowing it to handle over 1100 requests per second even under a load of 100,000 simultaneously connected clients with a concurrency level of 20,000. At the initial stage, an analytical review of modern approaches to building highload servers was conducted. Common I/O multiplexing techniques were examined, including select, poll, and level-triggered epoll, and conclusions were drawn about their limitations in the context of scalability, context switching overhead, and power consumption. These findings formed the basis for the justified choice of edge-triggered epoll. Additional architectural optimization decisions were also applied to enable efficient load distribution and support for the keep-alive mechanism. In the practical part of the thesis, a modular HTTP server architecture was implemented in the C programming language, including: ? non-blocking request processing; ? support for the HTTP protocol according to RFC 9110 [1] and RFC 9112 [2], Chunked Transfer Coding, and scalable client handling. To evaluate performance, Apache Benchmark (ab) was used — a standard load testing tool that allows simulation of a large number of concurrent clients and provides analysis of the system’s stability, latency, and throughput. The results demonstrate the high efficiency of the developed system: even under extreme concurrency, the system maintains stable operation and high performance. The economic section presents an analysis of the economic impact of the developed server. The conclusion briefly summarizes the theoretical and practical scientific achievements obtained during the work.
In this qualification thesis, a high-performance HTTP server has been designed and implemented. It is capable of efficiently handling incoming network requests using asynchronous non-blocking input/output based on edge-triggered epoll. A distinctive feature of this server is the use of only a single processing thread while maintaining high throughput, allowing it to handle over 1100 requests per second even under a load of 100,000 simultaneously connected clients with a concurrency level of 20,000. At the initial stage, an analytical review of modern approaches to building highload servers was conducted. Common I/O multiplexing techniques were examined, including select, poll, and level-triggered epoll, and conclusions were drawn about their limitations in the context of scalability, context switching overhead, and power consumption. These findings formed the basis for the justified choice of edge-triggered epoll. Additional architectural optimization decisions were also applied to enable efficient load distribution and support for the keep-alive mechanism. In the practical part of the thesis, a modular HTTP server architecture was implemented in the C programming language, including: ? non-blocking request processing; ? support for the HTTP protocol according to RFC 9110 [1] and RFC 9112 [2], Chunked Transfer Coding, and scalable client handling. To evaluate performance, Apache Benchmark (ab) was used — a standard load testing tool that allows simulation of a large number of concurrent clients and provides analysis of the system’s stability, latency, and throughput. The results demonstrate the high efficiency of the developed system: even under extreme concurrency, the system maintains stable operation and high performance. The economic section presents an analysis of the economic impact of the developed server. The conclusion briefly summarizes the theoretical and practical scientific achievements obtained during the work.
Description
Keywords
Citation
Шийка О. А. Імплементація високонавантажених мережевих протоколів ІоТ систем : кваліфікаційна робота на здобуття освітнього ступеня магістр за спеціальністю „6.122.00.09 — Системна інженерія (Інтернет речей)“ / Остап Андрійович Шийка. — Львів, 2024. — 63 с.