网络协议分析-PPP与PPPOE

本文最后更新于:几秒前

PPP与PPPOE协议

PPP协议:

PPP二层协议,支持多协议,提供身份认证,支持数据压缩,支持动态地址协商,支持多链路捆绑。

协议帧格式:

20430499-842e104eaf152d1e

| 标志 | 地址 | 控制 | 协议类型 | 信息域 | 校验和 | 标志 |

PPP帧以0x7E 为标志开始和结束。

地址域固定值为0xFF 这是因为点到点链路对方地址固定。

控制域固定位是0x3,协议域用来区分信息域中承载的信息类型:

PPP协议包含以下三个组件:

1.链路控制协议LCP

2.网路控制协议NCP

3.ppp扩展协议(主要用于链路捆绑)

其中LCP 完成数据链路的配置和测试,由NCP完成通信参数的配置。

在LCP阶段配置链路上最大帧长,使用的鉴别协议(身份验证是在LCP阶段完成的)

NCP阶段配置客户端的IP地址。

LCP报文主要分为:

1.链路配置报文

​ ▪ Config-request 发起配置过程

​ ▪ config-ACK 所有选项都被接受和识别

​ ▪ config-Nak 如果协商参数全部被识别但有部分被接受,会返回这种数据包(其中包含否认的选项)

​ ▪ config-reject 如果也有协商参数不被识别或不被接受则返回这个数据,其中不包含拒绝的选项

​ 当通信双方需要建立链路时,无论哪一方都需要发送config-Request报文并携带希望协商的参数

2.链路终止报文

​ a.Terminate-Request

​ b.Terminate-ACK

​ 链路要关闭一个连接时,想要关闭的一端会持续发送 Terminate-Request 数据包,直到收到一个Terminate-ACK数据包,这时候发起端将断开连接。

3.链路维护报文

Magic Number: 用来防止环路,当接收端收到一个Config-Request时,会将此报文与上一次接受到的Config-Request报文相比较,如果两个报文中携带的magic number 不一致,则认为链路没有环路,否则会认为链路存在环路。

IPCP:含有三个配置选项,多个IP地址,IP压缩,IP地址

CHAP认证:

​ 主认证方向被认证方发送一个随机数C,被认证方将这个随机数C+密钥 作为Hash函数的输入,计算出一个散列值,然后将这个散列值发送给 主认证方,主认证方也这样计算散列值,然后比较。

PPPOE:

工作流程:

​ 发现阶段,会话阶段

​ 发现阶段:获取PPPOE终端的以太网MAC地址,并建立一个唯一的PPPOE session-id,PPPOE 发现阶段结束后,进入标准PPP会话阶段。

​ 发起:客户端通过广播获取可用的AC。

​ 提供:收到请求后,如果AC可以提供服务,则返回 PPPOE active Discovery offer 报文

​ 请求:如果客户端收到来自多个AC的应答,则必须选择其中一个,并向该AC发起请求。

​ 确认:收到请求的AC向客户端返回确认,从而建立ppp连接与会话。

PPPOE 报文格式:

20430499-8ad9bd99de9db827

Ver : PPPOE 版本号 值为0x1

Type:PPPOE类型 值为0x1

Code:PPPOE报文类型

20430499-c131187fce6b69b3

Session_ID: 对于一个给定的PPP会话,该值是一个固定值,并且与以太网S_add 和 D_add 一起实际定义了一个ppp会话,值0xffff 为将来的使用保留,不允许使用

length: PPPOE payload域长度


文章不正确之处,欢迎指出,谢谢


网络协议分析-PPP与PPPOE
https://blog.icansudo.top/2020/04/22/网络协议分析-PPP与PPPOE/
作者
odin
发布于
2020年4月22日
许可协议