1

The Ethernet II frame's Type field can be IPv4, ARP, so it can be Layer2 and Layer3's protocol.

This is a snapshot of frame captured by WireShark.

enter image description here

But I have a question, whether it can be other Layer's protocol? such as Layer1 or Layer4?

2

Can Ethernet II frame's Type be Layer1's or Layer4's protocol?

Neither. Ethernet II frames are layer-2 SDUs (a service data unit is the way data is packaged in that layer).

They most often carry (encapsulate) layer-3 SDUs (IP packets) which in turn often encapsulate layer-4 SDUs (TCP segments, UDP datagrams, ...) which in turn transport application-layer protocols.

Ethernet frames can also carry a multitude of other protocol payloads, including LLDP, STP BPDUs, or other layer-3 protocols (IPv6, IPX, NetBIOS, ...).

Layer 1 is the physical layer, defining physical transmission protocols like 1000BASE-T, and the cables, ports, ... that are used with it.

2

In theory, you could put anything you want. But practically speaking, only certain types are defined.

IANA lists the defined ethertypes here.

1

But I have a question, whether it can be other Layer's protocol? such as Layer1 or Layer4?

First, as always, the network models (i.e. layers) are simply models for abstract concepts that help develop systems that are able to communicate with other systems. The Ethernet type field doesn't define or care about "layers." The purpose of the type field is so that the processes associated with removing the L2 headers from received data knows which process to hand the associated data off to next.

Think of it a bit as an apartment building. Your "L2 traffic" is received at the apartment building by address, but without some designation of which apartment it should go to, where does is go next? Sure, you could include a full name of the recipient, but a standardized number is more efficient. L2 doesn't care what sort of processing or delivery takes place once it is delivered to the correct apartment.

So, you could put in any value you want, but only certain types are defined and widely accepted. This then begs the question of why you would want to put in a reference to a L1 or L4 protocol (assuming you mean a common L4 protocol such as TCP or UDP)? What would be the point?

There is no reason in modern networks that the L2 process would be removing the L2 headers and passing the associated data off to any L1 process. Things just don't work that way.

There is also no reason for a L2 process to hand off data directly to a L4 process such as TCP or UDP as they are written to expect the use of IP at L3. One could argue that the L2 data is passed directly to the application when certain protocols are in use (for instance STP, LLDP, etc), but again the L2 process doesn't care or need to know on which "layer" the next process is operating.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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