PPP协议

来源:互联网 发布:php写接口实例 编辑:程序博客网 时间:2024/05/01 16:17

PPP完整流程五个阶段

1. LCP链路建立2. 使用PAP或者CHAP验证客户端身份3. 所使用IPCP配置IP层参数4. 使用LCP断开连接5. 断开物理连接

PPP帧格式

F A C 协议 数据….. FCS F 7E FF 03 协议 数据…. FCS 7E

说明:

字段 说明 7E 起始、结束标识符,数据中出现7E使用7D5E转义,7D使用7D5D转义 FF 地址控制,PPP端到端,所以为FF C 控制字段,包含帧类型和序号 协议 表示封装的什么协议取值见下表 FCS 帧校验和字段

协议字段取值:

取值 协议 C021 LCP C223 CHAP C23 PAP 8021 IPCP C025 LQR

LCP协议

各种选项

类型 报文名称 报文代码 链路配置 Configure-Request 1 链路配置 Configure-Ack 2 链路配置 Configure-Nak 3 链路配置 Configure-Reject 4 链路终止 Terminate-Request 5 链路终止 Terminate-Ack 6 链路维护 Code-Reject 7 链路维护 Protocol-Reject 8 链路维护 Echo-Request 9 链路维护 Echo-Reply 10 链路维护 Discard-Request 11

LCP位于PPP帧的数据部分,由一系列选项组成,其中

1.头部
类型 ID 长度 8 8 16

2.TLV(Type Length Value)组成,每个TLV:

类型 长度 值 8b 8b 前面长度指定 01 04 MRU 03 04 认证协议(C023、C223) 04 04 质量协议 05 06 魔数(0xa1a7e22e) 07 02 Protocol-Field-Compression 08 02 Address-and-Control-Field-Compression

链路配置过程

1. 发起方发送Configure-Rquest报文,包含请求协商的选项2. 回应方可能有:    1. 若所有选项都可以接受,则回复Configure-Ack    2. 选项可识别但是部分接受,回复Configure-Nak,包含拒绝的选项    3. 部分选项不可识别,回复Configure-Reject,包含不能识别的选项3. 发起方接受到Confiure-Nak或者Configure-Reject后,便重新发起Configure-Request但不包含拒绝的选项4. 重复以上过程直到发起方得到Configure-Ack

请求认证过程

PAP(Password Authentication Protocol)(C023)

1. 报文格式

1.1 认证请求
0 - 7 8 - 15 16 - 31 类型(1) ID 长度 身份长度 身份 ^ 口令长度 口令 ^
1.2 认证回复
0 - 7 8 - 15 16 - 31 类型(2/3) ID 长度 消息长度 消息 ^

2. 缺点:

明文传输(虽然你可以加密),不安全,而且在后面的链路阶段不可以使用

CHAP(Challenge Handshake Authentication Protocol)(C223)

1.流程

认证方(IPS) 被认证方(用户) Challenge –>c A1=Hash(c,s) - <–A1 Response Hash(c,s)==A1 –>Success - Hash(c,s)!=A1 –>Failure -

2. 报文格式

2.1Challenge报文

0 - 7 8 - 15 16 - 31 类型(1/2) ID 长度 值长度 值 ^ ^ 名字 ^

2.2Response报文

0 - 7 8 - 15 16 - 31 类型(3/4) ID 长度 - 消息 -

PPPOE协议

1. PPPOE思路

1. 将PPP协议用于以太网,以太网协议对认证支持度不好2. 用以太网帧作为传输工具,其中以太网帧头部的帧类型0x8869(发现)/0x8864(其他)

2. PPPOE阶段

1. 发现阶段(PPPOE Active Discovery)(PAD*)

阶段|作用---|---发起(Initiation)(PADI)|通过广播请求以获取可用的服务器的报文提供(Offer)(PADO)|收到请求后,服务器返回的报文请求(Rquest)(PADR)|客户端向服务器发起请求确认(Session-Confirmation)(PADS)|服务器相应请求终止(Termination)(PADT)|终止会话

3. PPPOE报文格式

0 - 4 4 - 8 8 - 16 16 - 31 版本 类型 代码 会话ID 长度 ^ 数据 ^

其中版本、类型固定为1。

阶段 代码 会话ID 源MAC地址 目标MAC地址 PADI 0x09 0 客户 硬件广播 PADO 0x07 0 服务器 客户 PADR 0x19 0 客户 服务器 PADS 0x65 唯一 服务器 客户端 PADT 0xa7 终止会话的id 发送方 目标方 会话 0x00 当前会话id 发送 目标方

1. PADT和会话可以由服务器/客户发出
2. 会话的唯一id在发起阶段(PADS)给出
3. 问题:多层网络怎么广播到服务器?

4. 大体报文格式

FrameEthernetⅡPPPOEPPPLCP/PAP/CHAP/IPCP
0 0
原创粉丝点击