Since we use Ethernet mostly only as a means to transport IP, is there any reason to have that extra layer of L2 overhead?
Naming a few common protocols or features that require L2 overhead such as Ethernet:
- Spanning-Tree (requires 802.2 LLC)
- ISIS (requires 802.2 LLC)
- Vlans
- ARP (which is not just for ethernet)
- Choosing between IPv4 and IPv6
- IEEE 802.11 Wifi (which shares many basic functions with 802.3 Ethernet, but is fundamentally a different protocol)
Ethernet has effectively turned into a point-to-point interconnect between an endpoint and a switch, which switches the packet based on the MAC destination. Is there any compelling argument for keeping things the way they are?
If you say Ethernet is only for addressing and point-to-point connections, you are over-simplifying the protocol. IEEE 802.3 also covers the physical layer: various forms of copper and fiber media, encoding on the wire, error recovery, line conditioning, and so on. If you add all these functions directly on IPv4, you duplicate many of Ethernet's functions and what have you really saved? This also ignores the monumental standardization and engineering effort to build these functions directly into IPv4 and IPv6. My brain hurts to think how this would work at a practical level anyway.
In the end, the argument is economics. The entire planet has engineered servers / switches / operating systems / etc around the assumption of a link-layer between IP and the signal encoding on the wire (or wifi-radio). Ethernet does a lot for us, and it's extremely cheap because it's the de facto interconnect technology for most computers on the planet. Replacing Ethernet is somewhat akin to replacing the US Congress as a governing body. It may not be perfect, but it's inconceivable to do anything else at this point.
Although ytti answered, there are some relevant details you may be interested in...
How can someone distinguish between different packets in the Ethernet protocol? It has no "length" field/area as higher-level protocols use to do so.
Actually ethernet has multiple encapsulations:
- Ethernet II (Typically used for IP, as specified in [RFC 894], is the most common encapsulation): Does not have a length field, instead a type field is used...
+----+----+------+------+-----+
| DA | SA | Type | Data | FCS |
+----+----+------+------+-----+
^^^^^^^^
DA Destination MAC Address (6 bytes)
SA Source MAC Address (6 bytes)
Type Protocol Type (2 bytes: >= 0x0600 or 1536 decimal) <---
Data Protocol Data (46 - 1500 bytes)
FCS Frame Checksum (4 bytes)
- 802.2 LLC Ethernet: has a length field
+----+----+------+------+------+------+-----+
| DA | SA | Len | LLC | SNAP | Data | FCS |
+----+----+------+------+------+------+-----+
^^^^^^^^
DA Destination MAC Address (6 bytes)
SA Source MAC Address (6 bytes)
Len Length of Data field (2 bytes: <= 0x05DC or 1500 decimal) <---
LLC 802.2 LLC Header (3 bytes)
SNAP (5 bytes)
Data Protocol Data (46 - 1492 bytes)
FCS Frame Checksum (4 bytes)
Regardless of the existence of 802.2's length field, you can always detect the end of an ethernet frame on the wire by looking for the 96-bit Interframe Gap.
Is the logical separation performed using the "EtherType" protocol field? (i.e. obtaining the packet length using the type of the higher-level protocol, that has a length field in it's headers).
By logical separation, I assume you mean separation between different protocols carried inside ethernet, such is distinguishing between IPv4, IPv6 or perhaps Spanning-Tree Frames.
- Ethernet II normally uses the Type field
- 802.2 LLC Ethernet normally uses the five-byte 802.2 Ethernet SNAP extension. Protocols are only decoded with the SNAP extension when the 802.2 DSAP / SSAP bytes are 0xAAAA.
Is the physical distinction is simply non-transmission of electrical signals? (To my knowledge, high/low electrical signals are representing 0/1 bits)
Simplistically, yes there is a 96-bit gap between Ethernet frames; however, note that ethernet uses an 8b/10b encoding (FastEthernet) and 64b/66b encoding (GigabitEthernet), so it's not technically correct to say the "non-transmission of electrical signals", since 8b/10b doesn't have a "silent" state.
For the curious, I'm also linking to the original Ethernet Version 2 spec.
Best Answer
Well, it (obviously) depends on how you define a protocol. If we take Wikipedia's definition:
then I think it's safe to say Ethernet meets those criteria.
Since this boils down to a semantic issue, and nothing generates more debate than a philosophical argument, let the flaming begin ;-)