Politecnico di Milano - Intranet...

89
Politecnico di Milano Facoltà di Ingegneria dell’Informazione Protocolli Applicativi Paradigmi Client-Server e Peer-to-Peer HTTP: Web Surfing FTP: Connettività remota SMTP: posta elettronica DNS: indirizzamento simbolico P2P: file sharing

Transcript of Politecnico di Milano - Intranet...

Politecnico di Milano Facoltà di Ingegneria dell’Informazione

Protocolli Applicativi o  Paradigmi Client-Server e Peer-to-Peer o  HTTP: Web Surfing o  FTP: Connettività remota o  SMTP: posta elettronica o  DNS: indirizzamento simbolico o  P2P: file sharing

Alcune applicazioni di rete

o  E-mail o  Web o  Instant messaging o  Remote login o  P2P file sharing o  Network games o  Video streaming

o  Internet telephony o  Real-time video

conference o  Massive parallel

computing o  …

Creare un’applicazione di rete Scrivere un software che:

n  Possa essere eseguito su diversi terminali e

n  Possa comunicare tramite la rete.

n  Ad esempio il software dei Web server comunica con il software del browser.

application transport network data link physical

application transport network data link physical

application transport network data link physical

Creare un’applicazione di rete application transport network data link physical

application transport network data link physical

application transport network data link physical

Inventare una nuova applicazione non richiede di cambiare il software della rete n  I nodi della rete non

hanno software applicativo

n  Le applicazioni sono solo nei terminali e possono essere facilmente sviluppate e diffuse

Comunicazione tra processi

o  Processo: programma in esecuzione su un host

o  All’interno dello stesso host, due processi comunicano usando la comunicazione inter-processo (definita dal OS).

o  Processi in host differenti comunicano scambiando messaggi

Processi e Protocolli o  Processi in esecuzione su sistemi remoti possono

scambiarsi informazioni e servizi mediante una rete

o  L’interazione avviene mediante lo scambio di messaggi

o  I protocolli applicativi sono le regole e i formati con i quali i processi costruiscono i messaggi e ne interpretano il significato

Applicazioni di rete Protocolli di rete

Web (web server, browser, HTML)

HTTP

E-mail (mail server, mail client, MIME)

SMTP

Interazione coi livelli inferiori

o  Lo scambio di messaggi fra i processi applicativi avviene utilizzando i servizi dei livelli inferiori attraverso i SAP (Service Access Point)

o  Ogni processo è associato ad un SAP

o  Applicazioni nella pila OSI:

Presentazione

Sessione

WEB FTP Mail

Trasporto

Livello controllato dall’applicazione

Livelli controllati dal sistema operativo

Interazione coi livelli inferiori

o Nella architettura a strati di Internet, i protocolli applicativi si appoggiano direttamente sul livello di trasporto

WEB FTP Mail

Trasporto

Livello controllato dall’applicazione

Livelli controllati dal sistema operativo

Sockets

o  Processi inviano e ricevono messaggi attraverso i socket

o  Socket sono delle porte di comunicazione n  Il processo trasmittente

mette il messaggio fuori dalla porta

n  La rete raccoglie il messaggio e lo trasporta fino alla porta del destinatario

process

TCP with buffers, variables

socket

host or server

process

TCP with buffers, variables

socket

host or server

Internet

controlled by OS

controlled by app developer

o  I socket sono i SAP tra il livello applicativo e il livello di trasporto

Protocolli applicativi

o  Tipi di messaggi scambiati n  Richieste, risposte

o  Sintassi dei messaggi: n  Campi del messaggio e

delimitatori o  Semantica dei messagi

n  Significato dei campi o  Regole su come e

quando inviare e ricevere i messaggi

Protocolli standard: o  Definiti negli RFC o  HTTP, SMTP,

ecc. Protocolli

proprietari: o  KaZaA, Skype,

ecc.

Applicazioni e protocolli di trasporto

Application

e-mail remote terminal access

Web file transfer

streaming multimedia

Internet telephony

Application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] proprietary (e.g. RealNetworks) proprietary (e.g., Vonage,Dialpad)

