Vediamo in dettaglio, com’è formato un frame. Prima di tutto bisogna considerare che i frame sono diversi, esistono versioni diverse a seconda dei protocolli che trasportano e delle velocità delle Ethernet. Analizzeremo il Frame IEEE 802.3 Ethernet ed il Frame Ethernet II. (sviluppato da DIX).
IEEE 802.3 Ethernet è così formato:
Pre | SFD | Destinazione | Sorgente | Lunghezza e Tipo | Data e Riempimento | FCS
Pre: È il preambolo, un modello binario alternato di zero ed uno; veniva usato per il synch delle Ethernet con implementazioni <= 10 Mbps. Nelle nuove versioni Ethernet il preambolo non è necessario ma viene mantenuto per compatibilità. È formato da 7 octect.
SFD: Start of Frame Delimiter, è un campo di un octet (1 byte) che segna la fine del preambolo e quindi del timing information. La sua sequenza di bit è 10101011.
Destinazione: Può essere un indirizzo unicast, multicast o broadcast.
Sorgente: E’ generalmente un indirizzo MAC unicast dell’host che ha trasmesso il frame.
Lunghezza/Tipo: Questo campo può essere usato per due scopi diversi. Se il valore è inferiore a 0x600 (1536), viene usato per esplicitare la lunghezza del frame (la lunghezza è usata da LLC per l’identificazione del protocollo). Il tipo, invece, indica quale protocollo del livello superiore (quindi layer 3) riceve i dati dopo che il processo Ethernet (encapsulation/decapsulation) è stato effettuato. La lunghezza indica il numero dei bytes dei dati .
Data/Riempimento: Può essere di qualsiasi lunghezza che non ecceda la dimensione massima del frame. L’MTU del frame è di 1500 octets, perciò i dati non devono superare questa lunghezza. Il contenuto di questo campo è vario ed un padding (riempimento) di dimensioni casuali è inserito immediatamente dopo se la lunghezza è inferiore alla dimensione minima del frame che deve essere compreso tra i 64 ed i 1518 octecs.
FCS: Frame Check Sequence. Questo campo contiene un valore CRC di 4 bytes creato dall’host che invia il frame e che sarà ricalcolato dall’host destinatario per controllare che non vi siano frames danneggiati. Un solo bit corrotto dall’inizio del campo Destinazione fino alla fine del campo FCS causerà l’inevitabile corruzione del frame e quindi che il valore CRC sia diverso. Il controllo dei bit del campo FCS è incluso nel main CRC, dunque non è possibile sapere in quale campo si è verificato l’errore.
Ethernet II è così formato:
Pre | Destinazione | Sorgente | Lunghezza | Data e Riempimento | FCS
La differenza sostanziale rispetto alla versione IEEE 802.3 è l’aggregazione dell’SFD al Preambolo con la sequenza di bit identica. I pacchetti TCP/IP vengono encapsulati nei frame Ethernet II.