The Point-to-Point Protocol is (at least according to Wikipedia) a Datalink Layer Protocol.

I know that different use cases exist for it but on examining the image below from Wikipedia one can see that it always seems to need a wrapping protocol like PPPoE and PPPoA.

Thus, my questions are: Why does PPP need a wrapping protocol? Which concrete functionalities from these protocols are needed? Why can't I just use PPP over Ethernet instead of PPPoE? (for the last one I would guess routing)



( As others have already said, PPPoE is literally PPP over Ethernet. And similarly PPPoA is PPP over ATM. )

Ethernet and ATM are oddities in the networking world as they define both a layer-1 and layer-2 component. In the case of ethernet, it's layer-1 has always used it's layer-2; no one ever built it any other way. (Ethernet's layer-2 protocol, however, has been used over many different layer-1's. For example, 802.11 WiFi, DOCSIS.) ATM went the other direction; it's layer-1 is virtually unheard of, but it's layer-2 can be found lots of places... T1, T3, SONET (OC-X), sync-serial (V.35, HSSI), ADSL, etc.

PPP was invented in the era of async-serial (RS-232) and dialup modems, and runs "naked" on those physical layers. As technology advanced, network operators wanted to continue using the same "dialup era" infrastructure and processes (i.e. account management), thus methods of carrying the familiar PPP were needed. An ethertype was registered for transporting PPP frames over ethernet. (and similar processes for ATM, and SONET. In the case of SONET, a bit of HDLC was needed to make the framing work with the SONET NRZ encoding.)

  • ATM was designed in the 1980s; T1 & T3 were introduced in the 1960s. I don't think T1 / T3 use ATM's layer 2 :). Also SONET is (roughly speaking) ATM's physical layer (eg you can run packets over SONET - known as POS - by replacing ATM with PPP). – psmears Feb 15 at 11:14
  • You can run ATM over T1 and T3 interfaces. (I've done so many times.) – Ricky Feb 16 at 1:31
  • True - but the way your answer is worded suggests that ATM is always the L2 for T1/T3/etc (in the same way that the Ethernet L2 is always the L2 for wifi etc) - would be worth clarifying if that's not what you mean :) – psmears Feb 16 at 7:59

Why does PPP need a wrapping protocol?

PPP is not a layer-1 protocol, so it needs a layer-1 protocol to carry it. Protocols like ethernet are both layer-1 and layer-2 protocols, so PPP can use ethernet as its layer-1 protocol, but that comes with the ethernet layer-2 protocol that wraps PPP.

Why can't I just use PPP over Ethernet instead of PPPoE?

PPPoE is PPP over Ethernet. That is exactly what PPPoE stands for.

Yeah but you still need the PPPoE header - my question is why it is needed.

Your idea that PPPoE is a separate protocol with a separate PPPoE header is incorrect.

The ethernet header has the EtherType* field to tell the network stack where to send the ethernet payload. For example, to send the ethernet payload to the IPv4 process, the EtherType field uses 0x800.

If the EtherType field is 0x880B, the the network stack sends the ethernet payload to the PPP process.

*See the IANA IEEE 802 Numbers page. There is an Ether Types section that explains the values and protocols for each type.

  • 2
    Possibly worth noting that the fact that PPP is not an L1 protocol is part of why it’s so useful. You can run it over almost anything to set up an IP-capable link, which is insanely useful in a lot of less common setups (for example, I’ve personally used PPP over a USB serial link on a couple of occasions when debugging NIC drivers before so that I could get a shell on the system being debugged without needing to go through setting up a console). – Austin Hemmelgarn Feb 14 at 14:08
  • I'm confused. Didn't you run PPP directly over serial lines (dial-up modems)? – Joshua Feb 14 at 18:41
  • 2
    With the greatest of respect, this answer is wrong about PPPoE. PPPoE is a separate protocol with a separate header. It's defined in RFC2516, and it uses ethertypes 0x8863 and 0x8864. (As far as I know ethertype 0x880b is used for PPTP GRE; I don't know of any application that uses it raw over Ethernet but I'd be fascinated to hear of one :) – psmears Feb 15 at 10:52
  • 1
    You might think of PPP as being a family of protocols with PPPoE as being one member of that family, or PPPoE being a concrete implementation of the abstract PPP protocol. – chepner Feb 15 at 15:30
  • 1
    @chepner: Not really - PPP is a fully fledged protocol in of itself, with a well defined packet format. Those PPP packets are carried (as the payload) inside PPPoE packets, which add some extra headers, to deal with things such as the possibility that there may be several PPPoE sessions going over the same LAN. If you look at a capture of PPPoE packets with, say, Wireshark, you'll see separate dissection of the "PPP-over-Ethernet Session" and "Point-to-Point Protocol" parts of the packet. – psmears Feb 15 at 15:53

PPP is designed to ride on top of a byte-oriented, point-to-point physical-layer protocol like a simple modem-style serial link.

Ethernet is no simple serial protocol but it requires frame-level addressing (L2 MAC address), so PPPoE expands standard PPP to take care of discovery and addressing between the link partners.

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.