Avvisi
Esiti dello scritto di Gennaio
Lo scritto del 10 Gennaio è stato posticipato al 14 Gennaio 2013 dalle ore 13:30 alle ore 15:30 in Aula V9, pertanto non si terrà lezione
E' stato pubblicato il progetto per l'appello di GennaioModalità d'esame
L'esame sarà costituito da: progetto di laboratorio, esame scritto, esame orale
Modalità: 6 settimane prima del primo scritto di ogni sessione verrà pubblicato il testo del progetto che varrà per entrambi gli appelli della sessione d'esame. Per gli appelli di febbraio i tempi di consegna verranno comunicati nel testo del progetto. Il progetto andrà consegnato entro 4 settimane dalla pubblicazione. Il progetto verrà valutato sempre prima della data del primo scritto della sessione. Chi non supera il progetto non può accedere allo scritto. Si accede all'orale solo se sia il progetto che lo scritto risulteranno sufficienti. L'orale comprende una valutazione della parte teorica e una discussione del progetto. Scritto e progetto saranno validi solo per una sessione d'esame. Una visualizzazione della modalità d'esame è presente qui.
Date Appelli d'esame
- 11 Giugno (26 Aprile - pubblicazione Progetto / 28 Maggio - consegna progetto / 4 Giugno - Risultato progettp)
- 10 Luglio (24 Giugno - consegna dei progetti risultati quasi sufficienti a giugno, opportunamente corretti / 30 Giugno - Risultato progetto )
- 18 Settembre (26 Luglio - pubblicazione Progetto / 4 Settembre - consegna progetto / 10 Settembre - Risultato progetto )
- 17 Ottobre (1 Ottobre - consegna dei progetti risultati quasi sufficienti a settembre, opportunamente corretti / 5 Ottobre - Risultato progetto )
- 10 Gennaio (04 Dicembre - pubblicazione Progetto / 05 Gennaio - consegna progetto / 06 Gennaio - Risultato progettp)
Programma Teoria
E' un corso di base che fornisce le basi concettuali e architetturali delle reti di calcolatori con particolare riferimento alla rete Internet, ai suoi protocolli, alle sue applicazioni e gli strumenti per l'analisi di reti complesse. Si acquisiscono inoltre competenze sulla programmazione di rete per la fruizione di servizi su Internet utilizzando il linguaggio di programmazione Java.
Nozioni di base sulle reti di calcolatori e Internet
Architetture a livelli: ISO/OSI e TCP/IP
Livello applicativo: web, HTTP, posta elettronica, DNS, P2P, programmazione
con le socket e web service
Tecniche di base per l'analisi di reti complesse
Livello di trasporto: protocolli TCP e UDP
Livello di rete: reti a circuito virtuale e a datagrammi, IP, protocolli di
instradamento
Livelli data link: protocolli di livello MAC per reti LAN
Programma Laboratorio
- Modello client-server, protocolli livello rete,trasporto,applicazione
Testi di riferimento
- J. F. Kurose, K.W. Ross, Computer Networking, a topdown approach, 4° edizione, Addison Wesley o l'edizione italiana
- J. F. Kurose, K.W. Ross, Reti di calcolatori e Internet, 4° edizione, Pearson
- Dario Maggiorini, Introduzione alla Programmazione Client-Server, Pearson, 2009.
- A. S. Tanenbaum and D.J. Wetherall, “Computer Networks”, Pearson.(o nell’edizione italiana)
- M.E.J. Newman, “Networks: an introduction”, Oxford University Press, 2011
- M.E.J. Newman, “The structure and function of complex networks”, SIAM Review, 45(2), 167-256, (2003)
- S. Boccaletti et al., “Complex networks: structure and dynamics”, Physics Reports 424 (2006), 175-308
- D. Easley ans J. Kleinberg, “Networks, Crowds and Markets”, Cambridge University Press, 2010
Syllabus Teoria
Lunedì 3 ottobre:- Che cos'è Internet? (1.1)
- Ai confini della rete: programmi client-server (1.2.1), le reti di accesso (1.2.2)
- Ai confini della rete: i mezzi trasmissivi (1.2.3)
- Il nucleo della rete: commutazione di circuito e commutazione di pacchetto (1.3.1, 1.3.2), gerarchia degli ISP (1.3.3)
- Ritardi nelle reti a commutazione di pacchetto (1.4.1) con relativi esercizi
- Esercizi sui ritardi nelle reti a commutazione di pacchetto
- Esercizi fine cap. 1 del libro di testo
- Materiale aggiuntivo: Andrea Bianco, Claudio Casetti, Paolo Giaccone, "Esercitazioni di reti telematiche", CLUT, Torino, ISBN: 978-88-7992-250-0, esercizi cap. 1
- Perdite di pacchetti e throughput nelle reti (1.4.2, 1.4.3, 1.4.4)
- Internet protocol stack (1.5)
- I principi delle applicazioni di rete (2.1)
- Web e HTTP (2.2)
- Posta elettronica in Internet (2.4)
- DNS (2.5)
- Distribuzione di file P2P (6.2.1) ed esercizio 16 le cui soluzioni son riportate qui
- Livello di trasporto (3.1)
- Multiplexing e demultiplexing (3.2)
- UDP (3.3)
- Trasferimento dati affidabili (3.4)
- TCP (3.5)
- Controllo di congestione (3.6 - 3.7)
- Controllo di congestione TCP (3.7)
- Problemi svolti in classe sul capitolo 3: 24, 25, 33
- UDP (3.3)
- Introduzione al livello di rete (4.1)
- MReti a circuito virtuale e a datagrammi (introduzione, 4.2.2, 4.2.3, non il 4.2.1)
- Struttura di un router (4.3)
- Protocollo Internet (IP)
- Formato dei datagrammi (4.4.1)
- Indirizzamento IPv4 fino al DHCP incluso(4.4.2)
- NAT (4.4.2, UPnP solo accennato)
- ICMP (4.4.3)
- IPv6 (4.4.4)
- Problemi 8, 12, 16, 18
- Algoritmi di instradamento link state
- Algoritmo di Dijkstra (4.5.1)
- Algoritmo distance vector (4.5.2)
- Problemi 8, 12, 16, 18
- Instradamento gerarchico (4.5.3)
- Instradamento in Internet (4.6.1, 4.6.2, introduzione a 4.6.3, scheda “principi in pratica” a pag. 357): solo cenni a RIP, OSPF, BGP
- La parte di algoritmi di routing è ben trattata anche sul Tanenbaum (sulla quinta edizione corrisponde alle sezioni da 5.2 a 5.2.6)
- Introduzione all’analisi di reti complesse
- Metriche e misure (definizioni): Degree, paths, shortest paths, diameter, components, degree centrality, betweeness centrality, closeness centrality, clustering coefficient
- Small world effect, degree distribution (cenni)
Syllabus Laboratorio
Lezione 1
Lezione 2
- Slide: Collection ed I/O Stream
- Esercizi: Codice da cui partire
Lezione 3
- Slide: Modello client-server e protocolli,classi URL e InetAddress
- Esercizi: sulle slide
Lezione 4
- Slide: Programmazione con le socket, implementazione client e server iterativo, classi Server e ServerSocket
- Esercizi: sulle slide
- Esercizio1,Esercizio8,Esercizio9,Server
Lezione 5
- Slide: Thread, sincronizzazione, server multithread
- Esercizi: ChargenServer
- Esercizio 1:ClientMultiThread,InputReaderThread,InputThread
- Esercizio 2:ChargenMulti,ChargenThread
- Esercizio 3:AuthEchoMulti,AuthThread
- Esercizio 6:Rubrica,Server,Thread
Lezione 6
- Slide: URLConnection
Lezione 7
Lezione 8
- Slide: JSON, Facebook Graph API
- File di esempio
Lezione 9
- Slide: OAuth 2.0, FacebookConnection, Facebook Object
Lezione 10
- Slide: Networks e libreria GraphStream
Lezione 11
- Slide: GraphStream: visualizzazione ed algoritmi
- KarateClub
Progetto
- Febbraio
- Testo del progetto
- Librerie utili
- Grafo per l'analisi
- Il progetto verrà illustrato in classe il 13 dicembre 2011
- Sessione Estiva (Giugno-Luglio)
- Sessione Settembre
- Appello Gennaio
- Testo del progetto
- Classi per il testing
Scritti Appelli Passati
Orario
Lunedì | 13:30 - 15:30 Aula V3 (via Venezian) |
Martedì | 10:30 - 12:30 Aula 101 (via Celoria) |
Martedì | 13:30 - 17:30 Aula 309 (via Celoria) |
Giovedì | 13.30 - 15:30 Aula V6 (via Venezian) |
Contatti
Sabrina Gaito | ricevimento su appuntamento |
Matteo Zignani | ricevimento su appuntamento |