Avvisi
L'esame scritto del 23 gennaio si terrà alle ore 10 in aula seminari al VII piano di via Celoria 18. Citofonare a Gaito o all' NPTLab.
Testo del progetto valido per tutti gli appelli. File di supporto al progetto. Prossima data di consegna del progetto: 14/01/2020
Modalità d'esame
Con l'anno accademico 2019-2020 la modalità d’esame cambierà (dagli appelli di febbraio in poi). L’esame sarà solo orale sia per la parte di teoria che per quella di laboratorio che si dovranno sostenere insieme. Il progetto di laboratorio sarà facoltativo e se effettuato sarà il punto di partenza dell’esame orale di laboratorio. Per la parte di teoria è possibile preparare un argomento a scelta da cui partirà l’esame orale. Coloro che avessero già effettuato l’esame scritto o di laboratorio dovranno sostenere solo la parte mancante. L’esame si terrà nel giorno dell’appello previo appuntamento via email per fissare l’orario e il luogo.Modulo di laboratorio
Il progetto deve essere svolto singolarmente (non sono ammesse deroghe). La valutazione del progetto avviene in due fasi:- Test di correttezza dell'applicazione client-server (L1): vengono verificate tutte le funzioni richieste. Il giudizio relativo è del tipo ammesso/non ammesso alla discussione e allo scritto.
- Discussione delle soluzione adottate (L2).
Date Appelli d'esame
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
- Collection
- Stream I/O
- Thread
- IP
- Socket TCP (Client)
- Socket TCP (Server)
- URL
- URLConnection
- HTTP
- Server HTTTP
- XML, JSON - parsing
- UDP
Testi di riferimento
- J. F. Kurose, K.W. Ross, Computer Networking, a topdown approach, 6^ edizione, Addison Wesley o l'edizione italiana
- J. F. Kurose, K.W. Ross, Reti di calcolatori e Internet, 6^ edizione, Pearson
- Dario Maggiorini, Introduzione alla Programmazione Client-Server, Pearson, 2009.
- Elliotte Rusty Harold, Java Networking Programming, O'Reilly Media, 2004
- A. S. Tanenbaum and D.J. Wetherall, Computer Networks , Pearson (5^ 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: Reasoning About a Highly Connected World, Cambridge University Press, 2010
Syllabus Teoria
Martedì 29 settembre
- Introduzione a Internet
- Classificazione delle reti in base alle scala
Venerdì 3 ottobre
- Struttura di Internet: gerarchia degli ISP
- Il nucleo della rete: commutazione di circuito e commutazione di pacchetto
- Ritardi nelle reti a commutazione di pacchetto
- Perdite di pacchetti e throughput nelle reti
Venerdì 10 ottobre
- Architettura a livelli e pila dei protocolli
- Incapsulamento
- Standardizzazione
- Esercizi fine cap. 1 del Kurose: P6 e P7
- Materiale aggiuntivo: Andrea Bianco, Claudio Casetti, Paolo Giaccone, "Esercitazioni di reti telematiche", CLUT, Torino, ISBN: 978-88-7992-250-0, esercizi cap. 1
Martedì 14 ottobre
- Web e HTTTP
Venerdì 17 ottobre
- DNS
Martedì 21 ottobre
- Esercizi su ritardi di rete
Martedì 4 novembre
- Esercitazione sui primi due capitoli.
- Del capitolo 2 del Kurose sono state trattate le sezioni: 2.1, 2.2, 2.4, 2.5
Venerdì 7 novembre
- Introduzione al livello di trasporto, multiplexing e demultiplexing, UDP
Martedì 11 novembre
- Principi del trasferimento dati affidabile
Martedì 18 novembre
- TCP: connessione, struttura dei segmenti, timeout, trasferimento dati affidabile
Martedì 21 novembre
- TCP: controllo di flusso e controllo di congestione
Venerdiì 28 novembre
- Esercitazione sul livello di trasporto
Martedì 2 dicembre
- IPv4
Mercoledì 3 dicembre
- Esercizio 39 del libro di Giaccone et al.: soluzione
Venerdì 5 dicembre
- subnetting e route aggregation
Martedì 9 dicembre
- DHACP, NAT, IPv6
Mercoledì 10 dicembre
- Esercizi sul livello di rete
Martedì 16 dicembre
- Algoritmi di instradamento
Mercoledì 17 dicembre
- Esercizi sul livello di rete
Venerdì 19 dicembre
- Protocolli RIP, OSPF, BGP
Venerdì 9 gennaio
- Esercitazione sul livello di rete: soluzioni
Martedì 13 gennaio
- Livello di collegamento: Sezioni 5.1, 5.4.1, 5.4.3
Martedì 20 gennaio
- Livello di collegamento: Sezioni 5.7
- Esercitazione finale
Del capitolo 3 del Kurose sono state trattate le seguenti sezioni: 3.1, 3.2, 3.3, 3.4 (escluse le descrizioni con automi), 3.5, 3.6 (esclusi 3.6.1, 3.6.3) Esercizi: P27, P34, P40
Del capitolo 4 del Kurose sono state trattate le seguenti sezioni: 4.1, 4.2, 4.4, 4.5, 4.6. Esercizi: P10, P11, P12,P13,P16,P25,P27. Subnetting, route aggregation, algoritmo di Dijkstra e algoritmo di Bellman-Ford sono stati trattati utilizzando esempi tratti dal libro di Tanenbaum et al.
Syllabus Laboratorio
Le slide di tutte le lezioni e il codice più aggiornato si possono trovare qui
.- 30/09/2014: Aspetti organizzativi, introduzione ad Eclipse mediante esercizi
- 07/10/2014: Java Collections: Collection, Iterator, Iterable, List
- 14/10/2014: Java Collections: List, Set, PriorityQueue, Map
- 21/10/2014: I/O Stream: java.io, stream di byte, stream di caratteri
- 04/11/2014: Thread: definizione di un thread, callback, costruttore synchronized
- 11/10/2014: Problemi dovuti alla sincronizzazione, Executor, Callable, Future, InetAddress, NetworkInterface
- 18/10/2014: Architettura client-server: Socket, SocketAddress, ServerSocket
- 25/10/2014: URI e URL: URL,URLEncoder, QueryString
- 02/12/2014: URLConnection e HTTP: analisi degli header di richiesta e risposta.
- 09/12/2014: Server HTTP: implementazione di un server HTTP
- 16/12/2014: JSON e XML: json-simple, DOM e SAX parser
- 13/01/2014: UDP: Client e server
Progetto
- Testo del progetto valido per la prima sessione di Febbraio 2014
- Testo del progetto valido per la seconda sessione di Febbraio 2014
Esempi di tema d'esame scritto
Orario
Martedì | 10:30 - 13:30 Aula 208 (via Celoria) |
Martedì | 13:45 - 17:00 Aula 309 (via Celoria) |
Giovedì | 13:45 - 17:00 Aula 309 (via Celoria) |
Venerdì | 9:30 - 12:30 Aula 208 (via Celoria) |
Anni precedenti
Contatti
Sabrina Gaito | ricevimento su appuntamento |
Matteo Zignani | ricevimento su appuntamento |