elenco     
        corso     

Reti di calcolatori e laboratorio A

Codice: 274AACrediti: 12Semestre: 1-2Sigla: RCL 
 
Settore disciplinare: INF/01 - Informatica

Obiettivi di apprendimento

 

Descrizione

 
     

Modalità di esame

http://www.di.unipi.it/~brogi/AttivitaDidattica/Informatica/Reti/


Ulteriore pagina web del corso: http://www.di.unipi.it/~brogi/AttivitaDidattica/Informatica/Reti/



Moduli:

Reti di calcolatori A

Docente

Antonio Brogi   brogi@di.unipi.it  Home Page di Antonio Brogi  Stanza 340  Tel. 0502212790

Prerequisiti

"Architetture degli Elaboratori" e "Sistemi Operativi e Laboratorio".

Obiettivi di apprendimento

Introdurre gi aspetti fondamentali delle reti di calcolatori illustrando applicazioni e protocolli relativi al modello TCP/IP.

Descrizione

Introduzione alle reti, applicazioni di rete, protocolli (dal livello trasporto al livello link), cenni alla sicurezza nelle reti e ai sistemi P2P.

Programma

Il programma dettagliato del corso (con riferimenti al testo adottato) e' disponibile alla pagina: http://www.di.unipi.it/~brogi/AttivitaDidattica/Informatica/Reti/

     


Ulteriore pagina web del corso: http://www.di.unipi.it/~brogi/AttivitaDidattica/Informatica/Reti/


Laboratorio di programmazione di reti A

Docente

Augusto Ciuffoletti   augusto@di.unipi.it  Stanza 329a  Tel. 0502213125

Prerequisiti

Conoscenza dei componenti di rete TCP/IP/ETH (hub, switch, router ecc.). Conoscenza del protocollo IP e dello header IP: flag, frammentazione, indirizzamento ecc. Conoscenza del protocollo TCP e dello header dei pacchetti: porte, flag, segmenti, 3-way handshake, ecc. Elementi di base di Java, con particolare riferimento ai meccanismi di astrazione object oriented.

Obiettivi di apprendimento

Lo studio dei protocolli di comunicazione e dei componenti che costituiscono Internet non è completo se non si osserva in pratica l'interazione delle parti: Internet non è un protocollo nato a tavolino, ma è cresciuto sotto la spinta di esigenze concrete, anche contrastanti con lo spirito iniziale con cui fu progettato. Il Laboratorio si pone l'obiettivo di mettere gli studenti in condizione di sperimentare ed osservare le complesse interazioni tra i diversi componenti, ed intravvedere l'importanza di consuetudini e "good practices" che semplificano e rendono trattabile la rete globale. Tra queste si sottolinea l'importanza della stratificazione delle funzionalità, anche attraverso la redazione di semplici programmi in Java. Di questo linguaggio lo studente apprezzerà l'approccio object-oriented, che rende naturale la stratificazione delle funzionalità.
Conoscenze. Le conoscenze acquisite sono sopratutto degli "how-to": sono elencate tra le "capacità".
Capacità. Al termine del corso lo studente dovrebbe essere

Descrizione

Il corso si sviluppa nel secondo semestre, e si intende essere il completamento dello studio teorico dei protocolli di comunicazione illustrati nel corso del 1o modulo.
Il corso è organizzato in attività settimanali: all'inizio di ogni settimana viene presentato un tema, corredato dall'indicazione di una attività pratica da portare a termine nel termine indicativo della stessa settimana.
L'attività pratica viene svolta utilizzando una rete virtuale moderatamente complessa (due hub, uno switch, 2 router e tre nodi) implementata in modo assolutamente realistico con User Mode Linux sui computer delle aule del polo Fibonacci, oppure sul proprio computer. In quest'ultimo caso l'installazione della rete virtuale si basa su Ubuntu Linux, ed è semplice ed affidabile. Funziona in modo accettabile anche su portatili datati e netbook. La sua installazione viene illustrata nella prima lezione del corso di laboratorio.
Ogni due settimane (con possibili variazioni in relazione al calendario) viene assegnato un esercizio, la cui soluzione va consegnata entro una scadenza di due settimane. La soluzione dell'esercizio viene esaminata dal docente, che può chiederne la riconsegna in caso di errori. La consegna fuori scadenza viene penalizzata, e un ritardo di oltre due settimane in una consegna compromette l'esito finale del corso. Alcuni esercizi possono essere facoltativi, e servire a compensare penalità o come bonus.
Il numero di bonus e penalità accumulate determina la valutazione del corso.
Gli studenti che, per scelta o necessità, decidano di non frequentare il corso, trovano tutto il materiale didattico necessario sul sito riservato agli studenti. Oltre alle trasparenze utilizzate a lezione, anche il codice della rete virtuale e le trasparenze commentate in audio.

English Description

It is a "hands-on" course, designed to give a practical grasp to the concepts learned during the previous module.
We use a virtual network (based on UMLinux) to carry out our experiments in an environment that is hardly distinguishable from a real one. The virtual network is either available at the University labs, or can be installed over Ubuntu/Linux on your own laptop.
The course begins with the configuration of the virtual network (addresses, routing etc.), and proceeds using elementary network applications (we limit to the DAYTIME and ECHO, the "hello world" of networking) to explain and put in practice complex Java networking abstractions like threads, executors, asynchronous servers.
Students have to submit the solution of problems delivered by the teacher every two weeks. The teacher may require a resubmission in case the solution is not satisfactory. Complying solutions are due within a two weeks deadline: non-conformance incurs penalties, that may compromise the final result. Before the end of June a score is assigned to each student that successfully completes the laboratory.

Programma

  1. Presentazione del laboratorio virtuale labreti.
  2. Istruzioni per l'installazione del laboratorio virtuale.
  3. I componenti e lo strato di rete.
  4. Configurazione delle interfacce nel laboratorio virtuale.
  5. Routing statico e dinamico (RIP) e configurazione del routing nella rete virtuale.
  6. Il servizio di DNS.
  7. Uso di Eclipse nella programmazione di applicazioni di rete in Java.
  8. Realizzazione di server e client TCP di DAYTIME e deploying dei jar nella rete virtuale.
  9. L'uso di tcpdump nel tracciamento dell'esecuzione di applicazioni di rete.
  10. Realizzazione di server e client TCP ECHO.
  11. Realizzazione di server e client UDP ECHO.
  12. Modularizzazione e stratificazione nelle applicazioni di rete: uso di Eclipse Refactoring per la modularizzazione di TCP ECHO.
  13. Applicazione dei thread al server ECHO (Java Threads).
  14. Introduzione all'astrazione Executors ed applicazione a TCP ECHO.
  15. Server asincroni: la libreria Netty per la costruzione di server asincroni complessi.
  16. Realizzazione di server e client TCP ECHO con la libreria Netty.
  17. Seminario: l'astrazione "Web Service" e SOAP
Ore lezione: 10 Ore laboratorio: 32Ore seminari: 2 


Ulteriore pagina web del corso: https://sites.google.com/site/laboratoriodireti/



home


email