PPP over Ethernet Protocol

for Windows 98/98SE/ME

(If you are using Windows 2000/XP/2002, please click here)

written by Robert Schlabbach

Version 0.96, May 29th, 2001


1. Introduction

2. Installing the PPP over Ethernet Protocol

3. Creating PPP over Ethernet Dial-up Connections

4. Removing the PPP over Ethernet Protocol

5. Advanced Protocol Features

6. Troubleshooting

7. Known Issues

8. Revision History

9. Contacting the Author

1. Introduction

Welcome to RASPPPOE, a PPP over Ethernet (short: PPPoE) implementation for Windows 98/98SE/ME/2000/XP/2002. PPPoE as a method for establishing PPP connections through Ethernet adapters is described in RFC 2516 and is used by many broadband service providers to allow authentication and maintain the familiar "dial-up experience" when connecting to the Internet through a broadband modem. Although there are other PPPoE implementations for Windows, this one still has its unmatched strong points:

To install this protocol, please follow the installation instructions carefully. If you have problems using it, see Troubleshooting for help. If you are successfully using this protocol, you can check if you find any of the advanced features useful. You may also want to know about the known issues. Users upgrading from a previous version of this protocol should check the Revision History to find out what changed. If you want to get in touch with me, see Contacting the Author.

- Robert Schlabbach

License and Disclaimer

This driver, installation files and documentation is all Copyright (C) 2000-2001 by Robert Schlabbach. All rights reserved. It is distributed without any warranty. Use at your own risk. You may use and copy it complete and unmodified free of charge for non-commercial purposes only. Commercial exploitation, redistribution for commercial purposes, especially redistribution by Internet service providers as "their" service to their customers, is strictly prohibited. Internet service providers must purchase a license for distribution to their customers. The licensed version additionally features an installer, which typically requires no reboot and leads the user to the first login for an "instant success" customer experience. For licensing details please contact me.

2. Installing the PPP over Ethernet Protocol

3. Creating PPP over Ethernet Dial-up Connections

PPP over Ethernet dial-up connections can be most conveniently created with the Dial-up Connection Setup application provided with the protocol, which creates dial-up connections with all the correct settings at the click of a button.

4. Removing the PPP over Ethernet Protocol

  1. NDISWAN -> PPP over Ethernet Miniport.
  2. PPP over Ethernet Miniport -> PPP over Ethernet Protocol
  3. PPP over Ethernet Protocol -> Adapter Name

5. Advanced Protocol Features

This section covers the advanced features of the protocol. Average users should be perfectly happy with the default settings, although specifying the link speed to display may be of interest. Users having problems with VPN software might try if overriding the MTU reported by the protocol helps. Users with flat rate Internet access may be interested in making the connection "always on". If you are interested in using the protocol's server capability, please see Enabling the protocol to act as a PPPoE Access Concentrator.

To bring up the protocol settings for an adapter:

The General tab offers the following settings:

5.1 Limit TCP MSS Maximum Segment Size (MSS) Option

When using Internet Connection Sharing, the client machines are completely unaware of the packet size restrictions imposed by the nature of PPP over Ethernet (in contrast to e.g. modem or ISDN connections, which allow passing arbitrarily sized packets). Typically, a client assumes that packets of up to 1500 bytes can be passed and thus indicates a Maximum Segment Size of 1460 bytes (1500 bytes minus 40 bytes for the TCP and IP headers) when opening a TCP session, resulting in either side of the connection sending packets up to 1500 bytes in size, too large to pass through a PPP over Ethernet connection, which can only pass packets up to 1492 bytes in size. These oversized packets are then often silently dropped at either side of the PPP over Ethernet connection, leading to delays or hangs when accessing the Internet from a client.

To work around this problem, this option makes the protocol scan all network packets it sends and receives for the TCP Maximum Segment Size (MSS) option and, if a value greater than either the default (1492) or the overridden MTU minus 40 for the IP and TCP headers (i.e. 1452 in case of the default MTU) is found, change it to this value, recalculate the TCP checksum and pass the modified packet. This option is enabled by default. If you are not using Internet Connection Sharing, you can disable this option to save a little (very little) CPU power, although leaving it enabled has no negative side effects.

