All’interno di un dominio di collisione, l'aumentare del numero di nodi aumenta la possibilità di collisioni e ritrasmissioni, dovute al meccanismo CSMA/CD, con un proporzionale decadimento delle prestazioni dell'intera rete. Questo limite si verifica in presenza di hub, dispositivi di livello 1 usati come punto di connessione per i dispositivi di rete.
Al contrario, gli switch costituiscono un elemento favorevole per quanto riguarda le collisioni. Lo switch crea tanti domini di collisione quante sono le sue porte: questa funzione è conosciuta come micro-segmentazione. Gli Hub costituiscono invece un solo dominio di collisione e lo estendono a tutte le porte. Quando due host sono connessi sullo switch e devono comunicare tra loro, lo switch consulta la tabella di commutazione e stabilisce una connessione virtuale tra le porte; il circuito virtuale (VC) è mantenuto fino al termine della sessione. Possono essere attivati più circuiti virtuali nello stesso momento. Se la comunicazione tra una porta dello switch e l’apparato ad essa collegato avviene in full-duplex (e non ci sono hub collegati sulla porta) vi è totale assenza di collisioni. Si rende possibile in questo modo la trasmissione contemporanea di frame tra più dispositivi di rete, con un notevole incremento di prestazioni della rete.
Gli switch operano al livello 2 (Data Link) del modello OSI. Il traffico che passa tramite gli switch è gestito tramite indirizzi MAC (mac-address). Ogni switch mantiene una tabella di MAC address in una memoria ad alta velocità, denominata CAM (content addressable memory), aggiornata ogni volta che il traffico attraversa lo switch. Per la compilazione della tabella (MAC Address Table), vengono utilizzati come fonte di informazione sia gli indirizzi MAC dei frames in arrivo sia il numero di porta attraverso la quale un frame entra nello switch. Nell'immagine sottostante viene visualizzata la mac-address table su uno switch Cisco.
Lo switch elimina le voci dalla tabella degli indirizzi MAC, se non sono utilizzate entro un determinato periodo di tempo. Il nome dato a questo periodo di tempo è il Aging Timer, mentre la rimozione di una voce è detta Aging Out. Appena un frame unicast entra in una porta, lo switch legge l'indirizzo MAC sorgente nel frame. Cerca quindi nella tabella MAC una voce che corrisponda a quell’indirizzo: se questo non è presente, viene aggiunta una nuova voce che associa l’indirizzo MAC al numero della porta di entrata e viene impostato il timer di invecchiamento (Aging Timer). Se l'indirizzo MAC sorgente è già presente, lo switch reimposta l’Aging Timer. Il passo successivo è verificare la presenza dell'indirizzo MAC di destinazione in tabella: se esiste una voce, lo switch inoltra il frame al numero di porta appropriato. Se la voce non esiste, lo switch inoltra il frame su ogni porta attiva, tranne quella su cui è stato ricevuto: il meccanismo è conosciuto con il termine flooding (inondazione).
Se uno switch riceve un frame broadcast, il frame viene inoltrato su ogni interfaccia attiva, così come avviene per un frame con indirizzo MAC di destinazione sconosciuto. Tutti i dispositivi che ricevono questa trasmissione compongono il dominio di broadcast. Più switch collegati tra loro aumentano la dimensione del dominio di broadcast, favorendo la presenza negativa in rete di pacchetti e trame moltiplicati. La barriera al traffico broadcast è costituita dai router, che non inoltrano tali trame.
Tecniche di switching
Uno switch può privilegiare la velocità o l’affidabilità adottando tecniche di switching diverse. Per avere velocità si deve avere bassa latenza, ossia il ritardo tra il tempo in cui il frame lascia la sorgente ed il tempo in cui arriva a destinazione. L’affidabilità coincide invece con il tentativo di avere trame prive di errori, sottoponendole quindi ad un controllo che del ritardo.
Se si vuole privilegiare la velocità, si adotterà la tecnica del Cut-through switching: lo switch inoltra il frame non appena legge l’indirizzo MAC di destinazione. La latenza è bassa, non c’è nessun meccanismo di error-checking e vi è una modalità sincrona, con stesso bit rate tra sorgente e destinazione.
Al contrario, se si vuole privilegiare l’affidabilità, si adotterà la tecnica Store-and-forward switching: lo switch riceve l’intero frame prima di girarlo alla porta di destinazione; la latenza è più elevata perché lo switch riceve l’intero frame prima di inoltrarlo, ma vi è maggiore affidabilità sulla consegna a destinazione perché c’è una verifica software sul campo FCS del frame ethernet.
Un compromesso tra le due modalità precedenti è il Fragment-free switching: si leggono i primi 64Byte, ossia la dimensione minima di un frame Ethernet. Valori inferiori a 64Byte di solito sono dovuti ad una collisione (le trame di questo tipo sono dette runts). Controllando i primi 64 byte, lo switch non inoltrerà i frammenti di collisione.
Oggi, il metodo di commutazione più adottato è lo store-and-forward, grazie all’hardware di nuova generazione capace di calcoli e switching veloce anche con il controllo delle trame Ethernet.
Una nuova tecnica, adottata sugli apparati di nuova generazione, è quella dell’Adaptive switching: lo switch opera inizialmente in una delle modalità descritte prima e può passare ad un'altra a seconda di alcuni eventi. Si potrebbe per esempio iniziare con una tipologia cut through, se si notano però un gran numero di pacchetti con CRC errato superiori a un valore soglia prestabilito (threshold value), si passa allo store and forward.
Lo switching può essere inoltre del tipo:
- sincrono: porta sorgente e destinazione operano allo stesso bit rate
- asincrono: porta sorgente e destinazione non operano allo stesso bit rate. L’intero frame viene ricevuto con un certo bit rate e ritrasmesso ad un altro.
- asimmetrico: connessione tra porte con bande differenti (ex: 10 e 100 Mbps).