你了解PPPOE的工作流程么?

网络 网络管理
PPPoE(Point-to-Point Protocol over Ethernet),即以太网上的点对点协议,它可以使以太网上的主机通过一个简单接入设备连到Internet上,并对接入的用户进行控制、计费管理。

PPPoE简介

PPPoE(Point-to-Point Protocol over Ethernet),即以太网上的点对点协议,它可以使以太网上的主机通过一个简单接入设备连到Internet上,并对接入的用户进行控制、计费管理。

PPPoE协议采用Client/Server(客户端/服务器)方式,它将PPP报文封装在以太网帧内,在以太网上提供点对点的连接。

PPPoE连接

PPPoE拨号连接包括Discovery(发现)和Session(PPP会话)两个阶段。下面将分别介绍这两个阶段。

Discovery阶段

此阶段用来建立连接,当一个用户主机想开始一个PPPoE会话时,首先必须进行发现阶段以识别PPPoE Server的以太网MAC地址,并建立一个PPPoE会话标识(Session ID)。

 

 

Discovery阶段的基本工作流程

如上图所示, Discovery阶段由四个步骤组成,下面将介绍它的基本工作流程。

1、PADI:如果要建立一条PPPoE连接,首先PPPoE客户端就要以广播的方式发送一个PADI(PPPoE Active Discovery Initiation)数据包,PADI数据包包括客户端请求的服务。

2、PADO:当PPPoE服务器(BRAS)收到一个PADI包之后,它会判断自己是否能够提供服务,如果能够提供服务的话,就会向客户端发送PADO(PPPoE Active Discovery Offer)数据包来进行回应。PADO数据包包括PPPoE服务器名称和与PADI数据包中相同的服务名。如果PPPoE服务器不能为PADI提供服务,则不允许用PADO数据包响应。

3、PADR:由于PADI是以广播的形式发送出去的,PPPoE客户端可能收到不止一个PADO数据包,它将审查所有接收到的PADO数据包并根据其中的服务器名或所提供的服务选择一个PPPoE服务器,并向选中的服务器发送PADR(PPPoE Active Discovery Request)数据包。PADR数据包包括客户端所请求的服务。

4、PADS:当PPPoE服务器收到客户端发送的PADR包时,它就准备开始一个PPPoE会话,它为PPPoE会话创建一个***的PPPoE会话ID,并向客户端发送PADS (PPPoE Active Discovery Session- confirmation)包作为响应。

当发现阶段正常结束后,通信的两端都获得会话标识(Session ID)和对方的MAC地址,它们一起***定义一个PPPoE会话。

PPP会话阶段

当PPPoE进入PPP会话阶段后,客户端和服务器将进行标准的PPP协商,PPP协商通过后,数据通过PPP封装发送。PPP报文作为PPPoE帧的净荷被封装在以太网帧内,发送到PPPoE链路的对端。Session ID必须是Discovery阶段确定的ID,且在会话过程中保持不变,MAC地址必须是对端的MAC地址。

PPPoE连接的断开

在会话阶段的任意时刻,PPPoE服务器和客户端都可向对方发送PADT(PPPoE Active Discovery Terminate)包通知对方结束本会话。当收到PADT以后,就不允许再使用该会话发送PPP流量了。在发送或接收到PADT数据包后,即使是常规的PPP结束数据包也不允许发送。一般情况下,PPP通信双方使用PPP协议自身来结束PPPoE会话,但在无法使用PPP时可以使用PADT来结束会话。

 

【编辑推荐】

  1. 双PPPoE语音数据分离接入解决方案
  2. 对PPPoE协议配置命令的解析
  3. PPPT、PPPoE和PPPoA三类接入方式的区别和联系
  4. FreeBSD PPPoE设置指导
  5. 2600路由器PPPoE设置的分析
责任编辑:Writer 来源: hi.baidu.com
相关推荐

2020-07-13 09:09:23

Sentinel源码Bucket

2022-10-09 15:18:31

SwaggerOpenAPI工具

2011-03-31 10:54:01

Cacti工作流程

2023-05-05 08:29:15

Spring后台服务器

2010-07-13 16:21:22

FIX协议

2010-06-12 17:44:19

ARP协议

2009-06-05 10:26:05

struts工作流程

2010-09-27 10:19:09

DHCP工作流程

2022-11-02 15:11:44

LightHouseChrome插件

2010-06-23 14:46:54

DHCP协议

2010-06-24 16:40:16

Bittorrent协

2010-07-28 17:19:28

ICMP协议

2011-03-29 09:30:12

Cacti

2009-07-27 14:13:15

2023-12-08 13:16:00

CSSJSXStyleX

2012-02-01 14:02:00

苹果产品开发

2020-10-13 21:25:15

DevOps核心

2021-10-30 18:56:12

Spring工作框架

2010-07-26 14:55:56

Telnet服务器

2023-06-05 08:14:17

RabbitMQ兔子MQ开源
点赞
收藏

51CTO技术栈公众号