METHOD OF BUILDING LOCAL AREA NETWORK SIMULATION BASED ON AMQP AND ITS SUPPORT PROTOCOLS SUITE
DOI: 10.31673/2412-4338.2024.039989
DOI:
https://doi.org/10.31673/2412-4338.2024.039989Abstract
Modern, scalable solutions require a simplified mode of communication management. To achieve scalability, replicated services or clustered solutions often utilize either a centralized management approach or a network of equally ranked peers. In the later case, a solution that manages the communication media should be implemented. Often, security in such networks is achieved through the use of VPNs (Virtual Private Networks) which allow for the abstraction of communication integrity and confidentiality components. To achieve addressing, network discovery, and direct communication, a complex set of network protocols is commonly utilized. Such setup puts an extreme burden on the engineers that have to design and implement complex network topology structures and integrate them with the application layer codebase. The purpose of this article is to propose a novel approach to building peer-to-peer networks based on the AMQP protocol. Through the course of the research, the internal workings of the AMQP protocol will be described through the implementation of the RabbitMQ broker. A description of the Local Area Network (LAN) simulation client is provided and examined. Additionally, performance metrics such as latency and throughput were considered and laid out for the use of a simulated LAN environment. This article provides security guidelines and considerations when building simulated LANs with a given method. On top of that, a set of replica support protocols was developed. Their purpose and description are provided as a clear illustration of potential LAN simulation method usage.
Keywords: Local Area Network (LAN); Advanced Message Queuing Protocol (AMQP); network simulation; message queuing; network architecture; network performance; communication protocols; data exchange; network topology; scalability; reliability; latency; throughput; distributed systems; real-time communication; interoperability; middleware.
References
1. Prateek S. Leader election in distributed systems – A deep dive!. LinkedIn: Log In or Sign Up. URL: https://www.linkedin.com/pulse/leader-election-distributed-systems-deep-dive-saurav-prateek/ (date of access: 11.04.2024).
2. Leader Election Algorithms: History and Novel Schemes. IEEE Xplore. URL: https://ieeexplore.ieee.org/abstract/document/4682163 (date of access: 12.04.2024).
3. Kotov M., Toliupa S., Nakonechnyi V. REPLICA STATE DISCOVERY PROTOCOL BASED ON ADVANCED MESSAGE QUEUING PROTOCOL. Cybersecurity: Education, Science, Technique. 2024. Vol. 3, no. 23. URL: https://doi.org/10.28925/2663-4023.2024.23.156171 (date of access: 13.04.2024).
4. WireGuard: Next Generation Kernel Network Tunnel – NDSS Symposium. NDSS Symposium. URL: https://www.ndss-symposium.org/ndss2017/ndss-2017-programme/wireguard-next-generation-kernel-network-tunnel/ (date of access: 18.04.2024).
5. AMQP 0-9-1 model explained | rabbitmq. RabbitMQ: easy to use, flexible messaging and streaming | RabbitMQ. URL: https://rabbitmq-website.pages.dev/tutorials/amqp-concepts (date of access: 23.04.2024).
6. OASIS Advanced Message Queuing Protocol (AMQP) Version 1.0, Part 3: Messaging. OASIS. URL: https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html (date of access: 23.04.2024).
7. Selvam M. AMQP – introduction and story of the rabbitmq. Medium. URL: https://medium.com/@manikandanselvam_89994/amqp-introduction-and-story-of-the-rabbitmq-6f905980369a (date of access: 23.04.2024).
8. Tezer O. S. An advanced message queuing protocol (AMQP) walkthrough. DigitalOcean | Cloud Infrastructure for Developers. URL: https://www.digitalocean.com/community/tutorials/an-advanced-message-queuing-protocol-amqp-walkthrough (date of access: 23.04.2024).
9. Ashtari H. AMQP vs. MQTT: 9 key differences – spiceworks. Spiceworks. URL: https://www.spiceworks.com/tech/networking/articles/amqp-vs-mqtt/ (date of access: 03.02.2024).
10. Clients Libraries and Developer Tools | RabbitMQ. RabbitMQ: One broker to queue them all | RabbitMQ. URL: https://www.rabbitmq.com/client-libraries/devtools (date of access: 25.04.2024).
11. Consumer Acknowledgements and Publisher Confirms | RabbitMQ. RabbitMQ: One broker to queue them all | RabbitMQ. URL: https://www.rabbitmq.com/docs/confirms (date of access: 26.04.2024).
12. Reliability Guide | RabbitMQ. RabbitMQ: One broker to queue them all | RabbitMQ. URL: https://www.rabbitmq.com/docs/reliability (date of access: 28.04.2024).
13. Dead Letter Exchanges | RabbitMQ. RabbitMQ: One broker to queue them all | RabbitMQ. URL: https://www.rabbitmq.com/docs/dlx (date of access: 03.05.2024).
14. Ibrahim D. Semapores and mutexes. ResearchGate. URL: https://www.researchgate.net/publication/341708618_Semapores_and_mutexes (date of access: 04.05.2024).
15. Overview | Prometheus. Prometheus – Monitoring system & time series database. URL: https://prometheus.io/docs/introduction/overview/ (date of access: 06.05.2024).
16. When to use the Pushgateway | Prometheus. Prometheus – Monitoring system & time series database. URL: https://prometheus.io/docs/practices/pushing/ (date of access: 08.05.2024).
17. Pull doesn’t scale – or does it? | Prometheus. Prometheus – Monitoring system & time series database. URL: https://prometheus.io/blog/2016/07/23/pull-does-not-scale-or-does-it/ (date of access: 08.05.2024).
18. Consumer Prefetch | RabbitMQ. RabbitMQ: One broker to queue them all | RabbitMQ. URL: https://www.rabbitmq.com/docs/consumer-prefetch (date of access: 10.05.2024).
19. Quorum Queues | RabbitMQ. RabbitMQ: One broker to queue them all | RabbitMQ. URL: https://www.rabbitmq.com/docs/quorum-queues (date of access: 14.05.2024).
20. Date – JavaScript | MDN. MDN Web Docs. URL: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#the_epoch_timestamps_and_invalid_date (date of access: 16.05.2024).
21. OASIS Advanced Message Queuing Protocol (AMQP) Version 1.0, Part 5: Security. OASIS. URL: https://docs.oasis-open.org/amqp/core/v1.0/amqp-core-security-v1.0.html (date of access: 18.05.2024).
22. SASL Overview (GNU Simple Authentication and Security Layer 2.2.1). The GNU Operating System and the Free Software Movement. URL: https://www.gnu.org/software/gsasl/manual/html_node/SASL-Overview.html (date of access: 18.05.2024).
23. RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2. IETF Datatracker. URL: https://datatracker.ietf.org/doc/html/rfc5246 (date of access: 22.05.2024).
24. AMQP Claims-based Security Version 1.0. OASIS. URL: https://docs.oasis-open.org/amqp/amqp-cbs/v1.0/amqp-cbs-v1.0.html (date of access: 24.05.2024).
25. Authentication, Authorisation, Access Control | RabbitMQ. RabbitMQ: One broker to queue them all | RabbitMQ. URL: https://www.rabbitmq.com/docs/access-control (date of access: 27.05.2024).