Underlying transport protocol TCP TCP TCP TCP TCP or UDP typically UDP

Comunicazione Client-Server o  Lo scopo fondamentale del colloquio tra

processi remoti è quello di fornire servizi. In particolare due sono le funzioni che possono essere svolte da un processo applicativo n  Richiedere servizi n  Fornire servizi

o  Se ogni processo applicativo svolge una sola delle due funzioni siamo in presenza di un interazione di tipo client-server

client server request

response

Comunicazione Client-Server o  Un processo client è solo in grado fare richieste di servizio

(informazioni) e di interpretare le risposte o  Un processo server ha solo il compito di interpretare le

richieste e fornire le risposte o  Se nello stesso host è necessario sia fare richieste che

fornire risposte vengono usati due processi, client e server.

o  Un protocollo applicativo per un’architettura client-server rispecchia questa divisione di ruoli e prevede messaggi di richiesta (request) generati dal lato client e messaggi di risposta (response) generati dal server

Processi Client-Server

o  Un processo server è in esecuzione a tempo illimitato sul proprio host (demone) e viene attivato mediante un passive open

o  Un processo client viene attivato solo al momento di fare le richieste e viene attivato mediante un active open su richiesta dell’utente o di altro processo applicativo

o  Il passive open del server fa si che da quel momento il server accetti richieste dai client

o  L’active open del client richiede l’indicazione dell’indirizzo e della porta del server

request

response

request

response

requ

ests

resp

onse

s

... ...

Programmi Client-Server o  Normalmente più client possono inviare richieste ad

uno stesso server o  Un client può fare più richieste contemporanee

Programmi Client e Server

o  Un client può essere eseguito in modalità parallela o seriale n  esempio: invia più richieste in parallelo per i file

che compongono una pagina web

o  Anche un server può essere eseguito in modalità parallela o seriale

o  Normalmente gli applicativi che usano UDP sono gestiti in modo seriale: n  I pacchetti con le richieste arrivati vengono

immagazzinati e attendono il loro turno; il server li esamina e genera le risposte

Programmi Client e Server

o  Normalmente i server che usano TCP vengono eseguiti in modalità parallela e sono dunque in grado di rispondere a più richieste contemporaneamente

o  Con ognuno dei client viene aperta una connessione TCP che viene mantenuta per il tempo necessario a scambiare richieste e risposte

o  La gestione delle procedure per ciascun client collegato avviene mediante la generazione di processi figli

o  Si parla di applicativi multi-thread

o  La generazione di un figlio è detta fork

Architetture applicative

o Client-server n  I terminali (host) coinvolti nella

comunicazione implementano o solo il processo client o solo il processo server

n  Gli host client e gli host server hanno caratteristiche diverse

o  Peer-to-peer (P2P) n  I terminali implementano tutti sia il

processo client che quello server

o  Ibrida

Architettura client-server

Server: n  Host sempre attivo n  Indirizzo IP permanente n  Possibilità di utilizzo di

macchine in cluster

Client: n  Comunicano con il server n  Possono essere connessi in

modo discontinuo n  Possono cambiare indirizzo

IP n  Non comunicano con altri

client

Architettura P2P (pura)

o  Non ci sono server sempre connessi

o  Terminali (peers) comunicano direttamente

o  I peers sono collegati in modo intermittente e possono cambiare indirizzo

o  Esempio: Gnutella Fortemente scalabile ma difficile da gestire

Architettura ibrida

Skype n  IP Telephony n  Ricerca degli interlocutori: centralizzata in server n  Comunicazione diretta tra peer

Instant messaging n  La comunicazione tra utenti è P2P n  Il meccanismo di localizzazione e presenza è

centralizzato in server: o  L’utente registra il suo indirizzo IP a un server

centrale quando si attiva o  L’utente contatta il server centrale per conoscere

lo stato di altri utenti

Politecnico di Milano Facoltà di Ingegneria dell’Informazione

Web Browsing Hyper Text Transfer Protocol (HTTP)

HyperText Tranfer Protocol (HTTP)

o  Architettura client-server o  I client richiedono oggetti (file) identificati da

