Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in...

34
Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono il nome di protocollo Un protocollo fornisce delle funzionalità per: Indirizzamento (addressing) Instradamento (routing) Gestione di eventuali errori di trasmissione (error detection, error recovery, sequence control) Gestione della velocità di comunicazione (flow control)

Transcript of Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in...

Page 1: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione nelle reti – protocolli

• Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono il nome di protocollo

• Un protocollo fornisce delle funzionalità per:– Indirizzamento (addressing)– Instradamento (routing)– Gestione di eventuali errori di trasmissione (error

detection, error recovery, sequence control)– Gestione della velocità di comunicazione (flow

control)

Page 2: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Protocolli

• Un protocollo “monolitico” che realizzi tutte le funzionalità necessarie per la comunicazione tra elaboratori in rete è difficile da realizzare

• Inoltre, se cambia qualche componente della rete, si deve modificare l’intero protocollo

• Per ridurre la complessità di progettazione la maggior parte dei protocolli è organizzata come una serie di livelli

Page 3: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione multilivello

Francese

Francesea inglese

Inglese Inglese

Inglese a tedesco

Tedesco

Page 4: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione multilivello

• Qualcosa di simile accade nei protocolli di comunicazione tra calcolatori

• Si ipotizzano dei livelli e– Il livello n di un calcolatore comunica (virtualmente)

con il livello n di un altro calcolatore

• In realtà nessun dato viene trasferito da un livello n ad un altro (n>1) ma passa ad un livello sottostante– Un protocollo di livello n svolge le sue funzioni

usando i servizi forniti dal livello n-1 e fornisce i servizi al livello n+1

Page 5: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione multilivello

• Per ogni coppia di livelli adiacenti esiste una interfaccia

• Le convenzioni usate nella conversazione sono il protocollo– Si tratta di un accordo tra i participanti su

come deve avvenire la comunicazione

• Al di sotto del livello più basso c’è il mezzo fisico che serve per il trasferimento dei dati

Page 6: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione multilivello: ISO - OSI

• Modello teorico di riferimento per definire le caratteristiche della comunicazione multilivello

• OSI: Open Standard InterconnectionApplication

Presentation

Session

Transport

Network

Data link

Physical

Page 7: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione multilivello: ISO - OSI

• Modello teorico di riferimento per definire le caratteristiche della comunicazione multilivello

• OSI: Open Standard InterconnectionApplication

Presentation

Session

Transport

Network

Data link

Physical

Servizi per utilizzo delle rete

Comunicazione end-to-end

Indirizzamento, routing tra reti

Per esempio:

Page 8: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione multilivello: ISO - OSI

Application

Presentation

Session

Transport

Network

Data link

Physical

Application

Presentation

Session

Transport

Network

Data link

Physical

Page 9: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione multilivello: ISO - OSI

Application

Presentation

Session

Transport

Network

Data link

Physical

Application

Presentation

Session

Transport

Network

Data link

Physical

• Il livello n di un calcolatore comunica virtualmente con il livello n di un altro calcolatore• In realtà nessun dato viene trasferito da un livello n adun altro ma passa ad un livello sottostante

Page 10: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Comunicazione multilivello: ISO - OSI

• I livelli più bassi sono quelli più vicini all’hardware e definiscono delle regole di basso livello che consentono di “azzerare” le differenze tra le diverse reti fisiche

• Si introduce un livello virtuale uniforme sul quale si basano i livelli successivi che possono essere definiti in modo indipendente dalle reti fisiche sottostante

Page 11: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Internet

La reti delle reti: collega fra loro reti locali, metropolitane, geographiche e singoli

computer di tutto il mondo

Page 12: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Internet

• 1990: 3000 reti e 200.000 computer (detti host)

• 1992: viene collegato il milionesimo host• Agli esordi il numero di host cresce in

modo esponenziale mentre in questi anni si osserva un rallentamento, con incremento annuo del del 6%

• 2002: hanno accesso ad Internet 457 milioni di persone (di cui 174 milioni negli Stati Uniti)

Page 13: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Internet

