70226 - PROGRAMMAZIONE DI RETI

Anno Accademico 2018/2019

  • Docente: Giovanni Pau
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Moduli: Giovanni Pau (Modulo 1) Chiara Contoli (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Cesena
  • Corso: Laurea in Ingegneria e scienze informatiche (cod. 8615)

Conoscenze e abilità da conseguire

Al termine del corso, lo studente acquisisce le nozioni essenziali sulle architetture di rete e sulle problematiche di progettazione e implementazione di protocolli di comunicazione.

Contenuti

Il programma dell'insegnamento ha come obiettivo fondamentale quello di presentare i problemi riguardanti la progettazione ed implementazione di applicazioni per le moderne reti di telecomunicazioni in modo generale, al fine di fornire strumenti di analisi e progettazione non strettamente correlati alle attuali tecnologie (che sono potenzialmente soggette a cambiamenti nel tempo). Le varie tematiche vengono quindi pressoché sempre presentate in due fasi, la prima dedicata allo studio del problema in termini generali, la seconda orientata a mostrare come tali soluzioni trovino implementazione nelle soluzioni tecnologiche correnti.

Il programma segue il cosiddetto approccio "top-down", che presenta prima le funzionalità applicative scendendo poi progressivamente verso i livelli più bassi della pila protocollare.

  • Internet e reti di calcolatori: Internet, protocolli, programmi client e server, reti di accesso, mezzi trasmissivi, commutazione di circuito e di pacchetto, ISP e dorsali Internet, ritardi, perdite e throughput, ritardo di accodamento e perdita di pacchetti, ritardo end-to-end, throughput nelle reti di calcolatori, livelli di protocollo e modelli di servizio, architettura a livelli, primi cenni di sicurezza.
  • Livello di applicazione: architetture, servizi di trasporto offerti da Internet, protocolli a livello applicazione (Web e HTTP, FTP, SMTP, POP3, IMAP, DNS), architetture P2P (BitTorrent), utilizzo delle socket (o costrutti affini) in vari linguaggi di programmazione. Sniffing, acquisizione ed utilizzo di tracce per l'analisi ed il debug.
  • Livello di trasporto: servizi, multiplexing e demultiplexing, trasporto senza connessione, protocollo UDP, principi del trasferimento dati affidabile, costruzione di un protocollo di trasferimento dati affidabile, protocolli per il trasferimento dati affidabile con pipeline, Go-Back-N, ripetizione selettiva, trasporto orientato alla connessione, protocollo TCP, cause e costi della congestione, approcci al controllo di congestione, controllo di congestione TCP.
  • Sicurezza delle reti: principi e concetti di base. Funzionamento di base di un firewall di tipo packet filtering, valutazione degli aspetti di sicurezza delle architetture di rete e dei principali protocolli. Alcuni esempi di attacchi.

Testi/Bibliografia

Il materiale didattico è costituito da:

  1. libro di testo adottato;
  2. dispense in formato elettronico messe a disposizione degli studenti;
  3. risorse segnalate durante le lezioni.

Testo adottato:
  • James F. Kurose, Keith W. Ross. Reti di Calcolatori e Internet, un approccio top-down. Pearson. Settima edizione. ISBN-13: 978-8891902542

Testi di consultazione:
  • A. S. Tanenbaum, D. J. Wetherall. "Reti di Calcolatori". Pearson. Quinta edizione.
  • B. Forouzan, F. Mosharraf. "Reti di Calcolatori. Un approccio top-down". McGraw-Hill Companies, 2013. ISBN: 978.8838668197.

Metodi didattici

Questo primo modulo dell'insegnamento si compone esclusivamente di lezioni frontali (40 ore), le lezioni di laboratorio sono demandate al secondo modulo (16 ore).

Modalità di verifica e valutazione dell'apprendimento

L'esame di fine corso mira a valutare il raggiungimento degli obiettivi didattici:

  • conoscere i principali aspetti riguardanti la programmazione di reti;
  • verificare la capacità critica dello studente nell'analisi di problemi e nell'implementazione di soluzioni;
  • valutare la capacità dello studente nel proporre soluzioni concrete alle principali problematiche.

Il voto finale del corso si basa su una prova scritta, che consiste in un insieme di domande a risposta aperta.

Strumenti a supporto della didattica

Il materiale didattico presentato a lezione viene messo a disposizione degli studenti in formato elettronico tramite Internet.

Per ottenere il materiale didattico: https://iol.unibo.it/ e autenticarsi con le credenziali istituzionali.

NOTA: username e password sono riservati agli studenti iscritti al Corso di Laurea.

Link ad altre eventuali informazioni

http://www.cs.unibo.it/gdangelo/reti.html

Orario di ricevimento

Consulta il sito web di Giovanni Pau

Consulta il sito web di Chiara Contoli