Pacchetto - Dipartimento di Informatica

Transcript

Pacchetto - Dipartimento di Informatica
Svantaggi della Commutazione
di Circuito
I semestre 03/04
Commutazione di
Pacchetto
Š Ad ogni circuito vengono allocate delle risorse
„
Š L’utilizzo delle risorse del circuito non è
efficiente
Prof. Vincenzo Auletta
„
[email protected]
http://www.dia.unisa.it/professori/auletta/
Università degli studi di Salerno
Laurea in Informatica
„
in una conversazione telefonica c’è sempre qualcuno
che parla
in una connessione fra computer ci sono tempi morti
Š Es. connessione browser – Server Web: mentre guardiamo
la pagina non c’è scambio di dati, per cui una connessione
dedicata comporterebbe uno spreco della capacità del
canale
2
Š Richiede che sorgente e destinazione operino
allo stesso tasso
Commutazione di Pacchetto
Struttura di un Pacchetto
Š Dati trasmessi in blocchi di dimensione fissata,
Š I pacchetti devono contenere informazioni di
controllo per poter essere instradati verso la
destinazione
detti pacchetti
„
„
in genere di dimensione non superiore a 1000 ottetti
messaggi lunghi vengono spezzettati in più pacchetti
„
campo dati
indipendentemente dagli altri
„
„
pacchetti dello stesso messaggio possono seguire lo
stesso percorso o percorsi diversi
la tecnica dello store and forward
„
ordine diverso da quello di spedizione
il ricevente deve riassemblare il messaggio
l’intestazione contiene le informazioni di controllo
Š Ogni nodo della rete commuta pacchetti usando
Š i pacchetti possono arrivare a destinazione in
„
simile all’indirizzo scritto sulla busta di un lettera
Š Un pacchetto consiste di un’intestazione e di un
Š ogni pacchetto è instradato singolarmente e
3
Se le risorse si esauriscono non è possibile stabilire
una nuova connessione (blocking)
„
4
„
riceve un pacchetto e lo memorizza
legge le informazioni dell’intestazione
decide su quale linea instradare il pacchetto
Vantaggi della Commutazione
di Pacchetto
Esempio di Trasmissione
Š uso più efficiente delle linee di trasmissione
„
„
„
Š la sorgente divide il messaggio dell’applicazione in
blocchi e aggiunge informazioni di controllo ad ogni
blocco
Š ogni blocco viene trasmesso sulla rete
Š la destinazione rimette insieme i blocchi e ricostruisce il
messaggio
5
Š può collegare sistemi che operano a tassi diversi
„
ognuno trasmette e riceve pacchetti al suo tasso
Š non rifiuta mai una connessione
„
6
„
però i pacchetti potrebbero essere ritardati o persi
è possibile assegnare priorità ai pacchetti
Svantaggi della Commutazione
di Pacchetto
Tecniche di Commutazione
Š Difficile garantire qualità del servizio
Š La tecnica di commutazione definisce come la
„
(overhead)
„
rete gestisce il flusso di pacchetti per garantire
che vengano instradati e consegnati alla
destinazione
Š Due tecniche principali
Per una telefonata serve una certa velocità di
trasmissione garantita
Š Vengono
introdotti
dei
carichi
aggiuntivi
I pacchetti devono viaggiare insieme ad informazioni
di controllo per poter essere correttamente istradati
„
„
Š La rete può congestionarsi
„
7
la stessa linea può essere condivisa dinamicamente
da più pacchetti
i pacchetti vengono accodati e trasmessi non appena
possibile
la linea è inutilizzata solo se non ci sono pacchetti da
trasmettere
Poiché si accettano sempre pacchetti si potrebbe
arrivare ad una situazione di saturazione che blocca
la rete
8
datagram
circuito virtuale
Datagram
Circuito Virtuale
Š Ogni pacchetto è trattato individualmente
Š Viene stabilito un circuito virtuale prima di
„
spedire i pacchetti
non è considerato come parte di un flusso
Š Ogni pacchetto deve contenere informazioni di
„
Š Ogni pacchetto contiene l’identificatore del
controllo per poter essere instradato
„
indirizzo sorgente
sequenza, ecc.
ŠI
pacchetti
indipendente
„
9
„
sono
e
destinazione,
numero
circuito virtuale
di
„
instradati
in
maniera
pacchetti dello stesso messaggio possono seguire
strade diverse ed arrivare in ordine diverso da quello
di trasmissione
si può perdere un pacchetto (un pezzo del
messaggio)
circuito virtuale di appartenenza
„
10
„
„
„
11
„
„
protocollo di comunicazione molto semplice
più veloce per comunicazioni brevi
più flessibile nel gestire situazioni di congestione
differisce dalle reti a commutazione di circuito
maggiore affidabilità
Š è possibile fornire controllo degli errori e del flusso
all’interno del circuito
„
„
più affidabile
Š Svantaggi
„
Š Il circuito virtuale non ha risorse allocate
Š Vantaggi
Š i datagram vengono dirottati su altri percorsi
„
tutti i pacchetti di un messaggio seguono lo stesso
percorso e giungono in ordine a destinazione
Caratteristiche del Circuito
Virtuale
Š Vantaggi
„
non ci sono altre informazioni di controllo
Š I nodi della rete instradano i pacchetti in base al
Caratteristiche del Datagram
„
ogni circuito virtuale ha un identificatore
pacchetti inoltrati più velocemente perché non ci
sono decisioni da prendere
più efficiente per comunicazioni lunghe (max.
throughput)
Š i pacchetti hanno meno informazioni di controllo
Š Svantaggi
i pacchetti possono arrivare fuori ordine o perdersi
ogni nodo deve prendere decisioni di instradamento
non adatto ad operare ad alti tassi di trasmissione
„
„
12
„
ritardo iniziale per instaurare il circuito virtuale
protocollo di comunicazione più complesso
in caso di guasto ad un nodo tutti i circuiti virtuali
che lo attraversano sono persi
Dimensione dei Pacchetti e
Tempi di Trasmissione
Dimensione del Pacchetto
Š I pacchetti in genere sono piccoli
„
X invia 40
ottetti di dati
ad Y attraverso
aeb
su Internet i pacchetti sono al massimo 1.5 Kb
Š La dimensione del pacchetto influenza il tempo
di trasmissione
Š Pacchetti
piccoli
trasmissione inferiori
„
richiedono
tempi
di
ogni pacchetto
ha 3 ottetti di
intestazione
è possibile spedire più pacchetti in parallelo su linee
differenti (pipeline)
Š Per ogni pacchetto è richiesto un sovraccarico
(overhead) di trasmissione per le informazioni di
controllo
13
„
pacchetti troppo piccoli implicano un uso inefficiente
della linea
1 pacch.
43*3 = 289
14
Tipi di Ritardo
2 pacch.
23*4 = 92
5 pacch.
11*7 = 77
10 pacch.
7*12 = 84
Confronto tra Prestazioni
Š Il tempo impiegato da un pacchetto per
giungere a destinazione
componenti
Š Ritardo di propagazione
„
consiste
di
tre
Tempo che impiega un segnale a propagarsi sul
canale
Š Tempo di trasmissione
„
Tempo che un trasmettitore impiega ad inviare un
pacchetto
Š Ritardo del nodo
„
15
Tempo che un nodo impiega per compiere le
elaborazioni necessarie per smistare i dati
16
Š creare un circuito richiede un ritardo iniziale
Š commutare i pacchetti implica un ritardo in ogni nodo
„
maggiore per datagram
Funzionamento Interno ed
Esterno
Confronto tra Prestazioni
Š Esterno
Š la commutazione di circuito fornisce un servizio
„
trasparente a tasso costante
„
„
una chiamata è bloccata se non è possibile garantire
tale servizio
adatto a trasmettere sia dati analogici che digitali
„
Š Interno
Š la commutazione di pacchetto introduce ritardi
„
variabili
„
„
17
„
dipendono dal percorso seguito nella rete, dalla
politica di scheduling dei nodi, dal traffico nella rete
non adatto ad implementare servizi con qualità di
servizio garantito
non adatto a trasmettere dati analogici
connessione logica con un’altra stazione
„
„
„
„
„
18
19
„
Circuito virtuale esterno, circuito virtuale interno
Circuito virtuale esterno, datagram interno
Datagram esterno, circuito virtuale interno
Datagram esterno, datagram interno
Š l’interfaccia tra stazione e nodo deve convertire
Servizio non Orientato alla
Connessione
Š Servizio esterno di tipo datagram
Š La rete accetta singoli pacchetti
una
ogni pacchetto è identificato come appartenente ad
una connessione logica e numerato
la rete garantisce che tutti i pacchetti siano
consegnati nell’ordine giusto
ogni pacchetto ha
l’identificatore del
circuito virtuale ed
il numero di
sequenza
È il funzionamento della rete all’interno
Š Tutte le combinazioni sono possibili
Servizio Orientato alla
Connessione
Š Servizio esterno a circuito virtuale
Š La stazione chiede di instaurare
È il funzionamento che vede una stazione che si
collega alla rete
può essere un servizio orientato alla connessione o
non orientato alla connessione
„
„
20
ogni pacchetto deve contenere informazioni per
essere instradato indipendentemente
i pacchetti possono essere persi o consegnati fuori
ordine
il datagram ha
indirizzo
destinazione e
numero di
sequenza
Operazione Interna a Circuito
Virtuale
Operazione Interna a Datagram
Š La rete stabilisce dei circuiti tra coppie di nodi
„
„
Š La rete tratta ogni pacchetto singolarmente
tutto il traffico tra i due nodi viaggia all’interno del
circuito
è possibile ripartire il traffico tra due nodi tra più
circuiti
„
„
ogni pacchetto
viaggia all’interno
di un circuito
i nodi assegnano i
pacchetti ai circuiti
21
22
Routing (Instradamento)
Š La
rete deve trovare un percorso
consegnare i pacchetti alla destinazione
„
„
„
„
„
23
„
ogni pacchetto
ha indirizzo
destinazione e
numero di
sequenza
Indici di Prestazioni
per
Š La scelta del percorso su cui instradare un
pacchetto dipende da un indice di prestazione
deve scegliere tra le varie alternative
operazione critica in una rete a commutazione di
pacchetto ma molto complessa da ottimizzare
„
„
Robusto: funzionare anche se ci sono dei guasti
Stabile: reagire in modo opportuno a congestioni
Efficiente: far giungere i pacchetti a destinazione
quanto prima possibile
Equo: trattare tutti i pacchetti i modo equo
Vantaggioso: il costo del lavoro dei nodi per il
routing non deve superare i vantaggi che ne derivano
metrica che assegna ad ogni percorso un costo
il problema diventa trovare un cammino di costo
minimo in un grafo diretto pesato
Š Algoritmi di Dijkstra e Bellman-Ford
Š Il routing deve essere
„
pacchetti relativi alla stessa connessione possono
seguire percorsi diversi
la rete deve provvedere a memorizzare i pacchetti
alla destinazione per controllare se sono tutti e
rimetterli in sequenza
Š Principali indici di prestazioni
„
numero di hop
„
costo minimo
Š sceglie il percorso che attraversa meno nodi
Š il costo può essere il ritardo di propagazione, la somma dei
24
tempi di trasmissione nei nodi, il tasso di trasmissione,
l’affidabilità del percorso
Esempio di Calcolo delle Rotte
Decisioni di Routing
Š Le tecniche di routing dipendono da dove e
percorso minimo
da 1 a 6
quando vengono prese le decisioni
Š Quando (in funzione del funzionamento interno)
percorsi
minimi da 1 a
tutti gli altri
nodi
costruisce uno
spanning tree
di cammini
minimi con
radice 1
25
„
Š la rete può modificare tale decisione
„
per i datagram la decisione è presa per ogni
pacchetto trasmesso
Š Dove
„
„
26
„
centralizzato: un centro di controllo decide tutto
distribuito: ogni nodo decide come instradare i
pacchetti ricevuti
da sorgente: la sorgente sceglie il percorso che il
pacchetto deve seguire
Sorgenti di Informazione
Strategie di Routing
Š Le decisioni di routing sono prese sulla base di
Š routing fisso
Š flooding
Š Routing casuale
Š Routing adattivo
informazioni sullo stato della rete
„
topologia, costi delle linee, carico
Š le informazioni possono essere locali o globali
„
„
un nodo utilizza informazioni sulle lunghezze delle
sue code o della congestione sulle sue linee
i nodi possono scambiarsi informazioni
Š strategie simili sono usate per il routing in una
internet
Š alcuni algoritmi di routing molto semplici non
utilizzano nessuna informazione
27
per i circuiti virtuali la decisione viene presa al
momento della creazione del circuito
28
Routing Fisso
Esempio di Routing Fisso
tabella di
routing
centrale
Š per ogni coppia di nodi determina un percorso
„
percorso a costo minimo che rimane fisso fino a
quando non cambia la topologia della rete
percorso da 1 a 6
1Æ4Æ5Æ6
Š La scelta del percorso è fatta a priori
„
non può basarsi su variabili dinamiche quali il traffico
Š ogni nodo deve conoscere soltanto il prossimo
tabella nodo 1
tabella nodo 4
tabella nodo 5
hop per ogni possibile destinazione
„
„
29
simile ai cammini minimi calcolati da algoritmo di
Dijkstra
ogni nodo costruisce la propria tabella di
instradamento a partire da una matrice globale
30
Flooding
Proprietà del Flooding
Š La sorgente invia una copia del pacchetto ad
Š Il pacchetto è inviato su tutti i percorsi esistenti
nella rete
ogni nodo collegato
Š un nodo che riceve un pacchetto su un
collegamento lo rispedisce su tutti gli altri
Š Le decisioni di routing non richiedono
informazioni sulla rete
„
„
indipendentemente dai guasti sulla rete, se c’è un
percorso tra sorgente e destinazione il pacchetto
arriva
usato per inviare messaggi di emergenza
Š Almeno una copia attraversa il percorso minimo
„
utile per scoprire il percorso da assegnare ad un
circuito virtuale
Š Tutti i nodi della rete ricevono il pacchetto
„
31
32
usato per distribuire informazioni importanti a tutti i
nodi (tabelle di istradamento)
Problemi del Flooding
Esempio di Flooding
Š La destinazione può ricevere più copie dello
il nodo 1 invia un
pacchetto per 6 a tutti
i vicini
stesso pacchetto
„
si assegna un identificativo al pacchetto per scartare
le copie
Š i pacchetti potrebbero essere spediti all’infinito
anche dopo che hanno raggiunto la destinazione
si assegna ad ogni nodo un contatore di hop
„ ogni nodo che instrada il pacchetto decrementa il
contatore
„ quando il contatore diventa 0 il pacchetto viene
buttato
Š Anche con questi accorgimenti il traffico generato dal
33
flooding è molto elevato
i nodi 2, 3 e 4
reinstradano il
pacchetto
„
il pacchetto raggiunge 6
34
Routing Casuale
Routing Adattivo
Š ogni nodo invia il pacchetto ad un nodo vicino
Š Le
decisioni di routing
condizioni della rete
scelto a caso (escluso il nodo di provenienza)
„
Le probabilità potrebbero essere basate sulle velocità
dei collegamenti
„
„
al flooding
informazioni sulla rete
„
perché
non
utilizza
„
potrebbe anche perdersi nella rete
guasti, congestione
lo scambio di informazioni può sovraccaricare la rete
Š L’adattamento può creare problemi se è
genera molto meno traffico
Š il pacchetto segue un percorso non minimale
„
dalle
un carico di elaborazione sui nodi
Š I nodi devono scambiarsi informazioni sullo
stato della rete
molto semplice da implementare
Š simile
dipendono
Š Decisioni di routing complesse che impongono
Š preferenza per i collegamenti più veloci
35
gli altri nodi continuano a
inviare copie
„
36
„
Troppo veloce: crea oscillazioni
Troppo lento: è inefficiente
Vantaggi del Routing Adattivo
Un Algoritmo di Routing
Adattivo
Š Migliora le prestazioni dal punto di vista
Š Instrada un pacchetto verso la linea di uscita
dell’utente
Š consente un maggior controllo della congestione
„
con la coda minore
„
problema fondamentale nelle reti moderne
„
Š Si possono usare dei “valori di predisposizione”
Š Per ottenere questi benefici occorre progettare
buoni algoritmi di routing adattivo
„
„
„
„
algoritmi sono molto complessi e la loro vera
valutazione avviene solo sul campo
Il problema del routing è attualmente oggetto di
ricerca
37
„
„
Š In genere gli algoritmi di routing adattivo
Il nodo 4 riceve un pacchetto per il nodo 6
utilizzano informazioni ricevute da altri nodi
„
„
„
„
Š
39
nodi distanti
9, Q1 = 2
6, Q2 = 3
3, Q3 = 1
0, Q5 = 5
„
Š La
problemi di ritardo degli aggiornamenti e consistenza
delle informazioni
frequenza
di
informazioni è critica
Pacchetto instradato
sul nodo 3
„
scambio tra nodi vicini
Š è possibile scambiare informazioni anche tra
Valore dei Bi e Qi
B1=
B2 =
B3 =
B5 =
Qi = lunghezza coda i
Bi = valore di predisposizione del collegamento i
Aggiornamento delle
Informazioni
Esempio di Routing Adattivo
„
seleziona le linee preferite
si sceglie una direzione diversa solo se la sua coda è
molto più corta
Š Sceglie il nodo che minimizza Qi + Bi
38
Š
bilancia il carico in uscita
la scelta della direzione è indipendente dalla
destinazione e potrebbe essere poco conveniente
„
B3 + Q3 = 4
40
„
aggiornamento
delle
informazioni
aggiornate
con
alta
frequenza
permettono decisioni di routing migliori ma
impongono un carico maggiore sulla rete
serve un compromesso
Algoritmo di Routing Distance
Vector
Esempio
Š Utilizzato nella rete ARPANET
„
Destinazione
predecessore di Internet
1 0 -
Š basato su algoritmo di Bellman-Ford
2
3
4
5
6
Š Ogni nodo ha un vettore della distanze che
41
specifica la distanza minima verso ogni altro
router
Š il nodo
spedisce periodicamente le sue
informazioni a tutti i suoi vicini che possono
aggiornare i loro vettori
∞
∞
∞
∞
∞
-
Nodo 1
42
Esempio
Esempio
Š Ogni nodo calcola la distanza (il ritardo sul
Š Ogni nodo riceve periodicamente informazioni
dai vicini ed aggiorna le distanze
canale) verso i nodi adiacenti
Next hop
Distanza
Destinazione
2
3
4
-
1 2 1
Nodo 1
Nodo 2
1
2
3
4
5
6
43
Next hop
Distanza
0
2
5
1
∞
∞
2
3
4
5
6
0
3
3
∞
∞
3
4
-
1
2
3
4
5
6
5
3
0
9
1
5
1
2
4
5
6
Nodo 3
1
2
3
4
5
6
1
2
9
0
9
∞
1
2
3
5
-
Nodo 4
1
2
3
4
5
6
Distanza
∞
∞
1
9
0
2
3
5
6
Nodo 5
1
2
3
4
5
6
∞
∞
5
∞
2
0
1
2
3
4
5
6
3
5
-
Nodo 6
44
0
2
5
1
∞
∞
2
3
4
-
Nodo 1
2
0
3
3
∞
∞
Distanza
Destinazione
5
3
0
9
1
5
1
2
9
0
9
∞
Dal Nodo 2 Dal Nodo 3 Dal Nodo 4
Next hop
1 0
-
2 2
2
3 5
3
4 1
4
5 6
3
6 10 3
nuova
tabella Nodo
1
Problemi dell’Algoritmo
Distance Vector
Nuove Versioni
Š L’algoritmo converge molto lentamente
Š I successori dell’algoritmo originale hanno
„
„
passa molto tempo dal momento in cui un nodo
cambia le sue informazioni al momento in ci tutti
sono informati ed i percorsi adattati
i nuovi percorsi potrebbero già essere obsoleti
Š Esempio
A
B
cercato di risolvere le pecche dell’algoritmo
originale
Š Considerare anche i tassi di trasmissione
Š Rendere la convergenza dell’algoritmo più
C
ƒ Collegamento B-C si rompe
ƒ B deve buttare le rotte che passano per C
ƒ Siccome A dice che può raggiungere C in 2 hop B
veloce
Š Non sovraccaricare le linee di comunicazione
conclude che può raggiungere C in 3 hop
ƒ Analogamente A, ricevendo un nuovo vettore da B,
45
pensa che può raggiungere C in 4 hop …
46