un URL al server o  I server restituiscono i file o  Nessuna memoria sulle richieste viene

mantenuta nei server (protocollo stateless)

client server HTTP request

HTTP response

•  "Hypertext Transfer Protocol -- HTTP/1.0," RFC 1945, May 1996. •  "Hypertext Transfer Protocol -- HTTP/1.1," RFC 2068, January 1997

Trasporto dei messaggi

o  HTTP fa uso di TCP per il trasporto dei messaggi o  Una web page è di solito composta da un documento

base (HTML) e più oggetti collegati

o  La richiesta di una web page fa uso di URL (Uniform Resource Locator)

http://www.polimi.it/index.html

Indica il protocollo applicativo

Indica l’indirizzo di rete del server

Indica la pagina web richieste

La porta TCP viene definita per default (80)

Method Host :// : Port Path /

Trasporto dei messaggi o  Supponiamo che un client richieda una pagina HTML di un

server al cui interno sono contenuti i riferimenti ad altri oggetti (ad esempio 10 figure che compongono la pagina e che occorre visualizzare insieme al testo HTML).

:

o  Nel trasferimento dell’insieme di oggetti sono possibili 2 modalità: o  Non-persistent

connection (default mode di HTTP 1.0)

o  Persistent connection (default mode di HTTP 1.1)

Altri oggetti Testo HTML

Non persistent o  Viene aperta una connessione TCP per una sola request-

response: inviata la pagina, il server chiude la connessione TCP o  La procedura viene ripetuta per tutti i file collegati al documento

HTML base o  Le connessioni TCP per più oggetti possono essere aperte in

parallelo per minimizzare il ritardo o  Il numero max di connessioni è di solito configurabile nel

browser Request (index.html)

Response (index.html file) Request (image1.jpg)

Request (image2.jpg)

Persistent connection o  Nel caso persistent il server non chiude la connessione dopo

l’invio dell’oggetto o  La connessione rimane aperta e può essere usata per

trasferire altri oggetti della stessa pagina web o anche più pagine

o  I server chiudono di solito la connessione sulla base di un time-out n  without pipelining:il client invia una nuova richiesta solo

dopo aver ricevuto la risposta per la precedente n  with pipelining: più richieste vengono inviate

consecutivamente dal client (default mode HTTP v1.1)

Richieste

Esempi di Methods

GET E’ usato quando il client vuole scaricare un documento dal server. Il documento richiesto è specificato nell’URL. Il server normalmente risponde con il documento richiesto nel corpo del messaggio di risposta.

HEAD E’ usato quando il client non vuole scaricare il documento ma solo alcune informazioni sul documento (come ad esempio la data dell’ultima modifica). Nella risposta il server non inserisce il documento ma solo degli header informativi.

POST E’ usato per fornire degli input al server da utilizzare per un particolare oggetto (di solito un applicativo) identificato nell’URL.

PUT E’ utilizzato per memorizzare un documento nel server. Il documento viene fornito nel corpo del messaggio e la posizione di memorizzazione nell’URL.

o  Altri methods: n  PATCH, COPY, MOVE, DELETE, LINK, UNLINK, OPTIONS.

Risposte

Messaggi

100 Continue: Prima parte della richiesta accettata.

500 Internal server error

Errore o guasto nel server

501 Not implemented Funzione non implementata 503 Service unavailable

Servizio non disponibile

200 OK: La richiesta ha avuto successo; l’informazione è inclusa

302 Moved Permanently: L’oggetto è stato spostato nell’URL indicato

304 Not Modified: L’oggetto non è stato modificato

400 Bad Request: errore generico 401 Unauthorized: Accesso senza necessari account

e passwd 404 Not Found: l’oggetto non esiste sul server

o  1xx Informational

o  2xx Success

o  3xx Redirection

o  4xx Client error

o  5xx Server error

Header

o  Gli header servono per scambiare informazione di servizio aggiuntiva

o  E’ possibile inserire più linee di header per messaggio

o  Esempi

Header name Header value :

Cache-control Informazione sulla cache Accept Formati accettati Accept-language Linguaggio accettato Authorization Mostra i permessi del client If-modified-since Invia il doc. solo se modificato

