PPPoE 协议介绍
PPPoE(Point - to - Point Protocol over Ethernet)即以太网上的点对点协议,是将点对点协议(PPP)封装在以太网框架中的一种网络隧道协议。它在以太网的基础上,实现了 PPP 协议的功能,如身份验证、加密、链路控制等,被广泛应用于家庭宽带、小区宽带等接入场景。
一、PPPoE 协议的工作原理(一)发现阶段1.PADI(PPPoE 主动发现初始化):客户端通过广播发送 PADI 报文,目的是寻找可用的 PPPoE 服务器(一般是宽带接入服务器 BRAS)。这个报文的目的地址是以太网的广播地址 0×ffffffffffff ,CODE 字段值为 0×09,SESSION-ID 字段值为 0×0000。PADI 分组中至少包含一个服务名称类型的标签(标签类型字段值为 0×0101) ,用来向接入集中器提出所要求提供的服务。2.PADO(PPPoE 主动发现提供):服务器收到 PADI 报文后,如果在服务范围内,就会发送 PADO 报文进行响应。PADO 报文中 CODE 字段值为 0×07,SESSION-ID 字段值仍为 0×0000。并且必须包含一个接入集中器名称类型的标签(标签类型字段值为 0×0102),以及一个或多个服务名称类型标签,以此表明可向主机提供的服务种类。3.PADR(PPPoE 主动发现请求):客户端可能会收到多个服务器回应的 PADO 报文,此时客户端会在这些报文中选择一个合适的,然后向所选择的接入集中器发送 PADR 报文。PADR 报文中 CODE 字段为 0×19,SESSION_ID 字段值仍为 0×0000。该分组必须包含一个服务名称类型标签,用来确定向接入集线器(或交换机)请求的服务种类。若客户端在指定时间内没有接收到 PADO,它应该重新发送 PADI 报文,并且加倍等待时间,这个过程会重复期望的次数。4.PADS(PPPoE 主动发现会话确认):接入集中器收到 PADR 报文后,准备开始 PPP 会话,会发送 PADS 报文。PADS 报文中 CODE 字段值为 0×65,SESSION-ID 字段值为接入集中器所产生的一个唯一的 PPPoE 会话标识号码。同时,PADS 分组也必须包含一个接入集中器名称类型的标签以确认向主机提供的服务。当客户端收到 PADS 分组确认后,双方就进入 PPP 会话阶段。(二)会话阶段一旦 PPPoE 会话建立,就进入 PPP 会话阶段。此时,客户端和服务器之间使用 PPP 协议进行数据传输。PPP 协议通过链路控制协议(LCP)来建立、配置和测试数据链路连接。例如,LCP 会协商最大接收单元(MRU)、认证方式等参数。同时,还会通过网络控制协议(NCP)来配置不同的网络层协议,如 IP 控制协议(IPCP)用于配置 IP 地址等参数。在数据传输过程中,PPP 帧会被封装在以太网帧中进行传输。
二、PPPoE 协议的应用场景(一)家庭宽带接入家庭用户通过调制解调器(如 ADSL 调制解调器、光纤猫等)和普通的以太网接口,利用 PPPoE 协议连接到互联网服务提供商(ISP)。ISP 可以通过 PPPoE 协议对用户进行身份认证,只有认证通过的用户才能访问互联网。同时,ISP 还能根据用户的使用情况进行计费管理,比如按流量计费或者按时长计费等。(二)小区宽带接入在小区或公寓楼等多用户居住区域,网络运营商通过 PPPoE 协议为每个用户提供独立的宽带接入服务。运营商可以统一管理用户的接入权限,并且根据不同用户的套餐类型提供相应的带宽服务。例如,有些用户办理的是高速光纤套餐,而有些用户是普通宽带套餐,通过 PPPoE 协议可以灵活地实现这种差异化服务。
三、PPPoE 协议的优缺点(一)优点1.支持认证:能够实现用户身份认证,ISP 可以通过 RADIUS(远程认证拨号用户服务)服务器对用户的用户名和密码进行验证,只有合法用户才能接入网络,保障了网络运营的安全性和可控性。2.链路管理:PPP 协议本身提供了链路质量监测功能,比如可以检测链路的丢包率、延迟等指标。如果链路质量出现问题,PPPoE 可以采取相应措施,如重新协商链路参数或者断开重连,有助于提高网络连接的稳定性和可靠性。3.广泛应用:由于其成熟性和兼容性,在各种宽带接入场景中得到了广泛应用,无论是 ADSL、光纤还是其他宽带接入方式,都可以使用 PPPoE 协议。(二)缺点1.增加开销:PPPoE 协议在数据传输过程中需要进行多次封装和解封装,在原来的以太网帧基础上,增加了 PPPoE 协议头和 PPP 协议头,这增加了数据传输的开销,在一定程度上降低了网络传输效率。例如,原本一个 1500 字节的以太网帧,加上 PPPoE 和 PPP 协议头后,实际传输的数据量会增大,导致有效数据传输占比降低。2.配置复杂:对于普通用户来说,PPPoE 的配置相对复杂。需要在设备(如路由器、电脑)上设置用户名、密码等参数,如果设置错误,可能导致无法正常连接网络。而且不同设备的设置界面和方法可能有所不同,这对普通用户来说有一定难度。3.效率较低:从 PPPoE 协议模型可以看出,宽带接入服务器(BAS)汇聚了用户的所有数据流,它必须将每一个 PPPoE 包都拆开检查处理,这在很大程度上沿袭了传统的 PPP 处理方式。一旦用户数量众多,数据包数量很大,BAS 解封装速度就需要很快,其很大精力花在检测用户的数据包上,容易形成接入的 “瓶颈”。
拓展阅读1.什么是 PPP 协议?:PPP(Point - to - Point Protocol)即点对点协议,是为在同等单元之间传输数据包这样的简单链路设计的链路层协议,主要用于建立、配置、测试和管理数据链路,以及协商网络层地址、网络层参数等。2.RADIUS 服务器的工作原理是什么?:RADIUS 服务器通过接收来自客户端(如 PPPoE 服务器)的认证请求,验证用户的身份信息(用户名和密码),然后根据配置的策略返回认证结果,同时还可以返回授权信息和计费信息等。3.如何在 Windows 系统中设置 PPPoE 拨号?:打开 “控制面板”,找到 “网络和 Internet” 选项,点击进入后选择 “网络连接”,在网络连接窗口中选择 “设置新的连接或网络”,然后选择 “连接到 Internet”,按照提示选择 “宽带(PPPoE)”,输入 ISP 提供的用户名和密码,完成设置。