Reti di calcolatori

Obiettivi

Prerequisiti

Programma del corso

Caratteristiche delle reti di calcolatori
Tipologie di reti e relative tecnologie: reti locali (LAN), reti metropolitane (WAN) e reti geografiche (WAN). Protocolli e standard. Gli organismi di standardizzazione. Lo standard ISO-OSI e la struttura in livelli. I protocolli TCP/IP: indirizzamento di rete (indirizzi IP), socket e porte TCP e UDP.

Il livello applicativo
Modelli client/server e Peer-to-Peer (P2P). Il Domain Name System (DNS): architettura, funzionamento e protocolli. Il servizio di posta elettronica: architettura (Mail Transfer Agents e Mail User Agents); indirizzamento delle caselle di posta; formato dei messaggi (codifica del caratteri, codifica ASCII 7 bit e Unicode, standard MIME).

Il Web e HTTP
Evoluzione delle tecnologie del Web. Architettura del Web e protocollo HTTP. Riferimento a risorse Web: URI, URL e URN. Caratteristiche di HTTP: messaggi di richiesta e risposta; formato delle intestazioni e uso delle intestazioni principali (User-Agent, Location, If-Modified-Since, Content-Type,Cache-Control, Host); supporto al virtual hosting, alle cache e ai proxy. Il linguaggio HTML: struttura dei documenti; uso dell'intestazione; principali tag e relativi attributi; cascading style sheet (CSS); uso dei form e codifica delle informazioni nelle richiesta HTTP (metodi POST e GET). Applicazioni Web lato server: lo standard CGI.

La programmazione lato server e il linguaggio PHP
Caratteristiche principali di PHP: variabili, strutture per il controllo del flusso, array associativi, variabili superglobali e interazione con il server Web e le richieste/risposte HTTP, gestione dei cookie e delle sessioni, interazione con un DBMS.

Programmazione Web lato client
Il linguaggio Javascript. Interazione con gli elementi di un documento HTML. Gestione degli eventi. Principali strutture.

Il livello di trasporto e i socket
Protocollo TCP: caratteristiche e formato dell'intestazione; modalità di apertura e chiusura della connessione; acknowledge e gestione del timeout di ritrasmissione; controllo di flusso e gestione della congestione. Protocollo UDP.

Il livello di rete
Il procotocollo IP: indirizzi e classi di indirizzi; sottoreti e subnet mask; consegna diretta e routing; il protocollo ARP per la consegna diretta; i routers.

Modalità di esame

L'esame prevede il superamento di due prove intermedie e un colloquio orale nel quale è prevista anche la presentazione di un progetto. Per chi non ha sostenuto o non superato una o entrambe le prove intermedie è prevista una prova relativamente alla/e parte/i mancante/i.

Le prove consistono in esercizi di programmazione PHP, javascript e sull'indirizzamento IP.

Il progetto consiste nello sviluppo di una semplice applicazione Web utilizzando PHP ed eventualmente javascript. L'applicazione deve consistere nell'interfaccia ad un database con almeno una funzione di inserimento/modifica dati e una di ricerca, preferibilmente con una funzione di login per gli utenti. Come base di partenza si possono considerare gli esempi fatti a lezione (accesso a DB). Il tipo di applicazione può essere scelto a piacere e svolto anche in gruppo formato un massimo di 2 studenti (ampliando in questo caso il numero di funzionalità implementate).

Prove in itinere 2019/20

Materiale

Il materiale è disponibile nell'area dell'insegnamento sulla piattaforma moodle di ateneo USiena integra a cui è possibile accedere con le proprie credenziali di ateneo.

La lista non più aggiornata del materiale è disponibile a questo link