Progetto di reti locali/Introduzione alle Local Area Network

Indice del libro

Origini

modifica

Definizione di LAN

modifica

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

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

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).
modifica

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.

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:[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;
  • 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.

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).

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.

  1. 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).