5.2 Override Maximum Transfer Unit

By default, the protocol will report an MTU of 1492 bytes, the maximum possible for PPP over Ethernet. However, you can use this option to override the MTU initially reported by the protocol. Making the protocol initially report a lower MTU was found to help with certain VPN software packages which "blindly" add their own overhead without paying any respect to the MTU reported by the driver, making the network packets too large to pass through a PPP over Ethernet connection. Check the Override Maximum Transfer Unit checkbox and type the MTU the protocol should report in the Maximum Transfer Unit (MTU) edit box. The valid range is 576 through 1492 bytes. Reducing the MTU by 32 bytes to 1460 should generally suffice to make misbehaved VPN software work. Note: Regardless of this setting, the protocol will always send and receive packets of up to 1492 bytes. Only the MTU initially reported by the protocol (the MaxFrameSize value in response to the OID_WAN_GET_INFO request) and, if enabled, the TCP MSS option limit are affected by this setting.

Note that the Dial-Up Adapter's IPMTU registry parameter is also set to the override value, since the Dial-Up Adapter ignores the MaxFrameSize returned by the driver. This means that this setting will affect the MTU of all dial-up connections, and that the use of any other MTU adjustment tool will possibly conflict with this option, altering it.

NOTE: This option will only "stick" if you enter an MTU other than 1492. If you only check the checkbox, but leave the MTU at 1492, the protocol will recognize the default value and clear the checkbox the next time you open the properties dialog, because the MTU was not actually overridden.

5.3 Number of lines (WAN endpoints)

The protocol is capable of running several simultaneous PPP over Ethernet sessions through one adapter. This feature will probably be very rarely - if ever - needed. To allow this, you can configure the number of WAN endpoints (dial-up devices) the protocol exposes for a network adapter. The default is 1, and up to 10 WAN endpoints can be configured. This setting requires a reboot to take effect.

The Advanced tab offers the following settings:

5.4 Specify Link Speed

By default, the protocol will report the speed of the network adapter you are connecting through as the speed of a dial-up connection you make through it, as it cannot find out the actual speed of your broadband modem. However, you can specify the connection speed the protocol should report for connections through a specific adapter. To do this, check the Specify Link Speed checkbox and type the link speed the protocol should report in the Link Speed (kbps) edit box, in kilobits per second. If you want to revert to displaying the adapter's link speed, clear the Specify Link Speed checkbox. Note: This setting has absolutely no effect on the network traffic through this adapter; it is purely a cosmetic setting.

Beyond these settings, the protocol offers the following possibilities:

5.5 Making a dial-up connection "always on"

Users who enjoy flat rate Internet access may find it desirable to turn their connection into an "always on" connection that is established automatically when you log on to Windows and kept until you log off. To make your dial-up connection "always on", follow these steps:

5.6 Addressing a specific Service and/or Access Concentrator

In most cases, there is no need to address a specific Service or Access Concentrator. But should you have a need to do so, you can use the phone number field of your dial-up connection to specify a Service, Access Concentrator or both. The following phone number formats are possible:

  1. "0": The protocol will connect to the default Service of the first Access Concentrator that replies to the connection request.
  2. "Service-Name": The protocol will connect to the first Access Concentrator that replies offering the requested Service.
  3. "Access-Concentrator\": The protocol will connect to the default Service of the named Access Concentrator.
  4. "Access-Concentrator\Service-Name": The protocol will connect to the requested Service of the named Access Concentrator.

The RASPPPOE application uses format A for the phone number if you create a connection for an adapter and format C or D if you create a connection for a specific service.

5.7 Enabling the protocol to act as a PPPoE Access Concentrator

The protocol is able to act as a PPPoE Access Concentrator (server). This feature can be used for testing purposes, but also offers a future potential for advanced provider services like instant messaging or instant e-mail even for users who are offline at the time a message is received. The server capability is fully integrated with the operating system's Dial-Up Server component. No PPPoE-specific configuration is needed. The protocol uses the current Computer Name as the Access Concentrator Name and offers any Service Name requested by a client. Note that the protocol will not offer any services until you explicitly enable its dial-up devices to accept incoming connections. To do this, follow these steps:

