Reti di calcolatori
Lezione 1
Problema
Costruire una rete di calcolatori
dimensioni planetarie
applicazioni diversificate
Quali tecnologie?
Che tipo di architettura software?
(efficienza, affidabilità, requisiti per le applicazioni)
Soluzione al problema:
Cos’è una rete di calcolatori?
Perché costruirla?
Cos’è ?
Rete di calcolatori
–
–
–
Sistema di dispositivi programmabili interconnessi
tra loro
I dispositivi possono gestire una varietà di tipi di
traffico (testo, voce, immagini)
Sistema non ottimizzato per un particolare tipo di
traffico
Perché ? (scopi delle reti)
Supporto di applicazioni di rete
Applicazioni aziendali
–
Condivisione delle risorse
Applicazioni domestiche
–
–
–
–
Accesso a info remote
Comunicazione da persona a persona
Intrattenimento interattivo
Commercio elettronico
Prospettive
Utenti della rete: servizi di cui le loro
applicazioni hanno bisogno (ad esempio,
invio garantito senza errori entro limite
di tempo)
Progettisti della rete: progetto
economicamente effettivo (ad esempio,
utilizzo efficiente ed equo delle risorse)
Fornitori della rete: sistema facile da
amministrare e da gestire (ad esempio,
facilità di isolare i guasti)
Requisiti: connessione
Strumenti base:
collegamenti: cavo coassiale, fibra ottica...
nodi: computer di uso generale...
–
–
host
switch
Collegamenti diretti
punto-punto
accesso multiplo
(a)
(b)
Classificazione delle reti
tecnologia trasmissiva
b)
dimensioni
Si osserva una correlazione tra dimensioni e
modalità di scambio dell’informazione
Nel caso a) parleremo di
a)
Reti broadcast
Reti punto-punto
Nel caso b) di: reti locali (LAN), reti metropolitane
(MAN), reti geografiche (WAN)
Classificazione in base alle dimensioni:
Distanza tra nodi
Ambito
10 m.
Stanza
100 m.
Edificio
1 km.
Campus
10 km.
Città
100 km.
Nazione
1000 km.
Continente
10 000 km.
Pianeta
Tipo di rete
Rete locale
Rete metropolitana
Rete geografica
Internet
Come è fatta Internet?
Connessione indiretta
Reti commutate:
Due o più nodi connessi da un link
–
–
Host
Switch
Connessione indiretta
Una rete può essere definita ricorsivamente...
Due o più nodi connessi
da un link, o
Due o più reti connesse
da un nodo
Strategie di commutazione:
commutazione di circuito
circuito dedicato per inviare/ricevere un flusso di bit
commutazione di pacchetto
store-and-forward per inviare/ricevere messaggi
(pacchetti)
Indirizzi ed instradamento
indirizzo
–
parola che identifica un nodo
instradamento
–
determinare come inviare i messaggi a destinazione in base
al suo indirizzo
tipo di indirizzi:
–
unicast: specifico nodo
broadcast: tutti i nodi sulla rete
multicast: sottoinsieme di nodi sulla rete
Requisiti: condivisione risorse
Problema: condivisione di risorse (nodi e
collegamenti) da parte di più utenti
L1
R1
L2
R2
Switch 1
L3
Switch 2
R3
Ogni switch trasmette un pò alla volta parte dei
dati di ciascun host mittente
Ogni host mittente che vuole trasmettere ne ha
la possibilità
Requisiti: condivisione risorse
Strategie comuni di multiplexing:
–
–
–
a divisione di tempo (TDM)
a divisione di frequenza (FDM)
a divisione di tempo ma su richiesta (statistical TDM)
L1
R1
L2
R2
Switch 1
L3
Switch 2
R3
Statistical TDM
Suddivisione del tempo su richiesta
Turno per la trasmissione basata su pacchetto
Pacchetti da diverse sorgenti si alternano
Bufferizzazione di pacchetti in attesa
coda di pacchetti gestita come coda (FIFO)
congestione: saturazione del buffer di pacchetti
■■■
Funzionalità
Le applicazioni eseguite sui nodi connessi
alla rete devono poter comunicare in
modo da comprendersi
nodo
nodo
applicazione
nodo
applicazione
canale astratto
nodo
nodo
La rete comunemente supporta canali
applicazione-applicazione come:
Richiesta/Risposta: accesso a file, librerie digitali
–
Garanzia di ricezione e integrità
Flusso di messaggi: applicazioni video
–
Ordine dei messaggi
Cos’è un protocollo?
Protocolli umani:
–Che ore sono?
–Piacere sono tizio
–Buongiorno cercavo…
Messaggi
specifici
vengono
trasmessi/ricevuti
Azioni specifiche sono
conseguenza dei msg
trasmessi/ricevuti
Protocolli
di rete:
Tutte le comunicazioni
di rete sono gesite da
protocolli
–Formato
dei msg
–Ordine in cui questi devono
essere inviati/ricevuti dalle
componenti di rete
–Azioni da intraprendere in
seguito a
trasmissione/ricezione di msg
Architettura di protocolli
Software di comunicazione strutturato
gerarchicamente
Astrazione
identifica un modello unificante in grado di
cogliere aspetti importanti del sistema
conduce ad una struttura
a livelli
nasconde la complessità
fornisce un’interfaccia di accesso
Problemi
Errori a livello di bit (interferenze)
Errori a livello di pacchetti (congestione)
Mal funzionamento di nodi e collegamenti
Messaggi ritardati
Messaggi consegnati in ordine sbagliato
Ascolto da parte di estranei
Problema chiave: mettere d’accordo ciò che
l’applicazione si aspetta con ciò che la
tecnologia soggiacente fornisce
Prestazioni: unità di misura
Attenzione alle unità di misura: gli stessi prefissi possono indicare multipli dell’unità diversi
a seconda di ciò che stiamo considerando
velocità di una linea,
cicli di un clock
dimensione di una memoria
1012
Tera
240
109
Giga
230
106
Mega
220
103
Kilo
210
100
-
20
Quindi 1KB = 1024 byte, 1 MB = 1024*1024 = 1048576 byte …
Prestazioni
Larghezza di banda
Quantità di dati che possono essere trasmessi in un’unità di tempo
Esempio: 1Mbps 106 bit al secondo
Collegamento vs canale astratto
Tempo di elaborazione
Larghezza di banda collegata a “larghezza di un bit”
1Mbps corrisponde a bit di larghezza 1µs
2Mbps corrisponde a bit di larghezza 0.5µs
latenza
Tempo richiesto per inviare un messaggio da A a B
Dipende da:
–
Tempo di trasmissione dei dati
–
Tempo di propagazione nel mezzo fisico
–
Tempo di accodamento ad ogni switch
Velocità della luce
3.0 x 108 metri/secondo nel vuoto
2.3 x 108 metri/secondo in un cavo
2.0 x 108 metri/secondo in una fibra
Latenza
Latenza = Propagazione + Trasmissione + Coda
Propagazione = Distanza / VelocitàLuce
Trasmissione = Dimensione / LarghezzaBanda
Talvolta conta il tempo andata-ritorno (RTT)
Osservazioni
non ci sono ritardi di coda in collegamenti diretti
larghezza di banda non significativa se Dimensione è 1 bit
latenza applicazione-applicazione include ritardo dovuto al
software che può essere significativo se Distanza è piccola
Larghezza di banda vs ritardo di trasmissione
messaggi piccoli (ad es., 1 byte):
passare da 1ms a 100ms è più significativo che passare da
1Mbps (Trasmissione = 8µs) a 100Mbps (Trasmissione
= 0.08µs)
messaggi grandi (ad es., 25 MB):
passare da 1Mbps (Trasmissione = 209s) a 100Mbps
(Trasmissione = 2s) è più significativo che passare da
1ms a 100ms
Prodotto latenza x larghezza di banda
Quantità di dati in “viaggio”
latenza
larghezza
di banda
ad es., 100ms e 45Mbps = 560KB di dati (circa)
Larghezza di banda infinita
–
RTT domina
1-MB file su un collegamento a 1-Gbps è come 1-KB
pacchetto su un collegamento a 1-Mbps
Throughput = TransferSize / TransferTime
TransferTime = RTT + 1/Bandwidth x TransferSize
Architettura di rete
Astrazione
identifica un modello unificante in grado di
cogliere aspetti importanti del sistema
conduce ad una struttura
a livelli
–
ogni strato definisce un modello
Ogni modello è incapsulato in un oggetto
dotato di una interfaccia
–
–
nasconde la complessità
fornisce accesso esterno all’oggetto
Protocolli
Ogni protocollo ha due interfacce
interfaccia di servizio: definisce come usarlo
interfaccia tra entità: definisce come comunica con
l’entità corrispondente nell’altro nodo
nodo
nodo
oggetto di alto livello
protocollo
interfaccia di servizio
interfaccia tra entità
oggetto di alto livello
protocollo
L’insieme dei livelli e dei relativi protocolli è
chiamato architettura di rete
La specifica dell’architettura deve essere
sufficientemente dettagliata da renderne
possibile l’implementazione
I dettagli implementativi di ciascun livello, così
come la definizione di ciascuna interfaccia tra
livelli, NON fanno parte dell’architettura di
rete
Comunicazione multistrato
Vantaggi della stratificazione
:
Scomposizione del problema in sottoproblemi
Progettazione modulare: aggiungere un
servizio modificando le funzionalità di un solo
livello
Implementazioni diverse per uno strato in host
diversi
Applicazione
Canale astratto
Connessione nodo-nodo
Hardware
diverse astrazioni ad ogni livello
Applicazione
Canale
richiesta/
risposta
Canale
flusso di
messaggi
Connessione nodo-nodo
Hardware
Grafo dei protocolli
insieme di protocolli con le loro dipendenze
Host 1
File
application
–
–
Digital
library
application
Video
application
Host 2
File
application
Digita
llibrary
application
Video
application
maggior parte della comunicazione tra entità indiretta
comunicazione tra entità diretta solo al livello
hardware
Incapsulamento
Applicazione
Applicazione
dati
RRP
dati
RRP
RRP dati
HHP
verso la rete
RRP dati
HHP
HHP RRP dati
dal la rete
HHP RRP dati
Architettura di rete
Una architettura di rete può essere: proprietaria, standard de facto o
standard de iure.
Una architettura proprietaria
•
si basa su scelte indipendenti ed arbitrarie di un costruttore
•
è generalmente incompatibile con architetture differenti
•
rende raramente pubbliche le proprie specifiche
Esempi: IBM SNA (Systems Network Architecture), Digital Decnet
Phase IV, Novell IPX, Appletalk
Una architettura standard de facto
•
è basata su specifiche di pubblico dominio
•
e largamente adottate a livello mondiale
Esempio: Internet Protocol Suite (TCP/IP)
Una architettura standard de iure:
• è basata su specifiche pubbliche
• è approvata da enti internazionali di standardizzazione
Esempi: standard IEEE 802 (LAN), architettura OSI (Open Systems
Interconnection), Decnet Phase V
Architetture Standard
Architettura OSI (Open Systems
Interconnect)
International Standards Organization (ISO)
International Telecommunications Union (ITU),
precedentemente CCITT
serie “X.”: X.25, X.400, X.500
modello di riferimento
OSI: principi del progetto
1. Ogni livello deve avere un diverso livello di astrazione
2. Ogni livello deve avere una funzione ben definita
3. I livelli devono essere isolati quanto più possibile
4. La scelta dei livelli deve:
- minimizzare il passaggio delle informazioni fra livelli
- evitare troppe funzioni in un livello e troppi livelli
Livello fisico
Gestisce la trasmissione di flussi di bit non strutturati attraverso la linea di
comunicazione
Gli aspetti di progetto sono:
- garantire che la comunicazione avvenga in modo corretto
(es. se viene inviato un 1, venga ricevuto un 1 e non uno 0)
- caratteristiche meccaniche, elettriche e procedurali delle
interfacce di rete (componenti che connettono l'elaboratore al
mezzo fisico) e le caratteristiche del mezzo fisico
Si caratterizzano:
-
tensioni scelte per rappresentare 0 ed 1
-
durata (in microsecondi) di un bit
-
trasmissione simultanea in due direzioni oppure no
-
forma dei connettori
Livello DataLink
Il suo scopo principale è controllare gli errori di trasmissione ed evitare
che tali errori, se riconosciuti, siano passati al livello superiore
Deve quindi:
• raggruppare i bit da inviare in frame e aggiungere delimitatori al
frame (framing)
• inviare i frame in sequenza
• aspettare un acknowledgment frame (ack) per i frame inviati
Lunghezza del frame: dal centinaio al migliaio di byte (1 byte = 8 bit)
Livello rete
Gestisce l’instradamento dei pacchetti. Altre funzioni:
• gestione della congestione
• accounting (contabilizzazione) del traffico (gli operatori
possono far pagare l’uso della rete in base al traffico
effettuato)
• conversione di dati nel passaggio fra due reti diverse
(indirizzi da rimappare, pacchetti da frammentare,
protocolli diversi da gestire, . . . )
Livello trasporto
Realizza il canale tra processi e isola i livelli superiori dai
cambiamenti della tecnologia di rete sottostante
crea connessioni di livello network per ogni
connessione di livello
end-to-end
offerta di vari servizi al livello superiore:
- canale punto a punto affidabile, che consegna dati in
ordine e senza errori (il servizio più diffuso, connection
oriented)
- invio di messaggi isolati, con o senza garanzia di
consegna (connectionless)
Livello sessione
•
Permette agli utenti su diversi calcolatori di stabilire
sessioni di lavoro tra di loro
•
Permette di collegare flussi diversi che fanno parte
della stessa applicazione (es. flussi video e audio in
una videoconferenza)
Livello presentazione
Si occupa della:
•
conversione dei dati
•
compressione dei dati
•
codifica crittografica dei dati
Livello applicazione
Fornisce tutti i protocolli utilizzati dalle applicazioni comunemente usate
dall’utente.
Ad esempio:
• Posta elettronica
• Terminale virtuale
• Trasferimento di file
• World Wide Web
Attraverso l’uso di questi protocolli si possono scrivere e gestire
applicazioni che offrono i servizi agli utenti finali.
Tipologie di servizi
Servizi connection-oriented:
- modellati sul servizio telefonico
- hanno bisogno di
- stabilire una connessione
- scambiare informazioni per mezzo della connessione
- rilasciare la connessione
01
0 1
host1
0 0 01
0 1 1
11 1
1
0
0
0
1
10
1
host2
Tipologie di servizi
Servizi connectionless:
- modellati sul servizio postale
- non hanno bisogno di una fase di allocazione delle risorse
- ogni pacchetto viaggia indipendentemente dagli altri
0 00
01
0
0 0 1
host1
1
1
0
1
1
0
0
1 1
0
1
host2
Servizi affidabili e non affidabili
Un servizio affidabile permette di non perdere i dati senza
che il mittente ne sia informato:
• il ricevente invia un acknowledgment (conferma) al
mittente per ogni pacchetto ricevuto
• in caso di errori transienti di trasmissione, il mittente può
rispedire automaticamente i dati non giunti a
destinazione
Un servizio non affidabile non offre alcuna certezza al
mittente che i dati inviati siano stati effettivamente
ricevuti dal destinatario
Servizio
affidabile
non affidabile
connectionoriented
trasmissione di un file
voce digitalizzata
connectionless
posta raccomandata
email spazzatura
se un livello non offre affidabilità del servizio, qualora questa sia richiesta,
dovrà essere fornita dai livelli superiori.
Confronto OSI-TCP/IP
Architettura Internet
Internet Engineering Task Force (IETF)
FTP
HTTP
NV
TFTP
Applicazione
TCP
UDP
TCP
UDP
IP
IP
Rete
rete
rete
...
Caratteristiche
non implica una struttura strettamente a livelli
forma a clessidra
progetto e sviluppo procedono insieme
rete
Livello trasporto
Protocollo TCP
–
–
–
–
Definito in RFC793 (Postel 1981c)
è orientato alla connessione e affidabile
controlla la congestione
non permette una comunicazione “leggera”
Protocollo UDP
–
–
Definito in RFC768 (Postel 1980)
Non è orientato alla connessione e non è affidabile
Livello rete
Protocollo IP (definito in RFC791 Postel
1981c)
–
–
–
–
–
Fornisce un servizio di consegna di pacchetti a
destinazione
Best effort
Consente di suddividere pacchetti
Non controlla se un pacchetto è danneggiato
Non garantisce la consegna
Scarica

Reti di calcolatori