Reti di calcolatori
Tecnologie ed Applicazioni Web

Programma del corso (aa 2010/2011 e precedenti)

Nota: Gli argomenti contrassegnati con * non sono trattati dal corso di Tecnologie e Applicazioni Web

Introduzione
Le reti di calcolatori. Reti locali (LAN), metropolitane (MAN) e geografiche (WAN). Internetwork.

Gerarchie di protocolli
Introduzione alle gerarchie di protocolli. Lo stack di protocolli ISO-OSI. Il modello TCP/IP.

Il livello fisico*
Il concetto di banda. Mezzi di trasmissione: doppino,cavo coassiale, fibra ottica, radio. Il sistema telefonico. Richiami sulle modulazioni (PAM, FSK,PSK,QAM). Principi di funzionamento di modem. I modem V.90 (56kbps). Traffico sulle dorsali: le portanti T1, T2, T3. Il concetto di commutazione di circuito e di pacchetto. Cenni su ISDN e ATM.

Il livello data link*
Funzioni del livello data link. Tecniche per il framing. Codifiche a rilevazione e correzione di errore: codifica con parità, codice di Hamming, codifica a blocco, codici CRC. Il polinomio generatore. Formato del frame data link. Protocolli data link: ack, stop-and-wait, ritramissione con timeout, sliding window, ritrasmissione selettiva, ack negativo. Il PPP (Point-to-Point Protocol).

Il livello MAC*
Reti broadcast. Protocollo Aloha. CSMA/CD. Codifica Manchester. IEEE 802. Ethernet: cablaggio (10Base5, 10Base2, 10BaseT), i doppini e connettori RJ45. Fast ethernet. Formato dei frame IEEE 802.3. Indirizzamento ethernet. Exponential backoff. Cenni sulle prestazioni. Bridge e switch: caratteristiche, modo di collegamento, topologie di reti LAN IEEE 802.3. IEEE 802.5 Token ring: modalità di funzionamento.

Il livello di rete
Internetworking. Circuiti virtuali e datagrammi. Protocollo Internet (IP). Indirizzamento IP: classi di indirizzi, indirizzi speciali (broadcast, loopback,network). Cenni su IPv6. Address Resolution Protocol (ARP). Cenni su DHCP. Routers e indirizzamento: tabelle di routing, generazione delle tabelle. Routing basato sui vettori di distanza e protocollo RIP. Routing basato sullo stato dei canali e protocollo OSPF. Cenni sul protocollo BGP.

Il livello di trasporto
Caratteristiche del servizio di trasporto. Protocolli TCP e UDP. Il TCP/IP: il concetto di porta TCP, i socket, i segmenti TCP, protocolli di apertura e chiusura di una connessione TCP, protocollo di trasmissione (piggybacking, ack ritardati, algoritmo di Nagle, controllo del flusso con annuncio della finestra di trasmissione, calcolo del timeout ottimale, cenni sul controllo di congestione). Il protocollo UDP: header UDP. Le API per l'uso dei socket in C e Java.

Il livello applicazioni
I principali programmi applicativi. Il Domain Name System (DNS): lo spazio dei nomi, le zone e i name servers, i messaggi DNS. La posta elettronica: Message Transfer Agents (MTA), Relay, formato dei messaggi di email, codifica MIME, Simple Mail Transfer Protocol (SMTP).

Il Web
Web servers. HyperText Transfer Protocol (HTTP). Formato delle richieste e risposte HTTP. I metodi GET, POST e HEAD. Proxy HTTP. Multi-homed IP. L'Uniform Resource Locator (URL). Cenni sulla struttura del linguaggio HTML (HyperText Markup Language). I form in HTML: invio dei dati con i metodi GET e POST. Definizione di pagina web statica, dinamica e attiva. L'architettura CGI (Common Gateway Interface). Esempio di CGI in C e PHP.

 

Configurazione della rete in Windows e Linux*
Programmi per la gestione della rete in Unix/Linux: ifconfig, arp, route, netstat, ping, traceroute, tcpdump, nslookup. I file di configurazione della rete in Unix/Linux: inetd.conf, services, hosts, resolv.conf. Il pannello di controllo rete in Windows.

Il server web Apache
Cenni su uso e configurazione

Il linguaggio PHP
Introduzione alla programmazione di pagine Web dinamiche. Variabili e tipi primitivi. Array e array associativi. Operatori. Controllo di flusso e cicli (scansione di array con foreach). Variabili globali di sistema. Uso del PHP per programmare applicazioni CGI: accesso alle variabili di ambiente. I cookie e loro uso in PHP. Cenni sull'accesso a database da PHP.

Lo standard Wi-Fi IEEE 802.11*
Caratteristiche fisiche. Archiettura e livelli. Celle, Access points e wireless terminals. Protocollo CSMA/CA. Frames. Registrazione in una cella e roaming. Sicurezza e power saving.

 

Complementi per il Vecchio Ordinamento

La PVM
Introduzione al calcolo distribuito. Heterogeneous network computing. Caratteristiche della PVM. Il daemon pvmd. Le librerie PVM. I task PVM. Il message passing. Configurazione della PVM. La console PVM e il front-end grafico xpvm. Modelli di programmazione distribuita. Modello master-slave. Cenni sulle prestazioni. La libreria libgpvm e l'uso di gruppi dinamici.

Web services
Il protocollo SOAP. Apache SOAP. UDDI e WSDL.

CORBA
Lo standard CORBA per la scrittura di applicazioni distribuite. L'architettura OMA. L'ORB. L'IOR. Il POA. Sviluppo di un'applicazione CORBA. Il linguaggio IDL. CORBA lato client e lato server. Il naming service. L'event service.

Motori di ricerca su Web
Struttura di un motore di ricerca. Crawlers. Copertura dei motori di ricerca. Freschezza. Focus crawling.

Testi

Reti
  1. Andrew S. Tanenbaum, Reti di Computer, Utet Libreria (consigliato)
  2. Richard W. Stevens, TCP/IP illustrated Vol. 1: The protocols, Addison-Wesley (consultazione)