For further help on using Dial-Up Server, please refer to the operating system's documentation on this topic.

NOTE: Machines running Windows 98/98SE/ME will not be able to successfully connect to another Windows 98/98SE/ME machine acting as a PPPoE Access Concentrator (server) due to this known issue.

6. Troubleshooting

This section helps you with possible problems you might encounter during the installation and use of the protocol.

6.1 RASPPPOE application does not list the desired adapter

First, be aware that you can use this protocol only on Ethernet adapters. As PPP over Ethernet only works over Ethernet, the protocol will only bind itself to Ethernet adapters (NdisMedium802_3). Adapters that do not support this medium type (e.g. internal or USB broadband modems that do not expose a standard Ethernet interface through their driver) are not supported by this protocol.

Check in Device Manager whether the network adapter connected to your broadband modem is enabled and working properly. If it is, try rebooting the machine. If that does not help, try uninstalling the protocol, rebooting, re-installing and rebooting again. Your adapter should be listed now.

6.2 RASPPPOE application reports "RASPPPOE - No Service Offers Received" when querying available services

This error message means that the protocol did not receive any response from your service provider. You should check the following things in order:

  1. Check if your broadband modem has successfully established a link with its counterpart. Most DSL modems have a Sync LED on them which indicates this status. If your modem has such an LED and it indicates that the link is down, contact your service provider for assistance.
  2. Check in Device Manager if the network adapter your broadband modem is connected to is enabled and working properly.
  3. Bring up the Network Configuration window, select the network adapter your broadband modem is connected to and click Properties. In the Properties window, select the Advanced tab, look through the options and make sure that the correct Line Speed and duplex mode is selected (most DSL modems only support 10Mbps half duplex mode). If your network adapter has several connectors at the back, make sure the correct connector is selected, which is most likely Twisted Pair (TP).
  4. Check that the cable connecting your broadband modem to your network adapter is properly attached and of the correct type. Note that broadband modems typically have a "crossed" connector on them, so you will need a straight cable to connect it directly to a network adapter, while you need to use a crossed cable or use an uplink port to connect it to a hub or switch.
  5. Check with your service provider whether they currently have a service outage.

6.3 Connection attempt fails with "Error 678: There was no answer."

First, you should check whether you can get any reply from your service provider with the Dial-up Connection Setup application provided with the protocol:

If you do not want to connect to a specific Service and/or Access Concentrator, make sure the Phone number field of your dial-up connection really only contains a single zero digit.

6.4 Connection is successfully established, but some (or all) Internet websites do not load properly

This is usually a sign of an MTU problem. A possible cause for this could be that the Dial-Up Adapter's common IP MTU setting was altered to a value too high for PPP over Ethernet. This setting is altered e.g. when you change the IP Packet Size value on the Advanced tab of the Dial-Up Adapter Properties to something other than the "PPP over Ethernet" setting added by the protocol, or by some MTU tools. You should not change this setting, nor use any tools that alter it when using PPP over Ethernet. To ensure this setting is correct do the following:

If that did not help, you should determine the Path MTU to the problem site(s) (Note: The method described here does not work with all servers. If you get no reply at all from a server or a number below 548, you cannot determine the Path MTU to the server in question):

Connect, open an MS-DOS Prompt and run:

ping -f -l xxxx Address

Where Address is the name or IP address of the server you have problems accessing. For xxxx, start with 1464 and lower the number until you get a reply. Then add 28 to the highest number at which you get a reply. The result is the Path MTU.

Example: You start getting replies at ping -f -l 1372 Address. The Path MTU is 1372 + 28 = 1400 bytes in this case.

Normally, the Path MTU to all servers should be 1492. However, some service providers appear to have a configuration problem which reduces the Path MTU. If you determine a Path MTU lower than 1492 to several (or all) servers on the Internet, you should enable the MTU override option and set it to the Path MTU you determined. After that setting has taken effect, all sites with a Path MTU greater than or equal to the value you set should load properly.

6.5 Connection is successfully established, but there are periodic pauses while using the Internet

