Gli Apparati di Rete Repeater, Hub, Bridge, Router arcIPelago scrl Il Repeater • E’ un apparato di livello 1 (fisico), quindi intepreta solo i segnali elettrici e ha come unità trasmissiva il singolo bit • Il repeater serve ad estendere la lunghezza del canale trasmissivo e a realizzare topologie ad albero • Rigenera stringhe di bit ricevute su un canale e le ritrasmette sugli altri canali arcIPelago scrl Lo Hub • L’Hub è un concentratore di cablaggio (opera al livello 1) • Serve a collassare una topologia a bus o ad anello in un topologia a stella, semplificando (e rendendo più affidabili) le operazioni di cablaggio • Non aumenta la capacità trasmissiva (l’hub si comporta come un ripetitore) arcIPelago scrl Lo Switch • Se l’hub non si comporta come un repeater, ma opera commutazione a livello di trama, ho uno switch • Lo switch aumenta la capacità della rete perché permette di trasmettere più pacchetti contemporaneamente se sorgente e destinazione sono diversi arcIPelago scrl Il Bridge (1) • Il Bridge è un apparato di livello 2-MAC • Serve ad estendere una LAN tenendo separati i domini trasmissivi • esegue filtraggio per mantenere separati i traffici locali delle reti che interconnette • Il traffico totale della LAN estesa risulta superiore a quello massimo della singola LAN arcIPelago scrl Il Bridge (2) • Può interconnettere LAN con lo stesso protocollo MAC o con protocolli diversi • Se i protocolli sono diversi, il Bridge traduce l’intestazione (la “busta”) di un protocollo in quella dell’altro prima di inoltrare la trama arcIPelago scrl Il Bridge L’interconnessione di LAN • Le prestazioni di una LAN tendono a peggiorare al crescere del numero di suoi utenti • Una soluzione consiste nell’interconnettere diverse LAN, in modo non gerarchico, attraverso dei bridge. Si parlerà di LAN estesa. • Il bridge ‘sente’ tutte le trame trasmesse sulle LAN a cui è connesso, e inoltra selettivamente alcune trame da una LAN all’altra attraverso delle porte. arcIPelago scrl Il Bridge L’interconnessione di LAN • Questa topologia implica che ogni nodo abbia un indirizzo di livello 2 unico all’interno della LAN estesa • Le procedure più comuni di instradamento su LAN estese sono: 3 spanning tree 3 source routing arcIPelago scrl Spanning Tree (1) • Uno Spanning Tree è un cammino aperto senza cicli all’interno della LAN estesa, in modo che esista un unico percorso tra due bridge qualunque della LAN • Le porte dei bridge che giacciono sullo Spanning Tree sono dette attive, e un bridge può comunicare con un nodo qualunque attraverso un’unica porta attiva arcIPelago scrl Spanning Tree (2) • Per implementare uno Spanning Tree, ogni bridge ha, per ogni porta attiva, una ‘lista’ dei nodi raggiungibili attraverso quella porta. • Se un bridge con porte attive su due LAN, A e B, vede passare sulla A una trama diretta ad un nodo incluso nella ‘lista’ della porta B, la preleva e la inoltra sulla LAN B. arcIPelago scrl Spanning Tree (3) • Le ‘liste’ sono compilate dinamicamente e automaticamente dal bridge stesso: 3 nodo aggiunto quando il bridge ‘sente’ transitare trame spedite da quel nodo sulla LAN connessa alla porta in questione 3 nodo rimosso dalla lista quando, dopo un timeout, il bridge non vede più transitare trame di quel nodo arcIPelago scrl Spanning Tree (4) • Il processo di compilazione delle liste, noto come bridge learning, permette di evitare riconfigurazioni manuali dei bridge quando: un nodo viene spostato da una LAN all’altra 3 uno o più nodi vengono spenti o si guastano 3 lo Spanning Tree viene ricostruito aggiungendo o togliendo porte attive 3 arcIPelago scrl Source Routing (1) • Alternativa al metodo Spanning Tree : scopro un percorso tra due nodi in comunicazione, e lo includo nell’intestazione di ogni trama • Due fasi (nodo A nodo B): ¬ Individuo il destinatario sulla LAN estesa, spedendo in flooding dei ‘frames esplorativi’ - Scelgo un percorso tra tutti quelli possibili che connettono mittente e destinatario, cercando di ottimizzare la scelta arcIPelago scrl Source Routing (2) • Nel Source Routing è il nodo sorgente che effettua la scelta del percorso da seguire. • Il software di Routing dei singoli nodi risulta piu’ complesso, ma ai bridge non occorre sprecare tempo per instradare ciascun frame. arcIPelago scrl Router • Dispositivo di livello 3 (rete) • I router più recenti sono in grado di instradare pacchetti di protocolli diversi (IP, DECnet...) • Se un router ha un modulo di bridging per quei protocolli - per sola rete locale - che non hanno un livello 3 (es. LAT, NetBeui), è detto brouter arcIPelago scrl Architettura di un router Algoritmo di calcolo della RT RT Routing Tables RT Routing Tables Inoltro dei pacchetti Scheda LAN 2 Scheda WAN 1 arcIPelago scrl SNA Scheda LAN 1 Algoritmo di calcolo della RT IP Inoltro dei pacchetti DECnet RT Routing Tables Algoritmo di calcolo della RT Inoltro dei pacchetti Scheda WAN 2 Terminologia OSI • Un dispositivo contenente al suo interno almeno i livelli fisico, data link e network è detto 3 nodo system (terminologia corretta OSI) • I nodi che agiscono come mittente e destinatario finale dei dati sono detti: 3 ES (End System) 3 End Node arcIPelago scrl ES e IS • Tra due ES possono esserci diversi altri nodi che agiscono da intermediari e svolgono funzioni di instradamento. • Questi nodi sono detti: 3 IS (Intermediate System) 3 router • Tipicamente gli ES implementano tutti e sette i livelli OSI, mentre gli IS sono limitati ai primi tre. arcIPelago scrl Indirizzi e Nomi • Un nodo è identificato da uno o più indirizzi di livello 3 e da un nome • La finalità del nome è quella di identificare il calcolatore in modo mnemonico per gli umani • La finalità dell’indirizzo è quella di determinare l’instradamento dei pacchetti all’interno della rete • La corrispondenza tra nomi e indirizzi può essere mantenuta tramite: un file locale ad ogni elaboratore (ormai raro) 3 una base di dati distribuita 3 arcIPelago scrl Il livello Network • Tratta le problematiche di Internetworking • Instrada i messaggi sulla rete • Provvedere a trovare instradamenti alternativi in caso di guasti • Può fornire sia servizi non connessi sia servizi connessi • È molto sviluppato sugli IS, meno sugli ES. arcIPelago scrl Tecniche di instradamento • Routing by Network Address • Label Swapping • Source Routing arcIPelago scrl Routing by Network Address • Usato tipicamente nei protocolli non connessi bridge trasparenti 3 Decnet 3 IPX 3 IPv4 e IPv6 3 OSI CLNP 3 • Ogni pacchetto contiene l’indirizzo del nodo destinatario • L’indirizzo viene usato come chiave di accesso alle tabelle di instradamento arcIPelago scrl Label Swapping • È generalmente usato nei protocolli connessi • Ogni pacchetto è marcato con una label che identifica la connessione • La label viene usata come chiave per determinare l’instradamento e sostituita in ogni nodo • È usato in: X.25 APPN ATM arcIPelago scrl Source Routing • Il nodo mittente scrive nel pacchetto l’elenco completo dei nodi da attraversare • È usato: nei bridge source-routing in APPN+/HPR arcIPelago scrl Tabelle di instradamento • Il livello network per instradare i pacchetti si basa: sull'indirizzo del destinatario finale su tabelle di instradamento presenti negli IS. • Le tabelle di instradamento possono essere: scritte manualmente calcolate da algoritmi che imparano la topologia della rete e si adattano ai suoi cambiamenti. • Solo gli IS sono tipicamente sede di tabelle di instradamento arcIPelago scrl Scelta dell’algoritmo • Non semplice: più criteri di ottimalità spesso contrastanti. • Ad esempio: minimizzare il ritardo medio di ogni pacchetto 3 massimizzare l'utilizzo delle linee 3 • Complicata dalla presenza di un elevato numero di nodi collegati con una topologia qualsiasi • Algoritmi troppo complessi, operanti su reti molto grandi, potrebbero richiedere tempi di calcolo inaccettabili arcIPelago scrl Esempio • Si supponga di voler inviare un messaggio a tutti i nodi di una rete carica evitando l'utilizzo di tecniche di broadcast per contenere il carico: occorre individuare un algoritmo di routing che garantisca che il pacchetto tocchi sequenzialmente tutti i nodi • Per ottimizzare il cammino di questo pacchetto: occorre risolvere il tipico problema del Commesso Viaggiatore che è NP-Hard arcIPelago scrl Caratteristiche di un algoritmo • Semplicità: i router hanno CPU e memoria finite • Robustezza e adattabilità alle variazioni di topologia • Stabilità: l'algoritmo deve convergere • Equità: evitare di sfavorire particolari nodi arcIPelago scrl Ottimalità • Ottimalità: i criteri adottati sono tipicamente i due esposti precedentemente. • Occorre definire una metrica. • Gli unici due parametri universalmente accettati sono: HOPS: numero di salti effettuati, cioè il numero di IS attraversati lungo il cammino 3 COSTO: somma dei costi di tutte le linee attraversate (il costo di una linea è inversamente proporzionale alla sua velocità) 3 arcIPelago scrl Algoritmi di Routing • Non adattativi (statici, deterministici): criteri fissi di instradamento Fixed Directory Routing 3 Flooding 3 • Adattativi (dinamici, non deterministici): calcolano le tabelle di instradamento in funzione della topologia della rete, dello stato dei link e del carico • Routing Centralizzato Routing Isolato 3 Routing Distribuito 3 arcIPelago scrl Fixed Directory Routing • Ogni nodo ha una tabella di instradamento scritta manualmente (gestione complessa) • Indirizzo di destinazione --> linea da usarsi • Il gestore della rete ha il totale controllo dei flussi di traffico interventi manuali per ridirigere il traffico in presenza di guasti • Questo secondo punto può essere parzialmente evitato adottando tabelle di priorità che diano più scelte in caso di guasto • Usato con successo in reti TCP/IP e SNA arcIPelago scrl Flooding • Algoritmo non adattativo • Ciascun pacchetto in arrivo viene ritrasmesso su tutte le linee eccetto quella su cui è stato ricevuto • Adatto a carichi bassi • Si può migliorare: introducendo un agecounter scartando i pacchetti la seconda volta che passano in un nodo (richiede memoria nei nodi) arcIPelago scrl Selective Flooding • Selective Flooding • I pacchetti vengono ritrasmessi solo su linee selezionate: 3 Random Walk: il pacchetto in arrivo su un nodo viene trasmesso in modo casuale su una delle linee disponibili 3 Hot Potato: ogni nodo ritrasmette il pacchetto sulla linea con la coda di trasmissione più breve arcIPelago scrl Routing centralizzato • Esiste un Routing Control Center (RCC) che calcola e distribuisce le tabelle • Il RCC riceve informazioni sullo stato della rete da tutti i nodi e le usa per calcolare le nuove tabelle • Ottimizza le prestazioni, ma è poco robusto (aggiornamenti parziali delle tabelle dovuti a guasti possono generare loop) • Induce un notevole carico sulla rete specialmente in prossimità del RCC arcIPelago scrl Routing Isolato • È l'opposto del Routing Centralizzato in quanto non esiste un RCC e ogni nodo decide l'instradamento in modo autonomo senza scambiare informazioni con gli altri IS • Esempio: Backward Learning • Usato dai bridge 802.1D (integrato dall’algoritmo di spanning tree). arcIPelago scrl Backward Learning • Ogni pacchetto ha un campo in cui vengono sommati i costi di tutte le linee attraversate • Gli IS osservano questo campo nei pacchetti ricevuti e imparano quanto dista il mittente tramite la linea su cui è avvenuta la ricezione • Occorre limitare la validità temporale delle annotazioni nella tabella in quanto questa tecnica non è in grado di rilevare se un cammino non è più disponibile arcIPelago scrl Routing Distribuito • Utilizzato in varie reti proprietarie (es. DECNET) e in OSI • Ogni router calcola le sue tabelle dialogando con gli altri router e con gli end-node • Tale dialogo avviene tramite dei protocolli ausiliari a livello 3 • Esistono due approcci principali al routing distribuito: Algoritmi Distance Vector 3 Algoritmi Link State Packet 3 arcIPelago scrl