This project aims to develop a network management system that monitors device status and connections, detects anomalies, and issues alerts. It operates on a client-server architecture, using UDP for monitoring tasks and TCP for alert communication
The project was implemented using a CORE topology as a base like the following image:
In this app there existed various agents that would execute tasks, assigned to them by the server. These tasks could relate to their own systems (ex: CPU consuption) and also neighbouring systems (ex: Message delay), they would periodically execute these tasks adn send the result to the server that would store them in a specialized database with concurrent access control.
A big focus of this project was designing the communication protocol between the server and client, the protocol we designed was inspired by TCP with some modifications, where necessary.
We were very happy with the result of this project having as a goal, if we had more time to implement a more robust flow control, we could send multiple packets at once and adjust the number of packets sent, taking into account network congestion.
For a full report and project files check out this projects repository at https://github.com/luis25franca/CC-TP2.