Laurea Triennale in Comunicazione Digitale

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
Testi di approfondimento
  • 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
Del Kurose si è trattato tutto il capitolo 1 tranne i paragrafi 1.2.1, 1.2.2, 1.4.4 (solo cenni), 1.6, 1.7.
Esercizi sui ritardi nelle reti a commutazione di pacchetto
  • 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

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

Martedì 13 gennaio

  • Livello di collegamento: Sezioni 5.1, 5.4.1, 5.4.3

Martedì 20 gennaio

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
Potete inviare una e-mail anche a
qui