La Trinakria.it
  Segnala errore sito
Glossario informatico
 
 
switch
commutatore
Un dispositivo che selettivamente crea una connessione tra un canale o porta entrante e un canale o porta uscente. Nel mondo telefonico lo switch s'identifica con un centralino o con una centrale telefonica, nel mondo delle reti locali è invece un dispositivo che collega tra loro diversi segmenti smistando selettivamente i pacchetti in transito così che vadano unicamente al segmento di destinazione e non agli altri. In questo modo si aumenta la banda passante di ogni singolo segmento poiché si toglie il traffico non necessario. Lo switch è un'apparecchiatura che, alla pari di un bridge, collega tra loro diversi segmenti logici di una rete (diversi domini di collisione - vedi la prima parte) e che consente il passaggio d'informazioni dall'uno all'altro, impedendo tuttavia che l'intero traffico presente su uno di essi si riversi negli altri, e viceversa, come invece accadrebbe se la LAN Ethernet non disponesse di alcun filtro al proprio interno. Lo switch deve disporre almeno di due porte, anche se nelle configurazioni più comuni ne troviamo almeno 8. La sola differenza rispetto al bridge è che lo switch esegue tutte le proprie elaborazioni in hardware e non via software, perciò non rallenta il fluire del traffico tra i segmenti. In gergo tecnico si dice che la connessione sia wire speed cioè lasci transitare i pacchetti alla velocità massima consentita dal tipo di conduttore usato per il cablaggio. Nella realtà, un rallentamento esiste sempre, anche se marginale, e la sua entità dipende dal modo in cui lo switch funziona. La primissima tecnica di switching, che eredita in toto la modalità operativa dei bridge, si chiama store-and-forward. Ogni trama che arriva su una delle porte dello switch viene incamerata per intero in una speciale porzione di memoria (buffer) e quindi scartata o trasferita a un altro segmento a seconda dell'indirizzo di destinazione (MAC address) indicato al suo interno. L'operazione è velocissima, ma comporta in ogni caso un certo rallentamento perché la trama deve arrivare per intero nel buffer dello switch prima di cominciare a essere ritrasmessa su un altra porta (a cui corrisponde un altro segmento, appunto). È la tecnica di commutazione più affidabile, poiché prima di rispedire il pacchetto ci si accerta di averlo per intero e se ne verifica la correttezza attraverso il calcolo del CRC (Cyclic Redundancy Check), ed è l'unica utilizzabile quando si collegano segmenti funzionanti a velocità diverse, come Ethernet e Fast Ethernet, per esempio. Tuttavia su impianti molto veloci, come nel caso di una dorsale che funziona tutta a 100 Mbps o più, il numero di trame in circolazione è molto elevato e il ritardo che si accumula per la registrazione di ciascuna si fa sentire. L'alternativa ideata per eliminare quest'ultimo inconveniente si chiama commutazione cut-through. La parola significa "tagliare attraverso", "prendere una scorciatoia" e in effetti è proprio quello che accade. Non appena lo switch comincia a ricevere una trama su una qualsiasi delle sue porte, ne legge l'indirizzo di destinazione e, se questo corrisponde a un segmento collegato a un'altra porta, inizia immediatamente a trasmettere la trama senza aspettare che questa sia arrivata per intero. In questo modo, dopo aver letto l'indirizzo, la trasmissione in uscita avviene quasi in contemporanea con la ricezione, e il ritardo è minimo (fino a 20 volte inferiore a quello della tecnica store-and-forward). Benché molto efficace sotto il profilo della velocità, questa tecnica presenta il difetto di far passare anche porcheria. Infatti vengono ritrasmesse anche le trame difettose (troppo corte) risultanti da collisioni o da altri problemi nel segmento di provenienza. Lo switch si limita a controllare l'indirizzo e quindi fa passare tutto quel che segue senza controllo alcuno. Inoltre il beneficio del sistema cut-through diminuisce quando il traffico diventa molto intenso e continuo. In questa circostanza è facile che una trama trovi la porta di uscita ancora occupata a trasmettere la trama precedente e perciò deve comunque essere memorizzata per intero nel l'attesa di essere trasmessa (si torna alla modalità store-and-forward). Tale fenomeno è ancora più visibile con switch dotati di numerose porte visto che la quantità di traffico complessiva che si genera al loro interno è sempre elevata. Dal confronto di questi due approcci, ne è stato ideato un terzo, intermedio, che si chiama fragment-free switching. Alla pari della modalità cut-through, anche qui si aspetta di ricevere l'intera trama prima di iniziare a trasmetterla, però ci si assicura che questa sia almeno lunga 64 byte (il minimo consentito dallo standard Ethernet) e si scarta qualsiasi frammento di trama che abbia dimensioni inferiori. In una rete Ethernet progettata con cura, gli unici errori ricorrenti sono le trame corte provocate da collisioni (runt) e per definizione queste hanno una dimensione inferiore ai 64 byte. Uno switch fragment-free è più veloce di un modello store-and-forward e al contempo non inonda il segmento di destinazione con frammenti di trama inutilizzabili. Il controllo, tuttavia, non è completo visto che continuano in ogni caso a passare le trame troppo lunghe (che sono peraltro il prodotto di malfunzionamenti sulla rete, come abbiamo visto sullo scorso numero, e che vengono risolte sostituendo i componenti difettosi). Per filtrare queste ultime non esiste alternativa se non quella di utilizzare il sistema store-and-forward: si aspetta che la trama arrivi per intero, la si misura e la si fa proseguire solo se va tutto bene. Ciascuna di queste tre modalità offre vantaggi specifici e l'impiego dell'una piuttosto che dell'altra è anche determinato dallo stato contingente in cui si trova la rete: un'alta percentuale di collisioni e di errori oppure un traffico normale. Di conseguenza gli switch più moderni ed evoluti offrono una funzione che alcuni chiamano switching adattativo e che consiste nel monitorare costantemente lo stato della LAN e nel passare in modo dinamico a una delle tre modalità di commutazione che abbiamo prima visto. Questo genere di switch consente all'amministratore di regolare le soglie di errore oltre le quali l'apparato abbandona la modalità cut-thorugh per scendere al sistema fragment-free oppure al sistema store-and-forward. Diventa così possibile definire un modello di comportamento che si adatta perfettamente al proprio impianto. Controllo di flusso e buffering Un'ultima caratteristica di differenziazione tra i commutatori Ethernet è il modo in cui regolano il flusso di traffico. In condizioni normali il traffico in uscita dovrebbe stare al passo con quello in entrata, ma quando questo non avviene e le trame in ingresso si accumulano oltre la ricettività dei buffer interni, lo switch inizia a scartarle, il che introduce ritardi significativi sulla rete. Infatti la stazione mittente non ha modo di sapere che sono state scartate perciò continua a trasmettere peggiorando ancora di più la situazione e alla fine, non ricevendo risposta, si accorge che qualcosa è andato storto e riprende a trasmettere da capo. Alcuni switch ovviano a questo inconveniente con buffer più capienti, però questo aggiunge ritardi di propagazione perché, prima di essere trasmessi, i pacchetti in entrata devono attendere che tutti quelli in attesa siano stati spediti prima di uscire a loro volta. Un'altra soluzione consiste nell'usare il sistema delle collisioni per costringere a rallentare la stazione che sta trasmettendo troppo. Esistono due modi per farlo. Vediamo il più rudimentale: non appena una porta diventa saturata di traffico lo switch manda un segnale di collisione su tutte le altre. In tal modo si costringe l'intera rete a rallentare fino a quando la situazione è tornata normale su quel particolare segmento. Il metodo più avanzato è invece quello di simulare la collisione solo su quei pacchetti che sono destinati alla porta congestionata, lasciando le altre porte libere di trasmettere tra loro. In pratica non appena si presenta sulla porta A una trama che deve andare sul segmento B congestionato, lo switch "collega" le porte A e B di modo che le collisioni presenti sull'una seconda, quella congestionata, si propaghino anche sull'altra, quella che trasmette. In questo modo si rallenteranno le trasmissioni solo delle macchine collegate a quest'ultima. Anche il modo in cui i buffer interni vengono utilizzati ha la sua importanza. Il buffer può trovarsi alla porta di entrata, alla porta di uscita oppure nel mezzo del percorso che la trama segue all'interno dello switch. Nel primo caso si sviluppano colli di bottiglia ogni volta che i pacchetti in entrata devono essere trasmessi su più porte una delle quali è molto occupata. Fino a che questa si decongestiona, anche i pacchetti destinati alla porta libera verranno ritardati. Nel secondo caso l'impiccio nasce con la situazione inversa; cioè ogni volta che diverse porte devono trasmettere tutte alla stessa porta e una delle porte in entrata è molto trafficata. La porta di entrata meno impegnata si troverà esclusa dall'accesso al buffer di uscita fino a quando l'altra non avrà terminato di monopolizzarlo. La soluzione preferita da alcuni è la terza, che consiste nel costruire due buffer separati per ciascun paio di porte. In questo modo la porta A può ricevere dalla porta B usando un buffer riservato, rispondere alla porta B usando un altro buffer riservato e al tempo stesso dialogare con le porte C, D, eccetera usando due buffer per ciascuna di queste (uno di andata e uno di ritorno). Questi buffer possono essere piccoli e contenere un solo pacchetto, eliminando così tutti gli inconvenienti legati alla presenza di pacchetti multipli nel medesimo buffer. Differenza tra switching statico e switching dinamico L'uso degli switch è diventato talmente popolare negli ultimi due o tre anni che si cerca di spacciare per tali anche cose che non lo sono. Quando si parla di switching statico oppure di port switching (sono sinonimi) ci si riferisce in realtà a un hub (semplice ripetitore) che può accorpare liberamente le proprie porte in segmenti autonomi, spostando a volontà una porta da un segmento all'altro, così da ripartire il traffico. Resta inteso che tutte le porte così "commutate" condividono la banda passante con le altre porte dello stesso gruppo e l'unico modo in cui uno di questi gruppi di porte può comunicare con un altro gruppo di porte dello stesso hub è quello di collegare i due gruppi ad altrettante porte di uno switch oppure di un router. Praticamente tutti gli hub di grandi dimensioni dispongono della funzione di port switching: semplifica la riorganizzazione periodica dei gruppi di lavoro senza costringere a interventi manuali: la configurazione avviene via software. Tuttavia lo switch autentico è quello dinamico, che si comporta come abbiamo visto prima. Tra gli switch dinamici esistono però altre due divisioni: lo switching hub è un dispositivo che accetta una sola macchina per porta. Benché questa sia la situazione ideale visto che garantisce la massima larghezza di banda a ciascuna stazione, è poco pratica poiché raramente la singola macchina riesce davvero a sfruttarla appieno e il costo non è giustificato. I segment switch (commutatori di segmento) accettano invece la connessione di un intero segmento a ciascuna delle proprie porte, consentendo anche la connessione di una singola macchina se lo si desidera. Questa soluzione è la più diffusa poiché suddivide la rete in aree omogenee in termini di traffico, aumentandone subito la capienza senza investimenti significativi: un semplice segment switch con otto porte a 10 Mbps e 1 porta a 100 Mbps può fare miracoli.

 Indietro