Il corso di Reti di Calcolatori ed Ingegneria del Web (10 CFU) è suddiviso in due moduli:

Il primo modulo, che si terrà nel primo emisemestre del secondo semestre tratterà argomenti di Reti di Calcolatori;

Il secondo modulo, che si terrà nel secondo emisemestre del secondo semestre tratterà argomenti di Ingegneria del Web.

 

 

Obiettivi del Corso

Primo Modulo

Descrivere le metodologie e i principi architetturali per la progettazione di Reti di Calcolatori, con particolare enfasi ai protocolli del livello applicativo, di trasporto e di rete.

Secondo Modulo

Descrivere dal punto architetturale e funzionale i sistemi Web. Fornire le conoscenze per la realizzazione di applicazioni di rete

 

 

Programma Preliminare

Primo Modulo

 

Introduzione alle Reti di Calcolatori. La sezione di accesso della rete. La sezione interna della rete. Reti di accesso e mezzi trasmissivi. Ritardi e perdite nelle reti a commutazione di pacchetto. Strati protocollari e loro modelli di servizio. La rete dorsale di Internet. Breve storia.

Principi dei protocolli dello strato di applicazione. Il World Wide Web: HTTP. Trasferimento di file: FTP. Posta Elettronica in Internet. DNS: il servizio di directory di Internet.

Principi dei protocolli dello strato di trasporto. Multiplexing e demultiplexing delle applicazioni. Protocollo UDP. Trasferimento affidabile dei dati: principi. Controllo della congestione: principi. Protocollo TCP.

Modelli di servizio della rete. Principi di instradamento. Instradamento gerarchico. Protocollo IP. Instradamento in Internet. Organizzazione interna dei router.

Lo Strato di collegamento: introduzione e servizi. Tecniche di ricerca e correzione di errori. Protocolli di accesso multiplo e LAN. Indirizzi LAN ed ARP. Rete Ethernet. Hub, Bridge e Switch. LAN 802.11.

 

Secondo Modulo

 

Programmazione di applicazioni di rete. Paradigmi e concetto di socket. Progettazione di applicazioni connection-oriented e connectionless. Multiplexing dell'I/O. Esempi di Applicazioni.

Componenti software del Web. Client Web. Server Web. Proxy Web.

Protocollo HTTP/1.1. Caratteristiche generali ed evoluzione del protocollo. Metodi, header e codici di risposta. Meccanismi per l'ottimizzazione della banda di rete. Gestione della connessione: connessioni persistenti e pipelining.

Architettura dei server Web. Componenti dei server Web. Tipologie di architetture software. Gestione di risorse statiche. Il server Web Apache.

Tecnologie per la generazione di risorse dinamiche. Livelli logici di un servizio Web-based. Architetture multi-tier. Cenni sulle principali tecnologie per middle tier e loro evoluzione: CGI, FastCGI, server API, Java servlet, PHP, JSP. Apache Tomcat.

 


Testi Consigliati


 

 

 

 

 

 

 

 

 

 

 

 

 

 

Primo Modulo

 

J. Kurose & K. Ross, "Reti di Calcolatori e Internet: un Approccio Top-Down", 4° edizione, Pearson Addison-Wesley

 

Secondo Modulo

 

Programmazione Socket

 

Guida alla programmazione in Linux (Gapil) - Parte II Programmazione di rete (pdf)

Per approfondimenti: W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, "Unix Network Programming, Volume 1: The Sockets Networking API, 3rd Edition", Addison-Wesley Professional, 2003. ISBN: 0131411551. Cap 1-9.

Introduzione al Web ed alle Web Applications

 

L. Shklar, R. Rosen "Web Application Architecture, 2nd Edition", John Wiley & Sons, 2009. Cap 1-7, 9.

 

Per approndimenti: B. Krisnamurthy, J. Rexford, "Web Protocols and Practice", Addison-Wesley, 2001. Cap 1-8.

 

Servlet

 

Programmazione Servlet: M. Hall "Core Servlet and Java Server Page" 2nd Edition (pdf)

      

 

Riferimenti Bibliografici  

 

 

 

 

Primo Modulo: Reti di Calcolatori

 

 

 

 

 

 

J. Kurose & K. Ross, "Reti di Calcolatori e Internet: un Approccio Top-Down"

 

 

 

Capitolo 1: da 1.1 a 1.5, 1.7

 

 

 

Capitolo 2: da 2.1 a 2.6

 

 

 

Capitolo 3: tutto (escluse le sottosezioni alle pagine 256-257)

 

 

 

Capitolo 4: da 4.1 a 4.6 (escluse le sezioni 4.4.3, 4.4.4 e 4.4.5)

 

 

 

Capitolo 5: da 5.1 a 5.6 (esclusa la sezione 5.2.3)

 

 

 

 

 

 

 

 

 

Articoli di D.Clark e V. Jacobson

 

 

 

 

 

 

 

 

 

 

 

 

 

Orario Lezioni


 

 

  

 

 

 

 

Le lezioni di Ingegneria del Web inizieranno lunedì 11 maggio

 

 

 

 

 

 

 

Lunedì

9.30-11.00 Aula 4 NE

 

 

Mercoledì

9.30-11.00 Aula 4 NE

 

 

Venerdì

14.00-15.30 Aula 4 NE

 

 

 

 

 

 

 

 

 

Materiale Didattico

 

 

 

 

 

Articoli

 

 

 

 

 

 

D. Clark, "The Design Philosophy of the DARPA Internet Protocols"

 

 

V. Jacobson, "Congestion Avoidance and Control"

 

 

 

 

 

 

