Università degli studi di Salerno Laurea in Informatica I semestre / Commutazione di Pacchetto Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Svantaggi della Commutazione di Circuito Ad ogni circuito vengono allocate delle risorse Se le risorse si esauriscono non è possibile stabilire una nuova connessione (blocking) L utilizzo delle risorse del circuito non è efficiente 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 Richiede che sorgente e destinazione operino allo stesso tasso Commutazione di Pacchetto Struttura di un Pacchetto Dati trasmessi in blocchi di dimensione fissata, detti pacchetti in genere di dimensione non superiore a ottetti messaggi lunghi vengono spezzettati in più pacchetti ogni pacchetto è instradato singolarmente e indipendentemente dagli altri pacchetti dello stesso messaggio possono seguire lo stesso percorso o percorsi diversi i pacchetti possono arrivare a destinazione in ordine diverso da quello di spedizione il ricevente deve riassemblare il messaggio I pacchetti devono contenere informazioni di controllo per poter essere instradati verso la destinazione simile all indirizzo scritto sulla busta di un lettera Un pacchetto consiste di un intestazione e di un campo dati l intestazione contiene le informazioni di controllo Ogni nodo della rete commuta pacchetti usando la tecnica dello store and forward riceve un pacchetto e lo memorizza legge le informazioni dell intestazione decide su quale linea instradare il pacchetto
Esempio di Trasmissione Vantaggi della Commutazione di Pacchetto 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 uso più efficiente delle linee di trasmissione 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 può collegare sistemi che operano a tassi diversi ognuno trasmette e riceve pacchetti al suo tasso non rifiuta mai una connessione però i pacchetti potrebbero essere ritardati o persi è possibile assegnare priorità ai pacchetti Svantaggi della Commutazione di Pacchetto Tecniche di Commutazione 7 Difficile garantire qualità del servizio Per una telefonata serve una certa velocità di trasmissione garantita Vengono introdotti dei carichi aggiuntivi (overhead) I pacchetti devono viaggiare insieme ad informazioni di controllo per poter essere correttamente istradati La rete può congestionarsi Poiché si accettano sempre pacchetti si potrebbe arrivare ad una situazione di saturazione che blocca la rete 8 La tecnica di commutazione definisce come la rete gestisce il flusso di pacchetti per garantire che vengano instradati e consegnati alla destinazione Due tecniche principali datagram circuito virtuale
Datagram Ogni pacchetto è trattato individualmente non è considerato come parte di un flusso Ogni pacchetto deve contenere informazioni di controllo per poter essere instradato indirizzo sorgente e destinazione, numero di sequenza, ecc. I pacchetti sono instradati in maniera indipendente 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 Viene stabilito un circuito virtuale prima di spedire i pacchetti ogni circuito virtuale ha un identificatore Ogni pacchetto contiene l identificatore del circuito virtuale non ci sono altre informazioni di controllo I nodi della rete instradano i pacchetti in base al circuito virtuale di appartenenza tutti i pacchetti di un messaggio seguono lo stesso percorso e giungono in ordine a destinazione Il circuito virtuale non ha risorse allocate differisce dalle reti a commutazione di circuito Caratteristiche del Datagram Vantaggi protocollo di comunicazione molto semplice più veloce per comunicazioni brevi più flessibile nel gestire situazioni di congestione i datagram vengono dirottati su altri percorsi più affidabile 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 Caratteristiche del Circuito Virtuale Vantaggi maggiore affidabilità è possibile fornire controllo degli errori e del flusso all interno del circuito 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 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 del Pacchetto I pacchetti in genere sono piccoli su Internet i pacchetti sono al massimo. Kb La dimensione del pacchetto influenza il tempo di trasmissione Pacchetti piccoli richiedono tempi di trasmissione inferiori è possibile spedire più pacchetti in parallelo su linee differenti (pipeline) Per ogni pacchetto è richiesto un sovraccarico (overhead) di trasmissione per le informazioni di controllo pacchetti troppo piccoli implicano un uso inefficiente della linea Dimensione dei Pacchetti e Tempi di Trasmissione X invia ottetti di dati ad Y attraverso a e b ogni pacchetto ha ottetti di intestazione pacch. * = 8 pacch. * = pacch. *7 = 77 pacch. 7* = 8 Tipi di Ritardo Confronto tra Prestazioni Il tempo impiegato da un pacchetto per giungere a destinazione consiste di tre componenti Ritardo di propagazione Tempo che impiega un segnale a propagarsi sul canale Tempo di trasmissione Tempo che un trasmettitore impiega ad inviare un pacchetto Ritardo del nodo Tempo che un nodo impiega per compiere le elaborazioni necessarie per smistare i dati creare un circuito richiede un ritardo iniziale commutare i pacchetti implica un ritardo in ogni nodo maggiore per datagram
7 Confronto tra Prestazioni 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 la commutazione di pacchetto introduce ritardi variabili 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 8 Funzionamento Interno ed Esterno Esterno È il funzionamento che vede una stazione che si collega alla rete può essere un servizio orientato alla connessione o non orientato alla connessione Interno È il funzionamento della rete all interno Tutte le combinazioni sono possibili 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 Orientato alla Connessione Servizio esterno a circuito virtuale La stazione chiede di instaurare una connessione logica con un altra stazione ogni pacchetto è identificato come appartenente ad una connessione logica e numerato la rete garantisce che tutti i pacchetti siano consegnati nell ordine giusto Servizio non Orientato alla Connessione Servizio esterno di tipo datagram La rete accetta singoli pacchetti ogni pacchetto deve contenere informazioni per essere instradato indipendentemente i pacchetti possono essere persi o consegnati fuori ordine ogni pacchetto ha l identificatore del circuito virtuale ed il numero di sequenza il datagram ha indirizzo destinazione e numero di sequenza
Operazione Interna a Circuito Virtuale La rete stabilisce dei circuiti tra coppie di nodi 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 Operazione Interna a Datagram La rete tratta ogni pacchetto singolarmente 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 ogni pacchetto ha indirizzo destinazione e numero di sequenza Routing (Instradamento) Indici di Prestazioni La rete deve trovare un percorso per consegnare i pacchetti alla destinazione deve scegliere tra le varie alternative operazione critica in una rete a commutazione di pacchetto ma molto complessa da ottimizzare Il routing deve essere 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 La scelta del percorso su cui instradare un pacchetto dipende da un indice di prestazione 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 BellmanFord Principali indici di prestazioni numero di hop sceglie il percorso che attraversa meno nodi costo minimo il costo può essere il ritardo di propagazione, la somma dei tempi di trasmissione nei nodi, il tasso di trasmissione, l affidabilità del percorso
Esempio di Calcolo delle Rotte percorso minimo da a percorsi minimi da a tutti gli altri nodi costruisce uno spanning tree di cammini minimi con radice Decisioni di Routing Le tecniche di routing dipendono da dove e quando vengono prese le decisioni Quando (in funzione del funzionamento interno) per i circuiti virtuali la decisione viene presa al momento della creazione del circuito la rete può modificare tale decisione per i datagram la decisione è presa per ogni pacchetto trasmesso Dove 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 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 alcuni algoritmi di routing molto semplici non utilizzano nessuna informazione routing fisso flooding Routing casuale Routing adattivo strategie simili sono usate per il routing in una internet 7 8
Routing Fisso per ogni coppia di nodi determina un percorso percorso a costo minimo che rimane fisso fino a quando non cambia la topologia della rete La scelta del percorso è fatta a priori non può basarsi su variabili dinamiche quali il traffico ogni nodo deve conoscere soltanto il prossimo hop per ogni possibile destinazione simile ai cammini minimi calcolati da algoritmo di Dijkstra ogni nodo costruisce la propria tabella di instradamento a partire da una matrice globale Esempio di Routing Fisso tabella di routing centrale percorso da a tabella nodo tabella nodo tabella nodo Flooding Proprietà del Flooding La sorgente invia una copia del pacchetto ad 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 Il pacchetto è inviato su tutti i percorsi esistenti nella 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 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 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 il pacchetto viene buttato Anche con questi accorgimenti il traffico generato dal flooding è molto elevato il nodo invia un pacchetto per a tutti i vicini il pacchetto raggiunge gli altri nodi continuano a inviare copie i nodi, e reinstradano il pacchetto Routing Casuale Routing Adattivo ogni nodo invia il pacchetto ad un nodo vicino scelto a caso (escluso il nodo di provenienza) Le probabilità potrebbero essere basate sulle velocità dei collegamenti preferenza per i collegamenti più veloci molto semplice da implementare simile al flooding perché non utilizza informazioni sulla rete genera molto meno traffico il pacchetto segue un percorso non minimale potrebbe anche perdersi nella rete Le decisioni di routing dipendono dalle condizioni della rete guasti, congestione Decisioni di routing complesse che impongono un carico di elaborazione sui nodi I nodi devono scambiarsi informazioni sullo stato della rete lo scambio di informazioni può sovraccaricare la rete L adattamento può creare problemi se è Troppo veloce: crea oscillazioni Troppo lento: è inefficiente
7 Vantaggi del Routing Adattivo Migliora le prestazioni dal punto di vista dell utente consente un maggior controllo della congestione problema fondamentale nelle reti moderne 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 8 Un Algoritmo di Routing Adattivo Instrada un pacchetto verso la linea di uscita con la coda minore bilancia il carico in uscita la scelta della direzione è indipendente dalla destinazione e potrebbe essere poco conveniente Si possono usare dei valori di predisposizione seleziona le linee preferite si sceglie una direzione diversa solo se la sua coda è molto più corta Sceglie il nodo che minimizza Q i + B i Q i = lunghezza coda i B i = valore di predisposizione del collegamento i Esempio di Routing Adattivo Aggiornamento delle Informazioni Il nodo riceve un pacchetto per il nodo Valore dei B i e Q i B =, Q = B =, Q = B =, Q = B =, Q = Pacchetto instradato sul nodo B + Q = In genere gli algoritmi di routing adattivo utilizzano informazioni ricevute da altri nodi scambio tra nodi vicini è possibile scambiare informazioni anche tra nodi distanti problemi di ritardo degli aggiornamenti e consistenza delle informazioni La frequenza di aggiornamento delle informazioni è critica 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 Distanza Next hop Utilizzato nella rete ARPANET predecessore di Internet basato su algoritmo di BellmanFord Ogni nodo ha un vettore della distanze che 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 Destinazione Nodo Esempio Esempio Ogni nodo calcola la distanza (il ritardo sul canale) verso i nodi adiacenti Distanza Destinazione Next hop Ogni nodo riceve periodicamente informazioni dai vicini ed aggiorna le distanze Distanza Distanza Destinazione Next hop Nodo Nodo Nodo Nodo Nodo Nodo Nodo Dal Nodo Dal Nodo Dal Nodo nuova tabella Nodo
Problemi dell Algoritmo Distance Vector Nuove Versioni L algoritmo converge molto lentamente 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 C Collegamento BC si rompe B deve buttare le rotte che passano per C Siccome A dice che può raggiungere C in hop B conclude che può raggiungere C in hop Analogamente A, ricevendo un nuovo vettore da B, pensa che può raggiungere C in hop I successori dell algoritmo originale hanno cercato di risolvere le pecche dell algoritmo originale Considerare anche i tassi di trasmissione Rendere la convergenza dell algoritmo più veloce Non sovraccaricare le linee di comunicazione