User-agent Tipo di user agent

Scambio di messaggi: un esempio

o  Esempio: di richiesta oggetto

GET /ntw/index.html HTTP/1.1 Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg Accept-language:it

HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 09:23:24 GMT Content-Length: 6821 Content-Type: text/html data data data data data ...

o  Esempio: risposta

Cache di rete: uso dei proxy

o  Compito principale dei proxy è fornire una grande memoria di cache

o  Se un documento è contenuto nella cache viene scaricato più velocemente sul client

Proxy

o  I proxy sono degli application gateway, ovvero degli instradatori di messaggi di livello applicativo

o  Devono essere sia client che server o  Il server vede arrivare tutte le richieste dal proxy

(mascheramento degli utenti del proxy)

LL

IP

TCP

HTTP

User Agent

LL

IP

TCP

HTTP

Server

LL

IP

TCP

HTTP

Proxy

Cache locale: get condizionato

Client: GET /fruit/kiwi.gif HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg If-modified-since: Mon, 22 Jun 1998 09:23:24

Server: HTTP/1.0 304 Not Modified Date: Wed, 19 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix) (empty entity body)

o  E’ possibile evitare di scaricare oggetti memorizzati nella memoria locale se non sono stati modificati

o  E’ possibile anche usare il metodo HEAD

Autenticazione o  HTTP è stateless e quindi non si possono riconoscere

richieste successive dello stesso utente o  In HTTP esiste un elementare meccanismo di

autenticazione (account e password) che serve a riconoscere gli utenti

o  Normalmente il browser memorizza passwd e account in modo da non richiedere la digitazione ogni volta

GET /ntw/index.html HTTP/1.1

401 Authorization Required WWW-Authenticate:[tipo di autenticazione]

GET /ntw/index.html HTTP/1.1 Authorization: account, passwd

GET image.gif HTTP/1.1 Authorization: account, passwd

. . .

Cookie o  Esiste anche un altro modo per riconoscere richieste successive

di uno stesso utente che non richiede di ricordare password o  Il numero di cookie inviato dal server viene memorizzato in un

opportuno file o  Inviando il numero di cookie ad ogni operazione (ad es. e-

commerce) si può mantenere uno stato “virtuale” per ciascun utente.

GET /ntw/index.html HTTP/1.1

200 OK Set-cookie:18988466

GET /ntw/carrello/index.html HTTP/1.1 Cookie: 18988466

GET image.gif HTTP/1.1 Cookie: 18988466

. . .

HTML (HyperText Markup Language)

o  HTTP trasferisce file e non si occupa della loro semantica

o  Il funzionamento del WWW si basa sull’interpretazione di file e sulla loro visualizzazione

o  Pagine di testo formattate sono trasferite come file ASCII mediante dei comandi di formattazione specificate nel linguaggio HTML

o  Le pagine HTML possono contenere riferimenti ad altri oggetti che dal browser possono essere interpretate n  Come parte del documento da visualizzare (immagini) n  Come link ad altre pagine web

o  Se una pagina HTML è memorizzata nel server e viene inviata su richiesta è una pagina statica

Pagine WEB dinamiche

o  Se una pagina viene creata al momento della richiesta (e normalmente in base alle informazioni fornite del client) si parla di pagine dinamiche

o  Se una richiesta si riferisce ad una pagina dinamica il server esamina la richiesta, esegue un programma associato a quella richiesta e genera la pagina di risposta sulla base dell’output di un programma

GET /cgi-bin/prog.pl HTTP/1.1

prog.pl

200 OK Pagina dinamica

Pagine WEB attive o  Una pagina web può anche contenere un

programma che deve essere eseguito dal client

o  Il programma viene scaricato come un oggetto della pagina ed eseguito in locale sulla macchina del client

o  Può essere utile per ottenere delle pagine in grado di interagire con l’utente, per grafici in movimento, ecc.

GET /java/applet HTTP/1.1

200 OK programma

Politecnico di Milano Facoltà di Ingegneria dell’Informazione

