PPP协议
PPP协议: 用户计算机和ISP进行通信时所使用的数据链路层协议;
PPP协议(点对点协议)需要满足的需求
- 简单;
- 封装成帧;
- 透明性;
- 多种网络层协议:必须能够在同一条物理链路上同时支持多种网络层协议(IP,IPX等)的运行;
- 多种类型链路;
- 差错检测:能对接收端收到的帧进行差错检测,并立即丢弃有差错的帧;
- 检测链接状态;
- 最大传送单元;
- 网络层地址协商;
- 数据压缩协商:提供一种方法用来协商使用数据压缩算法;
PPP协议的组成(三部分)
- 一个将IP数据报封装到串行链路的方法;-----既支持异步链路,也支持面向比特的同步链路;
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP;
- 一套网络控制协议NCP,其中每个协议支持不同网络层协议;
PPP协议的帧格式
1. 各段意义:
- 标志字段F(Flag): 首部第一个字段和尾部第二个字段都是,规定为0x7E,表示它后面的字符都是用是用16进制表示,表示一个帧的开始和结束,即为PPP帧的定界符,当出现两个连续定界符是,该帧需要丢弃;
- **地址字段A:**规定为0XFF;
- 控制字段C: 规定为0x03;
- 协议字段: 2个字节的协议字段;
- 信息字段: 长度可变,但不能超过1500字节;
- 尾部第一个字段:使用CRC的帧检验序列FCS,2个字节;
2.字节填充:
- 当信息字段中出现和标志字段一样的比特(0x7E)组合时,当使用异步传输时,使用字节填充的方法:
- 把信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D,0x5D);
- 若信息字段中出现一个0x7D字节时,则把0x7D转变成为2字节序列(0x7D,0x5D);
- 若信息字段中出现ASCII码(小于0x20的字符)的控制字符,则在该字符序列前面加入0x7D字节,同时将该字符的编码加以改变。
3.零比特填充
-
- PPP协议使用在SONET/SDH链路时,使用同步传输(一连串的比特连续发送),不使用异步传输(逐个字符地传送);
- 具体做法:在发送端,扫描发现5个连续1,则立即填入0;在接收端,先找到定界符F确定帧的边界,然后通过扫描,把连续5个1后面的0删除;
PPP协议的工作状态
- 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
- PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
- 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
- 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接
注意:PPP协议不是单纯的数据链路协议,同时还包含了网络层和物理层的内容.