Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Reti, proprietà e Routing Antonio Corradi Anno accademico 2014/2015 Reti Le reti permettono ed attuano le interconnessione tra i diversi sistemi di calcolo Le reti sono il mezzo di interconnessione punto a punto o via comunicazioni globali che coordinano molte entità Un sistema globale è costituito da una o più reti e permette la comunicazione tra tutti i partecipanti Ragionare a livelli nasconde i dettagli in basso Varie reti La rete è misurata dal costo, velocità ed affidabilità di invio dei messaggi, nell’intero nell intero percorso da dove provengono a dove devono essere consegnati Internet Reti e Routing 2 P Parametri t i di performance f delle d ll Reti R ti Le reti si possono misurare in molti modi e secondo molte metriche punto a punto p o via Le reti come mezzo di interconnessione p interconnessioni di molte entità (e.g., multicast e broadcast) Parametri: - tempo di latenza (tempo di ritardo sulla comunicazione) - banda (quantità di dati trasmessi per unità di tempo) - connettività i i à (tipo ( i di iinterconnessione i e topologia) l i ) - costo apparati - reliability reliabilit (affidabilità) - funzionalità (ad esempio, attraverso operazioni sui messaggi come combinazione e frammentazione dei messaggi e ricomposizione) Reti e Routing 3 Interconnessione Completa Possiamo anche pensare di interconnettere tutti con tutti Interconnessione completa, ossia tutti con tutti, se n elementi, n2 connessioni con il costo conseguente di una serie di switch hardware Processori Processori Memorie 1 1 1 switch switch switch switch switch switch switch switch switch switch switch switch 2 2 2 switch switch switch n n n switch switch switch n* n connessioni Processori 1 2 Reti e Routing 4 n Interconnessione via bus (dinamica) Per interconnettere tutti con tutti, possiamo usare un unico mezzo di interconnessione, cioè un bus dinamico Bus unico: se qualcuno lo occupa, gli altri devono aspettare (il mezzo è unico i e va usato t b bene iin accesso)) Processori Memorie 1 2 Processori 1 1 1 2 2 2 m n Memorie m n n*m connessioni Reti e Routing 5 Topologia di interconnessione Le reti possono adottare molte topologie, o statiche (reti dirette) o dinamiche (reti indirette) Le reti dirette statiche prevedono architetture non variabili, fissate definite, fissate, definite e regolari di interconnessione Reti e Routing 6 Topologie speciali Le reti possono essere descritte da molti modelli topologici Un ipercubo è una topologia regolare che prevede un grado di connettività crescente Molto usata in architetture parallele per garantire una raggiungibilità elevata in un numero limitato di passi intermedi ipercubo di dimensione 4 (con due nodi per dimensione) ring (con due nodi solamente), mesh (4 nodi totali) In genere, se un ipercubo ha due nodi per ogni dimensione Il numero di nodi totali è 2n Reti e Routing 7 Switching e interconnessioni dinamiche A volte, la interconnettere di diverse entità deve ottimizzare l’uso delle risorse e metterle a disposizione in modo dinamico di chi manifesta la necessità di uso Lo switching permette di dedicare le risorse a più richieste in tempi diversi e non mantenerle allocate ad un unico obiettivo di connessione Nell caso del N d lb bus, un’unico ’ i collegamento ll t e banda b d viene i ad d essere usato per veicolare comunicazioni diverse (evitando interferenza) Lo switching permette di prevedere un impegno anche condiviso delle risorse per consentire di passare i dati in caso di nodi non in visibilità in modi diversi Nel caso di messaggi gg diversi, p possono essere frammentati in p pezzi corti che possono viaggiare insieme su tratte di reti disponibili (caso di IP Internet e dei datagrammi) Reti e Routing 8 Reti dinamiche di interconnessione Le interconnessioni possono anche variare nel tempo, per varie ragioni (soprattutto per limitare il costo) Reti Omega, o Omega network: reti a stage che interconnettono p elementi con log2(p) stage; ogni stage ha p input e p output elementi, Comandando gli stage composti da switch binari, si ottengono dinamicamente le p potenziali interconnessioni desiderate Processori Processori primo livello secondo livello terzo livello ultimo livello Reti e Routing 9 Comunicazione La comunicazione può quindi usare modi diversi - collegamenti statici dedicati (canali fisici) - collegamenti switch da stabilire e controllare per dare supporto a comunicazioni specifiche (canali virtuali) - nessun collegamento, ma uso della comunicazione da parte di pacchetti che si possono muovere liberamente (senza garanzie di servizio) i i ) e usando d lle risorse i lib libere iin modo d di dinamico i Nel caso delle reti, si possono avere molte forme di switching ossia molte forme di possibile condivisione in contrasto uso esclusivo delle risorse di comunicazione In caso di uso esclusivo, esclusivo le risorse sono prenotate ed acquisite per tutto la sessione di uso In caso di switching, le risorse richieste contemporaneamente, possono essere fornite f i a soddisfare ddi f richieste i hi diverse di contemporaneamente Reti e Routing 10 Switching Per interconnettere diverse entità su reti di varie topologie, possiamo avere o canali ((o circuiti statici)) dedicati,, p o ricorriamo allo switching di pacchetti, che può avvenire - attraverso canali creati dinamicamente (circuiti virtuali) cioè risorse dedicate nei nodi intermedi - essere del tutto libero senza stabilire connessioni di alcun tipo (usando frammentazione in datagrammi) reti a mesh switching circuito switching packet datagramma circuito virtuale packet frame Reti e Routing 11 cell Tipi p di dati A livello applicativo possiamo distinguere diversi nomi per i dati che possono essere scambiati in base alla dimensione - cella - frame - pacchetto - datagramma - messaggio insieme di 53 byte usato in ATM unità del livello data link messaggio a livello network con dimensione da 100 a 1000 byte associato alla comunicazione senza connessione a livello applicativo reti a mesh switching circuito switching packet datagramma circuito virtuale packet frame cell Reti e Routing 12 Circuit Switching Ossia avere canali dedicati ((o connessioni statiche)) predeterminati e mantenuti anche se non usati Switching di circuito (tecnica pessimista e statica) Si mantiene un canale end-to-end per un atteso flusso di bit (anche più circuiti multipli per supportare il flusso che diventa fortemente garantito) • impegno p g di risorse anche senza flusso di dati ((costo elevato)) • multiplexing inverso: possibile anche combinare N canali fisici per un canale logico utente schema molto statico e proattivo Esempio: ISDN Reti e Routing 13 Circuiti virtuali condivisi Uso di più circuiti virtuali che possono permettere la condivisione delle risorse (condivisione ottimista) perottenere un migliore uso del sistema di comunicazione C di i i Condivisione di circuiti i iti virtuali i t li (tecnica (t i dinamica) di i ) Più connessioni end-to-end e trasmissione dati a pacchetti distinguendo g attraverso virtual circuit identifier ((VCI)) ossia identificatori locali unici negli intermedi per le diverse connessioni In out link/VCI li k/VCI li link/VCI k/VCI 1/1 3/20 1 Dest. Dest B VCI 1 PS1 3 3 2 In out link/VCI link/VCI 2/1 3/20 A D Dest. C VCI 1 I In out link/VCI link/VCI 3/20 1/42 1 PS2 Dest. A VCI 42 B 2 In out link/VCI link/VCI Reti 3/20 2/42 Dest. D VCI 42 e Routing 14 C Switching a datagrammi Nessun circuito o canale, ma solo datagrammi, unità di trasmissione, che possono essere mandate tra nodi vicini (politica ottimista) mirando ad ottenere il migliore uso del sistema di comunicazione Comunicazione a datagrammi (tecnica ottimista) Con i datagrammi, non si garantisce nessuna connessione end-to-end, e quindi nessun controllo flusso, nessuna garanzia (no ordine, no QoS) ogni entità da inviare (datagramma) porta indirizzo del ricevente e viene smistato in modo indipendente; si possono introdurre molti ritardi e jitter 1 1 2 1 3 2 1 3 2 packet switch 2 1 Reti e Routing 15 Switching a messaggi e pacchetti Uso di messaggi di dimensione diversa (messaggi come entità applicative) pacchetti di dimensione fissata e tutti uguali g Uso di p (frammentando messaggi applicativi) 1 2 messaggio e pacchetti 3 1 2 3 1 2 3 host A a) vari passi intermedi di pacchetto b) network Reti e Routing 16 host B c) d) time Signaling o controllo Se dobbiamo g gestire connessioni ((rete telefonica), ) abbiamo necessità di operazioni per preparare la comunicazione (stabilire la connessione), mantenerla e garantirla, e chiuderla al termine P Possibilità ibilità di Segnalazione S l i (o ( Controllo) C t ll ) • in-band: usando gli stessi cammini e risorse per i i dati • out out-of-band: of band: cammini separati per il controllo e il signaling Signalling rappresentato con piani di specifica management • Piano User plane control per i protocolli utente plane user • Piano di Controllo plane controllo connessione • Piano di Management stabilire e gestire il canale Reti e Routing 17 Reti? Di che tipo? Spesso i sistemi di interesse sono costituiti da reti molto differenziate …(ossia reti destinate a interconnettere entità geograficamente molto eterogenee) • Wide Area Network - WAN per reti geografiche anche a copertura molto ampia (globale) • Metropolitan M t lit Area A N Network t k - MAN area di copertura di una città • Local Area Network - LAN reti di dimensione limitata e con forte limitazione sui partecipanti • Personal Area Network - PAN reti di dimensione veramente limitata e ad uso di utenti singoli con tecnologie g ad hoc e p propagazione p g ancora p più limitata ((reti wireless) Reti e Routing 18 Reti Locali Le reti locali, o LAN, sono state usate molto come banco di prova e di esperienza dei protocolli, oltre che ampia palestra di uso LAN caratterizzate da - alta velocità ed ampia banda di trasmissione - facilità di broadcast - bassa b probabilità b bilità di errorii A livello di analisi possiamo partire ad analizzare le LAN, - topologie - mezzo trasmissivo (wired e wireless) - controllo di accesso Anche se ovviamente molto dell’interesse industriale è non solo sulle LAN ((e PAN), ) ma sulla loro interconnessione in modo efficace Reti e Routing 19 Topologie In reti g generiche ((WAN)) si trovano mesh, reti magliate g e ridondate, come nel sistema telefonico, Public Switch Telephone Network (PSTN) I LAN, In LAN topologie t l i semplici: li i - stella, come i PABX (Private Automatic Branch Exchange) - bus anche un insieme di bus interconnessi - ring (anello) hub ossia un bus inglobato in una unica unità centrale di - hub, connessione, simile al nodo centrale di una stella Le LAN presentano una tendenza ad evolvere verso sistemi con connessioni più dinamiche, ridondate per ottenere più alte prestazioni t i i Reti e Routing 20 Mezzi trasmissivi Le reti LAN hanno considerato cablaggi semplici - doppino, schermato e non schermato - cavo coassiale,, usando varie bande ((base o estesa)) cavo sottile o grosso - fibra ottica, con propagazione diversa 10BaseT 100BaseT 1000BaseX banda 10Mb/s 100Mb/s 1000Mb/s CAT5 UTP 100m+ 100m 100m STP/coax 500m 100m 25m fibra multi multi-mode mode 2Km 412m fino a 2Km 550m fibra single-mode 25Km 20Km 5Km (10Km) Le LAN utilizzano L tili anche h sistemi i t i e ttecnologie l i non cablate, bl t come Wi-Fi (IEEE 802.11b) Reti e Routing 21 Controllo d d’accesso accesso Tipici controlli di accesso sono (standard IEEE 802.x): CSMA/CD (Ethernet), standard 802.3 p Access/Collision Detection Carrier Sense Multiple accesso ottimistico e dinamico al bus, in caso di impegno si deve avvertire la collisione e ritrasmettere con intervallo random T k (control Token ( t l token t k o token t k ring), i ) standard t d d 802.5 802 5 accesso pessimistico garantito da un ring in modo statico: un solo possessore del token ha il diritto di trasmettere; si forza il passaggio del token da un vicino ad un altro dopo un intervallo Slotted ring (anello a slot), standard 802.4 accesso pessimistico usando messaggi che circolano in modo proattivo sul ring; anello come insieme di contenitori di messaggi circolanti i l ti ((o slot) l t) che h possono essere riempiti i iti se vuoti ti Reti e Routing 22 I t Interconnessione i tra t reti ti Possiamo avere molti apparati per interconnettere (e separare!) entità a diversi livelli OSI Ripetitori: rigeneratori di un segnale a livello fisico, superando e rimediando ad un’eventuale livello di attenuazione (livello fisico OSI) Un ripetitore non effettua alcuna separazione B id Bridge: apparati ti che h collegano ll reti ti di diverse, con capacità ità di separazione e maggiore intelligenza (livello data link) Router (o gateway): apparati e sistemi per il passaggio da una rete ad un'altra con obiettivo di supportare la comunicazione dei messaggi ed il routing (livello network) Protocol converter: sistemi che collegano reti diverse a più alto livello con protocolli diversi di interconnessione (operazioni dal livello di trasporto in su) Reti e Routing 23 Bridge (livello OSI 2) Un bridge collega e separa due (o più) reti a livello di data link, controllando il passaggio e la separazione delle due reti, ad esempio passando e bufferizzando i frame dall'una all'altra, solo se necessario, e trattando anche situazioni di errore Vantaggi p effettiva delle reti • separazione • bufferizzazione dei frame (trattando il caso di overflow) • capacità di gestire controlli di accesso diversi • monitoring della rete: della performance ed affidabilità Svantaggi • ritardo di bufferizzazione • bufferizzazione limitata e non infinita • trasformazione dei frame (con controllo) Reti e Routing 24 Tipi di Bridge I bridge g possono lavorare in molti modi diversi Bridge multiporta, collegano più segmenti di rete diversi Bridge trasparenti, che operano in modo invisibile agli utenti che devono collegare solo le entità interessate, ossia bloccare i pacchetti che devono rimanere locali e fare passare solo ciò che deve transitare Si parla di routing isolato, anche se siamo a livello di frame, e dobbiamo avere previsto un database di forwarding • informazioni della tabella come database in PROM • bridge b id con capacità ità di apprendimento di t osservando d il ttraffico ffi Il bridge impara la allocazione vedendo il traffico della rete e dai vicini (il tutto è ripetuto quando è necessario coordinarsi) Reti e Routing 25 Bridge vari Un bridge può fare learning delle esigenze FASE di LEARNING iniziale. Alla inizializzazione (ossia all’inserimento su una rete), il bridge comincia a controllare le esigenze di comunicazioni nel sistema corrente e si adegua adegua, facendo inizialmente passare tutto, poi cominciando a filtrare… per situazioni diverse e con molti bridge g Possibilità di conflitti p In caso di più bridge, con interconnessioni varie, si tenta il coordinamento t dei d i di diversii b bridge id Algoritmo spanning tree - i bridge si scambiano messaggi per trovare i costi più bassi di collegamento e costruire un albero unico che percorre tutta la topologia di collegamenti Si sceglie g un bridge g radice tra tutti e ognuno g degli g altri trova il cammino minimo per collegarsi a quello (passi e velocità) Reti e Routing 26 ROUTE e ROUTING (Livello OSI 3) Il problema del cammino dal sorgente al destinatario in caso di comunicazione viene affrontato dal routing attraversando un insieme di nomi intermedi (dinamica) Necessità di mapping efficiente ROUTING come la identificazione e l’uso di algoritmi di routing Proprietà del routing - correttezza - semplicità - robustezza (tolleranza ai guasti e variazioni) - stabilità della soluzione - ottimalità - fairness (giustizia) Reti e Routing 27 CLASSIFICAZIONE ROUTING Classificazione delle strategie di ROUTING - GLOBALE / LOCALE (ISOLATO) - STATICO / DINAMICO - ADATTATIVO / NON ADATTATIVO anche non deterministico / deterministico In caso di routing locale, si attuano decisioni a basso costo ma al limitata visibilità; il globale richiede tabelle per mostrare lo stato di tutte le interconnessioni possibili In caso di routing statico si usano cammini fissi e globali di propagazione che invece possono variare nel routing dinamico propagazione, In caso di routing non adattativo i cammini sono fissi e non variano,, in caso adattativo si sfruttano anche le risorse libere in modo dinamico Reti e Routing 28 Strategie di ROUTING Il routing g può impiegare g politiche molto differenziate e ci sono esempi di ogni aspetto, nei sistemi che sono stati implementati con diverse dimensioni di utilizzo Per la classificazione si possono considerare molteplici attributi e ruoli - chi prende le decisioni di routing - chi attua le decisioni di routing - il momento delle decisioni di routing - il controllo del routing adattativo Reti e Routing 29 Chi prende le decisioni di routing Sulle strategie g di routing, g le decisioni prese da diverse entità al sorgente (source) Il mittente specifica l'intero cammino (in modo stretto e completo o solo parzialmente); gli altri devono rispettare la decisione (statica per il datagramma) hop by hop hop-by-hop La decisione non viene guidata dal mittente, ma decisa ad ogni passo e ad ogni p g intermedio in modo indipendente p il sorgente non conosce il cammino e neanche gli intermedi che comandano solo la propria uscita broadcast Si invia ad ogni possibile entità ricevente il messaggio ed ognuno lo riceve (costoso): non ci sono decisioni per il mittente ma consegna a tutti (eliminando duplicati) Reti e Routing 30 Chi attua le decisioni di routing Sulla attuazione delle decisioni di routing, dobbiamo considerare il ruolo dei router intermedi che provvedono funzionalità opportune Le decisioni possono essere attuate da agenti intermedi U i i e centralizzati Unici t li ti ( (usato t raramente) t ) Un unico gestore del routing prende le decisioni: questo consente di ottenere anche decisioni ottimali sull’intero sull intero sistema distribuiti g di controllo ma una serie di entità Non esiste un unico luogo distribuite nell’intero sistema e che si occupano del routing, in modo più o meno coordinato - locali l li (isolati) (i l i) - parzialmente distribuiti (propagando le variazioni di strategia) - coordinati con scambio di informa informazioni ioni contin continuo o Reti e Routing 31 Il momento delle decisioni di routing Per l’aspetto di tempo delle decisioni di routing, g si considera routing g statico vs dinamico statico o fisso o deterministico La strategia di routing rimane fissata nel sistema e non cambia dinamico o adattativo L’algoritmo di routing evolve e si può adattare alle informazioni di stato del sistema, in modo da ottenere un costante adattamento alla situazione corrente Superando problemi e guasti non previsti ad esempio Controllo routing adattativo prevedere una costante interazione In caso di adattività, si deve p con le risorse impegnate Reti e Routing 32 St bili il route Stabilire t da d seguire i Per la P l parte t di strategia t t i che h id identifica tifi il cammino, i sii di distingue ti statico vs dinamico Dal punto di vista della comunicazione comunicazione, possiamo avere Switching di Pacchetto o uso di Circuit Switch ossia canali predeterminati Def. cammino Statica Dinamica Circuit-Switching Packet Switching Packet-Switching Reti e Routing 33 S lt del Scelta d l cammino i La scelta del cammino tra quelli possibili in modo fissato o meno, adattandosi o meno allo stato del sistema Selezione cammino Si noti che normalmente si considerano solo cammini minimi (ottimi) Deterministica In alcuni casi si possono anche prevedere cammini non minimi facendo misrouting Minimo Adattativa Non-minimo Parzialmente Adattati a Adattativa Totalmente Adattativa Reti e Routing 34 Famiglie g di Algoritmi g di routing g In generale per fare istradamento, funzione fondamentale del livello OSI 3, 3 si possono scegliere molte strategie ed implementazioni diverse globale, e non solo… Facendo riferimento ad Internet, come caso g abbiamo la scelta tra molte famiglie: Algoritmi isolati, isolati senza tabelle e coordinamento tra i router Random, Patata bollente, … Algoritmi globali, globali con tabelle che ogni router mantiene e che prevedono forme di coordinamento tra i router Distance Vector,, Link State Queste due famiglie, in ordine storico, prevedono tabelle su ogni router e qualche forma di propagazione di informazioni, in caso di variazione i i Reti e Routing 35 Algoritmi g tipici p di routing g Si adottano tabelle di configurazione (tabelle di routing locali ai gateway) Algoritmi GLOBALI propagano globalmente informazioni in gateway). caso di modifica delle tabelle (scarsa scalabilità in caso di variazione) Algoritmo Al it SHORTEST PATH FIRST di Dijkstra Dijk t Ogni nodo costruisce un grafo completo dell'intera interconnessione stabilendo una metrica di distanza in base a pesi sione, con successive iterazioni, si calcolano le distanze minime per ogni nodo Il traffico di routing segue il cammino più corto determinato Svantaggi / Vantaggi - Costo della propagazione delle valori in caso di variazione (e in caso iniziale di creazione delle stesse) - Possibilità P ibilità di usare all meglio li tutte t tt le l risorse i esistenti i t ti Reti e Routing 36 Implementazioni p degli g algoritmi g Distance Vector dinamico single-path Per ogni gateway, gateway la tabella mantiene la sola distanza in passi e il primo passo di uscita per il routing. Le tabelle sono minime e consentono un istradamento statico facile Problemi nei cambiamenti e nella propagazione delle variazioni Link State dinamico multi-path Ogni nodo mantiene tutto il grafo e tende a limitare la propagazione delle informazioni, rendendo facili anche cammini multipli V i i i sono propagate Variazioni t iin b broadcast, d t spesso uso di spanning i tree Algoritmi Spanning tree statico single-path Si tende ad identificare un albero di interconnessione tra tutti i nodi della rete, consentendo la eliminazione dei cicli e determinando cammini senza problemi in modo globale Reti e Routing 37 Altri algoritmi a cammini multipli Sono interessanti ed usati anche algoritmi MULTIPATH ossia strategie che permettano di utilizzare anche più possibili percorsi per uno stesso destinatario Ogni nodo mantiene una tabella propria, con più possibilità per ogni destinazione, considerando più cammini possibili per la route tra due nodi Scelta random (probabilistica) del cammino, partendo dai cammini determinati per primi (anche con bilanciamento di carico) Vantaggi - Bilanciamento del traffico di routing - Affidabilità Affid bilità iin caso di guasti ti ((anche h multipli) lti li) Reti e Routing 38 Algoritmi adattativi Algoritmi BACKWARD LEARNING Ogni messaggio porta l'indicazione del mittente e, quindi, consente g messaggio gg di inferire la distanza del mittente stesso ad ogni I nodi intermedi possono stimare la distanze e la topologia La fase iniziale di apprendimento dell'algoritmo deve lavorare in base ad una politica, da cui dipendono le stime successive La conoscenza d L della ll topologia l i d della ll interconnessione i i completa l (globale) > permette di evitare situazioni di ciclo o livelock in cui un messaggio si perde in passaggi inutili ripetuti Algoritmi globali costosi in ambiente dinamico Reti e Routing 39 Algoritmi isolati ed adattativi Strategie dinamiche indipendenti dalla topologia di interconnessione che si basano su informazioni solo locali (isolati) o solo di vicinato (distribuiti e locali) possono essere molto efficaci Mancano del tutto i costi delle fasi di coordinamento e si limita fortemente overhead in caso di variazioni, e di cammini diversi Si possono introdurre problemi per la perdita della visibilità della topologia e del coordinamento: sono possibili cicli o livelock Algoritmo Random, scelta casuale dell’uscita Al Algoritmo it Patata P t t Bollente B ll t Un messaggio viene smistato (se non a destinazione) attraverso la coda di uscita più scarica del nodo Non si può predire il numero di passi per arrivare a destinazione: il numero di hop ed i cammini dipendono dal traffico Reti e Routing 40 Algoritmi isolati Nel caso si conosca la topologia, si possono sovrapporre anche informazioni di direzione per raggiungere il destinatario (ad es. su una mesh) Si noti che un algoritmo isolato adattativo trova il ricevente anche se questo si muove! Algoritmo FLOODING Un messaggio viene smistato (se non è arrivato a destinazione) attraverso tutte le code di uscita del nodo (nella direzione giusta) Uso di contatori per limitare i passi di un messaggio Uso di identificatori per evitare generazione senza fine (per quanto tempo si mantiene lo stato sui nodi?) Reti e Routing 41 Algoritmi ulteriori isolati Algoritmo g RANDOM Ogni g messaggio gg viene smistato, se non a destinazione, usando una coda di uscita scelta a caso (non input) Teorema per sistemi ideali di interconnessione (a messaggi) Algoritmo di routing ottimale in un sistema dinamico con un numero infinito di nodi è una combinazione del routing random se M mittente e D destinatario, si determina in modo random un nodo R (diverso da M e D) e si manda il messaggio in due hop: la prima fase da M ad R e la seconda da R a D In sistemi globali le tabelle devono essere aggiornate spesso: algoritmi senza tabelle limitano l'overhead e possono consentire di raggiungere destinatari anche in movimento IIn sistemi i t i molto lt di dinamici i i e a rapida id variazione, i i ma con indicazioni i di i i di località per le entità da raggiungere, si cercano di determinare direzioni di orientamento o p polarizzazione che p possano orientare le decisioni non informate attuate da algoritmi locali Reti e Routing 42 Problemi nel routing Alcune situazioni sono critiche per il supporto al routing: Congestione, Deadlock, Livelock Congestione Le entità diverse devono predisporre risorse per evitare i problemi C’è necessità di controllare gli asincronismi che possono impegnare le risorse e mantenerle È opportuno t un buon b controllo t ll dei d i buffer b ff per evitare it il problema bl - si inviano indicazioni al mittente (messaggi di choke) - si scartano tutti i messaggi successivi (tecnica reattiva) - si prevede un numero massimo fisso di messaggi circolanti (tecnica proattiva) Reti e Routing 43 Ancora situazioni da evitare Deadlock impegno g totale dei buffer con blocco critico Avoidance si numerano i buffer e si acquisiscono in ordine Prevention si mantengono buffer per fare scambi in caso di saturazione Recovery si tratta il problema quando rilevato Li l k con messaggii che Livelock h continuano ti a permanere nell sistema i t senza giungere a destinazione (persi in cicli o altro) Soluzioni a priori si mantiene il cammino percorso e si evitano i loop Soluzioni a posteriori si elimina il messaggio oltre un certo numero di passi (time-to-live del messaggio) Reti e Routing 44 Livello Network: Indirizzi IP Per considerare un livello, livello dobbiamo partire dal sistema dei nomi INDIRIZZAMENTO GERARCHICO a livello di IP Ogni connessione di un host a una rete ha un indirizzo IP unico di 32 bit, costituito di due parti, NETID, HOSTID NETID un identificatore di rete e HOSTID un identificatore di host La distinzione nelle due parti, in gerarchia, facilita il routing ll’indirizzo indirizzo individua le connessioni nella rete virtuale - se un host usa una connessione diversa nella stessa rete, cambia il suo IP, in particolare hostid (non in dipendenza dalla locazione di accesso) - se un host h t sii collega ll iin una rete t di diversa, anche h con lla stessa t connessione, cambia il suo IP, in particolare il netid, ma può mantenere hostid - host con diverse connessioni hanno più indirizzi (multiporta per gateway) Reti e Routing 45 Livello Network: Indirizzi IP STANDARD I nomi di IP sono dati di autorità dal Network Information Center (NIC) che assegna i numeri di rete, cioè informazione usata nei gateway per routing La parte di rete quindi è assegnata di autorità La p parte di nodo in IP è soggetta gg a 3 classi p primarie ((in base al numero di reti e al numero di host collegabili) e differisce per numero di bit delle singole parti: analizzando un indirizzo IP si può distinguere la classe in modo automatico Le WAN hanno generalmente un IP di classe A 1 classe A 0 7 8 NETID 31 HOSTID Le LAN hanno un IP di classe B o C 1 2 classe l B 1 0 16 NETID 31 HOSTID 1 2 3 10 1NETID 0 24 NETID 31 HOSTID HOSTID classe l C Reti e Routing 46 Livello Network: Indirizzi IP Per considerare un livello, livello dobbiamo partire dal sistema dei nomi Parliamo di protocollo IPv4 e nomi IP relativi (a 32 bit): ogni protocollo deve definire i p p propri p nomi Un nodo è qualificato come Rete e Host, per un totale di 32 bit Tre classi di indirizzi fisici (a byte) suddivisi in parte Network e Host 0 1 2 3 4 netid classe A 0 classe B 1 0 8 16 24 hostid hostid netid classe l C 1 1 0 netid tid classe D 1 1 1 0 classe E 1 1 1 1 0 31 h tid hostid indirizzo multicast indirizzi riservati ad usi futuri Reti e Routing 47 Livello Li ll Network: N t k Indirizzi I di i i IP Formati delle tre classi di indirizzi fisici (a byte): Network e Host classe A: Network Host es: arpa 10 0 7 bit 24 bit 1.#.#.# .. 126.#.#.# (127 riservato per usi locali) classe B: Network Host almanet 137.204.#.# 10 14 bit 16 bit 128.0.#.# .. 191.255.#.# classe C: Network Host cnrbologna 192.94.70.# 110 21 bit 8 bit 192.0.0.# .. 223.255.255.# classe D: 224.#.#.# 1110 28 bit multicast .. 239.#.#.# Reti e Routing 48 Livello Li ll Network N t k Cominciamo a considerare la struttura del datagramma IP Un DATAGRAMMA IP è la unità base di informazione che viaggia in Internet Suddiviso in due parti principali: parte intestazione parte dati DATAGRAM HEADER DATAGRAM DATA da 20 byte ... IP non specifica il formato dell'area dati Ma prescrive in modo preciso la parte di header, che ovviamente viene a contenere le parti dei protocolli superiori e ad essere incapsulata in un header (e footer) dei frame di più basso livello Reti e Routing 49 Formato dell'Header dell Header e Dati IP In un datagramma: Header (minimo 20 byte, max 64), Dati 0 4 8 16 19 24 31 VERS HLEN SRV TP TOTAL LENGHT IDENTIFICATION FLAGS FRAGMENT OFFSET TIME TO LIVE PROTCL HEADER CHECKSUM SOURCE SOU C IP ADDRESS SS DESTINATION IP ADDRESS IP OPTIONS (if any) PADDING DATA ... 0 3 PRECEDENCE Do not fragment D SeRVice TyPe T R C FLAGS More fragments Parole 1 2 3 4 5 (6..16) 6 UNUSED UNUSED Reti e Routing 50 Campi p dell'Header IP 5 parole di 32 bit (o più, se attive opzioni) 1) versione del protocollo, lunghezza header e totale, service type - precedenza (0-7) - tipo ti di ttrasporto t desiderato d id t (bit di th throughput h tT T, di affidabilità ffid bilità R R, di ritardo D, di costo C) 2) identificazione del datagramma (usato per ricomporre i frammenti) - flag (3 bit: non frammentare e altri frammenti) e frammentazione (13 bit moltiplicato x8) 3) time to live, tempo di permanenza del datagramma - tipo di protocollo superiore (TCP 6, UDP 17, ICMP 1, ...) - checksum per il controllo (complemento a 1 a 16 bit) 4-5) indirizzo IP sorgente e destinazione oltre) opzioni: monitoraggio e controllo rete Reti e Routing 51 Header IP In g generale, IP protocollo senza qualità I datagrammi viaggiano in modo indipendente e autonomo (anche come sottoparti o frammenti) IP il protocollo di base di Internet IP specifica anche il routing S Service i type, t di i iin: diviso - precedenza (primi tre bit service type) - indicazioni di preferenza di scelta tra route - D minimo delay - T massimo throughput - R massima reliability - C minimo costo - un bit non usato (1 bit non usato, 7 utili) Reti e Routing 52 IP e QoS (Quality (Quality of Service) In generale, IP protocollo base di Internet senza qualità IP è un protocollo best-effort a basso costo e non garantisce Quality of Service QoS evoluzioni l i i iin atto tt per garantirlo ti l … Service type, anche come codepoint, ossia possibilità di identificare raggruppamenti del traffico e di dividere in classi il traffico - tipo di traffico (ultimi due bit del service type) precedenza tra classi di traffico - indicazioni di p - tre classi diverse distinte dai bit finali (0 11 01) - relativa precedenza Esempio: x x x x x 0 Le classi differenziate permettono di dividere, distinguere e classificare il traffico Reti e Routing 53 Livello IP IPv4 specifica il servizio accoppiato al relativo protocollo Il servizio è quello che ci impegniamo a fornire ai livelli superiori Il protocollo è la specifica di come si deve lavorare nella realizzazione li i Per il SERVIZIO si specifica che il tutto è: connectionless: ciascun pacchetto è trattato indipendentemente dagli altri. Diversi pacchetti possono seguire percorsi diversi ed essere consegnati fuori ordine unreliable: la consegna non è garantita, cioè non si effettua alcun controllo sull sull'avvenuta avvenuta ricezione di un pacchetto best-effort: l'inaffidabilità del trasferimento è dovuta a cause esterne e non al software di rete; nessun messaggio di errore è previsto per il richiedente in caso di non inoltro o di perdita Reti e Routing 54 P t Protocollo ll IP Il protocollo IPv4 prescrive come si deve realmente implementare l’instradamento dei datagrammi, obiettivo fondamentale del livello prescrive p per ogni g nodo che deve comportarsi p Il PROTOCOLLO p come un router, ossia fare routing, due funzioni principali da svolgere - elaborazione l b i del d l messaggio i del d l lilivello ll superiore i nell fformato t per la trasmissione • incapsulamento / frammentazione il datagramma deve contenere le informazioni di livello superiore, eventualmente i dati devono essere frammentati ((se possibile)) - instradamento (routing) cioè: • traduzione da indirizzo logico IP a indirizzo fisico di frame (ARP) • scelta della porta di uscita (in base al percorso) Reti e Routing 55 Invio I i di Datagramma D t IP Un datagramma deve essere smistato da un nodo ad un nodo successivo secondo le normali regole di incapsulamento g nodo deve incapsulare p ogni g datagramma g in un frame di livello Ogni data link datagramma header area dati frame frame header area dati Ovviamente O iamente questo q esto a avviene iene anche per ogni singolo datagramma datagramma, e senza legami tra i diversi frammenti e datagrammi, che vengono trattati in modo indipendente p dalla driver di routing g ((FIFO)) Reti e Routing 56 Datagramma IP Un datagramma deve essere mosso da un nodo ad un altro e ogni intermediario può operare sul messaggio, a partire dal mittente g nodo p può frammentare il datagramma g Ogni - DECOMPOSIZIONE al mittente - DECOMPOSIZIONE ad ogni intermedio - RICOMPOSIZIONE solo al destinatario header datagramma data 1 data 2 header frammento data 1 frammento 1 header frammento data 2 frammento 2 header frammento data 3 data 3 frammento 3 Reti e Routing 57 Frammentazione Datagramma IP I datagrammi g devono essere incapsulati nei frame di livello data link su cui transitano in base alla MTU (maximum transfer unit), ossia la lunghezza massima dei frame a livello fisico (di Internet cioè 2 OSI) Come si può determinare la dimensione massima del datagramma dalla partenza all all’arrivo? arrivo? 1°possibilità: calcolo statico da parte del mittente g incapsulato p nel singolo g frame fisico ((dimensioni del il datagramma datagramma minore o uguale alla più piccola MTU presente in Internet) - a livello li ll utente t t ttrasmissione i i con ttempii molto lt llunghi hi per il ttrasferimento f i t di un messaggio (se MTU molto piccole) - efficiente solo p per reti fisiche con MTU a lunghezza g elevata ed omogenea Reti e Routing 58 Frammentazione F t i Datagramma D t IP 2 possibilità: decisione passo passo (QUELLA USATA) 2° MTU scelta indipendente dalle tecnologie sottostanti per rendere efficiente la comunicazione a livello utente ((fissata tipicamente p a 64Kbyte) Il pacchetto originale viene suddiviso in frammenti su reti con MTU a di dimensione i iinferiore f i ((a 64Kb 64Kbyte) t ) La frammentazione del pacchetto può avvenire ad ogni passo nelle reti intermedie e potendo fare solo al destinatario la ricomposizione o riassemblaggio dei diversi frammenti che possono essere stati attuati durante l’instradamento Il destinatario riceve i diversi frammenti, li identifica in base allo stesso ID e li mette insieme in base all’offset: se l’intero datagramma è stato ricevuto, ricevuto allora viene considerato; altrimenti altrimenti, il tutto viene eliminato Reti e Routing 59 OPZIONI: Monitoraggio e controllo rete Alcune opzioni interessanti interessanti, con informazioni diverse memorizzate sulla parte di opzioni, sono: record route: genera una lista degli indirizzi IP dei gateway che il frame ha attraversato (al massimo 9 intermedi) > otteniamo una indicazione dei gateway intermedi attraversati dal datagramma timestamp: genera una lista dei tempi di attraversamento sugli intermedi > possiamo ottenere una indicazione dei tempi di passaggio e della permanenza del datagramma nei gateway intermedi (vedi mail) per attuare anche azioni correttive e cercare strade diverse Reti e Routing 60 OPZIONI Source OPZIONI: S R Route t source route o instradamento al sorgente: il sorgente fornisce indicazioni sul cammino da seguire nel routing del frame • strict source: il datagramma porta nella parte opzione una indicazione di tutti i gateway intermedi da attraversare • loose source: indicazione di un insieme di percorsi da attraversare non in modo contiguo ed unico Numero massimo di parole nella parte opzione del datagramma limite al controllo del percorso: al massimo spazio per registrare 9 passi Reti e Routing 61 Famiglie di Algoritmi di routing Due famiglie principali globali, basate su tabelle, e dinamiche (le tabelle possono cambiare) Distance Vector dinamico con overhead Per ogni gateway, la tabella mantiene la sola distanza in passi e il primo p p passo p di uscita per p il routing. g Le tabelle sono minime e consentono un istradamento statico facile Problemi nella costruzione delle tabelle, nei cambiamenti e nella propagazione delle variazioni Link State dinamico con overhead O i nodo Ogni d mantiene ti t tt il grafo, tutto f rendendo d d possibili ibili anche h cammini multipli Si tende a limitare la p propagazione p g delle informazioni Le variazioni sono propagate in broadcast Reti e Routing 62 Creazione tabelle Distance Vector FASE di PROPAGAZIONE Rete Rete G1 R0 Tabelle T b ll all primo i passo R0 0 R1 0 R1 0 R2 0 R2 0 R3 0 T b ll all secondo Tabelle d scambio bi R0 0 R1 0 R1 0 R2 0 R2 1 G2 R0 1 G1 R3 1 G3 R2 0 R3 0 R1 1 G2 R4 1 G4 Rete G2 R1 R2 ... Rn-1 0 Rn 0 ... Rn 0 Rn-1 0 Rn-2 1 Gn-1 Rete G3 A regime, ogni gateway contiene la distanza di ogni rete G1 G2 G3 Gn R0 0 R1 0 R2 0 Rn 0 R1 0 R2 0 R3 0 Rn-1 0 R2 1 G2 R0 1 G1 R1 1 G2 ... Rn-2 1 Gn-1 R3 2 G2 R3 1 G3 R4 1 G4 Rn-3 2 Gn-1 … … … Rn-4 3 Gn-1 Gn Rn Reti e Routing 63 Propagazione Distance Vector FASE di PROPAGAZIONE Molto lenta Rete R0 G1 R0 R1 R2 R3 0 0 1 G2 2 G2 0 0 1 G1 1 G3 2 G1 0 0 1 2 3 4 G2 G2 G2 G2 G3 R2 R3 R1 R4 R0 R5 G2 R1 R2 R0 R3 R4 R5 R6 0 0 1 1 2 3 4 G1 G3 G1 G3 G1 0 0 1 1 2 2 G2 G4 G2 G4 G3 R2 R3 R1 R4 R0 R5 R6 R7 0 0 1 1 2 2 3 4 Rete G2 R1 G2 R1 R2 R0 R3 R4 G1 R0 R1 R2 R3 R4 R5 Rete G1 G2 G4 G2 G4 G2 G4 R2 Rete G3 Gn Gn Rn 0 Rn-1 Rn 1 0 Rn-2 1 Rn-3 2 Rn-4 3 Rn-5 Rn 5 4 Gn-1 Gn-1 Gn-1 Gn-1 Gn 1 Gn Rn 0 R 1 0 Rn-1 Rn-2 1 Rn-3 2 Rn-4 3 R 5 4 Rn-5 Rn-6 4 Gn-1 Gn-1 Gn-1 G Gn-1 1 Gn-1 Reti e Routing 64 Rn Formazione delle tabelle Distance Vector Rete Rete Rete FASE di G1 G2 R0 R1 R2 PROPAGAZIONE p nel numero dei nodi)) Molto lenta ((esponenziale G1 G2 R0 0 R1 0 R2 1 G2 R3 2 G2 R4 3 G2 R5 4 G2 ... ... … Rn n-1 G2 R1 0 R2 0 R0 1 G1 R3 1 G3 R4 2 G1 R5 3 G3 R6 4 G1 ... … Rn n-2 G3 G3 Rete G3 Gn Rn Gn R2 0 R3 0 R1 1 G2 R4 1 G4 R0 2 G2 R5 2 G4 R6 3 G2 R7 4 G4 ... Rn n-3 G4 Rn 0 Rn-1 0 Rn-2 1 Gn-1 Rn-3 2 Gn-1 Rn-4 3 Gn-1 R 5 4 G Rn-5 Gn-1 1 Rn-6 4 Gn-1 ... R1 n-2 Gn-1 R0 n-1 Gn-1 I t t dobbiamo Intanto d bbi ffare routing ti Reti e Routing 65 Propagazione Variazione Variazione tabelle per una variazione di configurazione Rete Inserimento di nuova rete RQ ep possibili Rete Rete Rete Rete shortcut G1 G2 G3 G4 R0 G1 R0 0 R1 0 RQ 0 R2 1 G2 R3 2 G2 ... G1 R0 0 R1 0 RQ 0 R2 1 G2 R3 1 G3 ... G2 R1 0 R2 0 R0 1 G1 R3 1 G3 R4 2 G3 ... G2 R1 0 R2 0 R0 1 G1 R3 1 G3 R4 2 G3 ... R1 R2 R3 G3 G5 G3 G3 G3 G4 Gn R2 0 R3 0 RQ 0 R1 1 G2 R0 2 G2 ... R3 0 R4 0 R2 1 R5 1 R1 2 R0 3 Rn-1 0 Rn-2 0 Rn-3 1 Gn-1 Rn 4 2 Gn-1 Rn-4 Gn 1 Rn-5 3 Gn-1 ... G3 R2 0 R3 0 RQ 0 R1 1 G2 R0 1 G1 ... G4 R3 0 R4 0 … R2 1 G3 R1 2 G3 RQ 1 G3 R0 2 G3 Gn Rete Rn Gn Rn-1 0 Rn-2 0 Rn-3 1 Gn-1 Rn-4 2 Gn-1 Rn-5 3 Gn-1 ... Reti e Routing 66 P Propagazione i cambiamenti bi ti in i DV Ogni gateway decide la politica di routing in base alla tabella di routing locale p g locale delle tabelle di routing g ad ogni g vicino a Propagazione tempi determinati: si disseminano le tabelle in modo asincrono Chi riceve una offerta aggiorna la propria tabella se la proposta è conveniente i t iin b base alla ll metrica t i ((ad d esempio i di distanza t iin h hop)) In caso di CAMBIAMENTO (crash o di aggiunta di nuovi gateway) Possibilità di problemi (come cicli) e non convergenza delle tabelle che possono portare a situazioni non stabili SVANTAGGI ULTERIORI • tutti i messaggi seguono gli stessi cammini gg di aggiornamento gg con p propagazione p g lunga g e lenta • messaggi convergenza Reti e Routing 67 P bl i del Problemi d l DV: DV countingcounting ti -to t -infinity toi fi it Problemi in Riconfigurazione A C D E B In caso di g guasto del link da D verso C,, E ha un valore precedente p e lo manda a D, poi ottiene il valore da D ed incrementa il valore locale, etc. P d Producendo d un lento l aumento fino fi all’infinito: ll’i fi i counting-to-infinity Problema generale dovuto al non tenere traccia di chi fornisce una distanza da un nodo (e cammino relativo) che rende possibile utilizzare l’offerta anche se non rilevante o affidabile Spesso si usa la limitazione dell'infinito a 16 Reti e Routing 68 P bl i del Problemi d l DV: DV instabilità i t bilità Ancora problemi in Riconfigurazione A Rete D 10 C B Per ogni g nodo,, si riporta p la riga g di tabella p per raggiungere gg g la rete Rete dopo il guasto del link BD (in figura la entry per Rete per ogni gateway) prima Tabelle Rete 1 D Rete 1 D 2 B no B3 C B3 B3 A B3 dopo Rete 1 C 4 A 4 C 4 1 A 5 A 5 C 5 Rete Tabelle fine Rete 1 Rete 1 Rete 1 C 6 A 11 C 12 A 6 A 11 D 11 C 12 C 6 C 11 A , B e C sii danno d informazioni i f i i sbagliate b li t l'l'un l'l'altro lt Reti e Routing 69 Strategie migliorative nel DV Split Horizon per evitare di passare informazioni sbagliate, non si offrono cammini ai nodi da cui le abbiamo ottenute (necessarie maggiori informazioni) Si noti la lenta convergenza del sistema i messaggi vanno veloci a regime le cattive notizie si propagano con lunghi intervalli di time-out Hold-down dopo una notifica di un problema, si ignorano le informazioni di cammino i per un certo t iintervallo: t ll ttutti tti h hanno modo d di accorgersii d dell problema e non ci sono propagazioni errate Il problema dei loop che si sono già creati non si risolve e vengono mantenuti durante l'hold-down Reti e Routing 70 Strategie migliorative nel DV Split Horizon con poisoned reverse e triggered broadcast In caso di variazione, ogni nodo invia immediatamente un broadcast con la indicazione del p problema ed il cammino si usano evoluzioni dello split horizon con conoscenza di cammini (limite di 16) A invia a C un messaggio di non raggiungibilità se crede di raggiungere D via C C non può più rifarsi ad A (che pure non raggiungeva D) Ulteriori problemi Queste politiche generano fasi di broadcast in caso di variazioni Evoluzione della famiglia di algoritmi per privilegiare variazioni Reti e Routing 71 Famiglia dei protocolli link state (LS) Algoritmi g link-state Ogni gateway mantiene una conoscenza completa della topologia di interconnessione (grafo completo) Tabelle di routing basate sulla conoscenza dell'intero cammino e tipicamente percorsi unici da ogni nodo ad ogni rete Il grafo di interconnessione, interconnessione per evitare cicli, cicli viene gestito con algoritmi che possono favorire decisioni locali (routing dinamico)) Dijkstra shortest-path-first Il LS permette intrinsecamente la possibilità di fare source routing e anche di spedire messaggi diversi su cammini diversi (routing dinamico) e di utilizzare tutte le risorse di interconnessione Reti e Routing 72 Strategie link state (LS) A REGIME, ogni g gateway g y tiene sotto controllo le proprie connessioni e le verifica periodicamente • invio periodico di un messaggio ai vicini per controllo della correttezza tt delle d ll risorse i llocalili • identificazione del guasto (uso di messaggi specifici per evitare transitori in caso di variazione) Non appena pp si verifica un p problema,, chi ha rilevato il problema p invia il messaggio di variazione a tutti i partecipanti (broadcast o flooding del messaggio) IIn sostanza t le l variazioni i i i non sono di dipendenti d ti da d possibili ibili iintermediari t di i I messaggi sono gli stessi qualunque sia la dimensione del sistema (velocità di propagazione con triggering) Reti e Routing 73 Proprietà degli algoritmi Link State (LS) Vantaggi • si controlla solo il vicinato propagate p g rapidamente p ((senza ambiguità) g ) • azioni di variazione p • possibilità di scelte differenziate dei cammini nella topologia • conoscenza dei cammini completi e source routing Svantaggi • necessità di mantenere tutta la topologia • azioni costose (broadcast) in caso di variazione In generale, necessità di limitare i domini di conoscenza reciproca Conclusione Tutti i protocolli dinamici sono poco scalabili in caso di variazioni (causa broadcast) Reti e Routing 74 Shortest Path First SPF Protocollo usato in sistemi Link State per determinare i percorsi da usare nel routing, univocamente e senza cicli (non multipath) Algoritmo Shortest Path First (OSPF) Dijkstra O i nodo Ogni d costruisce t i una propria i tabella t b ll di cammini i i in i modo d iterativo e la usa per il normale routing Per ogni altro nodo nodo, si deve memorizzare il cammino che permette di raggiungerlo, tenendo come base il grafo di interconnessione (che viene mantenuto aggiornato) L’algoritmo permette di calcolare il routing di tutti i cammini minimi considerando l’albero che parte dal nodo stesso (spanning tree) L’algoritmo funziona in modo iterativo per passi, e comincia a calcolare le distanze dai vicini adiacenti, poi i nodi di distanza due hop, poi …. fino a trovare un albero completo di cammini minimi Reti e Routing 75 Sh t t Path Shortest P th First Fi t di Dijkstra Dijk t 1 B 6 3 2 5 A C 1 1 D 1 E • D(x): costo corrente del 1 percorso, dalla sorgente al nodo x F 4 Notazioni • c(i,j): costo collegamento dal nodo i a j: infinito se non c’è collegamento • p(x): precedente (collegato a x) nel cammino dal sorgente a x • N: N insieme i i di nodi di già ià verificati ifi ti come cammino Reti e Routing 76 Algoritmo SPF <Inizializzazione> N = {{A}} for tutti i nodi x do if (x è adiacente a A) th D(x) then D( ) = c(A,x) (A ) else l D(x) D( ) = infinito i fi it 1 B 6 3 2 5 A C 1 E 1 1 1 F D <Ciclo principale> 4 do <consideriamo un nodo alla volta> scelto un nodo y tale che D(y) sia minimo, aggiungi y a N aggiorna D(x) per ogni x adiacente a y e non ancora in N: D(x) = min( D(x), D(y) + c(y,x) ) < il nuovo costo fino a x è o il vecchio costo costo, oppure il costo del cammino più breve fino a y più il costo da y a x > until tutti i nodi sono in N Reti e Routing 77 Passi per Algoritmo SPF Si calcola a partire dal nodo A per ogni nodo possibile quali sono i per corsi minimi di raggiungibilità Dopo N-1 cicli abbiamo aggiunto tutti i nodi e trovato t t tutti t tti i percorsii minimi i i i Passo Nodi Considerati 0 1 2 3 4 5 A AB ABC ABCD ABCDE ABCDEF 1 B 6 3 2 5 A C 1 1 D 1 E 1 F 4 D(B),p(B) ( ),p( ) D(C),p(C) ( ),p( ) D(D),p(D) ( ),p( ) D(E),p(E) ( ),p( ) D(F),p(F) ( ),p( ) 6,A 5,A 1,A infinito infinito 6,A 5,A 1,A 7,B infinito 6A 6,A 5A 5,A 1A 1,A 7B 7,B 6 6,C C 4,C 2,D 1,A 5,C 3,C 4,C 2,D 1,A 5,C 3,C 4C 4,C 2D 2,D 1 1,A A 4 4,F F 3 3,C C Reti e Routing 78 ROUTING INTERNET Internet prevede una strategia g precisa per raggiungere gg g tutti i possibili nodi che possono intervenire in una comunicazione basata sulla separazione delle reti e sulla loro interconnessione • Ogni connessione appartiene ad una rete ed una sola per connessioni punto-a-punto • Ogni connessione è libera di indirizzare nella rete facendo operazioni solo locali e a basso costo per comunicazioni p p punto-a-punto p o broadcast • Ogni connessione può indirizzare in Internet (in modo globale) ma deve usare opportuni intermediari routing previsto per Internet basato su router responsabili della comunicazione globale a costo più elevato L insieme delle reti Internet tende a minimizzare il costo di L’insieme supporto del routing Reti e Routing 79 ROUTING e RETI Internet prevede una separazione tra reti RETI uniche logicamente connesse RETI fisiche separate Indirizzamento diretto solo nell’ambito di nodi della stessa rete, altrimenti si devono usare gateway, ossia nodi intermediari con almeno due indirizzi IP, IP ossia connessioni su reti diverse che tendono a connettere deis33 dida02 e deis33 si vedono perché in classe B stessa rete GATEWAY dida02 e cineca non possono intervento di un router HOST dida02 cineca Reti e Routing 80 SUBNETTING o SOTTORETI Ulteriore protezione di restrizione su una rete o politica locale Una rete può essere divisa in sottoreti al suo interno introducendo maggiore granularità nella località (all'esterno la suddivisione non è visibile i ibil iin alcun l modo) d ) La sottorete è rispettata riconoscendola solo nella sottorete stessa, anche rafforzandola tramite g gateway y interni Una connessione su una sottorete • può comunicare direttamente con ogni nodo della sottorete • non può comunicare direttamente con nodi di altre sottoreti In modo operativo, ogni nodo divide il campo host in subnet e host In reti di classe B, subnet host dida01 137.204.56 subnet 56 suddiviso in 8 bit e 8 bit deis33 137.204.57 subnet 57 e riconosce le proprie limitazioni limitazioni, usando i router anche per comunicazioni all’interno della sua rete stessa Reti e Routing 81 SUBNETTING MASCHERE SUBNETTING: Meccanismo: maschere di chiusura e protezione che segnalano le capacità locali alla driver di comunicazione NETMASK come maschera di specifica di subnet per reti delle varie classi che determina le sottoreti stesse NETMASK ad esempio maschera in classe B (per 3 byte) 11111111 11111111 11111111 0000000 o 255 255.255.255.000 255 255 000 La MASCHERA come insieme di bit a livello di rete che determina quali siano i limiti di comunicazione che richiedono un router apposito pp p per uscire FUORI dalla SOTTORETE La decisione di mascherare è locale ad ogni connessione e si potrebbe anche non rispettare (?) DALL'ESTERNO DELLA RETE Ö il subnetting è invisibile e non produce alcuna differenza Reti e Routing 82 SUBNETTING: MASCHERE DALL‘INTERNO DALL INTERNO DELLA RETE Ö organizzazione diversa quando il messaggio è arrivato alla rete, il routing locale deve coordinarsi per rendere attiva la suddivisione, usando un router per portare il messaggio alla corretta sottorete fino alla destinazione con un coordinamento di tabelle di routing All’interno della rete, si devono individuare tutti i router per le altre sottoreti network logica network IP gateway di routing cineca i didalan deislan cciblan default 137.204.56 137.204.57 137.204.58 137.204.57.253 13 20 2 3 137.204.57.33 137.204.57.33 137.204.57.33 Il subnetting rende possibili ulteriori suddivisioni dello spazio dei nomi IP (non deducibili automaticamente dal nome IP) Reti e Routing 83 ROUTING INTERNET In Internet si attua un Routing Gerarchico per aree distinte di gestione e con domini amministrativi diversi unico protocollo di routing per area La connessione tra le aree avviene attraverso gerarchie di router Routing per livelli le informazioni di routing possono essere aggregate level 1 router level 2 router Reti e Routing 84 ROUTING GLOBALE INTERNET Distinzione tra sistemi core e noncore (ARPANET) core insieme di gateway chiave con tabelle complete (e replicate) non core con informazioni di routing solo parziali (e locali) i nodi CORE si scambiano tutte le informazioni di routing (algoritmo Distance Vector e Link State) Nella prima Internet, alcuni core e tutti gli altri non core in modo piatto Scalabilità? problemi aumentando il numero delle reti necessità di routing con astrazione e gerarchia Introduzione dei sottosistemi autonomi insieme di reti e gateway controllati da una autorità unica centrale, con proprie politiche di routing interne e non visibili alcuni gateway di controllo provvedono al protocollo verso l'esterno i sistemi AUTONOMI devono scambiarsi informazioni di routing e coordinamento solo intra intra-sistema sistema Reti e Routing 85 ROUTING GLOBALE INTERNET Necessità di routing con astrazione e gerarchia Ogni sistema autonomo deve provvedere alla comunicazione con l’esterno in modo predeterminato comunicazione i i con l’interno l’i t in i modo d libero lib Exterior Gateway Protocol (EGP) protocollo del gateway di controllo per trovare il percorso fino ai core struttura ad albero con i core come radice Interior Gateway Protocol (IGP) protocollo per trovare il percorso all'interno di un sistema autonomo (intra-sistema) politica che consente percorsi multipli e con possibilità di tollerare i guasti (algoritmi multipath IGRP CISCO) Reti e Routing 86 ROUTING LOCALE INTERNET Routing Information Protocol (RIP) implementato in routed UNIX nodi attivi e passivi ATTIVI partecipano a determinare i percorsi PASSIVI restano ad ascoltare le decisioni degli altri si manda un messaggio ogni 30 secondi nel vicinato con la tabella di routing locale Si aggiornano le tabelle in base ai messaggi ricevuti: se i messaggi rilevano cammini più brevi di quelli noti si stabiliscono nuovi cammini Un cammino ha un time time-out out associato e scade dopo un certo intervallo Ogni nodo viene dichiarato guasto se non ha mandato un messaggio per un certo intervallo (180 sec) Metrica senza costi di link e valore massimo a 10 Introduciamo una limitata capacità di riconfigurazione Ad tt solo Adatto l per reti ti di piccole i l dimensioni di i i Reti e Routing 87 ROUTING NON GLOBALE IP IP_ROUTING servizio di instradamento non globale (routing IP) L'IP L IP routing determina l'indirizzo l indirizzo IP del nodo successivo a cui inviare il datagramma, usando ad ogni passo l’indirizzo del ricevente, e passa il datagramma all'interfaccia di rete routing con indirizzi IP decisione del percorso sull'indirizzo di destinazione con tabella di instradamento (Internet Routing Table) presente sia sugli host che sui gateway informazioni sulla destinazione e su come raggiungerla routing i IP b basato su informazioni i f i i analisi o datagramma da di rete e non di nodo aggiornamento instradare dei percorsi per ridurre dimensioni della tabella e p algoritmo tabella di per aumentare efficienza nella di routing routing protocollo IP scelta percorso utilizzo indirizzi IP utilizzo tili iindirizzi di i i fifisici i i invio datagramma alla successiva Reti e Routing destinazione 88 PROPRIETÀ ROUTING IP routing statico t tt il traffico tutto t ffi per una data d t rete t → stesso percorso e non eventuali percorsi alternativi (vedi problemi in caso di limiti di tempo ed urgenze) autonomia ogni gateway è autonomo: ogni datagramma da A verso B può g un p percorso differente rispetto p aq quello da B verso A seguire i gateway devono cooperare per garantire le due vie di comunicazione nei due sensi visibilità solo il gateway finale comunica con il destinatario e verifica se l'host esiste ed è operativo: quindi può rimandare al mittente indicazioni dei problemi di mancata consegna gli intermediari mandano il datagramma in base alla tabella corrente o alle decisioni di routing attuali Reti e Routing 89 PROPRIETÀ del ROUTING IP PERCORSO A DEFAULT In genere, il routing IP cerca nella tabella locale una eventuale uscita ad hoc, poi invia il datagramma al gateway di default scelta di un gateway cui inviare i messaggi se non si conosce alcuna informazione correttamente Strategia default come unica per host che servono una piccola quantità tità di utenti t ti e sono collegati ll ti attraverso tt una sola l connessione i ad Internet PERCORSO DIRETTO AD UNO SPECIFICO HOST Indirizzamento diretto ad un host in modo diretto e specifico, per esigenze i particolari ti l i con un migliore controllo delle risorse in caso di traffico speciale si veda netstat -r Reti e Routing 90 ALGORITMO di ROUTING IP function Route_IP_Datagram (datagram, routing_table) Separazione indirizzo IP destinatario (Idest) datagramma Valutazione indirizzo IP della rete di destinazione (Inet) if Inet un indirizzo raggiungibile direttamente then invio diretto del datagramma sulla rete destinataria (trasformazione indirizzo IP in indirizzo fisico e incapsulamento del datagramma in frame) else if Idest un host con un cammino proprio then invio del datagramma in base alla tabella di routing else l if I t sii può Inet ò ottenere tt d da una entry t nella ll ttabella b ll di routing ti (tenendo conto di subnet) g al p prossimo g gateway y then si invia il datagramma else percorso di default per tutti i restanti datagrammi Si tiene conto della sottorete usando la maschera ed Idest Reti e Routing 91 ALGORITMO di ROUTING IP DATAGRAMMI in ingresso Ogni g host o g gateway y tratta i datagrammi g ricevuti Tabella di routing → interfaccia chiara tra IP che instrada i datagramma e la gestione di alto livello dei percorsi host if then else livello IP verifica se destinatario utente locale arrivato, lo accetta e lo passa al protocollo di alto livello controllo destinazione evitando rinvii di datagrammi consegnati per errore gateway gate a due casi: destinazione finale o ulteriore routing e altro invio instradamento con algoritmo standard usando informazioni della tabella di indirizzamento locale Reti e Routing 92 ROUTING Routing Information Protocol (RIP) ( (con split lit horizon h i triggered ti d update d t poisoned i d reverse)) ispirato a Distance-Vector (con modifiche) basato su • ruoli attivi e passivi • broadcast (30 secondi) di messaggi di cambiamento • mantiene vecchi cammini • elimina problemi di non convergenza Open SPF Protocol (Link-State o Shortest Path First) con servizi ulteriori • cammini multipli e load balancing, cammini specifici • introduzione di aree auto-contenute auto contenute • autenticazione • definizione di risorse virtuali • ottimizzazione delle risorse (broadcast) Reti e Routing 93
© Copyright 2024 Paperzz