Trasferimento di informazione File Transfer Protocol (FTP)

File Transfer Protocol (FTP)

o  E’ un protocollo usato per il trasferimento di file tra due host remoti

o  Sia sul lato cliente che sul lato server l’applicazione opera direttamente sul file system della macchina

•  "File Transfer Protocol”, RFC 959, October 1985.

File Transfer Protocol (FTP) o  Fa uso di TCP per il trasporto o  Due connessioni sono aperte per dati e controllo

User Interface

Control process

Data tranfer process

LFS

Control process

Data tranfer process

LFS

client

server

Port 21

Port 20

FTP: user interface

FTP: connessione di controllo

o  La connessione di controllo viene aperta in modo simile alle altre applicazioni n  Il server lancia un passive open per la porta 21 e rimane in attesa di

richieste di connessione n  Il client lancia un active open ogni volta deve iniziare una sessione di

trasferimento file e fa partire una richiesta di connessione TCP usando una porta dinamica

o  La connessione di controllo è persistent , ovvero rimane aperta per tutta la durata della sessione di trasferimento e può essere usata per molti file da trasferire

Control process

Data tranfer process

LFS LFS

client server Passive open Port 21 Control

process

Data tranfer process

Active open Port 66778

FTP: connessione dati

o  Le connessioni dati sono non-persistent ovvero sono aperte solo per trasferire un file o altre informazioni e poi sono immediatamente chiuse

o  Per aprire una connessione dati:

Metodo 1: n  Il client che desidera iniziare un trasferimento dati effettua un

passive open su una porta di sua scelta n  Il client comunica la porta al server sulla connessione di controllo

mediante il comando PORT n  Il server fa un active open verso la porta del client usando il suo

numero di porta noto 20

Metodo 2: n  Il client invia il comando di PASV al server n  Il server sceglie un numero di porta, fa un passive open e

comunica il numero di porta al client nella risposta n  Il client fa un active open verso la porta comunicata dal server

FTP: connessione dati

o  Il trasferimento di dati può avvenire con diverse modalità e formati:

o  File type: n  ASCII file: file di caratteri

n  Binary: formato generale per tutti i file non testuali

o  Transmission mode: n  Stream mode: il file viene trasferito al TCP come

una sequenza non strutturata di byte

n  Block mode: il file viene trasferito in blocchi di cui i primi tre byte rappresentano l’header

FTP: comandi o  Il trasferimento di comandi di FTP è

testuale (ASCII)

USER username PASS password QUIT log out

Comandi di accesso

CWD change directory DELE delete file LIST list files RETR retrive file STOR store file

Gestione file

TYPE file type MODE transfer mode

PORT client port PASV server choose port

Modalità di trasferimento

Gestione delle porte

FTP: risposte 125 Data connection already open; transfer starting 200 Command OK 225 Data connection open 226 Closing data connection 227 Entering passive mode; srv. sends Ip_add.,port 230 User login OK

331 Username OK, password required 425 Can't open data connection 426 Connection closed; tranfer aborted 452 Error writing file

500 Syntax error; unrecognized command 501 Syntax error in parameters or arguments 502 Command not implemented

FTP: esempio trasferimento file

Client Server 220 service ready

USER matteo

331 username OK; password ?

PASS pippo123

230 user login OK

PORT 65667

150 opening data connection

LIST /usr/pub

125 data connection OK

226 closing data connection

Data

Politecnico di Milano Facoltà di Ingegneria dell’Informazione

Servizio di E-mail Simple Mail Transfer Protocol (SMTP)

E-mail o  L’e-mail è un applicazione che consente di

inviare in modo asincrono messaggi testuali o  E’ basata su una rete di server che comunica

con il prot. appl. SMTP (Simple Mail Transfer Protocol)

SMTP

o  E’ un protocollo testuale o  Richiede che anche il corpo dei messaggi

sia ASCII n  i documenti binari devono essere convertiti in

ASCII

o  Quando un server riceve un messaggio da un user agent n  mette il messaggio in una coda n  apre una connessione TCP con la porta 25 del

server del destinatario n  trasferisce il messaggio

