Progetto di reti locali/Introduzione alle Local Area Network
Origini
[modifica | modifica sorgente]Definizione di LAN
[modifica | modifica sorgente]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
[modifica | modifica sorgente]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
[modifica | modifica sorgente]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
[modifica | modifica sorgente]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
[modifica | modifica sorgente]Ogni scheda di rete è identificata in modo univoco da un indirizzo MAC. Gli indirizzi MAC hanno il seguente formato:
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:[1]
- 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:[1]
- Universal (valore 0): l'indirizzo è assegnato univocamente;
- Local (valore 1): l'indirizzo è personalizzato dall'utente;
- primo bit meno significativo del primo byte:[1]
- 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:
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
[modifica | modifica sorgente]L'intestazione Logical Link Control (LLC) ha il seguente formato:
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
[modifica | modifica sorgente]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:
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
[modifica | modifica sorgente]- ↑ 1,0 1,1 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).