7

Ethernet defines a 2 byte header for the payload's length in its frame format.

This header has an ambiguous meaning:

if smaller than or equal to 1500 it represents the payload length.

if greater or equal 1536 (0x600) it is to be considered as an EtherType used for mux/demux of frames to the upper layer.

How come they are in the same header? Are we not interested in expressing the payload's length if, for example, we are using etherType 0x0800 (IPv4)

2 Answers 2

6

Ethertype/length actually indicating the frame length is pretty much obsolete, it's redundant. Instead, the frame end is signaled on the physical layer by loss of carrier or a special end-of-data symbol (depending on the specific PHY).

Since Ethernet initially lacked a next-layer protocol field for indicating the type of payload without an LLC header, the redundant length field was repurposed as EtherType in an unambiguous way to add that information.

You can read up the formal definition of the Length/Type field in IEEE 802.3 Clause 3.2.6.

1
  • Afaict you have it backwards, the DIX "Ethernet II" specification had the Ethertype field, while the "length" meaning was introduced by the later 802.3 standard. Eventually many years later the IEEE accepted the reality that the original meaning was not going away. Dec 17, 2022 at 12:29
5

The Length/EtherType field used differently in different standards.

In Ethernet II, this field is used to indicate the type of payload(like IP) carried by the frame.For ex. Ox0800 signifies an IP payload.

In 802.3 it indicates the number of bytes of data in the frames payload. The 802.3 ethernet frame have LLC(logical link control header), which have fields that can be used to identify payload, For ex. DSAP(Destination Service Access Point) of value 0xFE indicates that the packet is destined to ISO network Layer. This is used by ISIS protocol. Similarly for IP payload the DSAP and the SSAP fields of the 802.2 header set to 0xAA(SAP value for SNAP). The 24-bit Organization Code in the SNAP is zero, and the remaining 16 bits are the EtherType from Assigned Numbers (IP = 0x0800).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.