J.B. Postel, "Simple Mail Transfer Protocol," RFC 821, August 1982.

Colloquio tra client e server SMTP

S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

Han

dsh

ake

Formato dei messaggi

o  Il formato dei messaggi inviati (comando DATA) è specificato

o  Alcuni header standard precedono il corpo del messaggio vero e proprio

D.H. Crocker, "Standard for the Format of ARPA Internet Text Messages," RFC 822, August 1982.

From: [email protected] To: [email protected] Subject: Request of information <black line> <Body> .

Multipurpose Internet Mail Extensions (MIME)

o  Estensione MIME al RFC 822 ha come scopo principale quello di consentire il trasferimento di messaggi non ASCII

• "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies," RFC 2045, Nov. 1996. • "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types," RFC 2046, Nov. 1996.

From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ........................ .....base64 encoded data .

Multipurpose Internet Mail Extensions (MIME)

o  Codifiche: n  Base64:

o  Le sequenze di bit da trasferire sono divise in gruppi di 24 bit

o  Ogni gruppo è in diviso in 4 sotto-gruppi di 6 bit o  Ad ogni gruppo è associato un carattere in un alfabeto base

64

11001100 10000001 00111001

110011 (51) 001000 (8) 000100 (4) 111001 (57)

01111010 01001001 01000101 00110101

Z I E 5

base64

Multipurpose Internet Mail Extensions (MIME)

o  Quoted-printable o  Le sequenze di bit da trasferire sono divise in gruppi di 8 bit o  Se una sequenza corrisponde ad un carattere printable ASCII

è inviata così com’è o  Altrimenti viene inviata come tre caratteri: “=“ seguito dalla

rappresentazione esadecimale del byte

00100110 &

01001100 L

10011101 Non-ASCII

Quotable-printable

00111001 9

00100110 &

01001100 L

=

00111001 9

1001 9

1101 D

Multipurpose Internet Mail Extensions (MIME)

o  MIME consente anche il trasferimento di più oggetti come parti di uno stesso messaggio:

From: [email protected] To: [email protected] Subject: Picture of yummy crepe with commentary MIME-Version: 1.0 Content-Type: multipart/mixed; Boundary=StartOfNextPart --StartOfNextPart Dear Bob, Please find a picture of an absolutely scrumptious crepe. --StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... --StartOfNextPart Let me know if you would like the recipe. .

Protocolli di accesso al mailbox

o Diversi protocolli sono stati sviluppati per il colloquio tra user agent e server in fase di lettura dei messaggi presenti nel mailbox n  POP3 (Post Office Protocol versione 3) n  IMAP (Internet Mail Access Protocol) n  HTTP

POP3

Fase di autorizzazione o  Comandi del client:

n  user: username n  pass: password

o  Risposte del server: n  +OK n  -ERR

Fase di transazione, client: o  list: elenca numero mess. o  retr: recupera messaggio o  dele: cancella messaggio o  quit

C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> S: . C: dele 2 C: quit S: +OK POP3 server signing off

S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on

Case History

o Nel Dicembre 1995 S. Bhatia and J. Smith propongono un servizio di e-mail web-based e fondano Hotmail

o  In un mese raggiungono 100K clienti o  In un anno raggiungono 12M clienti o Nel dicembre 1997 Hotmail è acquisita

da Microsoft per $400M o  Esempio di “first mover advantage” e

di “viral marketing”

Politecnico di Milano Facoltà di Ingegneria dell’Informazione

Terminale remoto TELNET

TELNET (TErminaL NETwork) o  E’ un semplice applicativo che consente di aprire un

terminale remoto o  Al contrario di un terminale locale i comandi sono

trasferiti su una connessione TCP

Terminal driver

TCP

IP

LL

Telnet client

Pseudo-terminal driver

TCP

IP

LL

Telnet server

Internet

TELNET (TErminaL NETwork) o  TELNET trasferisce caratteri

n  Caratteri dati: o  Sono caratteri ASCII con il primo bit pari a 0 o  Si possono trasferire anche caratteri ASCII con il primo bit

pari a 1 se li si fa precedere da un byte di controllo speciale

