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.头部
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. 大体报文格式
Frame
EthernetⅡ
PPPOE
PPP
LCP/PAP/CHAP/IPCP