Esempi di Programmazione di Applicazioni di Rete (tratti da "Network Programming Vol. 1")

 

 

 

 

 

 

Daytime TCP iterativo: daytime_clientTCP.c , daytimeserverTCP.c

 

 

Daytime UDP: daytime_clientUDP.c, daytimeserverUDP.c

 

 

Numero di contatti TCP iterativo (tratto da D.E. Comer, "Computer Networks and Internets"): count_clientTCP.c, count_serverTCP.c

 

 

Echo ricorsivo: echo.tgz

 

 

Echo con select: select.tgz

 

 

Server con prefork: prefork.tgz

 

 

 

 

 

 

Servlet viste a lezione: advjhtp1.zip

 

 

 

 

Lucidi del Corso

 

 

 

 

 

Organizzazione del Corso

 

 

Introduzione

 

 

Strato di Applicazione

 

 

Strato di Trasporto

 

 

Strato di Rete

 

 

Strato di Collegamento e LAN

 

 

 

 

 

 

Programmazione Socket 1° parte

 

 

Programmazione Socket 2° parte

 

 

Introduzione al Web

 

 

Server Apache

 

 

Web Application

 

 

Protocollo HTTP

 

 

Introduzione HTML

 

 

Servlet

 

 

Servlet 2

 

 

Introduzione JSP

 

 

 

Interazione HTTP/TCP

 

 

 

 

Modalità e Prove d'esame

 

 

 

 

 

 

Modalità d'esame

 

 

 

 

 

 

 

Studenti che devono sostenere l'esame di Reti di Calcolatori (5 CFU):

 

 

 

Prova scritta su Reti di Calcolatori

 

 

 

 

 

 

 

Studenti che devono sostenere l'esame di Ing. del Web (5 CFU):

 

 

 

Progetto+Prova Orale (da sostenere contestualmente alla discussione del progetto)

 

 

 

 

 

 

 

Studenti che devono sostenere l'esame di Reti di Calcolatori e Ing. del Web (10 CFU):

 

 

 

Prova scritta su Reti di Calcolatori + Progetto+Prova Orale (da sostenere contestualmente alla discussione del progetto)

 

 

 

 

 

 

 

 

Prove d'esame

 

 

 

 

 

 

 

 

 

Aprile: una prova su Reti di Calcolatori

Luglio: due prove di esame su Reti e/o Ing. del Web. Non ci sono vincoli sulla partecipazione.

Settembre: due prove di esame su Reti e/o Ing. del Web. Non ci sono vincoli sulla partecipazione

Febbraio: una prova di esame su Reti e/o Ing. del Web.

N.B. Al fine del superamento dell'esame, le prove previste (2 scritti + progetto) possono essere sostenute anche in appelli differenti

 

 

 

 

 

 

 

 

Progetti

 

 

 

Per poter sostenere nell'A.A. 2008/09 l'esame da 10 crediti di Reti di Calcolatori ed Ingegneria del Web oppure l'esame da 5 crediti di Ingegneria del Web.

Per poter sostenere l'esame nell'A.A. 2008/09, è necessario prenotarsi per il progetto, comunicando al docente le seguenti informazioni:

  • nominativi ed indirizzi di e-mail dei componenti del gruppo;
  • progetto scelto.

Nel caso in cui il numero di prenotazioni per il progetto scelto abbia raggiunto la soglia massima prevista di 8, sarà necessario effettuare una nuova scelta tra i progetti ancora disponibili.
Eventuali modifiche relative al gruppo devono essere tempestivamente comunicate al docente e concordate con il docente.
Il progetto è valido solo per l’A.A. 2008/09: i progetti scadranno inderogabilmente con la sessione d’esame di febbaio 2010.

La consegna del progetto deve avvenire almeno dieci giorni prima della data in cui si intende sostenere la discussione del progetto.
Ciascuno studente esporrà una presentazione individuale tramite lucidi di una parte del progetto (max 10 minuti per studente).

Progetto A: Trasferimento file su UDP (4 prenotazioni disponibili)
Progetto B: Chat Room (1 prenotazione disponibile)
Progetto C: Sistema P2P per la condivisione di file tramite directory service (1 prenotazione disponibile)

 

 

 

 

 

 

 

  

 

Esami

 

 

Discussione Progetti/Orale

 

 

 

E' necessario prenotarsi sui fogli disponibili presso l'atrio dell'edificio di Ingegneria dell'Informazione, indicando la data e l'ora (tra quelle previste).

 

 

Appello di Febbraio: Lunedì 22 febbraio ore 10.00. Aula 4 Nuovi Edifici

 

 

 

E' necessario prenotarsi sui fogli disponibili presso l'atrio dell'edificio di Ingegneria dell'Informazione.

 

 

Secondo Appello di Settembre: Giovedì 17 settembre ore 14.30. Aule 1-2 PP2

 

 

 

Traccia

 

 

 

Risultati

 

 

Primo Appello di Settembre: Martedì 8 settembre ore 14.30. Aule T6-T7 Sogene.

 

 

 

Traccia

 

 

 

Risultati

 

 

Secondo Appello di Luglio: Venerdì 17 luglio ore 9.30. Aule T5-T6 Sogene

 



Traccia


 

 

Risultati

 

 

Primo Appello di Luglio: Venerdì 3 luglio ore 15.30. Aule T5-T6 Sogene

 

 

 

Traccia

 

 

 

Risultati

 

 

Prova scritta su Reti di Calcolatori: Venerdì 8 maggio ore 14. Aula 1 Nuovi Edifici

 

 

 

Traccia

 

 

 

Risultati

 

 

 

 

 

 

 

Raccolta Esami Anni Precedenti