n  Caratteri di controllo: o  Sono comandi codificati in sequenze di 8 bit con il primo pari

ad 1 o  Tra questi

n  IAC (255): interpreta il prossimo come carattere di controllo n  EC (247): cancella carattere

c a t f i l e a IAC EC 1

TELNET (TErminaL NETwork)

Politecnico di Milano Facoltà di Ingegneria dell’Informazione

Indirizzamento simbolico dei domini Domain Name System (DNS)

o  Gli indirizzi IP sono poco adatti ad essere usati dagli applicativi.

o  E’ più comodo utilizzare indirizzi simbolici o  Gerarchici (via, città, stato) o  Senza vincoli derivanti da esigenze di livello 3. o  Occorre una mappatura fra i due

131.175.21.1 morgana.elet.polimi.it

Domain Name System (DNS)

o  Le reti IP forniscono indirizzamento simbolico o  E un servizio di database distribuito che fornisce il

servizio di mappaggio: DNS (Domain Name System)

o  Il DNS è esso stesso un’applicazione IP che usa UDP/IP per trasferire i messaggi

o  Il DNS viene usato anche per altri servizi: n  Host aliasing n  Mail server aliasing n  Load distribution

"Domain Names - Concepts and Facilities," RFC 1034, Nov. 1987. "Domain Names - Implementation and Specification," RFC 1035, Nov. 1987.

Domain Name System (DNS)

Indirizzamento simbolico

o  L’indirizzamento è di tipo gerarchico o  Ogni ramo è sotto il controllo di un’autorità o  Per ottenere un nuovo indirizzo occorre

chiedere il permesso all’autorità competente

com edu org gov mil it fr jp de ...

ucla columbia polimi

elet cs

virgilio

rett

yahoo

morgana

morgana.elet.polimi.it

Tipi di NS o  Local Name Servers

n  Direttamente collegati agli host n  Ogni ISP (residenziale, università, compagnia) ha un

NS locale n  Contatta i Root NS

o  Root Name Servers n  Contengono informazioni per l’indirizzamento di grandi

gruppi di host e domini n  Contengono informazioni sugli NS authoritative per un

certo dominio n  Contatta gli Authoritative NS

o  Authoritative Name Servers n  NS responsabile di un particolare hostname

Gerarchia DNS

I Name Servers (NS) sono organizzati in maniera gerarchica

Source: Computer Networking, J. Kurose

Root NS nel 2004

http://www.wia.org/

Come ottenere un mappaggio o  Ogni host ha configurato l’indirizzo del DNS o  Le applicazioni che richiedono un mappaggio

(browser, ftp, etc.) usano le funzioni del DNS o  Una richiesta viene inviata al server DNS

usando UDP come trasporto o  Il server reperisce l’informazione e restituisce

la risposta

HOST Local NS

DNS request

DNS response

DNS Network

Informazioni memorizzate o  Type

n  A: Name è il nome di un host e Value è il suo indirizzo IP (morgana.elet.polimi.it, 131.175.21.1, A, TTL)

n  NS: Name è un domain e Value è il nome di un server che può ottenere le informazioni relative (elet.polimi.it, morgana.elet.polimi.it, NS, TTL)

n  CNAME: Name è un nome alternativo (alias) per un host il cui nome canonico è in Value (www.polimi.it, zephyro.rett.polimi.it, CNAME, TTL)

n  MX: Name è dominio di mail o un alias di mail e Value è il nome del mail server (elet.polimi.it, mailserver.elet.polimi.it, MX,TTL)

Name, Value, Type, TTL

o  I record in ARPANET erano contenuti in un name server centrale

o  Per Internet la struttura del database è distribuita o  I rami sono partizionati in zone e un DNS server viene

associato ad ogni zona o  Il server di una zona è responsabile per le informazioni di

quella zona (authoritative)

com edu org gov mil it fr jp de ...

ucla columbia polimi

elet cs

virgilio

rett

yahoo

morgana

Organizzazione del database

Reperire informazioni

o  In modalità puramente ricorsiva

o  La richiesta viene inoltrata seguendo la gerarchia

o  La risposta segue la strada inversa