• Una macchina è in Internet se:– utilizza il protocollo TCP/IP– ha un suo indirizzo IP (Internet Protocol)– ed ha la capacità di spedire pacchetti IP a

tutte le altre macchine su Internet

• È possibile essere in Internet anche in modo temporaneo chiamando un fornitore di servizi Internet (mediante un modem)– Si parla di Internet Service Provider (ISP)

Page 14: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

La famiglia di protocolli TCP/IP

IP

TCP UDP

HTTP FTP SMTP TELNET DNS… …

Application layer

Transport layer

Network layer

Link + physical layer

Page 15: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Network layer: IP

• Internet può essere vista come una collezione di sottoreti diverse (eterogenee) connesse tra loro (internetworking)

• La “colla” che tiene insieme le varie sottoreti è l’Internet Protocol (IP)

• Permette di trasportare i dati dalla sorgente alla destinazione, sfruttando la presenza di reti intermedie lungo il percorso

Application

Transport

Network

Link & Physical

Page 16: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Network layer: IP

• Una entità di livello Network è presente su tutti i dispositivi ad Internet

• Trasmissione di tipo packet switching

Application

Transport

Network

Link & Physical

Application

Transport

Network

Link & Physical

Page 17: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Network layer: IP

• Ogni computer collegato ad Internet possiede un indirizzo univoco detto indirizzo IP (32 bit)

• I 32 bit di un indirizzo IP sono suddivisi in 4 campi da 8 bit ciascuno– Per esempio:

10000000000101000011111010101011

• Di solito si usa una rappresentazione formata da 4 numeri decimali seperati da un punto– Per esempio: 128.10.2.30

Page 18: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Network layer: IP

• Gli indirizzi IP devono essere univoci

• Quando vi collegate ad Internet da casa è il provider che vi assegna un indirizzo IP scegliendolo tra quelli che ha acquistato

Page 19: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Network layer: IP

• IP fornisce anche l’instradamento (routing) dei pachetti tra mittente e destinario

• Protocollo di routing:– Scopo: determinare un “buon” percorso

nella rete tra sorgente e destinazione– Percorso “buono”: in genera significa “più

corto”– La topologia della rete può cambiare

(qualche router o link si può guastare)

Page 20: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Transport layer

• Il compito del livello Transport è quello di fornire un trasporto affidabile dall’host di origine a quello di destinazione, indipendentemente dalla rete utilizzata

• In Internet il protocollo di questo livello è chiamato Transmission Control Protocol (TCP)

Application

Transport

Network

Link & Physical

Page 21: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Transport layer

• Si deve specificare la destinazione finale, cioè si deve decidere come è fatto l’indirizzo del livello di trasporto– TSAP = <indirizzo NSAP, informazione

supplementare>• TSAP: Transport Service Access Point• NSAP: Network Service Access Point

• TSAP per TCP: <indirizzo IP mittente, porta mittente>

Page 22: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer

• Si colloca al di sopra del livello Transport ed è il livello nel quale viene svolto il “lavoro utile” per l’utente

• In questo livello si trovano diversi protocolli, alcuni relativi alle applicazioni che usiamo abitualmente in Internet– SMTP: Simple Mail Transfer Protocol– FTP: File Transfer Protocol– TELNET– HTTP: HyperText Transfer Protocol

Application

Transport

Network

Link & Physical

Page 23: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer

• I protocolli del livello Application sono basati sul modello di interazione client/server

• Per usare i servizi messi a disposizione mediante questi protocolli bisogna contattare un server– Per esempio: tutte le volte che usate il browser

e richiedete delle pagina di un sito web, di fatto state contattando un web server remoto

– Per esempio: tutte le volte che inviate una e-mail di fatto del vostro provider contatta il mail server del provider del vostro destinario

Page 24: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: DNS• Gli indirizzi IP numerici sono difficili da

ricordare• Si usano quindi degli indirizzi simbolici che

sono più significativi per l’essere umano– di.unito.it, cs.bham.ac.uk, developer.netscape.com

• Questi nome vengono tradotti in indirizzi IP numerici mediante il Domain Name System (DNS)

• Gli indirizzi simbolici hanno un formato come quello seguente

