Protocolli per la comunicazione
- Tutte le attivita' in Internet che implicano la
comunicazione tra 2 o piu' entita' remote sono governate da protocolli.
- Un protocollo definisce il formato e l'ordine dei
messaggi scambiati tra 2 o piu' entita' comunicanti, cosi' come le azioni
conseguenti alla trasmissione e/o alla ricezione di un messaggio.
Servizio Connection-Oriented
Obiettivo: trasferimento dati tra host.
Protocollo di
Handshaking: preparazione al
trasferimento dei dati.
Si stabilisce la
connessione TCP (Transmission Control
Protocol).
Si scambiano le
informazioni.
Si chiude la
connessione.
TCP (Transmission Control Protocol)
- Fornisce un servizio di trasferimento dei dati
affidabile (acknowledgement).
- Fornisce il controllo del flusso, in modo da evitar 424j99e e la
saturazione di una delle due entita' comunicanti.
- Fornisce il controllo della congestione (i terminali
riducono la velocita' di invio di pacchetti nella rete durante i periodi
di congestione)
- Usato da
applicazioni tipo Telnet (login remoto), SMTP (email), FTP (trasferimento
file) e HTTP (web)
UDP (User Datagram Protocol)
- Non fornisce il meccanismo degli acknowledgement e non c'e'
controllo di flusso ne' di congestione.
- Utilizzato da applicazioni come quelle multimediali.
La pila di protocolli Internet
- application: supporto per le applicazioni di rete
ftp, smtp, http
- transport: trasferimento dati end-to-end
tcp, udp
- network: instradamento di datagrammi da sorgente a
destinazione (host-to-host)
ip, protocolli di
routing
- link: trasferimento di dati tra elementi di rete
adiacenti
ppp, ethernet
Stratificazione e dati
Ogni
strato riceve dati dallo strato superiore:
- Aggiunge uno header e
crea una nuova unità di dati
- Passa la nuova unità di
dati allo strato inferiore
Paradigma client-server
Client:
- Inizia il dialogo col server ("speaks first").
- Di solito richiede un servizio.
- Nel caso del Web, il client è integrato nel browser.
Server:
- Fornisce il servizio al client, su richiesta.
- Es., un Web server invia una pagina Web richiesta, un
mail server accede alla casella di posta elettronica
Protocolli di livello applicativo: servizi
dagli strati inferiori e identificazione
API: Application
Programming Interface
- Definisce
l'interfaccia tra applicazione e strato di trasporto
- Socket: API Internet
Due processi
(applicazione nel modello client server) comunicano inviando/leggendo dati
nel/dal socket
- Come può un
processo "identificare" quello con
cui intende comunicare?
Indirizzo IP
dell'host su cui l'altro processo è in
esecuzione
Numero di porta (port number) - permette all'host ricevente di identificare il processo
locale
destinatario del
messaggio
Servizi necessari alle applicazioni
Perdita (Data loss)
- Alcune
applicazioni (es., audio) sono tolleranti (fino a un certo punto)
- Altre (es., FTP, telnet) richiedono
affidabilità totale
Banda
- Alcune
applicazioni (soprattutto multimediali) richiedono una banda minima
- Altre
(dette "elastiche") usano la banda a disposizione
Ritardo
- Alcune
applicazioni (es., telefonia Internet, giochi interattivi in rete)
richiedono una banda minima per funzionare con qualità sufficiente
Servizi offerti dai protocolli di trasporto Internet
Servizio
TCP :
- Orientato alla connessione: richiesto "setup" tra client e server
(fase di handshaking).
- Trasporto affidabile (reliable transfer)
tra processi mittente e
ricevente.
- Controllo di flusso (flow control): il mittente non sommerge il ricevente.
- Controllo della congestione (congestion
control): si limita il
mittente quando la rete è sovraccarica.
- Non offre: garanzie di banda e ritardo minimi.
Servizio
UDP :
- Servizio non orientato
alla connessione
- Trasporto non
affidabile tra processi mittente e ricevente
- Non offre:
affidabilità, controllo di flusso, controllo di congestione, garanzie di
ritardo e banda
- Può essere conveniente
per alcune applicazioni
WWW: terminologia essenziale
Pagina Web:
È
costituita da "oggetti"
È
indirizzata da un URL.
URL (Uniform Resource Locator):
Identifica
un oggetto nella rete e specifica il modo per accedere ad esso.
Ha
due componenti: nome dell'host e percorso (path) dell'oggetto nell'host
Un browser (interprete) per il Web mostra la pagina Web
richiesta e fornisce molte caratteristiche di navigazione e configurazione:
MS Internet Explorer
Netscape Communicator
Un Web server memorizza gli oggetti Web, ciascuno
indirizzabile da un URL:
Apache (pubblico
dominio)
MS
Internet Information Server
Il protocollo HTTP
HTTP:
HyperText Transfer Protocol
- Protocollo di
livello applicativo per il Web.
- Definisce
come i client Web (browser) richiedono le pagine Web dai server e come i
server trasferiscono le pagine Web ai browser.
HTTP
usa TCP come protocollo di trasporto sottostante:
- Il client inizia una connessione TCP con
il server sulla porta 80.
- Il server accetta la connesione TCP dal
client.
- Vengono scambiati messaggi HTTP tra il
browser (client HTTP) e il Web server (server HTTP)
- Il server non mantiene informazione
sulle richieste precedenti del client
- I protocolli che mantengono informazione
di stato sono complessi (es. TCP)
Formato
dei messagi HTTP
- Due tipi di
messaggi HTTP: request (richiesta), response (risposta)
ASCII
Web
Cache (proxy server)
Obiettivo:
rispondere alle richieste evitando di accedere al server remoto
- L'utente configura il browser: accesso attraverso
web cache
- Il client invia tutte
le richieste al proxy
- La cache restituisce
l'oggetto se presente
- Altrimenti l'oggetto è richiesto prima al server e poi è restituito
al client
FTP:
File Transfer Protocol
- Protocollo per
il trasferimento dei file da/verso un host remoto
- Usa il modello
client/server
client: parte che richiede il trasferimento
(da/verso l' host remoto)
server: host remoto
FTP:
connessioni di controllo e dati separate
- Il client contatta il server sulla porta 21,
specificando TCP come protocollo di trasporto.
- due
connessioni TCP parallele:
controllo: scambio di messaggi di
controllo tra client e server.
dati: trasferimento dati
da/verso il server
- Il server ftp
mantiene informazioni di "stato": directory corrente, autenticazione
Posta elettronica
Tre componenti
principali :
- User agent
- Server di posta
- Simple Mail Transfer
Protocol: SMTP
Posta
elettronica: mail server
Mail Server
- Mailbox contenente
messaggi (non ancora letti) per l'utente
- Coda di messaggi in
uscita (non ancora spediti)
- Protocollo SMTP tra i
mail server per il recapito dei messaggi
client: il server che invia
il messaggio
"server": server che riceve
il messaggio
Simple Mail Transfer Protocol (SMTP)
- Usa TCP per il trasferimento affidabile
dei messagi da client a server, porta 25
- Trasferimento diretto: da server a
server
- Tre
fasi
Handshaking
(saluto)
Trasferimento
del messaggio
Chiusura
- Interazione mediante comandi/risposte
- Comando: testo
Risposta:
codice di stato e frase
Formato dei messaggi
SMTP: protocollo per lo scambio di messaggi di posta
Standard per il formato dei messaggi inviati:
To:
From:
Subject:
Il "messaggio" vero e proprio, solo caratteri
Protocolli
di accesso alla posta
- SMTP: consegna
al/memorizzazione nel server di posta del ricevente
- Protocollo di accesso:
recupero della posta dal server locale
POP3: Post
Office Protocol
- Autenticazione (agent <-->server) e scaricamento
IMAP: Internet Mail Access Protocol
- Più possibilità (più
complesso)
- Manipolazione dei
messaggi memorizzati sul server
Post
Office Protocol - POP3
- Protocollo di accesso semplice, con
funzioni limitate.
- Lavora quando
lo user agent (ad es. Outlook) dell'utente apre una connessione TCP al
server di posta sulla porta 110. Il POP3 procede con autorizzazione (nome
utente e password), transazione (lo user agent ottiene i messaggi),
aggiornamento (il server elimina i messaggi contrassegnati per l'eliminazione).
- Lo user agent puo' essere impostato per
scaricare e poi cancellare i messaggi dal server di posta, oppure per
scaricarli e conservarli sul server di posta.
Internet
Mail Access Protocol - IMAP
- Protocollo piu' complesso, consente di
gestire le caselle di posta remote (quindi che risiedono sui server di
posta) come se fossero locali.
- Consente quindi di mantenere diverse
cartelle di messaggi presso il server di posta.
- Una sessione IMAP consiste nello
stabilire la connessione tra lo user agent (ad es. Outlook) e il server
IMAP, l'autenticazione dell'utente tramite nome e password. L'utente puo'
procedere alla gestione dei messaggi, terminata la quale effettua il logout
e la sessione viene terminata.
DNS: Domain Name System
- DNS (Domain Name System) : traduzione indirizzo
IP - nome logico
- Esso consiste di:
Uno schema gerarchico di
nominazione, basato sul concetto di dominio
Un database distribuito che
implementa lo schema di nominazione;
Un protocollo per il mantenimento e
la distribuzione delle informazioni sulle corrispondenze
- Lo spazio dei
nomi DNS è uno spazio gerarchico, organizzato in dominii, ciascuno dei
quali può avere dei sottodominii
- Esiste un
insieme di dominii di massimo livello (top-level domain), i più alti nella
gerarchia
- Nel caso di un
host, la forma del nome logico è costituita da un certo numero di
sottostringhe separate da punti
- Cammino
inverso dalla foglia -radice
DNS:
Name Server
- Name server è
il processo che gestisce le informazioni di corrispondenza fra nomi
simbolici e indirizzi IP
- Per ogni host
del dominio esiste un record - detto gestito dal DNS server responsabile
del dominio (informazioni corrette e aggiornate)
- Nessun name
server contiene tutte le associazioni nome simbolico/indirizzo IP
- Name
server locali :
Ogni ISP o compagnia ha un name
server locale
La richiesta di traduzione
(mapping) di un host è prima rivolta al name server locale
- Name server di
riferimento :
Per un host: per definizione
è quello che è sempre in grado di eseguire la traduzione
(mapping) nome simbolico/indirizzo IP dell' host