PPP协议

PPP协议: 用户计算机和ISP进行通信时所使用的数据链路层协议

PPP协议(点对点协议)需要满足的需求

  1. 简单;
  2. 封装成帧;
  3. 透明性;
  4. 多种网络层协议:必须能够在同一条物理链路上同时支持多种网络层协议(IP,IPX等)的运行;
  5. 多种类型链路;
  6. 差错检测:能对接收端收到的帧进行差错检测,并立即丢弃有差错的帧;
  7. 检测链接状态;
  8. 最大传送单元;
  9. 网络层地址协商;
  10. 数据压缩协商:提供一种方法用来协商使用数据压缩算法;

PPP协议的组成(三部分)

  • 一个将IP数据报封装到串行链路的方法;-----既支持异步链路,也支持面向比特的同步链路;
  • 一个用来建立、配置和测试数据链路连接的链路控制协议LCP;
  • 一套网络控制协议NCP,其中每个协议支持不同网络层协议;

PPP协议的帧格式

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协议的工作状态

  1. 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
  2. PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
  3. 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
  4. 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接

注意:PPP协议不是单纯的数据链路协议,同时还包含了网络层和物理层的内容.
PPP协议