Source: Computer Networking, J. Kurose

Reperire informazioni o  Con la modalità

iterativa o  Un server può

rispondere ad una richiesta con il nome di un altro server dove reperire l’informazione

Caching

o  Un server, dopo aver reperito un’informazione su cui non è authoritative può memorizzarla temporaneamente

o  All’arrivo di una nuova richiesta può fornire l’informazione senza risalire sino al server authoritative

o  Il TTL è settato dal server authoritative ed è un indice di quanto stabile nel tempo è l’informazione relativa

o  I server non-authoritative usano il TTL per settare un time-out

Messaggi DNS o  identification: identificativo

coppia richiesta/risposta o  flag: richiesta/risposta,

authoritative/non auth., iterative/recursive

o  number of: relativo al numero di campi nelle sez. successive

o  questions: nome richiesto e tipo (di solito A o MX)

o  answers: resource records completi forniti in risposta

o  authority: contiene altri record forniti da altri server

o  additional infor.: informazione addizionale, ad es. il record con l’IP ADDR. per il MX fornito in answers

sono in binario (non ASCII)

Politecnico di Milano Facoltà di Ingegneria dell’Informazione

Applicazioni Peer-to-Peer

P2P file sharing o  Gli utenti utilizzano il

software P2P sul proprio PC

o  Si collegano in modo intermittente a Internet prendendo indirizzi IP diversi ogni volta

o  Se un utente cerca un file l’applicazione trova altri utenti che lo hanno

o  L’utente sceglie da chi scaricarlo

o  Il file è scaricato usando un protocollo come HTTP

o  Altri utenti potranno (in seguito o in contemporanea) scaricare il file dall’utente

o  L’applicazione P2P è sia client che server.

Elevata scalabilità!

P2P: directory centralizzata

Meccanismo di “Napster” 1) Quando i peer si

connettono, informano il server centrale: n  Indirizzo IP

n  File condivisi

2) Il peer interroga il server centrale per uno specifico file

3) Il file viene scaricato direttamente

centralized directory server

peers

Alice

Bob

1

1

1

1 2

3

P2P: directory centralizzata

o  Problemi dell’architettura centralizzata n  Se il server si rompe

il sistema si blocca

n  Il server è un collo di bottiglia per il sistema

n  Chi gestisce il server può essere accusato di infrangere le regole sul copyright

Il trasferimento file è distribuito, ma la ricerca dei contenuti è fortemente centralizzata

P2P: completamente distribuita

Meccanismo di Gnutella o  Nessun server

centrale o  Protocollo di pubblico

dominio o  Molti software diversi

basati sullo stesso protocollo

Basato su una rete (grafo) di overlay

o  I peer si attivano e si collegano ad un numero (<10) di altri vicini

o  La ricerca dei vicini è distribuita

o  I vicini nella rete overlay possono essere fisicamente distanti

P2P: completamente distribuita

Ricerca di un file

o  I messaggi di richiesta vengono diffusi sulla rete di overlay

o  I peer inoltrano le richieste fino a una certa distanza

o  Le risposte vengono inviate sul cammino opposto

Query

QueryHit

Query

QueryHit

File transfer: HTTP

P2P: completamente distribuita

Accesso alla rete o  Per iniziare il processo di accesso il peer X deve

trovare almeno un altro peer; la ricerca si basa su liste note

o  X scandisce la lista fino a che un peer Y risponde

o  X invia un messaggio di Ping a Y; Y inoltra il Ping nella rete di overlay.

o  Tutti i peer che ricevono il Ping rispondono a X con un messaggio di Pong

o  X riceve molti messaggi di Pong e può scegliere a chi connettersi aumentando il numero dei suoi vicini nella rete di overlay

P2P: architettura ibrida Meccanismo di KaZaA o  Ogni peer o è un group

leader o è assegnato a un group leader. n  Connessioni TCP tra peer e

suo group leader.

n  Connessioni TCP alcune coppie di group leaders.

o  I group leader mantengono informazioni sul contenuto dei loro associati

ordinary peer

group-leader peer

neighoring relationshipsin overlay network