需求

  1. 简单
  2. 封装成帧
  3. 透明性
    1. 字节填充(异步传输)
      1. 转义符为 0x7D
      2. 将信息字段中出现的每一个0x7E字节转为(0x7D,0x5E)
      3. 若信息字段中出现了一个0x7D的字节,则将其转变为(0x7D,0x5D)
      4. 若信息字段中出现了ASCII码的控制字符,则在该字符前加上0x7D的字节
    2. 0比特填充
      1. 同步传输时,只要发现5个连续1,就立刻填入一个0
  4. 多种网络协议
  5. 多种类型链路
  6. 差错检测
  7. 检测连接状态
  8. 最大传送单元
  9. 网络层地址协商
  10. 数据压缩协商

    特点

  11. 简单

  12. 提供不可靠数据报服务
  13. 有检错
  14. 无纠错
  15. 适用于线路质量不太差的情况
  16. 面向字节(HDLC面向比特)
  17. 异步线路(字符填充法)同步线路(比特填充)
  18. 只支持全双工
  19. 广域网协议,一对一,点对点,原则上不需要寻址
  20. 两端可运行不同的网络层协议

    组成

  21. 将IP数据报封装到串行链路的方法

    1. 既支持异步链路(无奇偶校验的8位比特)
    2. 也支持面向比特的同步链路(按序)
    3. IP数据包在PPP帧中是信息部分,这个信息部分的长度受MTU的限制
  22. 用来建立、配置和测试数据连接的链路控制协议LCP(Link Control Protocol)
    1. 用来建立、配置和测试数据链路连接
  23. 一套网络控制协议NCP(Network Control Protocol)

    1. 每一个协议支持不同的网络层协议

      PPP帧格式

      | F | A | C | | | FCS | F | | —- | —- | —- | —- | —- | —- | —- | | Flag | | | 协议 | 信息部分 | 校验 | | | 7E | FF | 03 | | | | 7E | | 1 | 1 | 1 | 2 | <1500 | 2 | 1 |
  24. Flag 标志字段

    1. 0x7E,01111110表示一个帧开始或结束,即PPP帧的定界符。如果同时出现两个标志字段,则表示空帧
  25. A
    1. 0xFF,即11111111 。 无定义
  26. C
    1. 0x03,即00000011 。无定义
  27. 协议字段
    1. 当协议字段为0xC021时,信息字段为PPP链路控制协议LCP的数据
    2. 当协议字段为0x8021时,信息字段为网络层的控制数据
    3. 当协议字段为0x0021时,信息字段为IP数据报
  28. 信息字段
    1. 长度可变,但不超过1500字节
  29. FCS

    1. 帧检测序列

      PPP协议的工作状态

  30. 如图点对点协议(PPP) - 图1

  31. 链路建立状态,LCP开始链路协商,即发送链路请求帧,相应有三种
    1. 配置确认帧
    2. 配置否认帧:所有选项都理解但不接受
    3. 配置拒绝帧:有的选项不能识别或不能接受,需协商
  32. 链路打开状态,链路的两个PPP端点可以彼此发送分组,还可发送回送请求LCP分组和回送回答LCP分组以检查链路状态
  33. 数据传输结束后可以由链路的一端发送终止请求LCP分组,收到对方发来的终止确认LCP分组,转到链路种植状态
  34. PPP不是纯粹的数据链路层协议,还包含了物理层和网络层的内容


    已使用 OneNote 创建。