本文章已收录至《网络》专栏,点进右上角专栏图标可访问本专栏
PPPoE(Point-to-Point Protocol Over Ethernet),指以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。由于协议中集成PPP协议,所以实现出传统以太网不能提供的身份验证、加密以及压缩等功能,也可用于缆线调制解调器(cable modem)和数字用户线路(DSL)等以以太网协议向用户提供接入服务的协议体系。
- 中文名:基于以太网的点对点通讯协议
- 外文名:Point to Point Protocol over Ethernet
- 简称:PPPoE
- 适用:ADSL等
- 学科:计算机
- 领域:计算机
PPPoE本质上它是一个允许在以太网广播域中的两个以太网接口间创建点对点隧道的协议。
以Linux系统常用的pppd为例,支持PPP接口上面的IP、IPv6和IPX网络层协议。
它使用传统的基于PPP的软件来管理一个不是使用串行线路而是使用类似于以太网的有向分组网络的连接。这种有登陆和口令的标准连接,方便了接入供应商的记费。并且,连接的另一端仅当PPPoE连接接通时才分配IP地址,所以允许IP地址的动态复用。
PPPoE是由UUNET、Redback Networks和RouterWare所开发的发表于RFC 2516说明中。
由于传统的PPP连接是创建在串行链路或拨号时创建的ATM虚电路连接上的,所有的PPP帧都可以确保通过电缆到达对端。但是以太网是多路访问的,每一个节点都可以相互访问。以太帧包含目的节点的物理地址(MAC地址),这使得该帧可以到达预期的目的节点。 因此,为了在以太网上创建连接而交换PPP控制报文之前,两个端点都必须知道对端的MAC地址,这样才可以在控制报文中携带MAC地址。PPPoE发现阶段做的就是这件事。除此之外,在此阶段还将创建一个会话ID,以供后面交换报文使用。
一旦连接的双方知道了对端的MAC地址,会话就创建了。
尽管传统的PPP是点对点协议,但是由于多个主机可以通过一个单独的物理连接连接到一个服务提供者,因此PPPoE本身就是一个客户端-服务器的关系。 发现过程包含四个步骤。主机作为客户端,ISP端的访问集中器作为服务器。这四步在下面详述。最后一步第五步是关闭一个现存会话的方法。
PADI为PPPoE Active Discovery Initiation的缩写。
如果一个用户想要使用DSL拨号连入Internet,那么他的计算机必须首先在其ISP的网络服务提供点(POP)找到DSL访问集中器(DSL-AC)。在以太网上通讯只能通过MAC地址。由于计算机不知道DSL-AC的MAC地址,于是就在以太网上广播一个PADI报文。这个报文中包含发送者的MAC地址。
PADI报文可能被一个以上的DSL-AC接收。 只有可以提供“服务名称”(Service-Name)的DSL-AC设备才应该回复。
PADO为PPPoE Active Discovery Offer的缩写。
一旦用户计算机发送了PADI报文,DSL-AC就会使用PADI中提供的MAC地址回复一个PADO报文。PADO报文中包含了DSL-AC的MAC地址、名称以及服务名。如果多于一个POP的DSL-AC回复了PADO报文,用户计算机就使用提供的名称和服务来从中选择一个。
PADR为PPPoE Active Discovery Request的缩写。
当用户计算机收到一个来自DSL-AC的可接受的PADO报文后,就会发送一个PADR报文给DSL-AC,用来确认接受发送PADO报文的DSL-AC所提供的PPPoE连接。
PADS为PPPoE Active Discovery Session-confirmation的缩写。
上面的PADR报文由DSL-AC的PADS报文进行确认,并在其中携带一个会话ID。用户计算机与此DSL-AC的连接就完整创建了。
PADT为PPPoE Active Discovery Termination的缩写。
这个报文终结用户计算机与POP的的连接,可由用户计算机或DSL-AC任意一方发送。
使用Internet前,需先透过PPPoE进行拨接,而非计算机引导后立即上网。(引导后立即上网,详见DHCP,有些ISP有提供第1台PC自DHCP获取固定IP)
部分ISP会对PPPoE的连线用户采取定时断线,以节省营运成本及IP地址的占用,故对于需长时间挂网的用户较不利。但也有部分ISP为提供用户选择PPPoE可发配非固定IP或固定IP的服务。
Windows XP之后的Windows,Mac OS X、Linux等操作系统等皆已内置PPPoE的拨接功能,更早期的操作系统需另行安装PPPoE的拨接程序,如Enternet 300、RAS PPPoE等。
(1)645故障描述:拨号适配器未装
这种情况主要针对Windows ME和Windows98而言,解决办法是在Windows98下添加拨号适配器组件即可。对Windows ME而言,因为它没有直接添加拨号适配器的选项,所以必须在控制面板中先删除拨号网络组件,再添加拨号网络组件,完成适配器的添加。
(2)691/629故障描述:不能通过验证
可能的原因是用户的账户或者密码输入错误,或用户的账户余额不足,用户在使用时未正常退出而造成用户账号驻留,可等待几分钟或重新启动后再拨号。
(3)630故障描述:无法拨号,没有合适的网卡和驱动
可能的原因是网卡未安装好、网卡驱动不正常或网卡损坏。检查网卡是否工作正常或更新网卡驱动。
(4)633故障描述:调制解调器(或其它连接设备)已在使用,或没有正确配置。
如果是拨号网络连接,则网络连接试图使用的COM端口正在被其他活动网络连接或其他进程(例如,诸如传真程序之类的电话线路监视程序)使用。退出阻止使用COM端口的应用程序。
如果是虚拟专用网络(VPN),则不能打开网络连接试图使用的VPN设备。这需要您的系统管理员才能解决。
如果这是宽带连接,则无法打开网络连接尝试使用的宽带设备。确保要求硬件(电缆调制解调器)运行正常。有关所需硬件的详细信息需要您的宽带服务提供商来解答。
(5)720故障描述:不支持PPPoE连接
它是Windows 2000特有的故障,建议重新启动后再进行连接,如仍不能排除故障,建议重装系统。
(6)697故障描述:网卡禁用
只要在设备管理中重新启用网卡即可。
(7)769故障描述:拨号时报769错误
在Windows XP系统中网卡被禁用、系统检测不到网卡或者拨号软件故障,有时会报769错误。重新启用网卡、检查网卡工作是否正常或重装拨号软件即可解决。
(8)678(651)故障描述:无法建立连接
远程计算机没有响应,windows xp 错误代码为678,windows 7错误代码为651,造成此故障的原因是基础线路问题,或者您的互联网服务提供商设备问题。
PPPoE是从窄带技术演化而来,PPP最早就是专门
为电话线上网而设计的,当宽带普及后,为了兼容以前的电话线用户习惯,故在宽带网络中继承了PPP技术。PPPoE是一种过渡技术,已经基本处于淘汰阶段。原因如下:
1、PPPoE是一种2层链路技术,正常下无法穿透三层交换机,若要在三层交换机传输,就必须做trunk,即把三层当作二层交换机使用。这导致不能充分发挥三层交换机的潜能,三层交换机的很多高级功能都无法使用,从而浪费了宝贵的网络设备资源。也给整体网络规划造成了一定的复杂性。如果一开始采用了PPPoE认证,那么以后想要使用三层交换机网络规划功能,调整整体网络,那么将是一个巨大的工作量。
2、宽带使用PPPoE方式,将造成不必要的带宽损耗,而且上网速度比正常宽带速度要慢一个级别。原因是采用PPPoE比正常宽带包,多了2个协议层,一个是PPPoE协议层,另一个就是PPP协议层,这几个协议层头会增加到正常数据包头部里,在传输数据过程中,多出了不少额外数据,拨号握手过程也比正常多了好几个步骤。
3、2004年开始,ARP攻击在网络流行时,PPPoE由于自身与ARP无关的特点,使其具有天然免疫优势,所以,当时很多场合对PPPoE有较高的需求。
但经过近10年网络发展,随着各种安全软件普及,如360、电脑管家、以及各种杀毒软件等都早已具有防止ARP攻击功能。因此,ARP攻击已经彻底消失殆尽。PPPoE的各种缺点已经越来越不适应宽带网络的发展。
4、PPPoE客户端一般都会采用操作系统自带的PPPoE,但设置比较麻烦,有很多步骤,普通家庭用户若不熟悉,大多数根本搞不定,此时维护人员必须挨家挨户进行上门设置,这给网络维护带来了很大工作量。非常不利宽带网络用户的发展和运营,将经常接到用户关于PPPoE的使用投诉。
5、PPPoE的效率比较低,从PPPoE协议模型可以看出,BAS汇聚了用户的所有数据流,它必须将每一个PPPoE包都拆开检查处理,这在很大程度上是沿袭了传统的PPP处理的方式,一旦用户很多,数据包数量很大,解封装速度就需要很快,BAS很大的精力花在检测用户的数据包上,容易形成接入的“瓶颈”。
6、PPPoE由于采用了二层链路方式,所以在防止ARP三层包攻击方式具有很大安全性,但PPPoE自身却存在着协议不安全性,因为PPPoE认证是采用广播方式,在网段内只要装个网络嗅探器,都能截获到PPPoE包,并能做任意修改重定向。