一、PPP协议
1、PPP协议是一个数据链路层协议,主要用于在全双工的链路上进行点到点的数据传输封装。他也定义了自己的帧格式,这种格式的帧称为PPP帧。
2、PPP帧格式的示意图
①PPP帧的首部和尾部分别为4个字段和2个字段。
②标志字段F = 0x7E(符号"Ox"表示后面的字符是用十六进制表示。十六进制的7E的二进制表示是01111110)。
③地址字段A只置为0xFF。地址字段实际上并不起作用。
④控制字段C通常置为0x03。
⑤PPP的协议字段是为了标识本数据帧的消息负载是使用的什么协议进行封装的。
⑥ PPP是面向字节的,所有的PPP帧的长度都是整数字节。
⑦协议字段:0xc023——信息字段是安全性认证PAP 0xc223——信息字段是安全性认证CHAP
3、PPP协议的分层架构
在两台设备要通过PPP协议在一条链路上传输数据之前,它们需要首先通过LCP协议来协商建立数据链路,然后再通过NCP协议来协商网络层的配置。
二、PPP协议工作过程
①建立、配置及测试数据链路的链路控制协议(LCP)。 它允许通信双方进行协商,以确定不同的选项。这些选项有最大接收单元、认证协议、协议字段压缩等。对于没有协商的参数,使用默认操作。
②认证协议。如果一端需要身份验证,就需要对方出示账户和密码进行身份验证。最常用的是密码验证协议PAP和挑战握手验证协议CHAP。 PAP和CHAP通常被用在PPP封装的串行线路上,提供安全性认证。PAP身份验证方式下账号和密码在网络中明文传输,CHAP身份验证方式下密码加密传输。
③)LCP协商完参数和身份验证后,PPP就会开始通过上层协议对应的网络控制协议(NCP) 来协商上层协议的配置参数,比如IPCP需要协商的配置参数包括消息的PPP和IP头部是否压缩、使用什么算法进行压缩以及PPP接口的IPv4地址等。
④报文解释
Code | 名称 | 内容 |
0x01 | Configure-Request | 配置请求报文 |
0x02 | Configure-Ack | 配置成功报文 |
0x03 | Configure-Nak | 配置参数需要协商 |
0x04 | Confiqure Reject | 配置参数不识别 |
三、PPP协议的状态图