LABORATORIO di PROGRAMMAZIONE di RETE

a.a. 2007-2008, C. di Studio in Informatica, Univ. di Bologna
Docente: Vittorio Ghini

Scopo del Corso
Applicare le conoscenze apprese nel corso di "Reti di Calcolatori",
Apprendere metodologie per progettare/implementare applicazioni distribuite,
Utilizzare l'Interfaccia dei Socket TCP/IP.

Modalita' d'esame
L'esame consiste di un progetto da svolgere:
1) design e implementazione di un progetto,
secondo specifiche qui di seguito dettagliate,
con presentazione e discussione dello stesso. max 30 punti e lode.
La data della discussione verra' concordata via e-mail.
Presentarsi alla discussione con una copia cartacea della relazione,
una stampa del codice che implementa il progetto.
La demo del progetto verra' effettuata nei PC dei lab studenti,
quindi predisporre i files del progetto nella propria home.
Importante (1):
Dopo la meta' di febbraio 2009 non potra' piu' essere effettuata la consegna.
Importante (2):
Poiche' lo scopo della prova d'esame e' valutare la capacita' di realizzare un'applicazione di rete, ed in particolare analizzarne i requisiti, progettarla ed implementarla, il progetto potra' essere consegnato una sola volta.
Importante (3):
Il voto finale del Corso Integrato di "Reti di Calcolatori e Laboratorio di Programmazione di Rete" sara' calcolato come media aritmetica dei voti riportati nei due corsi. Entrambi i voti dovranno pero' essere almeno sufficienti.

Progetto di Laboratorio di Programmazione di Rete 2007/08
IN COSTRUZIONE !!!!
SpecificheProgetto.htm
test_prog2007-08.tar.gz ........ Files per i test

Progetto di Laboratorio di Programmazione di Rete 2006/07
SpecificheProgetto.htm
test_prog2006-07.tar.gz ........ Files per i test


Appunti delle Lezioni

          Linguaggio ANSI C (da un precedente corso)
......... c.html ....................................... Richiami di Linguaggio ANSI C.
          Il problema dell'allineamento dei dati nelle strutture
......... Makefile
......... sizeof.c
......... packed.c

          Thread Posix
......... pthread_03.pdf ................................ Introduzione ai Thread Posix
......... banale_moltoerrato.c .................... esempio sbagliato di passaggio di parametri a pthread
......... banale_errato.c ....................... altro esempio sbagliato di passaggio di parametri a pthread
......... banale_quasigiusto.c ................... esempio corretto di passaggio di parametri a pthread
......... joinable.c ....................................... esempio di restituzione di risultato da un pthread
......... detached.c ....................................... esempio di non restituzione di risultato da pthread
......... mutex.c ....................................... esempio di protezione in mutua esclusione tra pthread
......... CondVarBroadcast.c ....................... esempio di Sincronizzazione e Mutua Esclusione tra pthread
......... CondVarSignal.c ..................... altro esempio di Sincronizzazione e Mutua Esclusione tra pthread

          Richiami di "Reti di Calcolatori"
......... LPR001.pdf ............................ La strutturazione a Livelli delle Architetture di Protocolli
......... LPR002.pdf ............................ Solo accennato: Introduzione allo stack TCP/IP : cenni sul Livello Data Link
......... LPR003.pdf ............................ Solo accennato: Il livello Network dello stack TCP/IP : cenni sul Protocollo IP
......... LPR003_53-54.pdf ................ Solo accennato: Le Opzioni dei Datagram IP
......... LPR003.framm.pdf ................. Solo accennato: Un esempio di frammentazione dei datagram IP
......... LPR004.pdf ............................ Solo Ordine dey byte in rete: Un accenno al meccanismo di consegna dei Datagram IP
Modificato, aggiunte pag 81-85
......... LPR005.pdf ............................ Il livello Transport dello stack TCP/IP : cenni sui Protocolli UDP e TCP
......... LPR005_87-90.pdf ................ Solo accennato: Cenni su Instaurazione e chiusura di Connessioni TCP

          I Fondamenti dei Socket TCP/IP
......... LPR006a.pdf ........................... I Socket per TCP: Fondamenti.
......... LPR006b.pdf ........................... I Socket per TCP: I/O
......... UDP1.html .............................. Primo esempio di trasmissione datagram UDP
......... UDP1win.html ......................... Primo esempio di trasmissione datagram UDP (socket per Windows)
......... TCP1.html ............................... Primo esempio di trasmissione con stream TCP
......... TCP1win.html .......................... Primo esempio di trasmissione con stream TCP (socket per Windows)

          Server MultiProcesso e I/O Multiplexing
......... LPR007.pdf ............................ Servers Multiprocesso e I/O Multiplexing

          Opzioni per i Socket
......... LPR008.pdf ................................ Opzioni per i Socket: Socket Non Bloccanti, Multicast, ecc.. .
......... checkopts.c ............................. Esempio di Lettura delle Opzioni dei Socket
......... connect_noblock.html .............. Esempio di connect non bloccante
......... UDP_mcast.html ..................... Esempio di trasmissione via Multicast di datagram UDP
......... TCP_OOB.html ...................... Esempio di trasmissione Dati Fuori Banda (Out Of Band) in stream TCP

          DNS
......... querytodns.pdf ........................ Esempio di interrogazione al DNS
......... dnsquery.c .............................. Sorgente C di interrogazione al DNS

          Un accenno alle API per la gestione di shared memory e pthread
......... shared_memory.pdf ............. API per shared memory
......... pthread.pdf .......................... API per pthread
......... joinable.c ............................. un primo esempio di uso dei thread
......... detached.c ........................... un secondo esempio di uso dei thread
......... cancel.c ............................... un terzo esempio di uso dei thread
......... Makefile .............................. il Makefile per compilare i due esempi

          Comunicazioni tra processi e pthread con socket Unix: socketpair AF_UNIX
......... socketpairfork.c .................. comunicazione tra processi padre e figlio con socket unix
......... socketpairpthread.c ............. comunicazione tra pthread con socket unix

          Link per ulteriori approfondimenti su system call C e Posix Thread
......... CE.html ............................... system call in C: corso sist. op. Prof. Davoli e Montresor
......... pthread: basi ........................ pthread: basi
......... pthread: attributi ................... pthread: attributi
......... pthread: sincronizzazione ...... pthread: sincronizzazione
......... pthread: esempi ................... pthread: esempi
......... pthread.html ........................ Posix thread programming


Pagina in fase di completamento!
N.B. Segnalazioni di eventuali errori sono gradite e bene accette
~