pppoe协议交互流程以及报文结构

发布于:2022-10-21 ⋅ 阅读:(370) ⋅ 点赞:(0)

pppoe出现的原因:

PPP (Point-to-Point Protocol )是为在点对点的简单链路上传送多协议数据报而设计的协议。PPP协议要求进行通信的双方之间是点到点的关系,不适于广播型的以太网和另外一些多点访问型的网络,于是就产生了PPPoE协议(Point-to-Point Protocol Over Ethernet)。它不仅为使用桥接以太网的用户提供了一种宽带接入手段,同时还能提供方便的接入控制和计费。每个接入用户均建立一个独一无二PPP的会话,因此会话建立之前必需知道远端访问集中设备的MAC地址,PPPoE协议可通过发现协议来获取到。

pppoe的交互流程

pppoe分为三个阶段:Discovery阶段、Session阶段、Terminate阶段。

Discovery阶段:

1.PADI:PPPoE活动发现发起报文,PPPoE Client 广播发送一个PADI 报文,在此报文中包含PPPoE Client 想要得到的服务类型信息。
在这里插入图片描述
2.PADO:PPPoE活动发现提供报文,(2)所有的PPPoE Server 收到PADI 报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO 报文。
在这里插入图片描述
3.PADR:PPPoE活动发现请求报文,根据网络的拓扑结构,PPPoE Client 可能收到多个PPPoE Server 发送的PADO 报文,PPPoE Client 选择最先收到的PADO 报文对应的PPPoE Server 做为自己的PPPoE Server,并单播发送一个PADR报文。
在这里插入图片描述
4.PADS:PPPoE活动发现会话报文,(4)PPPoE Server 产生一个唯一的会话ID(SESSION ID),标识和PPPoE Client 的这个会话,通过发送一个PADS 报文把会话ID 发送给PPPoE Client,如果没有错误,会话建立后便进入PPPoE Session 阶段。
在这里插入图片描述

session阶段:

会话阶段可划分为两部分,一是PPP协商阶段,二是PPP报文传输阶段。PPPoE 会话上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。
(1) LCP 阶段主要完成建立、配置和检测数据链路连接。
(2) LCP 协商成功后,开始进行认证工作,认证协议类型由LCP 协商结果(CHAP 或者PAP)决定。
(3) 认证成功后,PPP 进入NCP 阶段,NCP 是一个协议族,用于配置不同的网络层协议,常用的是IP 控制协议(IPCP),它负责配置用户的IP 和DNS等工作。PPPoE Session的PPP协商成功后,其上就可以承载PPP数据报文。在PPPoE 会话阶段所有的以太网数据包都是单播发送的。
在这里插入图片描述

Terminate阶段:

PADT:PPPoE活动发现终结报文,PPP通信双方应该使用PPP协议自身(比如PPP终结报文)来结PPPoE会话,但在无法使用PPP协议结束会话时可以使用PADT报文。进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接。PADT数据包可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了,即使是常规的PPP结束数据包也不允许发送。

pppoe报文结构:

在这里插入图片描述Destination_address 域:一个以太网单播目的地址或者以太网广播地址(0xffffffff)。
Source_address 域:源设备的以太网 MAC 地址。
Ether_type:设置为 0x8863(Discovery 阶段或拆链阶段)或者 0x8864(Session 阶段)。
Ver 域:4bits,PPPoE 版本号,值为 0x1。
Type 域:4bits,PPPoE 类型,值为 0x1。
Code 域:8bits,PPPoE 报文类型。Code 域为 0x00,表示会话数据。Code域为 0x09,表示 PADI 报文;Code 域为 0x07,表示 PADO 或 PADT 报文;Code 域为 0x19,表示 PADR 报文;Code 域为 0x65,表示 PADS 报文。
Session_ID 域:16bits,对于一个给定的 PPP 会话,该值是一个固定值,并且与以太网 Source_address 和Destination_address 一起实际地定义了一个PPP 会话。值0xffff 为将来的使用保留,不允许使用。
Length 域:16bits,定义 PPPoE 的 Payload 域长度。不包括以太网头部和PPPoE 头部的长度。


网站公告

今日签到

点亮在社区的每一天
去签到