Che differenze ci sono tra hub, switch e router? Quale conviene usare?

Il classico pacchetto di rete che viaggia ha una struttura di questo tipo:

+-----------------------------------------------------------------------+
| incapsulamento  +---------------------------------------------------+ |
| ethernet        | incapsulamento       +--------------------------+ | |
| (MAC address)   | TCP/IP (IP address)  | protocollo (ad es. http) | | |
|                 |                      | e informazione           | | |
+-----------------+----------------------+--------------------------+-+-+

Un hub è un semplice accentratore di rete, è una sorta di accentratore "elettrico" dove i segnali presenti su tutta la linea vengono mescolati assieme; collegati ad un hub tutte le sk di rete sentono tutto il traffico presente sulla LAN, come se il collegamento fosse realizzato in 10base2 (coassiale).
In una simile situazione qualunque protocollo proprietario passerà ovunque, e un malintenzionato (ma molto bravo) potrebbe rimanere listening sulla sk di rete e monitorare l'intera attività di rete.
Le collisioni sul traffico di rete (con conseguenti ritrasmissioni e rallentamenti) saranno tanto più frequenti quanti più computer sono connessi alla rete, e tutti i computer subiranno i rallentamenti dovuti a queste collisioni.

Uno switch, invece, effettua una commutazione di pacchetto ethernet (attraverso l'analisi del frame ethernet): all'interno di uno switch viene costruita una mappa dei diversi dispositivi collegati e dei loro MAC address (indirizzi fisici delle sk di rete), dopodiché i pacchetti ethernet in arrivo da una macchina vengono reinviati solo alla macchina con il MAC address di destinazione (gli altri non vendono attività in rete).
In pratica con uno switch si ha più una LAN classica, ma n tronconi di LAN ognuno diretto ad una macchina, con lo switch al centro che li separa e li reindirizza.
In pratica uno switch a n porte ha fino a n/2 canali di comunicazione distinti a piena banda disponibile per ogni canale, inoltre permette di utilizzare la modalità "full duplex" delle schede di rete (che possono inviare e ricevere allo stesso tempo, raddoppiando così la velocità massima raggiungibile quando sono in corso scambi bidirezionali tra due macchine).
Le collisioni saranno comunque limitate, perché lo scambio di pacchetti avviene sempre e solo tra due macchine (e solo quelle due macchine vedranno le collisioni e ne subiranno i rallentamenti).

Gli hub 10/100 (i cosiddetti "hub switching") hanno due bus interni, uno a 10 e uno a 100.
Quando si collega un computer all'hub 10/100 in base alla velocità supportata dal computer (e quindi dalla sua scheda di rete) l'hub collegherà l'host al bus a 10 o al bus a 100.
In alcuni modelli molto economici di hub 10/100 i due bus interni non comunicano tra loro, quindi si ottiene lo sgradito effetto che gli host a 10 non "vedono" gli host a 100 e viceversa.
Negli hub 10/100 più "seri" esiste un "bridge" interno (in pratica uno switch a due porte) che mette in comunicazione il bus a 10 con quello a 100, e in questo modo i due hub (10 e 100) possono comunicare. Possiamo considerare dunque un hub di questo tipo come se si trattasse di due distinti hub (uno a 10 ed uno a 100) connessi da uno switch: le collisioni e la velocità totale saranno comunque limitate nelle singole sezioni (10 e 100) come in qualsiasi hub.

Il router lavora come lo switch, ma ad un livello più alto: invece di analizzare il pacchetto (frame) ethernet ricava l'indirizzo di destinazione dal protocollo in uso, ad es. TCP/IP o IPX/SPX (e quindi il router deve supportare espressamente il protocollo in uso, tipicamente TCP/IP).
Un router, a differenza di uno switch, può essere usato per connettere tra di loro (in modo trasparente) LAN diverse che hanno classi di indirizzi IP diversi: il router stesso viene informato delle strade (route) che i pacchetti devono seguire a seconda delle diverse destinazioni di IP address.
Molti router hanno anche possibilità ulteriori (NAT, port mapping, DHCP), e di fatto un router può essere considerato come un computer dedicato, con due distinte interfacce di rete (anzi, spesso è esattamente così).
Un router ha tipicamente due sole porte, da collegare alle reti che mette in comunicazione (sebbene esistano router che, su una di queste porte, hanno un hub incorporato); l'uso di un router in una LAN è tipicamente limitato a LAN di grandi dimensioni e fisicamente distinte, con classi IP diverse nelle diverse sezioni della LAN come nel caso di LAN distinte (interconnesse in una WAN) o di collegamenti verso internet di una intera LAN (in questo caso la scheda di rete "esterna" del router potrebbe essere rappresentata da un modem, da un TA ISDN o da altro ancora).


Conviene usare uno switch invece di un hub?

Situazione tipo: rete di quattro computer (A, B, C e D) a 100Mbit/sec

Utilizzando uno switch: con un protocollo indirizzato punto-punto come il TCP/IP la trasmissione dati A->B va a 100Mbit/sec, mentre contemporaneamente B->A va a 100Mbit/sec e allo stesso modo C->D e D->C vanno a 100Mbit/sec.
Ogni troncone ha questa velocità, e nessuno vede traffico che non lo riguardi avendo la piena banda a propria disposizione. Se collisioni ci sono riguardano solo una trasmissione di pertinenza della macchina che la riceve o trasmette (ci sono dunque diversi "domini di collisione", e nessuno subisce le conseguenze/ritardi di collisioni che non lo riguardano).

Utilizzando un hub, invece, il traffico totale sarebbe limitato dalla capacità interna (totale) dell'hub di 100Mbit.
Nel caso descritto sopra (quattro comunicazioni in corso: A<->B e C<->D) ogni trasmissione potrebbe quindi contare su un massimo teorico di 25Mbit/sec, dividendo la banda.
Ma il massimo sarebbe, appunto, teorico: in una simile situazione le collisioni della rete sarebbero molto elevate (unico dominio di collisione), e quindi le ritrasmissioni conseguenti rallenterebbero notevolmente tutto il traffico di rete.

Allora lo switch conviene sempre?

Ci sono dei possibili svantaggi ad usare uno switch al posto di un hub: certi segnali ethernet non sono diretti da macchina a macchina, e sono detti "broadcast".
Alcuni protocolli (NetBEUI, DHCP, ddp) fanno uso dei segnali broadcast, e senza di quelli non funzionano.
Perché uno switch supporti questi segnali di broadcast deve essere "istruito" a farlo, e gli switch più comuni (come ad esempio un ottimo 3com 10/100 unmanaged) riconoscono e lasciano passare (ovvero propagano su tutti i tronconi di rete) il DHCP, spesso anche il NetBEUI ma non il ddp.
Alcuni switch, più cari, possono riconoscerlo; ma spesso occorre pagare a parte l'aggiornamento, oltre al prezzo più alto in partenza per lo switch.

Il problema ormai quasi più non si pone, ma una volta AppleTalk come protocollo si basava su ddp, sebbene ormai Mac OS X supporti solo "AppleTalk over IP" (anche noto come "afpovertcp").
Ma alcune stampanti che supportavano AppleTalk su Ethernet la supportano solo "over ddp", e non over TCP/IP (la LaserWriter con Ethernet già non avevano più questo limite), e di conseguenza collegate ad uno switch potevano non funzionare. Questo fatto si verificava solo con alcuni switch in combinazione con alcune vecchie stampanti collegate allo switch con un adattatore (transceiver o bridge) LocalTalk<-> ethernet, non con le stampanti che nascono ethernet.

Ad esempio collego alla rete (tramite switch) una Personal LaserWriter NT utilizzando un bridge LocalTalk/EtherTalk della Farallon: questa stampante semplicemente non viene vista, perché le dichiarazioni e richieste di dispositivo AppleTalk che questa stampante supporta sono solo dei broadcast ddp, che come detto non passano lo switch (a meno che, come accade per il NetBEUI sotto Windows, lo switch non possa far passare il broadcast del ddp, e sia stato istruito a farlo, come era il caso di alcuni Netopia).

Se è possibile collegare queste stampanti (direttamente in USB o tramite hub che viene poi connesso allo switch) ad un computer che le condivide in rete (come un server MacOS X o linux per stampanti su hub, o un MacOS 9 o successivo per stampanti USB), allora si può considerare la possibilità di utilizzare uno switch, apprezzandone i vantaggi in termini di prestazioni (nettamente superiori).

[ Home | Elenco delle FAQ | Forum | Segnalazioni | Risorse | Feed RSS ]