Switch

Da Wikipedia, l'enciclopedia libera.
bussola Disambiguazione – Se stai cercando altri significati del termine, vedi Switch (disambigua).
Due switch e alcuni cavi CAT5 collegati

Nella tecnologia delle reti informatiche, uno switch (inglese 'swɪʧ; commutatore) è un dispositivo di rete che si occupa di commutazione a livello datalink (collegamento) del modello ISO/OSI. Lo switch agisce sull'indirizzamento e sull'instradamento all'interno delle reti LAN mediante indirizzo fisico (MAC), selezionando i frame ricevuti e dirigendoli verso il dispositivo corretto (leggendo il MAC di destinazione). L'instradamento avviene per mezzo di una corrispondenza univoca porta-indirizzo.

Lo switch si differenzia dal router che opera invece a livello 3 (internetworking), mettendo in comunicazione più reti locali attraverso il protocollo IP e dall'hub che invece è solamente un ripetitore multiporta di strato fisico ovvero diffusivo senza indirizzamento, mentre il suo comportamento è analogo a quello del bridge. Lo switch attraverso l'instradamento è in grado di ridurre il dominio di collisione presente nelle reti locali broadcast in maniera più efficiente ed efficace rispetto al bridge.[1][2]

Descrizione[modifica | modifica wikitesto]

Come con un hub, due nodi possono comunicare attraverso uno switch come se questo non ci fosse, ovvero il suo comportamento è trasparente. A differenza però di quanto farebbe un hub, uno switch normalmente inoltra i frame in arrivo da una qualsiasi delle sue porte soltanto a quella cui è collegato il nodo destinatario del frame.

Uno switch possiede quindi l'intelligenza necessaria a riconoscere i confini dei frame nel flusso di bit, immagazzinarli, decidere su quale porta inoltrarli, trasferirli verso una porta in uscita, trasmetterli. Normalmente uno switch opera al livello datalink del modello di riferimento ISO/OSI.

Lo switch gode, rispetto a un bridge, di:

  • maggiore espandibilità in termini di numero di porte
  • performance migliori

Inoltre uno switch di fascia alta fornisce tipicamente le seguenti caratteristiche:

Utilizzo dello switch[modifica | modifica wikitesto]

Storicamente lo switch è stato introdotto per ridurre le collisioni nelle reti Ethernet (ora IEEE 802.3). L'uso esclusivo di switch per collegare nodi (con esclusione di hub e bridge) consente di aumentare l'efficienza di una tipica rete 10Base-T di un fattore 10, portandola dunque a competere con una più costosa rete 100Base-T provvista esclusivamente di hub, e quindi con topologia logica a bus.

Normalmente uno switch non è in grado di interconnettere reti di livello 2 eterogenee, ad esempio una rete Ethernet con una Token Ring, a meno che non si tratti di un cosiddetto "switch transazionale", mentre può interconnettere ad esempio reti ethernet con velocità o tecnologie fisiche diverse.

Nel gergo delle reti locali, uno switch separa i domini di collisione connessi alle sue porte, ovvero se due calcolatori collegati a porte diverse trasmettono contemporaneamente, non si verifica una collisione, e i due frame possono attraversare lo switch contemporaneamente.

Il termine switch viene usato anche al di fuori delle reti Ethernet, a indicare un dispositivo che inoltri selettivamente i frame ricevuti, per esempio in ATM o Frame Relay. Inoltre, un dispositivo di rete che abbini le prestazioni di uno switch con le funzioni di livello superiore di un router viene detto switch-router o, più precisamente, switch di livello 3 (layer-3 switch).

Struttura interna[modifica | modifica wikitesto]

Switch modulare a 24 porte

Internamente, uno switch è costituito da una o più schede munite di porte. A ogni porta può essere connesso un nodo, che può essere una stazione, un altro switch, un hub o altro dispositivo di rete.

Quando un nodo A cerca di comunicare con un nodo B, il comportamento del switch dipende dalla scheda cui è collegato B:

  • se B è collegato a una porta sulla stessa scheda cui è collegato A, la scheda stessa inoltra i frame in arrivo su tale porta;
  • se B è collegato a una scheda diversa da quella cui è collegato A, la scheda invia i frame a un canale di trasmissione interno detto backplane, caratterizzato da elevata velocità (tipicamente sull'ordine del Gbps), che provvede a consegnare il frame alla scheda giusta.

L'intelligenza necessaria a gestire le porte di ingresso e di uscita (riconoscere i frame, estrarre gli indirizzi sorgente e destinazione, trasmetterli) è distribuita sulle singole schede.

Spesso su alcune porte possono essere montati trasduttori di tipo diverso per risolvere diversi tipi di esigenze (si veda ad esempio la ricchezza di tecnologie di livello fisico disponibili per IEEE_802.3). Questa possibilità viene tipicamente utilizzata per aggiungere a uno switch 100Base-TX una o due porte di tipo 1000Base-X per il collegamento verso il resto della rete (uplink) o per un server veloce.

Alcuni switch hanno una costruzione modulare, ovvero le schede possono essere montate dal gestore, per modulare il numero di porte a disposizione o per utilizzare porte di tipo diverso.

Anche se non conveniente soprattutto in termini economici, è possibile realizzare uno switch anche con un comune computer dotato di più interfacce di rete.

Stackable[modifica | modifica wikitesto]

Macchine più evolute sono dotate di funzionalità che permettono l'interconnessione backbone, in cui rami con caratteristiche di velocità e capacità inferiori confluiscono ordinatamente su rami con caratteristiche superiori; per questi collegamenti vengono utilizzate velocità che possono arrivare anche a 10Gbps. Generalmente in una macchina stackabile le porte adibite a queste connessioni sono dotate di interoperabilità o sono addirittura modulari, rendendo flessibile la modalità di link, ad es. nella scelta di velocità e trasporto fisico (rame o fibra).

Caratteristiche significative della macchine stackabili sono:

  • La possibilità di impilare varie macchine;
  • La possibilità di gestirle assieme come fossero una;
  • La possibilità di interconnettere macchine di tipo diverso switch, hub, router;
  • La possibilità di realizzare sistemi tolleranti ai guasti (se si rompe una macchina le altre continuano a funzionare e allo stesso modo se una porta non funziona se ne collega un'altra).

Instradamento[modifica | modifica wikitesto]

Per decidere su quale porta inoltrare un frame ricevuto, uno switch deve possedere una funzione di instradamento. Questa è basata sull'apprendimento passivo progressivo degli indirizzi sorgente contenuti nei frame inoltrati (transparent learning o backward learning) che lo switch associa univocamente alla rispettiva porta di provenienza: questa associazione porta-indirizzo viene poi memorizzata in una tabella di instradamento di livello 2 chiamata forwarding database. Gli indirizzi appresi e memorizzati nella tabella vengono "dimenticati" dopo un certo tempo dalla loro ultima apparizione per motivi di scalabilità e flessibilità con eventuale variazione del numero e della posizione nella rete dei terminali utenti..

Quando un nodo A cerca di comunicare con un nodo B, il comportamento del switch dipende dalla porta cui è collegato B:

  • se B è collegato alla stessa porta a cui è collegato A, lo switch ignora il frame.
  • se B è collegato a una porta diversa, lo switch inoltra il frame sulla porta a cui è collegato B.
  • se lo switch non conosce ancora a quale porta è collegato B, inoltra il frame su tutte le porte.

Normalmente in quest'ultimo caso il nodo destinatario riceverà il pacchetto e risponderà al mittente permettendo al switch di scoprire a quale porta esso è collegato e così via per tutti gli altri terminali di dislocazione non nota.

In alternativa è pur sempre possibile, una configurazione del forwarding database in maniera manuale e statica sempre da parte dell'amministratore di rete se il numero di terminali cui è connesso lo switch è basso.

Alcuni frame hanno un indirizzo destinazione particolare, denominato broadcast, che indica che sono destinati a tutti i calcolatori della rete. Uno switch inoltra questi frame su tutte le porte. Per questo si dice che lo switch crea un unico dominio di broadcast.

La complessità del comportamento di uno switch è compensata dalle migliori prestazioni ottenibili.

Il fatto che i frame vengano ritrasmessi selettivamente ha anche delle implicazioni di sicurezza informatica in quanto evita che un calcolatore possa facilmente intercettare (sniffare) il traffico instradato a un altro terminale. In realtà ciò è vero solo in prima approssimazione essendo state sviluppate raffinate tecniche di attacco che permettono lo sniffing anche in presenza di switch, come Switch Flooding, il Port stealing e l'ARP Poisoning, per cui uno switch non deve essere considerato come una protezione inattaccabile contro i rischi di intercettazione.

Metodi di instradamento[modifica | modifica wikitesto]

Esistono 3 tipologie di instradamento che possono essere utilizzate da uno switch:

  • cut-through
  • store-and-forward
  • fragment-free

Nella prima tipologia lo switch si limita a leggere l'indirizzo MAC del destinatario e quindi manda il contenuto del frame contemporaneamente alla sua lettura. In questo caso l'invio dei frame non attende la ricezione completa dello stesso. Questo tipo di switch è quello con latenza minore.

Negli switch store-and-forward invece viene letto l'intero frame e ne viene calcolato il cyclic redundancy check (CRC) confrontandolo con il campo FCS all'interno del frame. Solo se i due valori corrispondono il frame viene mandato al destinatario, altrimenti non viene trasmesso. Questi tipi di switch consentono di bloccare frame contenenti errori ma hanno una latenza maggiore.

L'ultima tipologia è un compromesso tra le due precedenti in quanto si leggono i primi 64 bytes del frame in modo da rilevare solo alcune anomalie nel frame.

Gli switch fragment-free e cut-through possono essere impiegati solamente nello switching simmetrico ovvero dove trasmettitore e ricevitore operano alla stessa velocità, gli switch store-and-forward invece consentono anche lo switching asimmetrico.

Le tre tipologie si differenziano solo se il buffer di trasmissione è vuoto e se il link di uscita è libero. Nel caso contrario le tre tipologie si riducono all'unica store-and-forward.

Prestazioni[modifica | modifica wikitesto]

Il ritardo introdotto da uno switch è generalmente di pochi microsecondi, quindi quasi ininfluente per la gran parte delle applicazioni.

Quando un host è connesso a uno switch, o su una connessione diretta tra due switch, non sono possibili collisioni, e quindi è possibile utilizzare la modalità "full duplex", ovvero i due nodi possono trasmettere contemporaneamente.

L'inoltro selettivo dei frame permette anche a più frame di attraversare contemporaneamente lo switch, e quindi la banda totale disponibile non viene ridotta con l'aumento del numero di nodi attivi. In una connessione di questo tipo si dice che l'host ha un accesso dedicato al commutatore. Questo garantisce che due nodi connessi da uno switch possano comunicare tra loro alla velocità nominale del collegamento, ma solo se non sono impegnati contemporaneamente in altre conversazioni.

Nella realtà, l'introduzione di uno switch in una rete locale porta alla diminuzione del traffico totale sulla rete e a un conseguente miglioramento delle prestazioni, ma spesso questo miglioramento porta a evidenziare altri "colli di bottiglia" della rete, spesso la connessione a internet o la capacità dei server.

Gestione[modifica | modifica wikitesto]

Uno switch di fascia medio-alta è tipicamente dotato di un agente di gestione, ovvero un piccolo programma software che permette di controllarne e monitorarne il funzionamento. Questo è accessibile sia attraverso una porta seriale (gestione out-of-band) che attraverso la stessa rete ethernet (gestione in-band). In questo caso, all'agente di gestione viene normalmente assegnato un indirizzo IP, e questo risponde ai protocolli SNMP, telnet e/o ssh, HTTP.

Uno switch gestito permette tipicamente di accedere da remoto a queste funzionalità:

  • interrogazione dello stato delle porte (permette di sapere se c'è un nodo collegato, e a quale velocità)
  • statistiche di traffico e di errori per ciascuna porta (permette di identificare i nodi più attivi e i collegamenti malfunzionanti)
  • interrogazione della tabella di instradamento (permette quindi di sapere a quale porta è collegato il nodo che ha un certo MAC address)
  • interrogazione e modifica dei parametri di configurazione, ad esempio VLAN, Spanning Tree
  • modifica dello stato amministrativo di una porta (permette di escludere dalla rete un nodo malfunzionante, o che non rispetti le policy della rete)

Note[modifica | modifica wikitesto]

  1. ^ (EN) Network Switch Definition, linfo.org, 1º dicembre 2005. URL consultato il 13 maggio 2012.
  2. ^ (EN) Bradley Mitchell, Bridge - Bridges in Computer Networking, about.com. URL consultato il 13 maggio 2012.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Telematica Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete