Indice

Programma

Il corso è strutturato in due moduli: il primo modulo presenta i fondamenti delle reti di calcolatori e il secondo modulo di laboratorio mostra un’applicazione concreta dei concetti teorici presentati nel primo modulo. Il primo modulo introduce i principi ed i concetti su cui si basano le reti e analizza la loro realizzazione nei sistemi reali. In particolare, vengono presentate le problematiche di livello applicativo e i protocolli più comuni a questo livello (quali HTTP, FTP, e-mail etc.), il livello di trasporto e i protocolli TCP e UDP, il livello di rete e i protocolli di routing e il livello di collegamento. Infine verranno presentati i principi di di reti wireless e mobili, di sicurezza nelle reti e dei protocolli per la multimedialità.

Il secondo modulo introduce gli strumenti per la realizzazione di applicazioni di rete in JAVA. In particolare vengono introdotti sia strumenti a basso livello come i socket TCP ed UDP che strumenti a piu' alto livello, come RMI (Remote Method Invocation) e le callbacks. La prima parte del corso introduce inoltre la programmazione concorrente in JAVA: si discute il concetto di thread, la tecnica del thread pooling e i meccanismi offerti da JAVA per la sincronizzazione dei threads.

Programma dettagliato

Modulo di Reti di Calcolatori

Introduzione alle reti di calcolatori

Livello applicativo

Livello di trasporto

Livello di rete

Livello di collegamento

Principi di reti wireless e mobili, di sicurezza, e dei protocolli per la multimedialità

Modulo di laboratorio di Reti

Richiami di programmazione JAVA: classi, interfacce ereditarieta'.

Thread Programming in JAVA

Gestione di indirizzi IP

JAVA streams

Sockets UDP

Sockets TCP

Remote Method Invocation

Libri di testo

Per il modulo di Reti: J. Kurose & K. Ross. Computer Networking: A top-down approach. (fourth edition, Addison Wesley)

Per il modulo di Programmazione di Rete: Esmond Pitt, Fundamental Networking in Java , Springer Verlag, 2005