This is typically the result of leaving the TCP/IP->Adapter Name entry in the network configuration, not assigning any fixed IP address to it, and not having any DHCP server on the local network either. This also makes the machine take significantly longer to boot up. To fix this, right-click the Network Neighborhood (Windows 98/98SE) or My Network Places (Windows ME) icon on your desktop and select Properties to bring up the Network Configuration window. In this window, locate and select the TCP/IP->Adapter Name entry for the network adapter connected to your broadband modem. If this network adapter is dedicated to your broadband modem, simply click the Remove button. If you also want to access other local machines through the same network adapter, click the Configure button and assign a fixed IP address (e.g. with subnet mask

6.6 Cannot get Internet Connection Sharing to share the PPPoE connection

A common cause of this is that Internet Connection Sharing was incorrectly set up to use a network adapter for Internet access, which bypasses the PPP over Ethernet Protocol. Re-configure Internet Connection Sharing and make sure you select the Dial-Up Adapter as the device through which to access the Internet. For further help, see this article in the Microsoft support database:

Q273587 - How to Configure ICS for Use with DSL Connections That Use PPPoE Adapters

6.7 The "Override Maximum Transfer Unit" option does not remain checked

This option will only "stick" if you enter an MTU other than 1492. If you only check the checkbox, but leave the MTU at 1492, the protocol will recognize the default value and clear the checkbox the next time you open the properties dialog, because the MTU was not actually overridden.

7. Known Issues

This section documents known issues with the protocol.

7.1 If the installer requires a reboot to finish, the initial connection will not have an icon in the system tray

If the installer detects that it can not start the protocol dynamically, it informs the user that a reboot is required. Upon the next reboot, the installer creates a dial-up connection and brings up the Connect To dialog before the task bar appears. If the connection is established, it will be fully functional, but there will be no icon for it in the system tray. To disconnect the connection, double-click the Connection through Adapter Name icon that was placed on the desktop to bring up the connection status and click the Disconnect button there.

Background: The installer places an entry under the RunOnce registry key to run itself after the reboot. When starting, Windows runs all entries under this key and waits for each one to finish before starting the shell. Thus, the connection will be established before the task bar is created, making it impossible for Dial-Up Networking to add a connection icon to the system tray.

7.2 Dial-Up Server does not recognize the dial-up devices exposed by the protocol until the machine is rebooted

If the installer starts the protocol dynamically without a reboot, it is possible to make outgoing connections with it, but the Dial-Up Server will not recognize the dial-up devices exposed by the protocol. The user must reboot the machine to make Dial-Up Server recognize the protocol's dial-up devices.

Background: The cause of this issue is undetermined.

7.3 When acting as a PPPoE Access Concentrator, Windows 98/98SE/ME machines cannot connect

When you configure a Windows 98/98SE/ME machine to act as a PPPoE Access Concentrator (server) and try to connect from another Windows 98/98SE/ME machine, the connection will hang during negotiation and cannot be successfully established. There is currently no workaround for this problem other than using a different operating system on the client or server machine. Connections with Windows 2000/XP/2002 at either end work fine.

Background: Windows 98/98SE/ME negotiates the PPP options Address Field Compression and Protocol Field Compression, despite the protocol indicating that these options are not supported, since RFC 2516 explicitly forbids these options for PPP over Ethernet connections. When there are Windows 98/98SE/ME machines at both ends, these options are successfully negotiated, but the machines can no longer communicate as soon as they are used. When there is a Windows 2000/XP/2002 machine at either end, it will reject any of these options and the connection can be successfully established.

8. Revision History

9. Contacting the author

Before contacting me, please bear in mind that you are getting this piece of software for free. You cannot expect me to spend my time providing "tech support". If you have a problem that you cannot resolve after reading above documentation thoroughly, please first check if there is updated information or a newer version of this protocol available on the RASPPPOE Home Page. Of course, developer suggestions for fixing the known issues, success stories (please mention your service provider, so that I know which ones this protocol works with) or just "thank you" notes are always welcome.

You can contact me via the e-mail address normanb@cs.TU-Berlin.DE.