What is PPPoE

PPPoE (PPP over Ethernet) is a protocol for using PPP functions via Ethernet.

 PPP was originally developed for connecting to a network by dial-up or ISDN, and PPPoE enables PPP to be used in environments where ADSL and FTTH services are always connected.

 PPPoE, unlike PPP, identifies both computers by the unique MAC address burned into the NIC and establishes a virtual circuit between them. Then, PPP packets can be exchanged on that virtual circuit, and the user name and password can be checked.

PPPoE is now the Internet standard protocol for broadband connections.

● PPPoE frame

IP packets are extracted from the MAC frames sent from the PC at the broadband router.

 Then, the extracted IP packet is encapsulated with a PPP header at the beginning, and then encapsulated with a PPPoE header. A PPPoE frame is obtained by encapsulating this again with a MAC frame.

 As you can see from the structure of the PPPoE frame in the above figure, what is included in the PPPoE frame is a PPP frame.

 After receiving the PPPoE frame, the access server on the provider side extracts the PPP frame from the PPPoE frame, making it possible to communicate using PPP.

PPPoE (MTU issue)

The flow for browsing the homepage is as follows.

・The web browser establishes a TCP connection with the web server based on the entered URL.
・In that connection, set "MTU-40" in the TCP option of the SYN packet and send it to the Web server as the maximum length of data that you can connect to.
・The web server creates and sends an IP packet based on the notified MSS.
・The web browser sequentially assembles and displays the packets received from the web server.

*MTU (Maximum Transmission Unit) Maximum amount of data that can be transferred at one time

 When a web browser accesses a destination web site, the web browser notifies the other web server of the maximum data size value it can receive.

 No matter Windows or Linux, if the PC running the web browser is directly connected to the web server, no problem will occur.

However, connecting through a broadband router can cause problems.

 This is because a PC running a web browser does not know that there is PPPoE in the middle, so it recognizes the maximum MTU (1,500 bytes) of the Ethernet you are connected to as the MTU. . MSS is 1,500 - 40 = 1,460 bytes.

 In this case, the maximum size of a packet that can be carried by Ethernet is 1,500 bytes, plus 8 bytes for both the PPPoE and PPP headers, 1,500 + 8 = 1,508 bytes, which exceeds the maximum length.

 Both the PPPoE and PPP headers add 8 bytes, so in theory MTU=1,492 bytes and MSS=1,452 bytes.

For FLET'S ADSL, the MTU is 1,454 bytes, and the maximum MSS length is 1,454 - 40 = 1,414 bytes.

 The default MTU of 1,500 bytes and MSS of 1,460 bytes set by the web browser will exceed the maximum packet size of 1,500 bytes that can be carried by Ethernet.

 Therefore, recent routers that support PPPoE rewrite the MSS and send it when the MSS determined by the PC exceeds the value determined by the router. Some models allow you to specify the MTU (MSS) value with a command.

* MSS is specified by Max Segment Size in the TCP option field.

 Also, some routers are set to much smaller values ​​than the original theoretical values. This is because a margin is provided in consideration of the effects of encapsulating packets on the WAN and using tunnel protocols for communication.

In any case, the router has to divide the packet and transfer it, which causes a problem that the transmission efficiency deteriorates.

PPPoE session establishment procedure

The procedure for establishing a PPPoE session is shown below.

 First, the PPPoE client sends a broadcast across the network. This is because the client looks for a PPPoE server that accepts PPPoE communication.

A PPPoE server that receives a broadcast PPPoE start message returns an offer message to the client.

 A client that receives an offer requests to start a session. The PPPoE session is then established by the PPPoE server sending a confirmation message with the session ID.

After the PPPoE session is established, PPP negotiation begins.

PPPoE (username@provider name)

PPP can check user names and passwords on dial-up connections such as telephone lines and ISDN lines.
 Unlike PPP, PPPoE identifies both computers by the MAC address of the NIC, establishes a virtual circuit between them, exchanges PPP packets on that virtual circuit, and checks the user ID and password. It is now possible.

 FLET'S ADSL uses notation similar to e-mail addresses for user authentication, and collectively processes the connection destination provider and the provider's user ID.

 By operating the user ID in the format of "user name@provider name", multiple providers can be selected. The character string after @ identifies the provider name.

 By using PPPoE, user authentication and IP address assignment are possible even from a LAN (Ethernet) like a dial-up connection (PPP connection). , is widely adopted.

The diagram below shows how multiple ISPs can be selected using PPPoE and PPP.

*User authentication may be performed by installing an authentication (RADIUS) server in the same location as the PPPoE server.

 By using PPPoE in this way, carriers can identify users, adjust bandwidth for each user, and check security for each user.

 PPPoE was originally provided as PPPoE software by telecommunications carriers, but has been implemented as standard since Windows XP. Also, many broadband routers now support PPPoE.


 PPPoA is an abbreviation for "PPP over ATM" and is a protocol for PPP connections over ATM networks. PPPoE, on the other hand, provides a PPP connection over Ethernet.

 Phones and ISDN have PPP servers that provide dial-up connection services. PPPoA and PPPoE are technologies developed to use this mechanism as it is.

 With this technology, ADSL Internet can be provided by simply performing the same procedure as dial-up connection.

 PPPoA was originally developed to use PPP with ADSL. That's because ADSL had come to communicate with ATM technology.

 However, ATM requires VC to manage the path, which is very expensive. Also, since it is not a communication technology for personal computers that general users can easily use, there was a problem in introducing it. Therefore, PPPoE was developed.
*Separate software is required when using with Windows.

PPPoA is not widely used today.