La prima formulazione ufficiale dello standard risale al 1983 con la pubblicazione del documento IEEE 802.3 in cui si definiscono le specifiche elettriche e fisiche per una rete Ethernet a 10 Mbit/sec su cavo coassiale.
Il documento è stato perfezionato a più riprese, nel 1985 si è definito il metodo di accesso, poi altre versioni capaci di funzionare anche su cavi di tipo differente e a velocità diverse.
Il livello 2 è suddiviso in sottolivello LLC e sottolivello MAC (Medium Access Control = Algoritmo di accesso al mezzo).
Il MAC definito dallo standard 802.3 prevede che le stazioni siano collegate con una topologia a bus.
Una stazione che ha necessità di trasmettere ascolta il mezzo: se è libero trasmette, se c'è una comunicazione in corso aspetta che termini.
Per questo motivo il MAC si chiama CSMA/CD (Carrier Sense Multiple Access with Collision Detect) Tutte le stazioni ricevono i pacchetti trasmessi da qualsiasi altra stazione (effetto broadcast).
L'indirizzo MAC, o indirizzo fisico, è formato da 48 bit (6 byte) assegnato in modo univoco ad ogni scheda di rete ethernet prodotta al mondo.
Una stazione possiede un indirizzo IP (di livello 3) e un indirizzo MAC (di livello 1). L'associazione tra i due indirizzi è fornita dal protocollo ARP (Address Resolution Protocol).
Con i 48-bit del MAC address si possono formare 248 indirizzi MAC.
I 48 bit del codice sono suddivisi in 12 cifre esadecimali: le prime 6 cifre individuano il produttore dell'interfaccia di rete mentre le successive corrispondono al numero di serie della scheda. L'indirizzo MAC si scrive normalmente con 6 cifre esadecimali separate da un trattino (es. 00-50-FC-A0-67-2C). I primi 3 byte sono detti OUI (Organization Unique Identifier).
Ogni scheda ha un indirizzo unico perché i primi 24 bit sono identificativi della casa produttrice e i successivi della scheda. In questo modo ogni casa produttrice ha a disposizione 224 indirizzi, quindi può produrre più di 16 milioni di schede; se un produttore ne produce meno, gli indirizzi (a 48 bit) non assegnati vengono persi, non potendo essere utilizzati da altri costruttori.
L'indirizzo MAC non cambia se si sposta una scheda di rete da una LAN ad un'altra, mentre può cambiare l'indirizzo IP.
Ogni stazione della rete legge l'indirizzo dall'intestazione del pacchetto e lo confronta con il suo indirizzo fisico e quindi decide se scartare il pacchetto o passarlo ai livelli superiori.
Se una stazione A sente il canale occupato aspetta che la trasmissione in corso termini.
Se intanto un'altra stazione B ha bisogno di trasmettere, sentendo il canale occupato, anch'essa passa in attesa.
Al termine della trasmissione, sentendo il canale libero, le due stazioni A e B tenteranno di trasmettere, ma dopo un po' si accorgeranno che sono entrate in collisione e si fermano.
Per risolvere la collisione le due stazioni generano un tempo casuale di attesa (indipendentemente): una delle due estrarrà un tempo minore e proverà a trasmettere, mentre quella che estrarrà il tempo maggiore troverà il canale occupato.
Esiste però una piccola probabilità che entrambe generino un tempo quasi uguale ed entreranno nuovamente in collisione.
Il procedimento di estrazione di un tempo casuale si ripete al massimo 16 volte, se si verifica la collisione per tutti i tentativi si sospende definitivamente ogni tentativo di trasmissione ritenendo che il canale sia guasto.
Dopo la collisione le stazioni trasmittenti emettono una sequenza di bit (jamming) per avvertire tutte le altre stazioni della rete che i dati sul canale appartengono ad una collisione e quindi li devono scartare.
Inoltre le stazioni in collisione stanno per contendersi il canale e quindi altre stazioni non dovrebbero approfittarne per trasmettere durante la pausa di generazione del tempo casuale.
La presenza di collisioni riduce il flusso di pacchetti, degradando quindi le prestazioni della rete.
Se la velocità della rete è di 10 Mbit/sec, il fenomeno delle collisioni riduce la velocità effettiva anche al 30% di quella di progetto perchè dopo una collisione il canale è inutilizzato per un certo tempo.
Inoltre una stazione potrebbe essere ripetutamente sfavorita durante la contesa del canale per cui non è possibile prevedere un tempo di attesa massimo.
Per questo motivo la rete 802.3 non è adatta per applicazioni in tempo reale, dove per definizione il sistema deve rispondere a un evento entro un tempo finito.
La velocità di trasmissione (10Mb/s) determina la massima distanza ammessa tra le stazioni.
Ad un pacchetto viene concesso un tempo massimo di 22µs entro il quale deve raggiungere la destinazione.
Si supponga che la stazione A abbia inviato un pacchetto alla stazione B ubicata alla massima distanza. Mentre il pacchetto è ancora in viaggio verso B, si supponga che la stazione B intenda trasmettere. Questa ascolta il canale e sentendolo libero inizia a trasmettere.
Nel caso peggiore B potrebbe iniziare a trasmettere proprio mentre il primo bit del pacchetto inviato da A sta per essere ricevuto.
Per riconoscere la collisione i circuiti sulla scheda di rete confrontano ciò che si sta trasmettendo con ciò che si sta ricevendo. Durante questo confronto passano altri (per esempio) 3 µs.
La stazione B ferma subito la sua trasmissione, ma la stazione A non si è ancora accorta della collisione e continua a trasmettere.
La stazione A si accorge della collisione quando le giungono i dati generati da B, e cioè dopo almeno 22 µs (da A a B) + 3 µs (B riconosce la collisione) + 22 µs (da B ad A) + 3 µs (A riconosce la collisione) = 50 µs
Supponendo di trasmettere 10 Mbit/sec, si calcola che un bit dura 0,1 µs.
Inoltre nel mezzo in rame il segnale si propaga a circa 2/3 della velocità della luce, cioè si propaga a 200x106 m/s.
Nel tempo assegnato di 22 µs il fronte del pacchetto percorre la distanza:
Di conseguenza se le stazioni sono separate da più di 4400 metri di cavo in rame lo standard 802.3 non garantisce il corretto funzionamento della rete.
Comunque l'estensione massima di 4,4 Km non è raggiungibile a causa dell'attenuazione del segnale sul cavo.
L'introduzione di ripetitori per rigenerare il segnale non risolve il problema perchè questi introducono un ritardo nel propagare i pacchetti.
Affinchè la stazione A possa riconoscere una collisione deve trovarsi ancora nello stato di trasmissione quando le arriva il pacchetto inviato da B, perchè confronta ciò che trasmette con ciò che contemporaneamente riceve.
La trasmissione di A deve durare al minimo 50 µs. In tale tempo, alla velocità di 10 Mbit/sec la stazione trasmette 500 bit che corrispondono a 512/8 = 64 byte.
Un pacchetto 802.3 non deve essere inferiore a 64 byte.
Due stazioni separate da uno o più HUB possono entrare in collisione, mentre due stazioni separate da switch non possono entrare in collisione.
La rete 802.3 usa una topologia logica a bus su una topologia fisica a stella con centro stella passivo (l'HUB).
I pacchetti che l'HUB riceve su una porta vengono rigenerati e ripetuti su tutte le porte. Le collisioni avvengono al centro stella (nell'HUB) non più sul mezzo.
L'HUB Isola le porte sulle quali si verificano più di 30 collisioni consecutive.
L'HUB svolge solo funzioni di livello fisico, non legge l'intestazione dei pacchetti: tutte le stazioni separate da HUB sono quindi nello stesso dominio di collisione.
Una rete può essere divisa in sottoreti separando i domini di collisione.
Il switch svolge le funzioni di centro stella: opera a livello 2 del modello OSI.
Il switch è in grado di leggere l'intestazione dei pacchetti e può decidere se il destinatario del pacchetto si trova sullo stesso segmento di rete, quindi il pacchetto non deve essere smistato, oppure, se il destinatario si trova in un'altra rete, quindi il pacchetto deve essere smistato solo sulla porta su cui è collegato il destinatario.
Un pacchetto emesso da una stazione di una sottorete viene consegnato a tutte le stazioni della sottorete, anche al switch, ma questi può decidere di non propagarlo alle altre sottoreti.
Quando il switch riceve un pacchetto su una delle proprie porte, o interfacce, ha quattro alternative.
Se l'indirizzo di destinazione appartiene a una macchina che si trova sullo stesso segmento da cui arriva il pacchetto, il switch scarta il pacchetto.
Se l'indirizzo di destinazione si trova su un segmento diverso rispetto a quello da cui arriva il pacchetto, il switch invia il pacchetto sul segmento di destinazione.
Se l'indirizzo di destinazione indicato nel pacchetto non compare all'interno della tabella di instradamento (forwarding Table) il pacchetto viene spedito a tutte le reti oppure a tutti i segmenti a cui il switch è collegato, con la sola eccezione del segmento da cui è proviene il pacchetto. Questa operazione si chiama flooding (allagamento).
Nel caso in cui il pacchetto sia indirizzato a una rete che usa un sistema diverso nel confezionare i pacchetti il switch dovrà anche eseguirne la traduzione.
Se infine la trama è destinata al switch medesimo, viene intercettata e consegnata ai circuiti interni che dovranno interpretarla.