… nome5.nome4.nome3.nome2.nome1

Page 25: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: DNS

• Sono costruiti a partire da uno schema gerarchico di nomi basato sul concetto di dominio

gnu

com edu gov mil net org au it zw

unito unige

di psych

www www

disi

elios

www

… …

www.gnu.org

www.di.unito.it

root

Livello 1

Livello 2

Livello 3

Livello 4

Page 26: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: DNS• Domini di primo livello (top level)

com Aziende

edu università americane

gov istituzioni governative

mil istituzioni militari

net fornitori d’accesso

org organizzazioni non-profit

… …

au Australia

ch Svizzera

fr Francia

it Italia

jp Giappone

uk Regno Unito

… …

Page 27: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: DNS

• Ogni dominio deve essere in grado di “risolvere i nomi” dei calcolatori di sua competenza

• Si usano i name server che gestiscono la corrispondenza tra nomi simbolici e indrizzi IP numerici– Quando un’applicazione deve collegarsi ad

una risorsa di cui conosce il nome logico (ad es. www.unito.it), invia una richiesta al suo name server locale

Page 28: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: DNS

• Il name server, se conosce la risposta, la invia direttamente al richiedente– Altrimenti interroga il name server di top level;

questi può conoscere l’indirizzo oppure inoltrare l’interrogazione ai suoi figli nella gerarchia

• Si continua con le interrogazioni fino a quando non si ottiene l’indirizzo IP numerico della risorsa

• Quando l’applicazione riceve la risposta crea una connessione TCP con la destinazione, usando l’indirizzo IP appena ricevuto

Page 29: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: posta elettronica

• Si basa sul protocollo SMTP e permette lo scambio dei messaggi tra gli utenti collegati alla rete

• È necessario fornire:– L’indirizzo del mittente– L’indirizzo del destinario– Il corpo del messaggio

Gli indirizzi devono avere un formato ben preciso

Page 30: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: posta elettronica

• Viene implementata in Internet attraverso la cooperazione in due sottosistemi– Mail User Agent (MUA) che permette

all’utente di comporre il proprio messaggio, di leggere i messaggi in arrivo, …

– Mail Transport Agent (MTA) che si occupa di trasportare i messaggi sulla rete fino alla consegna al Mail Transport Agent di destinazione

Page 31: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: posta elettronica (SMTP)

• Si occupa del trasporto dei messaggi in Internet– Quando l’utente, dopo aver composto il

messaggio, preme il pulsante Send, il suo client di posta contatta il server SMTP

– Il server SMTP chiede al DNS l’indirizzo del server SMTP che si trova nel dominio del destinario

– Si apre una connessione TCP, poi una conversazione tra i due server e viene consegnato il messaggio

Page 32: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: posta elettronica (SMTP)

• Quando il destinario usa il pulsante Get Mail del suo programma di posta elettronica di fatto il suo MUA contatta il MTA per scaricare la posta in arrivo

• Si possono usare due protocolli diversi:– POP3 (Post Office Protocol)– IMAP (Internet Mail Access Protocol)

Page 33: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer

• Trasferimento file:– Si basa sul File Transfer Protocol (FTP)– Permette di collegarsi a siti remoti per prendere

(download)/salvare (upload) file– L’accesso può essere riservato (tramite login e

password) oppure aperto a tutti (si parla di anonymous ftp)

• Collegamento remoto:– Telnet: permette di collegarsi a calcolatore che si

trovano in località remote per lavorare interattivamente su di essi

Page 34: Comunicazione nelle reti – protocolli Abbiamo visto che la comunicazione tra due calcolatori in una rete è governata da un insieme di regole che prendono.

Application layer: World Wide Web

• Si basa sul protocollo HTTP (HyperText Transfer Protocol) che gestisce l’interazione tra un client e un server web

• Client e server si scambiano dei messaggi– Richieste da parte del client– Risposte da parte del server

• Piú precisamente:– L’utente richiede una pagina residente su un server e il

suo browser richiede una connessione TCP con il server

– Il server accetta la connessione iniziata dal browser– Il browser ed il server si scambiano messaggi– La connessione viene chiusa