The growth of network traffic and the increasing demand for resource-intensive applications, such as video streaming, make it essential to manage network flows more efficiently. In this context, Virtual Network Functions (VNFs) offer a flexible solution for implementing advanced network traffic management functionalities. This thesis project aims to develop a Linux Loadable Kernel Module, written in C, capable of monitoring and controlling the traffic of a local network by limiting the available resources to keep bandwidth usage below a certain threshold. The Kernel Module tracks established connections, records the number of packets transmitted in each time interval, and estimates the traffic for the following interval. If necessary, it intervenes by discarding packets to remain below the predefined packet limit. For the testing phase, a container-based environment using Docker was set up to simulate a local network composed of multiple hosts, managed by a router running the Kernel Module. In this context, automation tools such as the Puppeteer library were used to conduct repeated tests and collect performance data on the module. The results show that the module effectively limits network traffic, although there are areas for improvement, such as dynamically managing the packet limit assigned to the local network.
La crescita del traffico di rete e l'aumento di applicazioni che richiedono elevate risorse, come lo streaming video, rendono necessaria una gestione più efficiente dei flussi di rete. In questo contesto le Virtual Network Functions (VNFs) possono rappresentare una soluzione flessibile per implementare funzionalità avanzate del traffico di rete. Questo progetto di tesi si propone di sviluppare un Linux Loadable Kernel Module, scritto in linguaggio C, in grado di monitorare e gestire il traffico di una rete locale, limitando le risorse disponibili per mantenere l'utilizzo della banda sotto una determinata soglia. Il Kernel Module tiene traccia delle connessioni instaurate e registra il numero di pacchetti trasmessi in ciascun intervallo di tempo e stima il traffico dell'intervallo di tempo successivo. Se necessario, interviene scartando alcuni pacchetti per restare al di sotto della soglia di pacchetti impostata. Per la fase di test, è stato configurato un ambiente basato su container docker, che simula una rete locale, composta da host multipli, e gestita da un router in cui si trova il Kernel Module. In questo contesto, strumenti di automazione come la libreria Puppeteer hanno permesso di eseguire test ripetuti e di raccogliere dati sulle prestazioni del modulo. I risultati mostrano come il modulo riesca a limitare efficaciemente il traffico di rete, nonostante ci siano aspetti da perfezionare come la gestione dinamica del limite di pacchetti assegnato alla rete locale.
Gestione del traffico di rete tramite Linux Kernel Modules
TARANA, LUCA
2023/2024
Abstract
La crescita del traffico di rete e l'aumento di applicazioni che richiedono elevate risorse, come lo streaming video, rendono necessaria una gestione più efficiente dei flussi di rete. In questo contesto le Virtual Network Functions (VNFs) possono rappresentare una soluzione flessibile per implementare funzionalità avanzate del traffico di rete. Questo progetto di tesi si propone di sviluppare un Linux Loadable Kernel Module, scritto in linguaggio C, in grado di monitorare e gestire il traffico di una rete locale, limitando le risorse disponibili per mantenere l'utilizzo della banda sotto una determinata soglia. Il Kernel Module tiene traccia delle connessioni instaurate e registra il numero di pacchetti trasmessi in ciascun intervallo di tempo e stima il traffico dell'intervallo di tempo successivo. Se necessario, interviene scartando alcuni pacchetti per restare al di sotto della soglia di pacchetti impostata. Per la fase di test, è stato configurato un ambiente basato su container docker, che simula una rete locale, composta da host multipli, e gestita da un router in cui si trova il Kernel Module. In questo contesto, strumenti di automazione come la libreria Puppeteer hanno permesso di eseguire test ripetuti e di raccogliere dati sulle prestazioni del modulo. I risultati mostrano come il modulo riesca a limitare efficaciemente il traffico di rete, nonostante ci siano aspetti da perfezionare come la gestione dinamica del limite di pacchetti assegnato alla rete locale.File | Dimensione | Formato | |
---|---|---|---|
LucaTaranaTesi.pdf
non disponibili
Dimensione
931.6 kB
Formato
Adobe PDF
|
931.6 kB | Adobe PDF |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14240/164019