Come fa Ethernet a sapere quanto dura un frame?


17

Guardando la voce Ethernet su Wikipedia, non riesco a capire come sia indicato quanto è lungo il frame Ethernet. Il campo di intestazione EtherType / Length apparentemente può indicare un tipo di frame o una lunghezza esplicita, e suppongo che nel caso di un tipo di frame, debba fare qualche altra logica per capire quanto tempo è il pacchetto. Ad esempio, se il campo EtherType è 0x0800, ciò indica un payload IPv4 e quindi la scheda NIC ricevente dovrebbe esaminare i primi 32 bit del payload per trovare la lunghezza del pacchetto IP e quindi calcolare la lunghezza totale di il frame Ethernet e sapere quando cercare il checksum di fine frame e il gap interframe.

Questo suona corretto? Ho anche esaminato le specifiche IEEE 802.3 per Ethernet (parte 1, comunque) che sembra confermarlo, ma è piuttosto opaco.


Risposte:


21

Il Sublayer di codifica fisica è responsabile della delimitazione dei frame e dell'invio al livello MAC.

In Gigabit Ethernet, ad esempio, lo schema di codifica 8B / 10B utilizza un gruppo di codici a 10 bit per codificare un byte a 8 bit. I due bit aggiuntivi indicano se un byte è informazioni o dati di controllo. Le informazioni di controllo possono essere Configuration, Start_of_packet, End_of_packet, IDLE, Carrier_extend, Error_propagation.

Ecco come una NIC sa dove inizia e finisce un frame. Questo significa anche che la lunghezza del frame non è nota prima che sia completamente decodificata, analoga a una stringa terminata con NULL in C.


1
Questo è specificato in IEEE Std 802.3-2015 (Sezione Tre), 36.2.4.2 e 36.2.4.15 (tra le altre parti in questa cosa illeggibile che chiamano standard;).
stefanct,

1

L'articolo a cui vuoi veramente rispondere alla tua domanda è http://en.wikipedia.org/wiki/Ethernet_II_framing ; che dice:

Dato che questo standard sviluppato nel settore ha attraversato un processo formale di standardizzazione IEEE, il campo EtherType è stato modificato in un campo di lunghezza (dati) nel nuovo standard 802.3. (I pacchetti Ethernet originali definiscono la loro lunghezza con l'inquadramento che lo circonda, piuttosto che con un conteggio esplicito della lunghezza.) Dato che il destinatario del pacchetto deve ancora sapere come interpretare il pacchetto, lo standard richiedeva un'intestazione IEEE 802.2 per seguire la lunghezza e specificare il tipo di pacchetto.


Immagino di non essere chiaro su cosa significhi "Pacchetti Ethernet originali che definiscono la loro lunghezza con l'inquadramento che lo circonda". I bit del preambolo / inizio del frame sono abbastanza chiari, ma come fa il client a sapere che è stata raggiunta la fine del frame? In che modo distingue tra CRC e l'interframe gap? Il rumore elettrico casuale IFG è facilmente distinguibile dal segnale reale?
Dirtside,

La fine del frame in "Ethernet classica" è segnalata da una codifica illegale.
Vatine,

@womble, l'articolo che hai collegato è buono ma il bit che hai citato è molto fuorviante dal contesto. La maggior parte dei frame su una rete Ethernet oggi non utilizza un campo di lunghezza esplicita.
Peter Green,

-3

Logicamente, ci sono solo tre opzioni:

  1. Utilizzando una dimensione del frame statica come in.
  2. Specificare la dimensione della cornice nella sua intestazione, o altrove, o addirittura delimitarla con alcune bandiere.
  3. Nessun invio di frame

Uno di questi funziona in Ethernet perché non ci sono altre opzioni attualmente disponibili per le reti moderne;) 1o e 3o sono errati per Ethernet, quindi hai ragione!


-3

Ci è voluto un po 'per risolverlo una volta prima, e ancora adesso. Non ci sono molte informazioni disponibili, il che è sorprendente in quanto è una domanda così ovvia. Alla fine ho deciso di utilizzare i campi di lunghezza nelle intestazioni dei pacchetti. Vedi il seguente link

http://www3.rad.com/networks/infrastructure/lans/etherform.htm#_ieee

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.