# Progetto di reti locali/Introduzione alle Local Area Network

Progetto di reti locali
Copertina Tutti i moduli · Sviluppo
    CopertinaProgetto di reti locali/Copertina
* Nozioni di base sulle LAN
** Introduzione alle Local Area NetworkProgetto di reti locali/Introduzione alle Local Area Network
** EthernetProgetto di reti locali/Ethernet
** Repeater e bridgeProgetto di reti locali/Repeater e bridge
** Evoluzioni di EthernetProgetto di reti locali/Evoluzioni di Ethernet
** Funzionalità avanzate sulle reti EthernetProgetto di reti locali/Funzionalità avanzate sulle reti Ethernet
* Albero ricoprente
** Spanning Tree ProtocolProgetto di reti locali/Spanning Tree Protocol
** Rapid Spanning Tree ProtocolProgetto di reti locali/Rapid Spanning Tree Protocol
* Standard aggiuntivi per le LAN
** Qualità del servizio nelle LAN IEEE 802Progetto di reti locali/Qualità del servizio nelle LAN IEEE 802
** Link aggregation – IEEE 802.3adProgetto di reti locali/Link aggregation – IEEE 802.3ad
** IGMP snoopingProgetto di reti locali/IGMP snooping
* Configurazione e progettazione avanzate delle LAN
** Virtual LANProgetto di reti locali/Virtual LAN
** Ridondanza e bilanciamento del carico a livello 3 nelle LANProgetto di reti locali/Ridondanza e bilanciamento del carico a livello 3 nelle LAN
** Il livello rete nelle LANProgetto di reti locali/Il livello rete nelle LAN
* Argomenti aggiuntivi
** Introduzione alle Storage Area NetworkProgetto di reti locali/Introduzione alle Storage Area Network
Modifica il sommario

## Origini
### Definizione di LAN

