IEEE ha prodotto diversi standard per le LAN,
collettivamente noti come IEEE 802.
Essi includono gli standard per:
- Specifiche generali del progetto (802.1);
- Logical Link Control, LLC (802.2);
- CSMA/CD (802.3);
- token bus (802.4,
destinato a LAN per automazione industriale);
- token ring (802.5);
- DQDB (802.6, destinato
alle MAN).
I vari standard differiscono a livello fisico e nel sottolivello
MAC, ma sono compatibili a livello data link. Ciò è
ottenuto separando dal resto, attraverso l'apposito standard LLC,
la parte superiore del livello data link, che viene usata da tutti
i protocolli standard del gruppo.
Figura 4-8: Lo standard IEEE 802
E' lo standard per un protocollo CSMA/CD,
di tipo 1-persistent, funzionante a 10Mbps. 802.3 è l'evoluzione
dello standard Ethernet,
proposto da Xerox, DEC e INTEL sulla base dell'esperienza maturata
con Aloha prima e nei laboratori Xerox PARC poi.
802.3 e Ethernet hanno alcune differenze, ma sono largamente compatibili.
Sono previsti vari cablaggi:
- Thick ethernet: è
il primo storicamente; consiste di un cavo coassiale spesso (lo
standard suggerisce il colore giallo per la guaina esterna).
- Ufficialmente si chiama 10Base5,
ossia:
- 10 Mbps;
- Baseband signaling;
- 500 metri di lunghezza massima.
- Possono essere installate 100 macchine su un segmento.
- Ogni stazione contiene un'interfaccia
di rete (detta anche scheda
ethernet) che:
- incapsula i dati del livello superiore;
- gestisce il protocollo MAC;
- codifica i dati da trasmettere;
- in ricezione decapsula i dati, e li consegna al livello superiore
(o lo informa dell'errore).
- All'interfaccia di rete viene collegata una estremità
di un corto cavo (pochi metri), detto transceiver
drop cable, all'altra estremità del quale
è connesso un transceiver
che si aggancia, con un dispositivo detto vampiro,
al cavo thick (che non viene interrotto).
- Il transceiver contiene la circuiteria analogica per l'ascolto
del canale e la rilevazione delle collisioni. Quando c'è
una collisione, il transceiver informa l'interfaccia ed invia
sulla rete uno speciale segnale di 32 bit (jamming
sequence) per avvisare le altre stazioni, che così
scartano quanto già ricevuto.
- Thin ethernet: è
un cavo coassiale più sottile, e si piega più facilmente.
- Ufficialmente si chiama 10Base2,
ossia:
- 10 Mbps;
- Baseband signaling;
- 200 metri di lunghezza massima per un singolo segmento.
- Possono essere installate 30 macchine su un segmento.
- Di norma l'interfaccia di rete contiene anche il transceiver.
- L'allaccio di una stazione alla rete avviene con una giunzione
a T, alla quale sono collegati il cavo che porta alla stazione
e due cavi thin che costituiscono una porzione del segmento. Le
varie stazioni sono collegate in cascata (daisy-chain)
sul segmento.
- Doppino telefonico:
- Lo standard 10BaseT
(twisted) prevede il collegamento fra una sola coppia di stazioni.
- La lunghezza massima è 100 metri (150 se il doppino
è di classe 5).
- Per connettere più di due stazioni serve un ripetitore
multiporta (detto HUB).
Figura 4-9: Cablaggio Ethernet cavo Thick
Figura 4-10: Cablaggio Ethernet tramite cavo Thin
Figura 4-11: Cablaggio Ethernet tramite HUB
Un ripetitore è un dispositivo che opera a livello uno
(fisico): riceve il segnale da un segmento, lo amplifica e lo
ritrasmette su tutti gli altri segmenti. I ripetitori possono
essere usati anche per aumentare la lunghezza complessiva della
rete.
Comunque, sono in vigore delle regole generali stabilite dallo
standard:
- la lunghezza massima dell'intera rete, fra qualunque coppia
di stazioni, non deve superare i 2,5 km;
- fra qualunque coppia di stazioni non devono trovarsi più
di quattro ripetitori;
- possono esservi al massimo 1024 stazioni sulla rete.
In 802.3 non si usa una codifica diretta dei
dati (ad esempio, zero volt per lo zero e cinque volt per l'uno),
perché sarebbe difficile rilevare le collisioni. Inoltre,
si vuole delimitare con facilità l'inizio e la fine di
ogni singolo bit.
Si usa una codifica, detta Manchester,
che prevede una transizione del valore del segnale nel mezzo di
ogni bit, zero o uno che sia.
Figura 4-12: Codifica Manchester
Fra i vantaggi di tale codifica:
- facilità di sincronizzazione fra mittente e destinatario;
- il codice trasmissivo è bilanciato,
cioé vi è uguale energia per lo zero e per l'uno,
e quindi la trasmissione di dati, anche se genera diverse quantità
di zeri e uni, non produce componenti in corrente continua, molto
dannose perché ostacolano la trasmissione dei segnali;
- è facile rilevare le collisioni.
Si noti però che tale codifica richiede, a parità
di velocità di trasmissione, una banda doppia rispetto
alla codifica diretta (ogni bit richiede la trasmissione di due
valori distinti).
La struttura di un frame 802.3 è la
seguente:
Figura 4-13: Frame 802.3
I campi del frame hanno le seguenti funzioni:
Preamble
| 7 byte tutti uguali a 10101010. Producono, a 10 Mbps, un'onda quadra a 10 Mhz per 5,6 microsecondi, che consente al ricevitore di sincronizzare il suo clock con quello del trasmettitore.
|
Start of frame
| un byte delimitatore, uguale a 10101011. |
Indirizzi
| gli indirizzi usati sono sempre a 6 byte, e sono univoci a livello mondiale (sono cablati dentro l'interfaccia). E' possibile specificare un singolo destinatario, un gruppo di destinatari (multicast) oppure un invio in broadcast a tutte le stazioni (indirizzo costituito da una sequenza di uni).
|
Lunghezza dei dati
| indica quanti byte ci sono nel campo dati (da 0 a 1500).
|
Dati
| contiene il payload del livello superiore.
|
Pad
| Se il frame (esclusi preambolo e delimiter) è più corto di 64 byte, con questo campo lo si porta alla lunghezza di 64 byte, vedremo poi perché.
|
Checksum
| è un codice CRC come quelli già visti.
|
Nessun livello MAC garantisce un servizio affidabile. Ciò
è dettato dal fatto che, visto il bassissimo tasso d'errore
delle LAN, si preferisce un protocollo datagram ad alte prestazioni.
Vediamo ora perché esiste un limite minimo di 64 byte per
la lunghezza di un frame.
Abbiamo già visto che, perché una collisione possa
essere certamente rilevata da chi trasmette, deve passare un tempo
non inferiore a due volte il tempo di attraversamento dell'intera
rete.
Nel caso di IEEE 802.3, che prevede 2,5 km di lunghezza massima
totale e l'interposizione di un massimo di quattro ripetitori,
si ha che il tempo massimo di attraversamento dell'intera rete
moltiplicato per due è pari a 57,6 microsecondi.
Ora, è essenziale che la collisione venga rilevata durante
la trasmissione e non dopo, altrimenti il mittente dedurrà
erroneamente che la sua trasmissione è andata a buon fine.
Dunque, la trasmissione di un frame non deve durare meno di 57,6
microsecondi, che sono il tempo necessario per trasmettere (a
10 Mbps) proprio 72 byte (e cioé 576 bit, ciascuno dei
quali viene trasmesso in un decimo di microsecondo). Dunque, il
frame non può essere costituito da meno di 72 byte, 8 dei
quali sono costituiti dal preambolo e dal delimitatore, e 64 dal
resto del frame.
Si noti che se si vuole aumentare la velocità di un certo
fattore, diciamo 10, si deve diminuire di 10 volte la lunghezza
massima ammessa per la rete o aumentare di 10 volte la lunghezza
minima del frame. Vedremo nel seguito come viene risolto il problema
per il protocollo Fast Ethernet
(100 Mbps).
Il protocollo 802.3 è un CSMA/CD di
tipo 1-persistent:
- prima di trasmettere, la stazione aspetta che il canale sia
libero;
- appena è libero inizia a trasmettere;
- se c'è una collisione, la circuiteria contenuta nel
transceiver invia una sequenza di jamming di 32 bit, per avvisare
le altre stazioni;
- se la trasmissione non riesce, la stazione attende una quantità
di tempo casuale e poi riprova.
La quantità di tempo che si lascia passare è regolata
da un apposito algoritmo, il binary
backoff exponential algorithm:
- dopo una collisione, il tempo si considera discretizzato (slotted)
con uno slot time pari
a 51,2 microsecondi (corrispondenti al tempo di trasmissione di
512 bit, ossia 64 byte, pari alla lunghezza minima di un frame
senza contare il preambolo ed il delimiter);
- il tempo di attesa prima della prossima ritrasmissione è
un multiplo intero dello slot time, e viene scelto a caso in un
intervallo i cui estremi dipendono da quante collisioni sono avvenute;
- dopo n collisioni, il numero r di slot time da lasciar passare
è scelto a caso nell'intervallo 0 <= r <= 2k-1,
con k = min (n, 10);
- dopo 16 collisioni si rinuncia (inviando un messaggio di errore
al livello superiore).
La crescita esponenziale dell'intervallo garantisce una buona
adattabilità ad un numero variabile di stazioni, infatti:
- se il range fosse sempre piccolo, con molte stazioni si avrebbero
praticamente sempre collisioni;
- se il range fosse sempre grande, non ci sarebbero quasi mai
collisioni ma il ritardo medio (metà range*slot time) causato
da una collisione sarebbe molto elevato.
Le prestazioni osservate sono molto buone,
migliori di quelle stimabili in via teorica.
Peraltro, queste ultime sono fortemente influenzate dal modello
di traffico che si assume. Di solito lo si assume poissoniano,
ma in realtà è bursty e per di più self
similar, ossia il suo andamento su un lungo periodo
è simile a quello su un breve periodo, ricordando in questo
le caratteristiche dei frattali.
La pratica ha mostrato che 802.3:
- può sopportare un carico medio del 30% (3 Mbps) con
picchi del 60% (6 Mbps);
- sotto carico medio:
- il 2-3% dei pacchetti ha una collisione;
- qualche pacchetto su 10.000 ha più di una collisione.
Questo standard (803.2u), approvato nel 1995,
prevede l'aumento di velocità di un fattore 10, da 10 Mbps
a 100 Mbps.
Come si risolve il problema del minimo tempo di trasmissione e/o
della massima lunghezza della rete? In modo diverso a seconda
del supporto fisico utilizzato:
- Doppino classe 3 (100BaseT4)
- si usano quattro doppini fra l'hub ed ogni stazione:
- uno viene usato sempre per il traffico dall'hub alla stazione;
- uno viene usato sempre per il traffico dalla stazione all'hub;
- 2 vengono usati di volta in volta nella direzione della trasmissione
in corso;
- la codifica è 8B6T,
cioé 8 bit vengono codificati con 6 trit
( che hanno valore 0, 1 o 2);
- la velocità di segnalazione è 25 Mhz (solo 25%
in più di quella dello standard 802.3, che è di
20 Mhz);
- si inviano 3 trit sui 3 doppini contemporaneamente a 25 Mhz,
ossia 6 trit alla frequenza di 12,5 Mhz. Poiché 6 trit
convogliano 8 bit, di fatto si inviano 8 bit a 12,5 Mhz, ottenendo
così i 100 Mbps.
- Doppino classe 5 (100BaseT)
- velocità di segnalazione 124 Mhz;
- codifica 4B5B (4
bit codificati con 5 bit, introducendo ridondanza);
- a seconda del tipo di hub:
- hub tradizionale: la lunghezza massima di un ramo è
100 metri, quindi il diametro della rete è 200 metri (contro
i 2,5 km di 802.3).
- switched hub: ogni
ramo è un dominio di collisione separato, e quindi (poiché
su esso vi è una sola stazione) non esiste più il
problema delle collisioni, ma rimane il limite di 100 metri per
i limiti di banda passante del doppino.
- Fibra ottica (100BaseFX)
- velocità di segnalazione 125 Mhz;
- codifica 4B5B;
- obbligatorio switched hub;
- lunghezza rami fino a 2 km (con uno switched hub non c'è
il problema delle collisioni, ed inoltre come sappiamo la fibra
regge velocità dell'ordine dei Gbps a distanze anche superiori).
Torna al sommario | Vai avanti