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.