(Sorry guys, this page is in italian -- it contains some possible topics for degree thesis. And, as all non-commercial web pages, it is probably outdated!)

Argomenti di tesi disponibili

(Aggiornato 6 ottobre 2003 -- gli argomenti non sono in ordine di importanza).

Reimplementazione delle tabelle di routing in FreeBSD (2003.10.06)

Le tabelle di routing in FreeBSD contengono una varieta` di informazioni che non sempre sono utilizzate (tra cui tipo di route, informazioni per il protocollo ARP, etc.). Questo comporta un enorme spreco di memoria, oltre a potenziali inefficienze nelle interrogazioni e manipolazioni delle tabelle stesse.

Scopo della tesi e` reimplementare le tabelle stesse separando le informazioni appartenenti a livelli diversi, e rendendosi indipendenti dall'algoritmo utilizzato per memorizzare i componenti della tabella stessa, in modo da poter adattare tale algoritmo al contesto (es. IPv4, IPv6, ARP, ecc.)


Supporto per TCP ad alta velocita` (2003.10.06)

Il protocollo TCP ha bisogno, nel funzionamento ad alta velocita`, di utilizzare finestre di grosse dimensioni, e di implementare una funzionalita` (Selective Acknowledgements) che permette di recuperare velocemente perdite di pacchetti fuori ordine. Le strutture dati attualmente utilizzate per gestire i buffer all'interno del TCP sono liste lineari, e tali strutture comportano una complessita` O(N) per le operazioni di ricezione e trasmissione.

Scopo della tesi e` sostituire queste strutture dati con altre piu` adatte (tipicamente alberi bilanciati) che permettono di operare in tempo O(log N). In aggiunta, tali strutture dati permettono di gestire in modo efficiente le opzioni SACK.


Opzione SACK per TCP (2003.10.06)

Il protocollo TCP prevede una opzione, Selective Acknowledgement (SACK) che permette di recuperare velocemente perdite di pacchetti fuori ordine.

Scopo della tesi e` l'implementazione dell'opzione SACK e delle relative modifiche alle procedure di controllo di congestione, e la validazione della implementazione nelle modalita` di funzionamento normale e con SACK.


Estensione multiprocessor della modalita` polling (2003.10.06)

Al fine di costruire sistemi resistenti ai sovraccarichi, la gestione delle interfacce di rete si puo` realizzare sostituendo il meccanismo di interruzione con un meccanismo detto 'polling' che prevede di interrogare periodicamente le interfacce. In questo modo si riesce a schedulare la CPU tra l'esecuzione di processi utente e l'esecuzione di processi di sistema.

Scopo della tesi e` di studiare l'estensione di questo meccanismo al caso multiprocessor, e di valutarne l'efficacia.


Supporto NAT per il firewall ipfw2 (2003.10.06)

Il firewall ipfw2 e` un sistema di selezione dei pacchetti basato su microistruzioni, ciascuna delle quali verifica condizioni su determiniati campi o attributi del pacchetto sotto analisi.

Scopo della tesi e` l'estensione del firewall per supportare il "Network Address Translation" (NAT) ovvero la gestione di traffico con indirizzi privati. Oltre al meccanismo (relativamente semplice e gia` presente in parte) per implementare la selezione dei pacchetti, il grosso della complessita` risiede nella scrittura del codice che manipola i campi dei vari protocolli applicativi che sfruttano la conoscenza degli indirizzi IP.


Refactoring del codice IP in FreeBSD (TESINA) (2003.10.06)

Il codice che implementa il protocollo TCP/IP comprende alcune funzioni (ip_input(), ip_output(), tcp_input(), tcp_output()..) il cui corpo e` cresciuto oltre misura fino a superare il migliaio di linee ciascuna. Cio` rende il codice di difficile lettura e manutenzione, senza reali benefici in termini di efficienza.

Scopo della tesi e` ripulire il codice analizzando queste funzioni, identificandone le parti che si possono estrarre, e scomponendole in blocchi piu` piccoli.


Estensione IPv6 del firewall ipfw2 (TESINA) (2003.10.06)

Il firewall ipfw2 e` un sistema di selezione dei pacchetti basato su microistruzioni, ciascuna delle quali verifica condizioni su determiniati campi o attributi del pacchetto sotto analisi.

Scopo della tesi e` l'estensione del firewall con istruzioni in grado di operare sui campi dell'header IPv6.


Sistema di scripting per configurazione di firewall FreeBSD (TESINA) (2003.10.06)

Lo scopo di questa tesi e` di sviluppare una serie di script shell che facilitino il compito di produrre una configurazione complessa per un firewall, ed eventualmente anche un front-end basato su web che permetta la manipolazione di tale configurazione.

Estensione del programma magicpoint (TESINA) (2003.10.06)

Scopo della tesi e` l'aggiornamento del programma magicpoint con alcune semplici istruzioni di gestione del mouse, in modo da permettere di effettuare annotazioni su una presentazione esistente; e di implementare un front-end al programma stesso che permetta di utilizzare "stili" annidati in modo piu` flessibile di quello attualmente esistente.

Estensioni per supporto di tavolette grafiche USB (2003.10.06)

La gestione di dispositivi di input grafico tipo mouse e tavolette grafiche viene realizzato tramite un modulo del sistema operativo che si adatta all'interfaccia fisica del dispositivo (seriale, USB o altro) e un modulo del server X11 che interpreta i dati generati dal modulo di sistema.

Scopo della tesi e` di estendere il supporto del sistema operativo e/o dei moduli XWindows in modo estendere il supporto di tavolette grafiche, sia seriali che USB. La documentazione necessaria e` disponibile nel codice che implementa i driver Linux.


Studio e implementazione dello standard Video4Linux (2003.10.06)

Linux definisce uno standard, Video4Linux, per l'interfacciamento con periferiche di acquisizione video.

Scopo della tesi e` l'implementazione di una libreria che permetta alle applicazioni di usare questo standard, e l'adattamento di almeno uno dei dispositivi di acquisizione video supportati da FreeBSD a questo standard.


Supporto di periferiche di acquisizione video USB (2003.10.06)

Scopo della tesi e` di estendere il supporto USB presente nel sistema operativo per supportare telecamere USB e farle comunicare mediante lo standard Video4Linux.

Implementazione dell'algoritmo Spanning Tree in bridges Ethernet (2003.10.06)

Nella interconnessione di reti ethernet mediante bridge/switch e` necessario evitare la realizzazione di loop che porterebbero ad avere pacchetti che girano in rete all'infinito. E` peraltro utile che tra due punti esistano piu` cammini alternativi in modo da ottenere maggiore affidabilita` in caso di guasti di alcuni link. Per soddisfare queste due esigenze, si utilizza un algoritmo distribuito chiamato spanning tree che permette di individuare quali segmenti sono da utilizzare per distribuire traffico.

Obiettivo di questa tesi e` di implementare in C l'algoritmo di spanning tree.



Luigi Rizzo
Dipartimento di Ingegneria dell'Informazione -- Univ. di Pisa
via Diotisalvi 2 -- 56126 PISA
tel. +39-050-568533 Fax +39-50-0568522
email: l.rizzo@iet.unipi.it