1
Applicazioni di Rete – M. Ribaudo - DISI
Applicazioni di retea.a. 2003-2004
[terzo anno nuovo ordinamento]
Marina Ribaudo ([email protected])ricevimento MER 14:00-16:00, ufficio num. 231
Applicazioni di Rete – M. Ribaudo - DISI
Finalità del corso
Vedremo alcuniargomenti legati allarete Internet
Lo scopo del corso èquello di introdurre iprotocolli di rete e difornire strumenti perla programmazione peril web
Applicazioni di Rete – M. Ribaudo - DISI
Prerequisiti
Conoscenza del linguaggio HTML
Basi di dati: il modello relazionale eil linguaggio SQL
Programmazione
[Sicurezza]
2
Applicazioni di Rete – M. Ribaudo - DISI
Argomenti
Protocolli di comunicazione
Cenni sulla suite TCP/IP
Il livello applicativo: HTTP, SMTP, DNS, …
Applicazioni di Rete – M. Ribaudo - DISI
Argomenti
Programmazione per il web
Lato client:
1. fogli di stile2. JavaScript
Applicazioni di Rete – M. Ribaudo - DISI
Argomenti
Programmazione per il web
Lato server: generazione dipagine dinamiche medianteinterazione con basi didati remote
… cookies,sessioni… multicanalità (XML, XSLT)
3
Applicazioni di Rete – M. Ribaudo - DISI
Modalità di esame
Scritto (oppure orale) e progetto dilaboratorio
Applicazioni di Rete – M. Ribaudo - DISI
Informazioni
Sul sito del corsohttp://www.disi.unige.it/person/RibaudoM/didattica/applrete/aa0304
Sul forumhttp://forum.educ.disi.unige.it
Applicazioni di Rete – M. Ribaudo - DISI
Internet
“The internet interconnects millionsof computers, providing a globalcommunication, storage, andcomputation infrastructure.
Moreover, the Internet is currentlybeing integrated with mobile andwireless technology, ushering in animpressive array of new applications”
4
Applicazioni di Rete – M. Ribaudo - DISI
� Milioni didispositiviinterconnessi
� … mediante canalidi comunicazione
� … e router,dispositivi cheinoltranopacchetti …
local ISP
companynetwork
regional ISP
routerworkstation
servermobile
Cos’è Internet?
Applicazioni di Rete – M. Ribaudo - DISI
local ISP
companynetwork
regional ISP
routerworkstation
servermobile
Cos’è Internet?
� “La rete delle reti”� usata sia nella reteInternet pubblica chenelle Intranetprivate
� Standard di Internet� IETF: InternetEngineering TaskForce
� RFC: Request forComments
Applicazioni di Rete – M. Ribaudo - DISI
� Infrastruttura dicomunicazione per leapplicazionidistribuite� web, e-mail, giochi online, e-commerce,database, file sharing
� Servizi dicomunicazione per leapplicazioni� connection-oriented
� connectionless
Cos’è Internet?
5
Applicazioni di Rete – M. Ribaudo - DISI
Cos’è un protocollo
“A protocol defines the format andthe order of messages exchangedbetween two or more communicatingentities, as well as the actionstaken on the transmission and/orreceipt of a message or other event”
Applicazioni di Rete – M. Ribaudo - DISI
Cos’è un protocollo?
Protocollo “umano”� “Buongiorno,posso farle unadomanda?”
� “Mi dica”� “Ha l’ora?”
… inviamo deimessaggi
… in rispostavengono eseguitedelle specificheazioni
Protocollo “di rete”� Comunicazione traelaboratori che siscambiano messaggi
� Tutte le attività diInternet sonogovernate daprotocolli
Applicazioni di Rete – M. Ribaudo - DISI
Cos’è un protocollo?
Hi
Hi
Got thetime?2:00
TCP connection req
TCP connectionresponse
Get http://www.awl.com/kurose-ross
<file>
time
6
Applicazioni di Rete – M. Ribaudo - DISI
La struttura della rete
� Network edge� definisce i “confini” della rete
� Network core� routers
� Access network� link di comunicazione
Applicazioni di Rete – M. Ribaudo - DISI
� end-system (host o nodi)
�sono elaboratori suiquali girano leapplicazioni (webserver, web browser, e-mail server, ftp client…)
Network edge
Applicazioni di Rete – M. Ribaudo - DISI
Network edge
� client/server� client: programma che gira suun end-system, inoltra dellerichieste, e riceve deiservizi da un altro end-system
� server: programma che risiedesu un end-system always-on efornisce dei servizi
� peer-to-peer� ogni elaboratore è sia clientche server (Gnutella, KaZaA,…)
7
Applicazioni di Rete – M. Ribaudo - DISI
orientato alla connessione (connection-oriented)
� Goal: si devono trasferire dei datitra end-system diversi
� Handshaking
� TCP - Transmission Control Protocol
Network edge: servizio
Applicazioni di Rete – M. Ribaudo - DISI
� Reliable� i dati trasmessi vengono ricevuti nellostesso ordine di invio
� in caso di perdita di dati viene richiestauna ritrasmissione
� Flow control� si garantisce che il destinatario nonriceva più dati di quelli che è in grado diricevere
� Congestion control� il mittente rallenta l’invio dei dati incaso di congestione della rete
TCP [RFC 793]
Applicazioni di Rete – M. Ribaudo - DISI
non orientato alla connessione (connectionless)
� Goal: si devono trasferire dei datitra end-system diversi
� Non c’è handshaking�i dati vengono inviati più in fretta ma nonci sono garanzie sulla ricezione
� UDP – User Datagram Protocol [RFC 768]
Network edge: servizio
8
Applicazioni di Rete – M. Ribaudo - DISI
� Protocolli che usano TCP�HTTP (web)
�FTP (file transfer)
�Telnet (remote login)
�SMTP (e-mail)
� Applicazioni che usano UDP�Streaming media
�Teleconferencing
�Internet telephony
Network edge
Applicazioni di Rete – M. Ribaudo - DISI
Network core
� Come vengono trasferitii dati attraverso larete?
�circuit switching(es. rete telefonica)
�packet-switchingi dati vengono inviatia pezzi (chunk)
Collezione di router interconnessi
Applicazioni di Rete – M. Ribaudo - DISI
Protocolli: organizzazione a livelli
� Le reti sono complesse
�host
�router
�link diversi tra loro
�applicazioni
�protocolli
�hardware, software
� Come si può organizzareun’architettura di questo tipo?
9
Applicazioni di Rete – M. Ribaudo - DISI
Organizzazione di un viaggio aereo
biglietto (acquisto)
bagaglio (check in)
gate (imbarco)
decollo
routing
biglietto (reclamo)
bagaglio (recupero)
gate (sbarco)
atterraggio
routing
routing
Applicazioni di Rete – M. Ribaudo - DISI
Visione a livelli
biglietto (acquisto)
bagaglio (check in)
gate (imbarco)
decollo
routing
biglietto (reclamo)
bagaglio (recupero)
gate (sbarco)
atterraggio
routing
routing
Organizzazione di un viaggio aereo
Applicazioni di Rete – M. Ribaudo - DISI
Servizi
Trasferimento di persone e cose
Gestione dei bagagli (baggage check in / claim)
Gestione dei passeggeri (departure / arrival gate)
Gestione dell’aereo (take off / landing)
Gestione del percorso (routing)
Organizzazione di un viaggio aereo
10
Applicazioni di Rete – M. Ribaudo - DISI
biglietto (acquisto)
bagaglio (check in)
gate (imbarco)
decollo
routing
biglietto (rimborso)
bagaglio (recupero)
gate (sbarco)
atterraggio
routing
routing
routingrouting
Implementazione distribuita
Areoporto di partenza Areoporto di arrivo
Applicazioni di Rete – M. Ribaudo - DISI
Perchè i livelli?
� Permettono di gestire sistemi complessi
� Modularità e facilità di manutenzione
�le modifiche su un livello sonotrasparenti per il resto del sistema
Es. se cambia il meccanismo diaccesso al gate, questo non influenzail resto del sistema di trasporto
Applicazioni di Rete – M. Ribaudo - DISI
Su Internet?
� Internet protocol stack: lostandard de facto per lacomunicazione multilivello
� Il modello teorico diriferimento ha 7 livelli ed ènoto con l’acronimo ISO/OSI
ISO: International Organization for Standardization
OSI: Open System Interconnection
11
Applicazioni di Rete – M. Ribaudo - DISI
Internet protocol stack: 5 livelli
� application: supporta leapplicazioni di rete(FTP, SMTP, HTTP)
� transport: si occupa deltrasferimento dei datihost-to-host (TCP, UDP)
� network: routing deipacchetti (datagram) dalmittente al destinatario(IP)
� link: traferimento dati tranodi vicini (Ethernet)
� physical: bit “sul mezzo”
application
transport
network
link
physical
Applicazioni di Rete – M. Ribaudo - DISI
applicationtransportnetwork
linkphysical
applicationtransportnetwork
linkphysical
applicationtransportnetwork
linkphysical
applicationtransportnetwork
linkphysical
networklink
physical
Per ogni nodo
�“entità” cheimplementano lefunzionalità deivari livelli
�e scambiano deimessaggi con ipeer
Comunicazione logica
Applicazioni di Rete – M. Ribaudo - DISI
applicationtransportnetwork
linkphysical
applicationtransportnetwork
linkphysical application
transportnetwork
linkphysical
applicationtransportnetwork
linkphysical
networklink
physical
data
data
data
transport
transport
ack
Comunicazione logica
12
Applicazioni di Rete – M. Ribaudo - DISI
applicationtransportnetwork
linkphysical
applicationtransportnetwork
linkphysical
applicationtransportnetwork
linkphysical
applicationtransportnetwork
linkphysical
networklink
physical
data
data
Comunicazione reale
Applicazioni di Rete – M. Ribaudo - DISI
� Ogni livello prende i dati dal livellosuperiore�aggiunge un insieme di informazioni(header), crea un protocol data unit (PDU),e lo passa al livello sottostante
applicationtransportnetwork
linkphysical
applicationtransportnetwork
linkphysical
mittente destinatario
MMHt
MHtHn
MHtHnHl
MMHt
MHtHn
MHtHnHl
messagesegmentdatagramframe
Comunicazione reale
Applicazioni di Rete – M. Ribaudo - DISI
Cosa vedremo?
� Livello applicationHTTP (HyperText Transfer Protocol)FTP (File Transfer Protocol)
SMTP (Simple Mail Tranfer Protocol)
� Livello transportTCP (Transmission Control Protocol)
� Livello networkIP (Internet Protocol)
13
Applicazioni di Rete – M. Ribaudo - DISI
Cosa vedremo?
� Programmazione per il web
� (HTML), CSS, JavaScript
� PHP, MySQL
� Cookies e sessioni
� XML, XSLT
Applicazioni di Rete – M. Ribaudo - DISI
Programmazione lato client: sul browser
HTMLlinguaggio di markup
CSSregole per definire lostile globable dellepagine HTML
JavaScriptistruzioni, oggetti emetodi per “controllare”il browser e i documentiHTML
HTMLlinguaggio di markup
CSSregole per definire lostile globable dellepagine HTML
JavaScriptistruzioni, oggetti emetodi per “controllare”il browser e i documentiHTML
Applicazioni di Rete – M. Ribaudo - DISI
Programmazione lato server
Apache web server
PHPlinguaggio di script pergenerare pagine dinamichein risposta allerichieste dell’utente(client)
Apache web server
PHPlinguaggio di script pergenerare pagine dinamichein risposta allerichieste dell’utente(client)
14
Applicazioni di Rete – M. Ribaudo - DISI
Programmazione lato server
MySQL
Interazione con undatabase remoto
MySQL
Interazione con undatabase remoto
Applicazioni di Rete – M. Ribaudo - DISI
Cookies e sessioni
Mario Rossi,bentornato sul sito
del DISI, le date degliappelli sono state
aggiornate dalla tuaultima visita
Applicazioni di Rete – M. Ribaudo - DISI
Multicanalità (Internet appliances)
IP picture frame
Web-enabled toaster+weather forecaster
Motorola MPX200 Smart Phone
Fridge Freezer with LCD Display
15
Applicazioni di Rete – M. Ribaudo - DISI
Organizzazione del corso
� Prima la parte sui protocolli
� Poi la parte di programmazione
� Sever del [email protected]
�Gruppi, max 2 persone�Spazio disco 10 MB a testa
Applicazioni di Rete – M. Ribaudo - DISI
Organizzazione del corso
� Progetto: applicazione web fruibilemediante dispositivi diversi (PHP,MySQL, XML, trasformazioni XSLT)