Il gruppo di lavoro IEEE 802 definì la rete locale (LAN, dall'acronimo inglese "Local Area Network") come un sistema di comunicazione attraverso un mezzo condiviso, che permette a dispositivi indipendenti di comunicare tra loro entro un'area limitata, utilizzando un canale di comunicazione ad alta velocità e affidabile.

#### Parole chiave

* mezzo condiviso: tutti sono attaccati allo stesso mezzo di comunicazione;
* dispositivi indipendenti: tutti sono paritetici, cioè hanno gli stessi privilegi nel poter parlare (no interazione client-server);
* area limitata: tutti si trovano nella stessa area locale (ad es. azienda, campus universitario) e sono distanti al massimo qualche chilometro l'uno dall'altro (no attraversamento del suolo pubblico);
* ad alta velocità: all'epoca le velocità delle LAN si misuravano in Megabit al secondo (Mbps), mentre le velocità delle WAN in bit al secondo;
* affidabile: i guasti sono poco frequenti → i controlli sono meno sofisticati a vantaggio delle prestazioni.

### Confronto LAN vs. WAN

I protocolli per le reti geografiche (WAN, dall'acronimo inglese "Wide Area Network") e per le reti locali si evolverono in maniera indipendente fino agli '80 perché gli scopi erano differenti. Negli anni '90 la tecnologia IP permise finalmente di interconnettere questi due mondi.

#### WAN

Le WAN nacquero negli anni '60 per connettere i terminali remoti ai pochi mainframe esistenti:
* mezzo fisico di comunicazione: linea dedicata punto punto su lunga distanza;
* proprietà del mezzo fisico: l'amministratore della rete deve affittare i cavi dal monopolio di Stato;
* modello di utilizzo: regolare, cioè piccola occupazione di banda per lunghi periodi di tempo (ad es. sessione di terminale);
* tipo di comunicazione: sempre unicast, più comunicazioni allo stesso tempo;
* qualità del mezzo fisico: elevata frequenza dei guasti, velocità basse, elevata presenza di disturbi elettromagnetici;
* costi: elevati, anche in termini di costi operativi (ad es. canone di affitto dei cavi);
* sistema di commutazione intermedio: richiesto per gestire le comunicazioni su larga scala (ad es. commutatori telefonici) → gli apparati di commutazione possono guastarsi.

#### LAN

Le LAN comparvero alla fine degli anni '70 per condividere le risorse (come stampanti, dischi) tra piccoli gruppi di lavoro (ad es. dipartimenti):
* mezzo fisico di comunicazione: architettura a bus condiviso multi-punto su breve distanza;
* proprietà del mezzo fisico: l'amministratore della rete possiede i cavi;
* modello di utilizzo: bursty, cioè picchi di dati di breve durata (ad es. stampa di un documento) seguiti da lunghi silenzi;
* tipo di comunicazione: sempre broadcast, una sola comunicazione allo stesso tempo;
* qualità del mezzo fisico: maggiore affidabilità contro i guasti, velocità elevate, minore esposizione a disturbi esterni;
* costi: ragionevoli, concentrati principalmente nell'installazione della rete;
* sistema di commutazione intermedio: non richiesto → costo minore, velocità più alta, maggiore affidabilità, maggiore flessibilità nell'aggiungere e rimuovere stazioni.

### Condivisione del mezzo di comunicazione

Prima dell'avvento di hub e bridge, il mezzo di comunicazione condiviso poteva essere implementato in due modi:
* broadcast fisico: tecnologie basate sul broadcast, come il bus: il segnale inviato da una stazione si propaga a tutte le altre stazioni;
* broadcast logico: tecnologie punto punto, come il token ring: il segnale inviato da una stazione arriva alla stazione successiva, la quale lo duplica verso la stazione ancora successiva, e così via.

#### Problemi

* privacy: tutti possono sentire quello che passa nel mezzo condiviso → è necessario realizzare un sistema di indirizzamento (oggi: gli indirizzi MAC);
* concorrenza: è possibile solo una comunicazione alla volta:
** collisioni: se due stazioni trasmettono contemporaneamente, i dati inviati da una stazione potrebbero sovrapporsi ai dati inviati dall'altra → è necessario realizzare un meccanismo per il rilevamento delle collisioni e il recupero da esse (oggi: il protocollo CSMA/CD);
** monopolizzazione del canale: nella trasmissione back to back, una stazione può occupare il canale per un lungo periodo di tempo impedendo alle altre stazioni di parlare → è necessario realizzare una sorta di multiplexing statistico, cioè simulare più comunicazioni in contemporanea definendo un'unità di trasmissione massima detta chunk e alternando i chunk di una stazione con quelli di un'altra (oggi: le trame Ethernet).

## Sottolivelli data-link

Nelle LAN il livello data-link è diviso in due sottolivelli:
* MAC: arbitra l'accesso al mezzo fisico, ed è specifico per ogni tecnologia di livello fisico;
* LLC: definisce l'interfaccia verso il livello rete, ed è comune in tutte le tecnologie di livello fisico.

### MAC

Ogni scheda di rete è identificata in modo univoco da un indirizzo MAC. Gli indirizzi MAC hanno il seguente formato:
Formato degli indirizzi MAC (6 byte). :
| 24 | 48 |
| OUI | NIC ID |
dove i campi sono:
* campo Organization Unique Identifier (OUI) (3 byte): codice assegnato univocamente da IEEE per identificare il costruttore della scheda di rete:
** primo bit meno significativo del primo byte:
*** Individual (valore 0): l'indirizzo è associato a una singola stazione (unicast);
*** Group (valore 1): l'indirizzo fa riferimento a più stazioni (multicast/broadcast);
** secondo bit meno significativo del primo byte:
*** Universal (valore 0): l'indirizzo è assegnato univocamente;
*** Local (valore 1): l'indirizzo è personalizzato dall'utente;
* campo NIC Identifier (NIC ID) (3 byte): codice assegnato univocamente dal costruttore per identificare la specifica scheda di rete (detta anche "Network Interface Controller" [NIC]).
L'intestazione Media Access Control (MAC) ha il seguente formato:
Formato dell'intestazione MAC (18 byte). :
| 48 | 96 | 112 | da 46 a 1500 byte | 4 byte |
| Destination Address | Source Address | Length | payload | FCS |
dove i campi sono:
* campo Destination Address (6 byte): specifica l'indirizzo MAC della destinazione.
    È messo prima dell'indirizzo MAC della sorgente perché così la destinazione lo può elaborare prima e scartare la trama se non è indirizzata ad essa;
* campo Source Address (6 byte): specifica l'indirizzo MAC della sorgente (sempre unicast);
* campo Length (2 byte): specifica la lunghezza del payload;
* campo Frame Control Sequence (FCS) (4 byte): contiene il codice CRC per il controllo di integrità sull'intera trama.
    Se il controllo del codice CRC fallisce, la trama arrivata è stata corrotta (ad es. a causa di una collisione) e viene scartata; i meccanismi di livello superiore (ad es. il TCP) si occuperanno di recuperare l'errore reinviando la trama.
Una scheda di rete quando riceve una trama:
* se l'indirizzo MAC di destinazione coincide con quello della scheda di rete o è di tipo broadcast ("FF-FF-FF-FF-FF-FF"), la accetta e la manda ai livelli superiori;
* se l'indirizzo MAC di destinazione non coincide con quello della scheda di rete, la scarta.
Una scheda di rete impostata in modalità promiscua accetta tutte le trame → serve per lo sniffing di rete.

### LLC

L'intestazione Logical Link Control (LLC) ha il seguente formato:
Formato dell'intestazione LLC (3 o 4 byte). :
| 8 | 16 | 24 o 32 |
| DSAP | SSAP | CTRL |
dove i campi sono:
* campo DSAP (1 byte, di cui 2 bit riservati): identifica il protocollo di livello superiore utilizzato dalla destinazione;
* campo SSAP (1 byte, di cui 2 bit riservati): identifica il protocollo di livello superiore utilizzato dalla sorgente;
* campo Control (CTRL) (1 o 2 byte): deriva dal campo di controllo HDLC, ma è inutilizzato.

#### Problemi dei campi DSAP e SSAP

* intervallo di valori limitato: sono codificabili solo 64 protocolli;
* codici assegnati da ISO: corrispondono a dei codici solo i protocolli pubblicati da una organizzazione degli standard internazionalmente riconosciuta, mentre sono esclusi i protocolli definiti da altri organi o spinti da alcuni fornitori (ad es. IP);
* ridondanza di codici: non c'è alcun motivo di avere due campi per definire i protocolli, perché la sorgente e la destinazione parlano sempre lo stesso protocollo (ad es. entrambe IPv4 o entrambe IPv6).

#### SNAP

Il Subnetwork Access Protocol (SNAP) è una particolare implementazione dell'LLC per i protocolli che non hanno un codice standard.
L'intestazione LLC SNAP ha il seguente formato:
Formato dell'intestazione LLC SNAP (8 byte). :
| 8 | 16 | 24 | 48 | 64 |
| DSAP (0xAA) | SSAP (0xAA) | CTRL (3) | OUI | Protocol Type |
dove i campi sono:
* campi DSAP, SSAP, CTRL: i campi LLC sono fissi per indicare la presenza dell'intestazione SNAP;
* campo Organization Unique Identifier (OUI) (3 byte): identifica l'organizzazione che ha definito il protocollo.
    Se è uguale a 0, il valore nel campo "Protocol Type" corrisponde a quello utilizzato in Ethernet DIX;
* campo Protocol Type (2 byte): identifica il protocollo di livello superiore (ad es. 0x800 = IP, 0x806 = ARP).
In realtà, l'intestazione LLC SNAP non è molto utilizzata a causa del suo spreco di byte, a vantaggio del campo "Ethertype" di Ethernet DIX.

## Note

* 1 2 Secondo l'ordine canonico (network byte order), che è l'ordine nativo in IEEE 802.3 (Ethernet) ma non in IEEE 802.5 (token ring) (si veda la sezione Bit-reversed notation nella voce MAC address su Wikipedia in inglese).