Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo -...

16
1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [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 alcuni argomenti legati alla rete Internet Lo scopo del corso è quello di introdurre i protocolli di rete e di fornire strumenti per la programmazione per il web Applicazioni di Rete – M. Ribaudo - DISI Prerequisiti Conoscenza del linguaggio HTML Basi di dati: il modello relazionale e il linguaggio SQL Programmazione [Sicurezza]

Transcript of Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo -...

Page 1: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

1

Applicazioni di Rete – M. Ribaudo - DISI

Applicazioni di retea.a. 2003-2003

[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]

Page 2: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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. (HTML)2. fogli di stile3. JavaScript

Applicazioni di Rete – M. Ribaudo - DISI

Argomenti

Programmazione per il web

Lato server: generazionedi pagine dinamichemediante interazione conbasi di dati remote(es. Apache, PHP, MySQL)

… cookies,sessioni,multicanalità

Page 3: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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

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”

Page 4: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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?

Page 5: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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

Page 6: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

6

Applicazioni di Rete – M. Ribaudo - DISI

La struttura della rete

� Network edge� definisce i “bordi” 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,…)

Page 7: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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

Page 8: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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?

Page 9: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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

Page 10: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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

Page 11: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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

Page 12: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

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 al livello sottostante

applicationtransportnetwork

linkphysical

applicationtransportnetwork

linkphysical

mittente destinatario

MMHt

MHtHn

MHtHnHl

MMHt

MHtHn

MHtHnHl

messagesegmentdatagram

frame

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)

Page 13: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

13

Applicazioni di Rete – M. Ribaudo - DISI

HTTP in pillole

� Modello client/server

�client: browser cherichiede, riceve evisualizza oggetti web

�server: web server cheinvia oggetti inrisposta alle richieste

� HTTP 1.0: RFC 1945

� HTTP 1.1: RFC 2068

PC runningExplorer

Server running

Apache webserver

Mac runningNavigator

HTTP request

HTTP request

HTTP response

HTTP response

Applicazioni di Rete – M. Ribaudo - DISI

FTP in pillole

� Modello client/server

� client: inizia il trasferimento (to/fromremote host)

� server: remote host

� FTP: RFC 959

file transfer FTPserver

FTPuser

interface

FTPclient

local filesystem

remote filesystem

user at host

Applicazioni di Rete – M. Ribaudo - DISI

SMTP in pillole

� Modello client/server

� user agent�mail reader(elm, pine, Netscapemessenger, …)

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 14: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

14

Applicazioni di Rete – M. Ribaudo - DISI

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

� mail server�mailbox per imessaggi in arrivo

�message queue peri messaggi inuscita

� protocollo SMTP(e POP3, IMAP …)

user mailbox

outgoing message queue

SMTP in pillole

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 dellepagineHTML

JavaScriptistruzioni, oggetti emetodi per “controllare”il browser

Page 15: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

15

Applicazioni di Rete – M. Ribaudo - DISI

Programmazione lato server

Apache web server

PHPlinguaggio di script pergenerare pagine dinamichein risposta allerichieste dell’utente(client)

Applicazioni di Rete – M. Ribaudo - DISI

Programmazione lato server

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

Page 16: Applicazioni di rete a.a. 2003-2003 · 2003. 2. 27. · 1 Applicazioni di Rete – M. Ribaudo - DISI Applicazioni di rete a.a. 2003-2003 [terzo anno nuovo ordinamento] Marina Ribaudo

16

Applicazioni di Rete – M. Ribaudo - DISI

Multicanalità (Internet appliances)

World’s smallest web serverhttp://www-ccs.cs.umass.edu/~shri/iPic.html

IP picture framehttp://www.ceiva.com/

Web-enabled toaster+weather forecaster

Applicazioni di Rete – M. Ribaudo - DISI

Organizzazione del corso

� Prima la parte di programmazioneper anticipare il laboratorio

� Poi la parte sui protocolli