<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/early-data-link-layer-addressing-ipspace-net-blog-fqmpenaqy" -->

---
title: Early Data-Link Layer Addressing « ipSpace.net blog
description: A deep dive into early data-link layer addressing mechanisms, tracing the evolution from multi-drop links and polling-based master/slave architectures to SDLC,...
canonical: https://daily.dev/posts/early-data-link-layer-addressing-ipspace-net-blog-fqmpenaqy
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Early Data-Link Layer Addressing « ipSpace.net blog | daily.dev
og:description: A deep dive into early data-link layer addressing mechanisms, tracing the evolution from multi-drop links and polling-based master/slave architectures to SDLC,...
og:url: https://daily.dev/posts/early-data-link-layer-addressing-ipspace-net-blog-fqmpenaqy
og:image: https://api.daily.dev/og/posts/FQMPEnAqY.png
og:image:alt: Early Data-Link Layer Addressing « ipSpace.net blog
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Early Data-Link Layer Addressing « ipSpace.net blog

**[ipSpace.net Blog](https://daily.dev/sources/ipspace)** · 6 min read · 0 upvotes · 0 comments

## Summary

A deep dive into early data-link layer addressing mechanisms, tracing the evolution from multi-drop links and polling-based master/slave architectures to SDLC, HDLC, PPP, and SLIP. Explains why PPP frames carry a broadcast address and control byte inherited from HDLC/SDLC hardware implementations, and how SLIP solved point-to-point IP transport over asynchronous serial links without a true data link layer by using an end-byte delimiter and escape sequences. Draws connections between these legacy protocols and technologies still in use today, including Wi-Fi, cable modems, and satellite communications.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.ipspace.net/2023/10/data-link-addressing>

## Questions this post answers

### Why does a PPP frame have an address field if PPP is a point-to-point protocol with no real addressing?

PPP inherited its frame format directly from HDLC and SDLC, which required an address field. Because PPP has no meaningful data-link addresses, the address byte is set to the broadcast value (0xFF), meaning 'addressed to everyone on the link.' The same HDLC frame format — including address and control bytes — was also used in LAPB (X.25 layer 2) and LAPD (ISDN signaling), so hardware implementations were already built around it.

_Networking engineers revisiting protocol fundamentals find the full context on daily.dev._

### How did SLIP handle the problem of the end-of-datagram byte appearing inside an IP packet payload?

SLIP used an escape mechanism: the end-of-datagram marker is byte value 192. If 192 appears in the data, SLIP substitutes it with two bytes: 219 followed by 192. If the escape character 219 itself appears in the data, it is replaced with 219 followed by 221. This lets SLIP unambiguously delimit IP datagrams over asynchronous serial links without a formal data-link layer.

_Developers and engineers studying low-level protocol design track discussions like this on daily.dev._

### Why could SLIP only carry IP traffic and not multiple network-layer protocols?

SLIP had no usable data-link layer — it only appended an end byte to raw IP datagrams and relied on the physical layer for character encoding. Without a data-link layer, there was no protocol-type field to distinguish between different network-layer protocols, so only IP datagrams could be transported. PPP solved this by including a 2-byte protocol ID field in every frame.

_Those building or studying multi-protocol network stacks find relevant protocol comparisons on daily.dev._

## Similar posts on daily.dev

- [IP Addressing, Part III: Inside the IP Packet](https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h) · The Polymathic Engineer · 0 upvotes · 0 comments
- [The world in which IPv6 was a good design](https://daily.dev/posts/the-world-in-which-ipv6-was-a-good-design-tj3i8ov0s) · Hacker News · 0 upvotes · 0 comments
- [UDP Broadcasting And The Brave New World Of IPv6](https://daily.dev/posts/udp-broadcasting-and-the-brave-new-world-of-ipv6-kbr2qsudb) · Hackaday · 0 upvotes · 0 comments
- [Networking and the Internet, from First Principles · Faza](https://daily.dev/posts/networking-and-the-internet-from-first-principles-faza-0ciffzefa) · Hacker News · 0 upvotes · 0 comments

---

Tags: [#networking](https://daily.dev/tags/networking)

[View this post on daily.dev](https://daily.dev/posts/early-data-link-layer-addressing-ipspace-net-blog-fqmpenaqy)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Early Data-Link Layer Addressing « ipSpace.net blog","url":"https://daily.dev/posts/early-data-link-layer-addressing-ipspace-net-blog-fqmpenaqy","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/early-data-link-layer-addressing-ipspace-net-blog-fqmpenaqy"},"datePublished":"2026-08-11T08:55:58.023Z","dateModified":"2026-08-11T09:28:00.844Z","description":"A deep dive into early data-link layer addressing mechanisms, tracing the evolution from multi-drop links and polling-based master/slave architectures to SDLC,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/809cc0f522bc709463775a1d612d142d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/809cc0f522bc709463775a1d612d142d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"ipSpace.net Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ipSpace.net Blog","logo":"https://media.daily.dev/image/upload/s--xS7E82MT--/f_auto,q_auto/v1786438303/logos/ipspace?_a=BAMAMicg0","url":"https://daily.dev/sources/ipspace"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/early-data-link-layer-addressing-ipspace-net-blog-fqmpenaqy","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"networking","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ipSpace.net Blog","item":"https://daily.dev/sources/ipspace"},{"@type":"ListItem","position":3,"name":"Early Data-Link Layer Addressing « ipSpace.net blog"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/early-data-link-layer-addressing-ipspace-net-blog-fqmpenaqy#faq","mainEntity":[{"@type":"Question","name":"Why does a PPP frame have an address field if PPP is a point-to-point protocol with no real addressing?","acceptedAnswer":{"@type":"Answer","text":"PPP inherited its frame format directly from HDLC and SDLC, which required an address field. Because PPP has no meaningful data-link addresses, the address byte is set to the broadcast value (0xFF), meaning 'addressed to everyone on the link.' The same HDLC frame format — including address and control bytes — was also used in LAPB (X.25 layer 2) and LAPD (ISDN signaling), so hardware implementations were already built around it. Networking engineers revisiting protocol fundamentals find the full context on daily.dev."}},{"@type":"Question","name":"How did SLIP handle the problem of the end-of-datagram byte appearing inside an IP packet payload?","acceptedAnswer":{"@type":"Answer","text":"SLIP used an escape mechanism: the end-of-datagram marker is byte value 192. If 192 appears in the data, SLIP substitutes it with two bytes: 219 followed by 192. If the escape character 219 itself appears in the data, it is replaced with 219 followed by 221. This lets SLIP unambiguously delimit IP datagrams over asynchronous serial links without a formal data-link layer. Developers and engineers studying low-level protocol design track discussions like this on daily.dev."}},{"@type":"Question","name":"Why could SLIP only carry IP traffic and not multiple network-layer protocols?","acceptedAnswer":{"@type":"Answer","text":"SLIP had no usable data-link layer — it only appended an end byte to raw IP datagrams and relied on the physical layer for character encoding. Without a data-link layer, there was no protocol-type field to distinguish between different network-layer protocols, so only IP datagrams could be transported. PPP solved this by including a 2-byte protocol ID field in every frame. Those building or studying multi-protocol network stacks find relevant protocol comparisons on daily.dev."}}]}
```

