# Componenti Hardware Rete/Livello di collegamento

Il compito del livello di collegamento è la trasmissione di frame tra due nodi collegati. Comprende normalmente delle funzioni di controllo di errore (ad esempio mediante CRC), talvolta con capacità di correzione dell'errore. Questo livello non fornisce normalmente la garanzia che un frame inviato sia consegnato a destinazione.

### Bridge

Un bridge è un semplice dispositivo di rete che si trova al livello di collegamento. Esso è quindi in grado di riconoscere, nei segnali elettrici che riceve dal mezzo trasmissivo, dei dati organizzati in strutture dette frame. In particolare, è in grado di individuare l'indirizzo del nodo mittente e del nodo destinatario di ciascun frame.

#### Funzionamento

Tipicamente un bridge è munito di porte con cui è collegato a diversi segmenti della rete. Quando riceve una trama su una porta, cerca di capire se il destinatario si trova nello stesso segmento del mittente oppure no. Nel primo caso evita di inoltrare la trama, in quanto presumibilmente il destinatario la ha già ricevuta. Nel secondo caso, invece, il bridge inoltra la trama verso il segmento in cui si trova il destinatario. Se non sa su quale segmento si trova il destinatario, il bridge inoltra la trama su tutte le porte tranne quella da cui l'ha ricevuta. Queste operazioni sono definite operazioni di filtraggio e inoltro.

#### Collisioni

Ciascun segmento di rete, collegato ad una porta di un bridge, costituisce un dominio di collisione separato. Ciò ottimizza notevolmente le trasmissioni su una rete. Grazie a questa sua caratteristica il bridge consente di costruire una LAN di dimensioni infinite.
Inoltre se un bridge individua che su un altro segmento di rete su cui deve trasmettere esiste un problema di collisione, allora applica l'algoritmo CSMA/CD e opera come un qualsiasi host, mediante buffer dei dati e invio a LAN libera.
Pertanto un bridge può essere usato per collegare a livello data link due domini di collisione senza aumentare il rischio di collisioni o, viceversa, per dividere un dominio di collisione in due domini più piccoli e quindi più performanti.

### Switch

Nella tecnologia delle reti informatiche, uno switch, in inglese letteralmente commutatore, è un dispositivo di rete che inoltra selettivamente i frame ricevuti verso una porta di uscita.

#### Definizione

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.
Lo switch gode, rispetto ad un bridge, di:
* maggiore espandibilità in termini di numero di porte
* performance migliori
Inoltre uno switch di fascia alta fornisce tipicamente le seguenti caratteristiche:
* possibilità di gestione
* supporto di più istanze del protocollo Spanning Tree;
* supporto di LAN virtuali (VLANs) secondo lo standard 802.1Q
* mirroring delle porte
* supporto della QoS (Quality of Service).

#### Instradamento

Per decidere su quale porta inoltrare un frame ricevuto, uno switch deve possedere una funzione di instradamento. Questa è basata sull'apprendimento passivo degli indirizzi sorgente dei frame inoltrati ("transparent learning"), attraverso il quale lo switch impara su quale porta si trova un determinato indirizzo. Gli indirizzi appresi vengono "dimenticati" dopo un certo tempo dalla loro ultima apparizione.
Quando un nodo A cerca di comunicare con un nodo B, il comportamento dello 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 ad 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, il nodo riceverà il pacchetto e risponderà, permettendo allo switch di scoprire a quale porta è collegato.
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 diretto ad un altro. Esistono comunque tecniche raffinate che permettono lo sniffing anche in presenza di switch, come l'ARP Poisoning o lo Switch Flooding, per cui uno switch non deve essere considerato come una protezione inattaccabile contro i rischi di intercettazione.

#### Struttura interna

Internamente, uno switch è costituito da una o più schede munite di porte. Ad 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 dello switch dipende dalla scheda cui è collegato B:
* se B è collegato ad una porta sulla stessa scheda cui è collegato A, la scheda stessa inoltra i frame in arrivo su tale porta;
* se B è collegato ad una scheda diversa da quella cui è collegato A, la scheda invia i frame ad 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 ad 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 è molto conveniente, è possibile realizzare uno switch anche con un comune computer dotato di più interfacce di rete.