More Layer-2 Misconceptions

My “What Is Layer-2 and Why Do You Need It?blog post generated numerous replies, including this one:

Pretend you are a device receiving a stream of bits. After you receive some inter-frame spacing bits, whatever comes next is the 2nd layer; whether that is Ethernet, native IP, CLNS/CLNP, whatever.

Not exactly. IP (or CLNS or CLNP) is always a layer-3 protocol regardless of where in the frame it happens to be, and some layer-2 protocols have no header (apart from inter-frame spacing and start-of-frame indicator).

The Headerless Layer-2 Protocol

I have to admit it was hard to find a layer-2 protocol that has no header – it must have been designed for a strict point-to-point scenario (alleviating the need for layer-2 addresses) and carrying a single layer-3 protocol.

Most layer-2 protocols were designed for multi-protocol use (today that would be IPv4 and IPv6, as almost all other protocols died out), so they need a field in the layer-2 header indicating the type of layer-3 payload – Ethertype in Ethernet header, or NLPID in Frame Relay or PPP header.

The only protocol I found that met both requirements is SLIP (IP over asynchronous serial connection, RFC 1055), which has no header, and only two special characters: end-of-frame and escape. So it’s possible to have no layer-2 header on a link, but pretty unlikely.

Fibre Channel might be another very similar case, which confuses some people in claiming it’s a layer-2 protocol (even though FC standard explicitly mentions routing functionality in FC forwarders).

Almost There

Several layer-2 protocols have very short headers, including:

  • PPP, which has only the layer-3 protocol ID and two bytes of historic junk (SDLC address and control bytes);
  • Frame Relay header, which contains DLCI (virtual circuit #) and a few flags.

Most other layer-2 protocols originated in multi-access environment (shared cable like Ethernet or multidrop leased lines like SDLC) and thus have at least some layer-2 address information.

Anything Else?

Have I missed another interesting protocol with no (or very small) layer-2 header? Please write a comment!

Want to know more? Read these blog posts


  1. Would MPLS-TP be considered a layer 2 protocol?
    1. MPLS-TP uses MPLS encapsulation in the data plane, which is a layer-2 protocol (or not, depending on who you ask ;).

      For way too many intricate details, listen to Packet Pushers Podcast - show 102.
  2. Local Area Transport (LAT) was a "protocol" causing challenges over Frame Relay connections...
    1. LAT was the original reason we got Ethernet bridges. Everything else could be routed in those days but LAT and MOP :((
  3. ATM AAL5 doesn't have a header, it has a trailer. It can be extended kind of to include a protocol identifier as part of its initial payload, but in its base form it doesn't.
    1. Thought about AAL5, but then one could argue that ATM cell header was in itself a layer-2 header.

      Thank you!
  4. ARCnet is pretty compact, but not entirely headerless
    1. Wow. I guess you just dated yourself ;)) I have probably seen it once or twice, but never had to install it.
  5. Configured Arcnet back in 87/88 LOL. Some others come to mind -
Add comment