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).
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.
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
- What is layer-2 and why do we need it?
- Bridging and routing – is there a difference?
- Bridging and routing – part II
- Transparent bridging scalability issues
- Layer-2 network is a single failure domain
- Why is TRILL not routing at layer-2?
- Is layer-3 switch more than a router?
- Is Fibre Channel switching bridging or routing?